summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason M. Bills <jason.m.bills@linux.intel.com>2019-12-05 23:27:58 +0300
committerJason M. Bills <jason.m.bills@linux.intel.com>2019-12-05 23:27:58 +0300
commitccd6cab15aedd223a42dfdb110ab2d71d8a87141 (patch)
tree2050b16c5978dbf1268ea0f1a65d15026ec25831
parent6f65bb40d3e8b7fe978698488c2ea93f077bfcd6 (diff)
parent6dbb316ab9052d4dbf158377e1ffe36f205d5477 (diff)
downloadopenbmc-ccd6cab15aedd223a42dfdb110ab2d71d8a87141.tar.xz
Merge branch 'master' of ssh://git-amr-1.devtools.intel.com:29418/openbmc-openbmc into update
-rw-r--r--meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb4
-rw-r--r--meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf8
-rwxr-xr-xmeta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb2
-rw-r--r--meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console/obmc-console.conf2
-rw-r--r--meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console_%.bbappend2
-rw-r--r--meta-ibm/README1
-rw-r--r--meta-ibm/meta-palmetto/conf/bblayers.conf.sample2
-rw-r--r--meta-ibm/meta-romulus/conf/bblayers.conf.sample2
-rw-r--r--meta-ibm/meta-witherspoon/conf/machine/rainier.conf2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml112
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml78
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml12
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-0.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-1.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-2.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-3.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json86
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend9
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/11.json28
-rwxr-xr-xmeta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json54
-rwxr-xr-xmeta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/fileTable.json10
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/host_eid1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm_%.bbappend19
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/rainier/psu.json31
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/psu.json29
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/pseq-monitor-pgood.service (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/psu.json29
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power_%.bbappend15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/power-supply-monitor@.service15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor.service10
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis_git.bb47
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf8
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf3
-rw-r--r--meta-ibm/meta-z/conf/bblayers.conf.sample22
-rw-r--r--meta-ibm/meta-z/conf/layer.conf5
-rw-r--r--meta-ibm/meta-z/conf/machine/ibm-z.conf11
-rw-r--r--meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb2
-rw-r--r--meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample2
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend2
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-0.conf3
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-1.conf3
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/psu.json34
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power_%.bbappend12
-rwxr-xr-xmeta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb2
-rwxr-xr-xmeta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb2
-rw-r--r--meta-intel/meta-s2600wf/conf/bblayers.conf.sample1
-rw-r--r--meta-lenovo/MAINTAINERS46
-rw-r--r--meta-nuvoton/MAINTAINERS45
-rw-r--r--meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml276
-rw-r--r--meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml194
-rw-r--r--meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml35
-rw-r--r--meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb7
-rw-r--r--meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.09.05.bb22
-rw-r--r--meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.10.09.bb26
-rw-r--r--meta-nuvoton/recipes-bsp/images/npcm7xx-igps-native_02.01.12.bb25
-rw-r--r--meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch145
-rw-r--r--meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch25
-rw-r--r--meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch46
-rw-r--r--meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb (renamed from meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb)10
-rw-r--r--meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb3
-rw-r--r--meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb2
-rw-r--r--meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb (renamed from meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.5.2.bb)2
-rw-r--r--meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.8.0.bb (renamed from meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.6.2.bb)4
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch32
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.13.0.bb (renamed from meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb)7
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb (renamed from meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb)6
-rw-r--r--meta-openembedded/meta-gnome/classes/gnome-help.bbclass69
-rw-r--r--meta-openembedded/meta-gnome/conf/layer.conf3
-rw-r--r--meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.22.bb44
-rw-r--r--meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.24.bb29
-rw-r--r--meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.34.2.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.32.0.bb)4
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch25
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb6
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-Use-LC_MESSAGES-for-address-localization-when-LC_ADD.patch33
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-Dont-add-usr-lib-to-LDFLAGS-when-linking-libphonenum.patch36
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch75
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb155
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch12
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch34
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch24
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch33
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch122
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb65
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.34.1.bb52
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb23
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb70
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc15
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch (renamed from meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch)28
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch (renamed from meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch)0
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch (renamed from meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch)0
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch (renamed from meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Add-native-suffix-to-exacutables-produced-and-run-du.patch)33
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h (renamed from meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h)0
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.2.bb26
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch29
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch31
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch31
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch57
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch38
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb33
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.34.0.bb44
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.1.bb20
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.0.bb19
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.2.3.bb18
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.32.1.bb)4
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.1.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.0.bb)10
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_3.34.0.bb25
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.28.2.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb21
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.32.0.bb18
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.34.1.bb59
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor/0001-Do-not-build-help-we-do-not-have-yelp-yet.patch30
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.1.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.0.bb)8
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch35
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.34.2.bb37
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.1.bb)6
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb3
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb32
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.4.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.2.0.bb)13
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.34.0.bb24
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.32.0.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch40
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb33
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.34.1.bb32
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.1.bb50
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-tools_3.32.2.bb21
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_3.34.0.bb21
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_3.34.0.bb32
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity/0001-build-don-t-generate-manual.patch50
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb12
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.16.bb37
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb21
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/ibus/ibus-native.bb34
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/ibus/ibus.bb37
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc36
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch39
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch63
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch46
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb39
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb14
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb2
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/0001-Fix-missing-include-in-sys-mman.h.patch36
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klibc-config-eabi.patch23
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.7.bb (renamed from meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.6.bb)0
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.7.bb (renamed from meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.6.bb)0
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.7.bb (renamed from meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.6.bb)0
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc11
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.7.bb (renamed from meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.6.bb)0
-rw-r--r--meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb2
-rw-r--r--meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch176
-rw-r--r--meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb9
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc6
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service13
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb8
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb3
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc)6
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch2
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch2
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch3
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch31
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-pip-requirements-Don-t-install-requirements-with-pip.patch)10
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-Use-python3-and-pip3-instead-of-python-and-pip.patch)8
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch30
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb6
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb11
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc)10
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch29
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch30
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch96
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb)12
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch81
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb1
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.1.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.0.2.bb)8
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-dhcpcd-Fix-build-error-with-musl.patch34
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service4
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.3.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.2.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch12
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20191006.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20190630.bb)5
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.4.bb5
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.10.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.8.bb)22
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.15.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.14.1.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.2.0.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.1.0.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb11
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch30
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch4
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.6.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.5.bb)16
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-i586-build-issues-with-string-length-overflow.patch115
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Make-iscsid-systemd-usage-optional.patch88
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Use-pkg-config-in-Makefiles-for-newer-libraries.patch92
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.878.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.877.bb)9
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.0.19.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.0.16.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/lldpd/files/0001-priv-include-limits.h-for-PATH_MAX.patch27
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_1.0.3.bb)5
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.0.1.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc30
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.7.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.5.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch37
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.49.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.47.bb)9
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.9.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.6.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.24.3.bb (renamed from meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb)8
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.5.bb (renamed from meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.9.bb6
-rw-r--r--meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.5.bb (renamed from meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.4.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch21
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.9.1.bb (renamed from meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.4.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.3.2.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch42
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.260.1.bb (renamed from meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.200.35.bb)7
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch28
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb3
-rw-r--r--meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE34
-rwxr-xr-xmeta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.4.bb (renamed from meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.3.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.11.0.bb (renamed from meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.10.0.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.2.bb (renamed from meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.1.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.5.6.bb (renamed from meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.5.5.bb)7
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.93.bb (renamed from meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.92.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.20.bb (renamed from meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.19.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ncp/libowfat/0001-Depend-on-haveuint128.h-for-umult64.c.patch44
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.32.bb (renamed from meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.31.bb)10
-rw-r--r--meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2/0001-fetch-ocsp-response-use-python3.patch27
-rw-r--r--meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.1.bb15
-rw-r--r--meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.2.bb41
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch29
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch95
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch35
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ruli/files/Makefile.patch122
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb23
-rw-r--r--meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.9.4.bb (renamed from meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.9.2.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb (renamed from meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.3.bb)4
-rw-r--r--meta-openembedded/meta-oe/classes/gitpkgv.bbclass15
-rw-r--r--meta-openembedded/meta-oe/classes/itstool.bbclass5
-rw-r--r--meta-openembedded/meta-oe/conf/layer.conf1
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_487.bb (renamed from meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_484.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch13
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch9
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.0.1.bb (renamed from meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.8.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch198
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0002-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch74
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb (renamed from meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.5.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_0.20.bb)12
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch263
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.33.1.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.32.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.8.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.6.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.1.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch48
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.2.6.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch48
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch86
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch83
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_19.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_21.bb32
-rw-r--r--meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.62.0.bb (renamed from meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.60.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.0.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.12.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_1.0.0.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb (renamed from meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Use-__builtin_bswap32-on-Clang-if-supported.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-kcapi-kdf-Move-code-to-fix.patch73
-rw-r--r--meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.18.bb (renamed from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.16.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc5
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.18.bb (renamed from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.16.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc2
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.0.bb (renamed from meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_11.5.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/0001-Avoid-use-of-mips-which-is-reserved-on-mips.patch67
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch47
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/0001-Fix-6906.patch94
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.16.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.10.0.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.36.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.34.1.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.4.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Crypto-reduce-memory-usage-of-SignFinal.patch122
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0007-v8-don-t-override-ARM-CFLAGS.patch102
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.16.3.bb)52
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-esirisc_flash-Rename-PAGE_SIZE-to-FLASH_PAGE_SIZE.patch59
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.14.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.13.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch161
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.11.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/php/php.inc)12
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.9.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.9.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.13.0.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.12.0.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.19.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.16.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.19.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.16.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch154
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20191103.bb (renamed from meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20190808.bb (renamed from meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20190728.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.6.bb8
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch (renamed from meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch245
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb (renamed from meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-Always-enable-trivial-httpd-for-tests.patch59
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-build-create-tests-directory-for-split-builds.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-Handle-EPIPE-failures-when-head-terminates.patch51
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-core-Fallback-to-en_US.UTF-8-locale.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-Gate-ostree-trivial-httpd-on-BUILDOPT_TRIVIAL_HTTPD.patch51
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-tests-core-Assume-C.UTF-8-if-locale-isn-t-found.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0003-tests-Avoid-musl-failure-with-cp-a.patch52
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree/run-ptest3
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.5.bb (renamed from meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.4.bb)47
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl/0001-Fix-clang-warning-about-non-virtual-dtor.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.1.4.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.116.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Out-of-bounds-issue.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-pmaixforwardedfrom-bugfix-potential-misadressing.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1910.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1908.0.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch51
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.0.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/zstd/zstd_1.4.3.bb35
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.28.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/iconv-detect.h (renamed from meta-openembedded/meta-oe/recipes-support/pidgin/gmime/iconv-detect.h)0
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch (renamed from meta-openembedded/meta-oe/recipes-support/pidgin/gmime/nodolt.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb (renamed from meta-openembedded/meta-oe/recipes-support/pidgin/gmime_3.2.3.bb)13
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-standard_3.28.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+.inc2
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.2.bb (renamed from meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.1.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb28
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/vte9/vte9.inc2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.8.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi9533
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi19018
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.102.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.0.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_350.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_349.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi11
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch196
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb35
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.7.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch92
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch8
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc4
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch624
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-security/softhsm/softhsm_git.bb18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.31.bb (renamed from meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.30.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/colord/colord-native.bb64
-rw-r--r--meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch166
-rw-r--r--meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile48
-rw-r--r--meta-openembedded/meta-oe/recipes-support/colord/colord.bb45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/colord/colord.inc13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch59
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch (renamed from meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Don-t-use-build-time-hardcoded-python-binary-path.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/fix-build-with-older-gnutls.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.67.bb (renamed from meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.66.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.9.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch78
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.06.bb (renamed from meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.05.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch82
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-udev-remove-unsupported-OPTIONS-event_timeout-rule.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-activation-extend-handling-of-pending_delete.patch124
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-snapshot-always-activate.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.06.bb (renamed from meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.05.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb (renamed from meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_164.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch94
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch78
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch699
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch10
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch1281
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_11.0.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb)12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.25.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch50
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco/0001-riscv-Enable-double-operations-when-using-double-flo.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb (renamed from meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.82.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.80.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.24.1.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_12.1.0.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb (renamed from meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.28.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb (renamed from meta-openembedded/meta-oe/recipes-test/googletest/googletest_1.8.1.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb2
-rw-r--r--meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb (renamed from meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb)4
-rw-r--r--meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb (renamed from meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.62.bb)4
-rw-r--r--meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.20.bb (renamed from meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb)4
-rw-r--r--meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003006.bb (renamed from meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb)6
-rw-r--r--meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.001004.bb (renamed from meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2.inc10
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2_3.1.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_3.1.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc10
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack_3.0.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc10
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe_5.2.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc10
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority_1.3.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman/0001-Import-local-modules-by-relative-path-for-python3-su.patch74
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.77.bb (renamed from meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.3.0.bb (renamed from meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.3.0.bb (renamed from meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/gyp/gyp-py2_git.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.0.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-astroid_2.3.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.5.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.2.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.8.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.5.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.7.0.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-can.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-can_3.3.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-can_2.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-click.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.19.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.18.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2.inc10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2_0.6.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.7.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.7.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.14.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.13.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.5.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.16.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.15.2.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.9.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-evdev_1.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.12.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.5.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_4.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_3.3.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.0.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-future.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-future_0.18.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress.inc (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.23.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-ipy.inc19
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-ipy_1.00.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.21.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc31
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch96
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.4.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_5.0.0.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_7.2.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.5.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.12.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.4.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.5.bb6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-periphery_2.0.0.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.9.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.10.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.4.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.9.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools.inc14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools_0.25.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.19.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_19.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.7.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.117.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.93.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.3.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2019.1.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2019.10.12.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.2.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_1.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator.inc25
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch32
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator_0.1.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator.inc23
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch32
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator_0.1.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-scandir_1.10.0.bb14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.28.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.25.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_3.3.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_2.1.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.13.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-systemd/endian.patch14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-tornado_6.0.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-tornado_5.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.38.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.8.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_2.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.6.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.16.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-yappi_1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-yappi_0.98.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.7.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.6.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.4.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.0.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astor/f820f3ff7ad8818475b6e107e63aa9a54252d2a9.patch87
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.5.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.2.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.19.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.18.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.7.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.7.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.14.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.13.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.2.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.16.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-docutils_0.15.2.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.9.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.12.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_3.3.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.0.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.18.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.4.4.bb21
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.00.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.21.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.0.5.bb23
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.4.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_7.2.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.3.bb20
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.2.3.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.12.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.0.0.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.1.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.9.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.10.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.4.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.9.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyelftools_0.25.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.19.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.17.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_19.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.7.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.117.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.93.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.4.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.6.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2019.1.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.2.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.2.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.28.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.25.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_3.3.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_2.1.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.0.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_5.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.38.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_2.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.6.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.16.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_0.98.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.7.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.6.0.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.7.0.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch10
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.22.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.20.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.3.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.2.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.3.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.2.bb)0
-rw-r--r--meta-openembedded/meta-webserver/conf/layer.conf1
-rw-r--r--meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch47
-rw-r--r--meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb3
-rw-r--r--meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc4
-rw-r--r--meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb2
-rw-r--r--meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb2
-rw-r--r--meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass2
-rw-r--r--meta-openembedded/meta-xfce/classes/xfce-app.bbclass2
-rw-r--r--meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass6
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch34
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb (renamed from meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb)5
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.8.bb (renamed from meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.5.bb)7
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.7.bb (renamed from meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.6.bb)4
-rw-r--r--meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.5.bb (renamed from meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.4.bb)4
-rw-r--r--meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.2.bb (renamed from meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb)4
-rw-r--r--meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.0.bb (renamed from meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.3.bb)4
-rw-r--r--meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb (renamed from meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.1.bb)4
-rw-r--r--meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb (renamed from meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.3.bb)4
-rw-r--r--meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.9.bb (renamed from meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.8.bb)6
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.9.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb2
-rw-r--r--meta-openpower/classes/openpower-software-manager-ubi.bbclass1
-rw-r--r--meta-openpower/classes/openpower-software-manager-virtual-pnor.bbclass5
-rw-r--r--meta-openpower/conf/distro/include/openpower-ubi.inc2
-rw-r--r--meta-openpower/conf/distro/include/openpower-virtual-pnor.inc2
-rw-r--r--meta-openpower/recipes-bsp/ecmd-pdbg/ecmd-pdbg_1.0.bb19
-rw-r--r--meta-openpower/recipes-bsp/ecmd/croserver_git.bb36
-rw-r--r--meta-openpower/recipes-bsp/ecmd/files/croserver.service12
-rw-r--r--meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb2
-rw-r--r--meta-openpower/recipes-bsp/skiboot/skiboot.inc6
-rw-r--r--meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb6
-rw-r--r--meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb4
-rw-r--r--meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb2
-rw-r--r--meta-phosphor/classes/image_types_phosphor.bbclass5
-rw-r--r--meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass9
-rw-r--r--meta-phosphor/classes/phosphor-rootfs-postcommands.bbclass10
-rw-r--r--meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass8
-rw-r--r--meta-phosphor/conf/distro/include/phosphor-base.inc4
-rw-r--r--meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth2
-rw-r--r--meta-phosphor/recipes-extended/pam/libpam/pam.d/common-session19
-rw-r--r--meta-phosphor/recipes-extended/pam/libpam_%.bbappend1
-rw-r--r--meta-phosphor/recipes-extended/stdplus/stdplus_git.bb2
-rw-r--r--meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb4
-rw-r--r--meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service2
-rw-r--r--meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb4
-rw-r--r--meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env5
-rw-r--r--meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb4
-rw-r--r--meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service1
-rw-r--r--meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc2
-rw-r--r--meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb6
-rw-r--r--meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-monitor@.service8
-rw-r--r--meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service13
-rw-r--r--meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb12
-rw-r--r--meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb4
-rw-r--r--meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc2
-rw-r--r--meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb4
-rw-r--r--meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb4
-rw-r--r--meta-phosphor/recipes-phosphor/pldm/pldm.inc2
-rw-r--r--meta-phosphor/recipes-phosphor/power/phosphor-power-systemd-links.bb43
-rw-r--r--meta-phosphor/recipes-phosphor/power/phosphor-power.inc (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc)2
-rw-r--r--meta-phosphor/recipes-phosphor/power/phosphor-power_git.bb30
-rw-r--r--meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init36
-rw-r--r--meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb2
-rwxr-xr-xmeta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh2
-rw-r--r--meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb6
-rw-r--r--meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb9
-rw-r--r--meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb2
-rwxr-xr-xmeta-phosphor/recipes-x86/chassis/x86-power-control_git.bb24
-rw-r--r--meta-quanta/MAINTAINERS46
-rw-r--r--meta-quanta/meta-gsj/conf/machine/gsj.conf1
-rw-r--r--meta-quanta/meta-olympus-nuvoton/conf/bblayers.conf.sample (renamed from meta-quanta/meta-runbmc-nuvoton/conf/bblayers.conf.sample)4
-rw-r--r--meta-quanta/meta-olympus-nuvoton/conf/conf-notes.txt (renamed from meta-ibm/meta-z/conf/conf-notes.txt)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/conf/layer.conf (renamed from meta-quanta/meta-runbmc-nuvoton/conf/layer.conf)6
-rw-r--r--meta-quanta/meta-olympus-nuvoton/conf/local.conf.sample (renamed from meta-ibm/meta-z/conf/local.conf.sample)2
-rw-r--r--meta-quanta/meta-olympus-nuvoton/conf/machine/olympus-nuvoton.conf (renamed from meta-quanta/meta-runbmc-nuvoton/conf/machine/runbmc-nuvoton.conf)1
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton/olympus-nuvoton.cfg (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton/runbmc-nuvoton.cfg)1
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend)2
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/files/obmc-console.conf (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/console/files/obmc-console.conf)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-olympus-nuvoton.json (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-runbmc-nuvoton.json)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend29
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-olympus-channels.json (renamed from meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-runbmc-channels.json)0
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend11
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/adc@c000.conf46
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/power-supply@58.conf34
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/tmp421@4c.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@40.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@41.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@44.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@45.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@67.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@77.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@62.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@64.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@72.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@74.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@60.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@70.conf21
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@87000/tmp421@4c.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@88000/adm1278@11.conf9
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8d000/tmp75@4a.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-fan-controller@103000.conf59
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-cputemp.0.conf35
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-dimmtemp.0.conf5
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-31/peci-cputemp.1.conf35
-rw-r--r--meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend40
-rw-r--r--meta-quanta/meta-runbmc-nuvoton/conf/conf-notes.txt2
-rw-r--r--meta-quanta/meta-runbmc-nuvoton/conf/local.conf.sample17
-rw-r--r--meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_RunBMC.xml166
-rw-r--r--meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/UbootHeader_RunBMC.xml191
-rw-r--r--meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_%.bbappend12
-rw-r--r--meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend29
-rw-r--r--meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend11
-rw-r--r--meta-raspberrypi/files/custom-licenses/Broadcom25
-rw-r--r--meta-raspberrypi/files/custom-licenses/Broadcom-RPi29
-rw-r--r--meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb2
-rw-r--r--meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb2
-rw-r--r--meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc8
-rw-r--r--meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc6
-rw-r--r--meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch13
-rw-r--r--meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.12.bb (renamed from meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb)3
-rw-r--r--meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch32
-rw-r--r--meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb5
-rw-r--r--meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb2
-rw-r--r--meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch415
-rw-r--r--meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc2
-rw-r--r--meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb2
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb4
-rw-r--r--meta-xilinx/meta-xilinx-bsp/README.md2
-rw-r--r--meta-xilinx/meta-xilinx-contrib/README.md2
-rw-r--r--meta-xilinx/meta-xilinx-standalone/README.md2
-rw-r--r--meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts3
-rwxr-xr-xpoky/bitbake/bin/bitbake-worker8
-rw-r--r--poky/bitbake/contrib/vim/indent/bitbake.vim343
-rw-r--r--poky/bitbake/lib/bb/cooker.py4
-rw-r--r--poky/bitbake/lib/bb/fetch2/__init__.py4
-rw-r--r--poky/bitbake/lib/bb/fetch2/clearcase.py6
-rw-r--r--poky/bitbake/lib/bb/fetch2/git.py23
-rw-r--r--poky/bitbake/lib/bb/fetch2/hg.py27
-rw-r--r--poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py46
-rw-r--r--poky/bitbake/lib/bb/runqueue.py42
-rw-r--r--poky/bitbake/lib/bb/tests/fetch.py20
-rw-r--r--poky/bitbake/lib/bb/tests/utils.py26
-rw-r--r--poky/bitbake/lib/bb/utils.py34
-rw-r--r--poky/bitbake/lib/prserv/serv.py6
-rw-r--r--poky/documentation/bsp-guide/bsp-guide.xml4
-rw-r--r--poky/documentation/dev-manual/dev-manual-common-tasks.xml90
-rw-r--r--poky/documentation/dev-manual/dev-manual.xml4
-rw-r--r--poky/documentation/kernel-dev/kernel-dev.xml4
-rw-r--r--poky/documentation/mega-manual/mega-manual.xml16
-rw-r--r--poky/documentation/overview-manual/overview-manual.xml4
-rw-r--r--poky/documentation/poky.ent10
-rw-r--r--poky/documentation/profile-manual/profile-manual.xml4
-rw-r--r--poky/documentation/ref-manual/migration.xml508
-rw-r--r--poky/documentation/ref-manual/ref-classes.xml8
-rw-r--r--poky/documentation/ref-manual/ref-manual.xml4
-rw-r--r--poky/documentation/ref-manual/ref-variables.xml9
-rw-r--r--poky/documentation/sdk-manual/sdk-manual.xml4
-rw-r--r--poky/documentation/toaster-manual/toaster-manual.xml4
-rw-r--r--poky/documentation/tools/mega-manual.sed46
-rw-r--r--poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py5
-rw-r--r--poky/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend (renamed from poky/meta-selftest/recipes-test/aspell/aspell_0.60.7.bbappend)0
-rw-r--r--poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch37
-rw-r--r--poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb4
-rw-r--r--poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded4
-rw-r--r--poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb2
-rw-r--r--poky/meta/classes/archiver.bbclass5
-rw-r--r--poky/meta/classes/base.bbclass1
-rw-r--r--poky/meta/classes/buildhistory.bbclass2
-rw-r--r--poky/meta/classes/cmake.bbclass3
-rw-r--r--poky/meta/classes/cve-check.bbclass103
-rw-r--r--poky/meta/classes/devtool-source.bbclass8
-rw-r--r--poky/meta/classes/distro_features_check.bbclass35
-rw-r--r--poky/meta/classes/features_check.bbclass85
-rw-r--r--poky/meta/classes/icecc.bbclass32
-rw-r--r--poky/meta/classes/image.bbclass2
-rw-r--r--poky/meta/classes/insane.bbclass4
-rw-r--r--poky/meta/classes/kernel-devicetree.bbclass20
-rw-r--r--poky/meta/classes/kernel-fitimage.bbclass24
-rw-r--r--poky/meta/classes/libc-package.bbclass15
-rw-r--r--poky/meta/classes/package.bbclass80
-rw-r--r--poky/meta/classes/package_ipk.bbclass1
-rw-r--r--poky/meta/classes/populate_sdk_ext.bbclass41
-rw-r--r--poky/meta/classes/report-error.bbclass8
-rw-r--r--poky/meta/classes/rm_work.bbclass48
-rw-r--r--poky/meta/classes/sanity.bbclass22
-rw-r--r--poky/meta/classes/sstate.bbclass23
-rw-r--r--poky/meta/classes/staging.bbclass16
-rw-r--r--poky/meta/classes/systemd.bbclass6
-rw-r--r--poky/meta/classes/testimage.bbclass18
-rw-r--r--poky/meta/classes/tinderclient.bbclass368
-rw-r--r--poky/meta/classes/uninative.bbclass2
-rw-r--r--poky/meta/conf/distro/include/no-static-libs.inc4
-rw-r--r--poky/meta/conf/documentation.conf4
-rw-r--r--poky/meta/conf/machine/include/tune-cortexa32.inc8
-rw-r--r--poky/meta/conf/machine/qemuriscv64.conf2
-rw-r--r--poky/meta/files/common-licenses/Intel105
-rw-r--r--poky/meta/lib/oe/buildhistory_analysis.py2
-rw-r--r--poky/meta/lib/oe/package_manager.py12
-rw-r--r--poky/meta/lib/oe/packagedata.py5
-rw-r--r--poky/meta/lib/oe/types.py4
-rw-r--r--poky/meta/lib/oeqa/core/decorator/data.py107
-rw-r--r--poky/meta/lib/oeqa/manual/bsp-hw.json288
-rw-r--r--poky/meta/lib/oeqa/manual/bsp-qemu.json222
-rw-r--r--poky/meta/lib/oeqa/manual/compliance-test.json76
-rw-r--r--poky/meta/lib/oeqa/manual/oe-core.json78
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/boot.py33
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/df.py2
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/ltp_stress.py98
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/opkg.py4
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/storage.py149
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/systemd.py16
-rw-r--r--poky/meta/lib/oeqa/runtime/context.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/bblayers.py8
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/bbtests.py17
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/buildoptions.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/devtool.py28
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/imagefeatures.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py18
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/oescripts.py65
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/recipetool.py4
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/reproducible.py20
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/runtime_test.py79
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/signing.py17
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/sstatetests.py12
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/wic.py7
-rw-r--r--poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch18
-rw-r--r--poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb (renamed from poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb)4
-rw-r--r--poky/meta/recipes-bsp/opensbi/opensbi_0.5.bb (renamed from poky/meta/recipes-bsp/opensbi/opensbi_0.4.bb)2
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch69
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0001-include-env.h-Ensure-ulong-is-defined.patch31
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch49
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch37
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch56
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch43
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch44
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch42
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch42
-rw-r--r--poky/meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch48
-rw-r--r--poky/meta/recipes-bsp/u-boot/u-boot-common.inc13
-rw-r--r--poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.10.bb (renamed from poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.07.bb)2
-rw-r--r--poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.10.bb (renamed from poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.07.bb)0
-rw-r--r--poky/meta/recipes-bsp/u-boot/u-boot_2019.10.bb (renamed from poky/meta/recipes-bsp/u-boot/u-boot_2019.07.bb)0
-rw-r--r--poky/meta/recipes-bsp/usbutils/usbutils_012.bb2
-rw-r--r--poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb2
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0001-bind-fix-CVE-2019-6471.patch64
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0001-fix-enforcement-of-tcp-clients-v1.patch60
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0002-tcp-clients-could-still-be-exceeded-v2.patch670
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0003-use-reference-counter-for-pipeline-groups-v3.patch278
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0004-better-tcpquota-accounting-and-client-mortality-chec.patch512
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch911
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0006-restore-allowance-for-tcp-clients-interfaces.patch80
-rw-r--r--poky/meta/recipes-connectivity/bind/bind/0007-Replace-atomic-operations-in-bin-named-client.c-with.patch140
-rw-r--r--poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb12
-rw-r--r--poky/meta/recipes-connectivity/bluez5/bluez5.inc3
-rw-r--r--poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch28
-rw-r--r--poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-btpclient.c-include-signal.h.patch30
-rw-r--r--poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch2
-rw-r--r--poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb2
-rw-r--r--poky/meta/recipes-connectivity/connman/connman.inc2
-rw-r--r--poky/meta/recipes-connectivity/dhcp/dhcp.inc2
-rw-r--r--poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch65
-rw-r--r--poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb1
-rw-r--r--poky/meta/recipes-connectivity/iproute2/iproute2_5.3.0.bb (renamed from poky/meta/recipes-connectivity/iproute2/iproute2_5.2.0.bb)4
-rw-r--r--poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver2
-rw-r--r--poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb2
-rw-r--r--poky/meta/recipes-connectivity/ofono/ofono_1.30.bb9
-rw-r--r--poky/meta/recipes-connectivity/ofono/ofono_1.31.bb (renamed from poky/meta/recipes-connectivity/ofono/ofono.inc)37
-rw-r--r--poky/meta/recipes-connectivity/openssh/openssh/0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch40
-rw-r--r--poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb1
-rw-r--r--poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb2
-rw-r--r--poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch82
-rw-r--r--poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb1
-rw-r--r--poky/meta/recipes-core/coreutils/coreutils_8.31.bb6
-rw-r--r--poky/meta/recipes-core/dbus/dbus/dbus-1.init4
-rw-r--r--poky/meta/recipes-core/dbus/dbus_1.12.16.bb1
-rw-r--r--poky/meta/recipes-core/ell/ell_0.26.bb (renamed from poky/meta/recipes-core/ell/ell_0.22.bb)4
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.2.bb (renamed from poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.1.bb)4
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib.inc2
-rw-r--r--poky/meta/recipes-core/glibc/glibc-package.inc11
-rw-r--r--poky/meta/recipes-core/glibc/glibc.inc2
-rw-r--r--poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh4
-rw-r--r--poky/meta/recipes-core/libxml/libxml2_2.9.9.bb2
-rw-r--r--poky/meta/recipes-core/meta/buildtools-tarball.bb1
-rw-r--r--poky/meta/recipes-core/meta/cve-update-db-native.bb44
-rw-r--r--poky/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch169
-rw-r--r--poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb1
-rw-r--r--poky/meta/recipes-core/ovmf/ovmf_git.bb5
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb2
-rwxr-xr-xpoky/meta/recipes-core/psplash/files/psplash-init2
-rw-r--r--poky/meta/recipes-core/systemd/systemd-compat-units.bb2
-rw-r--r--poky/meta/recipes-core/systemd/systemd-serialgetty.bb2
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0001-pstore-fix-use-after-free.patch39
-rw-r--r--poky/meta/recipes-core/systemd/systemd_243.bb9
-rw-r--r--poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb2
-rw-r--r--poky/meta/recipes-core/udev/eudev_3.2.8.bb2
-rw-r--r--poky/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch36
-rw-r--r--poky/meta/recipes-core/util-linux/util-linux_2.34.bb1
-rw-r--r--poky/meta/recipes-core/volatile-binds/volatile-binds.bb2
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils-2.32.inc2
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17450.patch99
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17451.patch51
-rw-r--r--poky/meta/recipes-devtools/bison/bison_3.4.2.bb (renamed from poky/meta/recipes-devtools/bison/bison_3.4.1.bb)4
-rw-r--r--poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.3.1.bb (renamed from poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.2.bb)2
-rw-r--r--poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb5
-rw-r--r--poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch27
-rw-r--r--poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb (renamed from poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.3.bb)2
-rw-r--r--poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb13
-rw-r--r--poky/meta/recipes-devtools/file/file/CVE-2019-18218.patch55
-rw-r--r--poky/meta/recipes-devtools/file/file_5.37.bb12
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-8.3/CVE-2019-14250.patch44
-rw-r--r--poky/meta/recipes-devtools/git/git.inc18
-rw-r--r--poky/meta/recipes-devtools/git/git_2.23.0.bb11
-rw-r--r--poky/meta/recipes-devtools/git/git_2.24.0.bb11
-rw-r--r--poky/meta/recipes-devtools/go/go-1.12.inc1
-rw-r--r--poky/meta/recipes-devtools/go/go-1.12/0001-release-branch.go1.12-security-net-textproto-don-t-n.patch163
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch38
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch226
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch54
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch50
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch44
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch279
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch113
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch47
-rw-r--r--poky/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch134
-rw-r--r--poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb1
-rw-r--r--poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb2
-rw-r--r--poky/meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch34
-rw-r--r--poky/meta/recipes-devtools/libedit/libedit_20191025-3.1.bb (renamed from poky/meta/recipes-devtools/libedit/libedit_20190324-3.1.bb)5
-rw-r--r--poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-Do-not-generate-gtkdoc-or-python-bindings.patch60
-rw-r--r--poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb7
-rw-r--r--poky/meta/recipes-devtools/librepo/librepo_1.11.0.bb (renamed from poky/meta/recipes-devtools/librepo/librepo_1.10.6.bb)2
-rw-r--r--poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch3
-rw-r--r--poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch3
-rw-r--r--poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c10
-rw-r--r--poky/meta/recipes-devtools/meson/meson.inc1
-rw-r--r--poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch95
-rw-r--r--poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb2
-rw-r--r--poky/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch31
-rw-r--r--poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb3
-rw-r--r--poky/meta/recipes-devtools/opkg/opkg/open_inner.patch46
-rw-r--r--poky/meta/recipes-devtools/opkg/opkg/opkg_archive.patch54
-rw-r--r--poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb7
-rw-r--r--poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch4
-rw-r--r--poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch106
-rw-r--r--poky/meta/recipes-devtools/pseudo/pseudo.inc17
-rw-r--r--poky/meta/recipes-devtools/pseudo/pseudo_git.bb1
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/arm/config.h21
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h17
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/armeb/config.h21
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h17
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h31
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h138
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h138
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h21
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h18
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h32
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h139
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/x86/config.h108
-rw-r--r--poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h24
-rw-r--r--poky/meta/recipes-devtools/python-numpy/python-numpy.inc68
-rw-r--r--poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch25
-rw-r--r--poky/meta/recipes-devtools/python/python-native/debug.patch32
-rw-r--r--poky/meta/recipes-devtools/python/python-native_2.7.17.bb (renamed from poky/meta/recipes-devtools/python/python-native_2.7.16.bb)3
-rw-r--r--poky/meta/recipes-devtools/python/python-setuptools.inc4
-rw-r--r--poky/meta/recipes-devtools/python/python-setuptools_41.4.0.bb (renamed from poky/meta/recipes-devtools/python/python-setuptools_41.2.0.bb)0
-rw-r--r--poky/meta/recipes-devtools/python/python-six.inc6
-rw-r--r--poky/meta/recipes-devtools/python/python.inc10
-rw-r--r--poky/meta/recipes-devtools/python/python/0001-2.7-bpo-34155-Dont-parse-domains-containing-GH-13079.patch90
-rw-r--r--poky/meta/recipes-devtools/python/python/0001-python-Resolve-intermediate-staging-issues.patch (renamed from poky/meta/recipes-devtools/python/python/builddir.patch)53
-rw-r--r--poky/meta/recipes-devtools/python/python/CVE-2018-20852.patch123
-rw-r--r--poky/meta/recipes-devtools/python/python/CVE-2019-9740.patch216
-rw-r--r--poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch55
-rw-r--r--poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch55
-rw-r--r--poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch28
-rw-r--r--poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch111
-rw-r--r--poky/meta/recipes-devtools/python/python3-pip_19.3.1.bb (renamed from poky/meta/recipes-devtools/python/python3-pip_19.2.3.bb)4
-rw-r--r--poky/meta/recipes-devtools/python/python3-setuptools_41.4.0.bb (renamed from poky/meta/recipes-devtools/python/python3-setuptools_41.2.0.bb)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-six_1.13.0.bb (renamed from poky/meta/recipes-devtools/python/python3-six_1.12.0.bb)0
-rw-r--r--poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch2
-rw-r--r--poky/meta/recipes-devtools/python/python3/0001-bpo-34155-Dont-parse-domains-containing-GH-13079.patch132
-rw-r--r--poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch2
-rw-r--r--poky/meta/recipes-devtools/python/python3/python3-manifest.json10
-rw-r--r--poky/meta/recipes-devtools/python/python3_3.7.5.bb (renamed from poky/meta/recipes-devtools/python/python3_3.7.4.bb)18
-rw-r--r--poky/meta/recipes-devtools/python/python_2.7.17.bb (renamed from poky/meta/recipes-devtools/python/python_2.7.16.bb)1
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb2
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu-helper/tunctl.c16
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu.inc2
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch108
-rw-r--r--poky/meta/recipes-devtools/ruby/ruby.inc8
-rw-r--r--poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch34
-rw-r--r--poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch22
-rw-r--r--poky/meta/recipes-devtools/ruby/ruby/0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch (renamed from poky/meta/recipes-devtools/ruby/ruby/0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch)30
-rw-r--r--poky/meta/recipes-devtools/ruby/ruby/extmk.patch16
-rw-r--r--poky/meta/recipes-devtools/ruby/ruby_2.6.5.bb (renamed from poky/meta/recipes-devtools/ruby/ruby_2.5.5.bb)27
-rw-r--r--poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch32
-rw-r--r--poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb15
-rw-r--r--poky/meta/recipes-devtools/strace/strace/sys_headers.patch25
-rw-r--r--poky/meta/recipes-devtools/strace/strace/uintptr_t.patch17
-rw-r--r--poky/meta/recipes-devtools/strace/strace_5.3.bb2
-rw-r--r--poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb2
-rw-r--r--poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch54
-rw-r--r--poky/meta/recipes-devtools/unfs3/unfs3_git.bb1
-rw-r--r--poky/meta/recipes-devtools/vala/vala_0.46.4.bb (renamed from poky/meta/recipes-devtools/vala/vala_0.46.3.bb)4
-rw-r--r--poky/meta/recipes-extended/acpica/acpica_20191018.bb (renamed from poky/meta/recipes-extended/acpica/acpica_20190816.bb)12
-rw-r--r--poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch2
-rw-r--r--poky/meta/recipes-extended/ethtool/ethtool_5.3.bb (renamed from poky/meta/recipes-extended/ethtool/ethtool_5.2.bb)4
-rw-r--r--poky/meta/recipes-extended/gawk/gawk_5.0.1.bb4
-rw-r--r--poky/meta/recipes-extended/iputils/iputils_s20190709.bb4
-rw-r--r--poky/meta/recipes-extended/libnsl/libnsl2_git.bb2
-rw-r--r--poky/meta/recipes-extended/libsolv/libsolv_0.7.8.bb (renamed from poky/meta/recipes-extended/libsolv/libsolv_0.7.6.bb)2
-rw-r--r--poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch18
-rw-r--r--poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb14
-rw-r--r--poky/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch35
-rw-r--r--poky/meta/recipes-extended/ltp/ltp/0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch57
-rw-r--r--poky/meta/recipes-extended/ltp/ltp_20190517.bb2
-rw-r--r--poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch99
-rw-r--r--poky/meta/recipes-extended/mc/mc_4.8.23.bb5
-rw-r--r--poky/meta/recipes-extended/mdadm/mdadm_4.1.bb5
-rw-r--r--poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb1
-rw-r--r--poky/meta/recipes-extended/pam/libpam_1.3.1.bb4
-rw-r--r--poky/meta/recipes-extended/procps/procps_3.3.15.bb9
-rw-r--r--poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch12
-rw-r--r--poky/meta/recipes-extended/psmisc/psmisc_23.3.bb (renamed from poky/meta/recipes-extended/psmisc/psmisc_23.2.bb)2
-rw-r--r--poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch109
-rw-r--r--poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch57
-rw-r--r--poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch137
-rw-r--r--poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch65
-rw-r--r--poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch135
-rw-r--r--poky/meta/recipes-extended/screen/screen_4.7.0.bb (renamed from poky/meta/recipes-extended/screen/screen_4.6.2.bb)9
-rw-r--r--poky/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch23
-rw-r--r--poky/meta/recipes-extended/stress-ng/stress-ng_0.10.10.bb (renamed from poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb)5
-rw-r--r--poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch178
-rw-r--r--poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch112
-rw-r--r--poky/meta/recipes-extended/sudo/sudo_1.8.27.bb4
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat.inc11
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat/0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch46
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat/sysstat.service2
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb4
-rw-r--r--poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb2
-rw-r--r--poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb3
-rw-r--r--poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb (renamed from poky/meta/recipes-gnome/gcr/gcr_3.28.1.bb)15
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb7
-rw-r--r--poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch2
-rw-r--r--poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.0.bb (renamed from poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.32.0.bb)8
-rw-r--r--poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb3
-rw-r--r--poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb10
-rw-r--r--poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb16
-rw-r--r--poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb18
-rw-r--r--poky/meta/recipes-gnome/gtk+/gtk+3.inc2
-rw-r--r--poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb4
-rw-r--r--poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb3
-rw-r--r--poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb7
-rw-r--r--poky/meta/recipes-gnome/libgudev/libgudev_233.bb5
-rw-r--r--poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb5
-rw-r--r--poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb8
-rw-r--r--poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb5
-rw-r--r--poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb12
-rw-r--r--poky/meta/recipes-graphics/clutter/clutter-1.0.inc5
-rw-r--r--poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc2
-rw-r--r--poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc2
-rw-r--r--poky/meta/recipes-graphics/cogl/cogl-1.0.inc6
-rw-r--r--poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb (renamed from poky/meta/recipes-graphics/drm/libdrm_2.4.99.bb)4
-rw-r--r--poky/meta/recipes-graphics/glew/glew_2.1.0.bb2
-rw-r--r--poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb (renamed from poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.1.bb)7
-rw-r--r--poky/meta/recipes-graphics/images/core-image-weston.bb2
-rw-r--r--poky/meta/recipes-graphics/images/core-image-x11.bb2
-rw-r--r--poky/meta/recipes-graphics/kmscube/kmscube_git.bb2
-rw-r--r--poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb6
-rw-r--r--poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb2
-rw-r--r--poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb6
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch34
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch53
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch41
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb3
-rw-r--r--poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb2
-rw-r--r--poky/meta/recipes-graphics/libva/libva_2.5.0.bb2
-rw-r--r--poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb1
-rw-r--r--poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb2
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch21
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch46
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch52
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch12
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch147
-rw-r--r--poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb2
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb2
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb (renamed from poky/meta/recipes-graphics/mesa/mesa-gl_19.1.6.bb)0
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa.inc14
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb (renamed from poky/meta/recipes-graphics/mesa/mesa_19.1.6.bb)7
-rw-r--r--poky/meta/recipes-graphics/mx/mx.inc2
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb2
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb2
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb2
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb2
-rw-r--r--poky/meta/recipes-graphics/piglit/piglit_git.bb4
-rw-r--r--poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb2
-rw-r--r--poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb2
-rw-r--r--poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb6
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb2
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb2
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb2
-rw-r--r--poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb2
-rw-r--r--poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb (renamed from poky/meta/recipes-graphics/wayland/libinput_1.14.1.bb)9
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch50
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch166
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb2
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init.bb2
-rw-r--r--poky/meta/recipes-graphics/wayland/weston_7.0.0.bb2
-rw-r--r--poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb2
-rw-r--r--poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb2
-rw-r--r--poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc2
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc2
-rw-r--r--poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc2
-rw-r--r--poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb2
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch45
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch40
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb7
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb (renamed from poky/meta/recipes-graphics/xorg-lib/libx11.inc)11
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb2
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb (renamed from poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb)4
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/xcb-util.inc2
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc2
-rw-r--r--poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb (renamed from poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.1.bb)6
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc2
-rw-r--r--poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb2
-rw-r--r--poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb18
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb8
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb8
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb20
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb22
-rw-r--r--poky/meta/recipes-kernel/perf/perf.bb9
-rw-r--r--poky/meta/recipes-kernel/systemtap/systemtap_git.bb11
-rw-r--r--poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb4
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gst-examples_git.bb)3
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb)4
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch35
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb)7
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb)6
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb)6
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb)6
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch37
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch43
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb)8
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb)6
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb)8
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb)6
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb)6
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb)6
-rw-r--r--poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb3
-rw-r--r--poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb4
-rw-r--r--poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch415
-rw-r--r--poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch52
-rw-r--r--poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch77
-rw-r--r--poky/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb (renamed from poky/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb)9
-rw-r--r--poky/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb (renamed from poky/meta/recipes-multimedia/mpg123/mpg123_1.25.12.bb)4
-rw-r--r--poky/meta/recipes-sato/l3afpad/l3afpad_git.bb2
-rw-r--r--poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb2
-rw-r--r--poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb2
-rw-r--r--poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb2
-rw-r--r--poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb2
-rw-r--r--poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb2
-rw-r--r--poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb2
-rw-r--r--poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc2
-rw-r--r--poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb2
-rw-r--r--poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb2
-rw-r--r--poky/meta/recipes-sato/puzzles/puzzles_git.bb2
-rw-r--r--poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb2
-rw-r--r--poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb2
-rw-r--r--poky/meta/recipes-sato/webkit/webkitgtk_2.26.2.bb (renamed from poky/meta/recipes-sato/webkit/webkitgtk_2.26.1.bb)8
-rw-r--r--poky/meta/recipes-support/aspell/aspell_0.60.8.bb (renamed from poky/meta/recipes-support/aspell/aspell_0.60.7.bb)6
-rw-r--r--poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb2
-rw-r--r--poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch42
-rw-r--r--poky/meta/recipes-support/boost/boost_1.71.0.bb1
-rw-r--r--poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb2
-rw-r--r--poky/meta/recipes-support/curl/curl_7.67.0.bb (renamed from poky/meta/recipes-support/curl/curl_7.66.0.bb)4
-rw-r--r--poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb17
-rw-r--r--poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb (renamed from poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.9.bb)0
-rw-r--r--poky/meta/recipes-support/libcap-ng/libcap-ng.inc6
-rw-r--r--poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb (renamed from poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.9.bb)1
-rw-r--r--poky/meta/recipes-support/libcheck/libcheck_0.13.0.bb (renamed from poky/meta/recipes-support/libcheck/libcheck_0.12.0.bb)4
-rw-r--r--poky/meta/recipes-support/libevent/libevent_2.1.11.bb8
-rw-r--r--poky/meta/recipes-support/libfm/libfm_1.3.1.bb2
-rw-r--r--poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch90
-rw-r--r--poky/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch (renamed from poky/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch)138
-rw-r--r--poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch332
-rw-r--r--poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch178
-rw-r--r--poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb (renamed from poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb)9
-rw-r--r--poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch33
-rw-r--r--poky/meta/recipes-support/libical/libical_3.0.6.bb24
-rw-r--r--poky/meta/recipes-support/libksba/libksba_1.3.5.bb6
-rw-r--r--poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch2
-rw-r--r--poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.4.bb (renamed from poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb)8
-rw-r--r--poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch124
-rw-r--r--poky/meta/recipes-support/libxslt/files/CVE-2019-13117.patch33
-rw-r--r--poky/meta/recipes-support/libxslt/files/CVE-2019-13118.patch76
-rw-r--r--poky/meta/recipes-support/libxslt/libxslt_1.1.34.bb (renamed from poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb)9
-rw-r--r--poky/meta/recipes-support/lz4/lz4_1.9.2.bb3
-rw-r--r--poky/meta/recipes-support/npth/npth_1.6.bb2
-rw-r--r--poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch88
-rw-r--r--poky/meta/recipes-support/nspr/nspr_4.23.bb (renamed from poky/meta/recipes-support/nspr/nspr_4.21.bb)5
-rw-r--r--poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb2
-rw-r--r--poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb2
-rw-r--r--poky/meta/recipes-support/rng-tools/rng-tools_6.8.bb (renamed from poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb)2
-rw-r--r--poky/meta/recipes-support/sqlite/sqlite3.inc2
-rw-r--r--poky/meta/recipes-support/sqlite/sqlite3_3.30.1.bb (renamed from poky/meta/recipes-support/sqlite/sqlite3_3.30.0.bb)4
-rw-r--r--poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch119
-rw-r--r--poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch29
-rw-r--r--poky/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch (renamed from poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch)0
-rw-r--r--poky/meta/recipes-support/vte/vte_0.58.2.bb (renamed from poky/meta/recipes-support/vte/vte_0.56.3.bb)27
-rw-r--r--poky/scripts/lib/devtool/deploy.py8
-rw-r--r--poky/scripts/lib/devtool/standard.py28
-rw-r--r--poky/scripts/lib/devtool/upgrade.py5
-rw-r--r--poky/scripts/lib/recipetool/create.py4
-rw-r--r--poky/scripts/lib/resulttool/report.py35
-rw-r--r--poky/scripts/lib/resulttool/resultutils.py4
-rw-r--r--poky/scripts/lib/resulttool/store.py5
-rw-r--r--poky/scripts/lib/resulttool/template/test_report_full_text.txt3
-rw-r--r--poky/scripts/lib/scriptutils.py10
-rw-r--r--poky/scripts/lib/wic/engine.py64
-rw-r--r--poky/scripts/lib/wic/help.py64
-rw-r--r--poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py12
-rw-r--r--poky/scripts/lib/wic/plugins/source/rawcopy.py3
-rwxr-xr-xpoky/scripts/native-intercept/chgrp5
-rwxr-xr-xpoky/scripts/oe-pkgdata-util17
-rwxr-xr-xpoky/scripts/runqemu13
-rwxr-xr-xpoky/scripts/wic11
1613 files changed, 19259 insertions, 45521 deletions
diff --git a/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb b/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb
index 43800a178..1d39a52e5 100644
--- a/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb
+++ b/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb
@@ -1,6 +1,6 @@
KBRANCH ?= "dev-5.3"
-LINUX_VERSION ?= "5.3.7"
+LINUX_VERSION ?= "5.3.11"
-SRCREV="b172fa10db70d01b3f9626209decd8b10e6aafd0"
+SRCREV="d41fa1fda16b4b0f9a2d098c1de8f259a00cc9bc"
require linux-aspeed.inc
diff --git a/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf b/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf
index fa4c016b2..9c7a39ae6 100644
--- a/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf
+++ b/meta-facebook/meta-tiogapass/conf/machine/tiogapass.conf
@@ -6,19 +6,21 @@ UBOOT_MACHINE = "ast_g5_ncsi_config"
require conf/machine/include/ast2500.inc
require conf/machine/include/obmc-bsp-common.inc
+SERIAL_CONSOLES = "57600;ttyS4"
+
OBMC_MACHINE_FEATURES += "\
obmc-phosphor-fan-mgmt \
obmc-phosphor-chassis-mgmt \
obmc-phosphor-flash-mgmt \
obmc-host-ipmi \
- obmc-host-ctl \
obmc-host-state-mgmt \
obmc-chassis-state-mgmt \
obmc-bmc-state-mgmt \
"
-PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "obmc-op-control-host"
+PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= ""
PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-fb-apps"
PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs"
FLASH_SIZE = "32768"
VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config"
-
+VIRTUAL-RUNTIME_obmc-host-state-manager = "x86-power-control"
+VIRTUAL-RUNTIME_obmc-chassis-state-manager = "x86-power-control"
diff --git a/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb b/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb
index 1601b16f6..47025ff55 100755
--- a/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb
+++ b/meta-facebook/meta-tiogapass/recipes-fbtp/ipmi/fb-ipmi-oem_git.bb
@@ -5,7 +5,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9e69ba356fa59848ffd865152a3ccc13"
SRC_URI = "git://github.com/openbmc/fb-ipmi-oem"
-SRCREV = "1744cb3adedb262302df60d7beb3feb55f89f474"
+SRCREV = "38183d667099c2a5291f19e6c359c247751667ef"
S = "${WORKDIR}/git"
PV = "0.1+git${SRCPV}"
diff --git a/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console/obmc-console.conf b/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console/obmc-console.conf
new file mode 100644
index 000000000..94f1dff85
--- /dev/null
+++ b/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console/obmc-console.conf
@@ -0,0 +1,2 @@
+local-tty = ttyS2
+baud = 57600
diff --git a/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console_%.bbappend b/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console_%.bbappend
new file mode 100644
index 000000000..24b52d731
--- /dev/null
+++ b/meta-facebook/meta-tiogapass/recipes-phosphor/console/obmc-console_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend_tiogapass := "${THISDIR}/${PN}:"
+OBMC_CONSOLE_HOST_TTY = "ttyS2"
diff --git a/meta-ibm/README b/meta-ibm/README
index 14aa748ee..6f1b695b3 100644
--- a/meta-ibm/README
+++ b/meta-ibm/README
@@ -11,7 +11,6 @@ FSP-2: meta-fsp2
BSP layer(s) for the following IBM branded servers:
Witherspoon: meta-witherspoon
-Z: meta-z
Subsequent description applies to the distro policy for IBM systems only in
conf, classes, and recipes-*, for description of the BSP layers consult the
diff --git a/meta-ibm/meta-palmetto/conf/bblayers.conf.sample b/meta-ibm/meta-palmetto/conf/bblayers.conf.sample
index f58d39c2b..3470c2d64 100644
--- a/meta-ibm/meta-palmetto/conf/bblayers.conf.sample
+++ b/meta-ibm/meta-palmetto/conf/bblayers.conf.sample
@@ -14,7 +14,6 @@ BBLAYERS ?= " \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
##OEROOT##/meta-openpower \
- ##OEROOT##/meta-ibm \
##OEROOT##/meta-ibm/meta-palmetto \
"
BBLAYERS_NON_REMOVABLE ?= " \
@@ -26,6 +25,5 @@ BBLAYERS_NON_REMOVABLE ?= " \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
##OEROOT##/meta-openpower \
- ##OEROOT##/meta-ibm \
##OEROOT##/meta-ibm/meta-palmetto \
"
diff --git a/meta-ibm/meta-romulus/conf/bblayers.conf.sample b/meta-ibm/meta-romulus/conf/bblayers.conf.sample
index aa6ac7b72..52329db64 100644
--- a/meta-ibm/meta-romulus/conf/bblayers.conf.sample
+++ b/meta-ibm/meta-romulus/conf/bblayers.conf.sample
@@ -14,7 +14,6 @@ BBLAYERS ?= " \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
##OEROOT##/meta-openpower \
- ##OEROOT##/meta-ibm \
##OEROOT##/meta-ibm/meta-romulus \
"
BBLAYERS_NON_REMOVABLE ?= " \
@@ -26,6 +25,5 @@ BBLAYERS_NON_REMOVABLE ?= " \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
##OEROOT##/meta-openpower \
- ##OEROOT##/meta-ibm \
##OEROOT##/meta-ibm/meta-romulus \
"
diff --git a/meta-ibm/meta-witherspoon/conf/machine/rainier.conf b/meta-ibm/meta-witherspoon/conf/machine/rainier.conf
index 628a45a22..78ffbbc82 100644
--- a/meta-ibm/meta-witherspoon/conf/machine/rainier.conf
+++ b/meta-ibm/meta-witherspoon/conf/machine/rainier.conf
@@ -1,6 +1,8 @@
KERNEL_DEVICETREE = "aspeed-bmc-ibm-rainier.dtb"
UBOOT_MACHINE = "evb-ast2600_defconfig"
+OBMC_POWER_SUPPLY_INSTANCES = "0 1 2 3"
+
require conf/machine/include/ast2600.inc
require conf/machine/include/obmc-bsp-common.inc
require conf/machine/include/openpower.inc
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service
index 74d8e4bfc..3bd1287ee 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/power-workarounds/witherspoon/power-workarounds@.service
@@ -3,6 +3,7 @@ Description=Perform power workarounds on VRMs
Wants=ir35221-on-unbind@%i.service
After=ir35221-on-unbind@%i.service
Before=avsbus-disable@%i.service
+Before=obmc-power-on@%i.target
Conflicts=obmc-chassis-poweroff@%i.target
ConditionPathExists=!/run/openbmc/chassis@%i-on
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml
index 71b79b73b..1cf747856 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/mihawk/acx22-ipmi-hwmon-sensors.yaml
@@ -126,134 +126,134 @@
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
238:
bExp: 0
- entityID: 10
- entityInstance: 1
+ entityID: 29
+ entityInstance: 2
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
255:
type: int64_t
- multiplierM: 2
+ multiplierM: 100
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/storage_a_power
+ path: /xyz/openbmc_project/sensors/fan_tach/fan0_1
rExp: 0
readingType: readingData
- scale: -6
+ scale: 0
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 8
+ sensorType: 4
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
239:
bExp: 0
- entityID: 10
- entityInstance: 2
+ entityID: 29
+ entityInstance: 4
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
255:
type: int64_t
- multiplierM: 2
+ multiplierM: 100
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/storage_b_power
+ path: /xyz/openbmc_project/sensors/fan_tach/fan1_1
rExp: 0
readingType: readingData
- scale: -6
+ scale: 0
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 8
+ sensorType: 4
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
240:
bExp: 0
- entityID: 10
- entityInstance: 3
+ entityID: 29
+ entityInstance: 6
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
255:
type: int64_t
- multiplierM: 2
+ multiplierM: 100
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/p0_vdd_power
+ path: /xyz/openbmc_project/sensors/fan_tach/fan2_1
rExp: 0
readingType: readingData
- scale: -6
+ scale: 0
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 8
+ sensorType: 4
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
241:
bExp: 0
- entityID: 10
- entityInstance: 4
+ entityID: 29
+ entityInstance: 8
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
255:
type: int64_t
- multiplierM: 2
+ multiplierM: 100
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/p1_vdd_power
+ path: /xyz/openbmc_project/sensors/fan_tach/fan3_1
rExp: 0
readingType: readingData
- scale: -6
+ scale: 0
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 8
+ sensorType: 4
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
242:
bExp: 0
- entityID: 10
- entityInstance: 5
+ entityID: 29
+ entityInstance: 10
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
255:
type: int64_t
- multiplierM: 2
+ multiplierM: 100
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/p0_mem_power
+ path: /xyz/openbmc_project/sensors/fan_tach/fan4_1
rExp: 0
readingType: readingData
- scale: -6
+ scale: 0
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 8
+ sensorType: 4
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
243:
bExp: 0
- entityID: 10
- entityInstance: 6
+ entityID: 29
+ entityInstance: 12
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
Offsets:
255:
type: int64_t
- multiplierM: 2
+ multiplierM: 100
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/p1_mem_power
+ path: /xyz/openbmc_project/sensors/fan_tach/fan5_1
rExp: 0
readingType: readingData
- scale: -6
+ scale: 0
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 8
+ sensorType: 4
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
244:
bExp: 0
entityID: 10
- entityInstance: 7
+ entityInstance: 3
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
@@ -262,7 +262,7 @@
type: int64_t
multiplierM: 2
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/ps0_input_power
+ path: /xyz/openbmc_project/sensors/power/p0_vdd_power
rExp: 0
readingType: readingData
scale: -6
@@ -274,7 +274,7 @@
245:
bExp: 0
entityID: 10
- entityInstance: 8
+ entityInstance: 4
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
@@ -283,7 +283,7 @@
type: int64_t
multiplierM: 2
offsetB: 0
- path: /xyz/openbmc_project/sensors/power/ps1_input_power
+ path: /xyz/openbmc_project/sensors/power/p1_vdd_power
rExp: 0
readingType: readingData
scale: -6
@@ -295,7 +295,7 @@
246:
bExp: 0
entityID: 10
- entityInstance: 9
+ entityInstance: 7
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
@@ -304,19 +304,19 @@
type: int64_t
multiplierM: 2
offsetB: 0
- path: /xyz/openbmc_project/sensors/voltage/ps0_input_voltage
+ path: /xyz/openbmc_project/sensors/power/ps0_input_power
rExp: 0
readingType: readingData
- scale: -3
+ scale: -6
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 2
+ sensorType: 8
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
247:
bExp: 0
entityID: 10
- entityInstance: 10
+ entityInstance: 8
interfaces:
xyz.openbmc_project.Sensor.Value:
Value:
@@ -325,15 +325,15 @@
type: int64_t
multiplierM: 2
offsetB: 0
- path: /xyz/openbmc_project/sensors/voltage/ps1_input_voltage
+ path: /xyz/openbmc_project/sensors/power/ps1_input_power
rExp: 0
readingType: readingData
- scale: -3
+ scale: -6
sensorNamePattern: nameLeaf
sensorReadingType: 1
- sensorType: 2
+ sensorType: 8
serviceInterface: org.freedesktop.DBus.Properties
- unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
248:
bExp: 0
entityID: 10
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml
index f8e89b2ed..bb3226af3 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml
@@ -1,8 +1,8 @@
# Mihawk thermal policy for PDM.
#
# Shut down the system if more than three cores
-# have a temperature greater than 100 degrees Celcius.
-
+# have a temperature greater than 95 degrees Celcius.
+# or ambient temperature greater than 45 degrees Celcius.
- name: core sensors
description: >
@@ -107,6 +107,15 @@
- meta: SENSOR
path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp
+- name: ambient sensor
+ description: >
+ 'The machine has one ambient temperature sensors.'
+ class: group
+ group: path
+ members:
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/ambient_temp
+
- name: core temp
description: >
'Monitor the temperature of each core.'
@@ -118,6 +127,17 @@
meta: TEMP
property: Value
+- name: ambient temp
+ description: >
+ 'Monitor the ambient temperature.'
+ class: group
+ group: property
+ type: int64
+ members:
+ - interface: xyz.openbmc_project.Sensor.Value
+ meta: TEMP
+ property: Value
+
- name: watch core temps
description: >
'Trigger logic on core temp changes.'
@@ -127,6 +147,15 @@
properties: core temp
callback: check temps
+- name: watch ambient temp
+ description: >
+ 'Trigger logic on ambient temp changes.'
+ class: watch
+ watch: property
+ paths: ambient sensor
+ properties: ambient temp
+ callback: check ambient temp
+
- name: check temps
description: >
'If this condition passes at least three cores are running
@@ -139,7 +168,21 @@
countop: '>='
countbound: 3
op: '>='
- bound: 115000
+ bound: 95000
+ oneshot: true
+
+- name: check ambient temp
+ description: >
+ 'If the ambient sensor is too hot. Shut the system down.'
+ class: condition
+ condition: count
+ paths: ambient sensor
+ properties: ambient temp
+ callback: ambient log and shutdown
+ countop: '>='
+ countbound: 1
+ op: '>='
+ bound: 45000
oneshot: true
- name: log and shutdown
@@ -152,6 +195,16 @@
- create criticalhigh error
- create shutdown error
+- name: ambient log and shutdown
+ description: >
+ 'Shut the system down and log an event.'
+ class: callback
+ callback: group
+ members:
+ - shutdown
+ - create ambient criticalhigh error
+ - create ambient shutdown error
+
- name: shutdown
description: >
'Shut down the system.'
@@ -177,6 +230,16 @@
error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh
metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA
+- name: create ambient criticalhigh error
+ description: >
+ 'Create a Ambient CriticalHigh Error log.'
+ class: callback
+ callback: elog_with_metadata
+ paths: ambient sensor
+ properties: ambient temp
+ error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh
+ metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA
+
- name: create shutdown error
description: >
'Create a SystemShutdown Error log.'
@@ -185,3 +248,12 @@
paths: core sensors
properties: core temp
error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Processor
+
+- name: create ambient shutdown error
+ description: >
+ 'Create a SystemShutdown Error log.'
+ class: callback
+ callback: elog
+ paths: ambient sensor
+ properties: ambient temp
+ error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Ambient
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml
index ec63490f3..ade4567ce 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml
@@ -549,7 +549,7 @@ events:
name: Value
type: int64_t
property:
- value: 50000
+ value: 55000
type: int64_t
factor:
value: 1000
@@ -565,10 +565,10 @@ events:
name: Value
type: int64_t
property:
- value: 47000
+ value: 52000
type: int64_t
factor:
- value: 3000
+ value: 1000
type: int64_t
delta:
value: 3
@@ -642,7 +642,7 @@ events:
value: 70000
type: int64_t
factor:
- value: 7000
+ value: 4000
type: int64_t
delta:
value: 5
@@ -689,7 +689,7 @@ events:
name: Value
type: int64_t
property:
- value: 70
+ value: 80
type: int64_t
factor:
value: 1
@@ -705,7 +705,7 @@ events:
name: Value
type: int64_t
property:
- value: 67
+ value: 77
type: int64_t
factor:
value: 4
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-0.conf
new file mode 100644
index 000000000..07564e989
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-0.conf
@@ -0,0 +1,6 @@
+INVENTORY=/system/chassis/motherboard/powersupply0
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=144
+NAME=powersupply0
+DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-0068
+EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-1.conf
new file mode 100644
index 000000000..304442fe9
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-1.conf
@@ -0,0 +1,6 @@
+INVENTORY=/system/chassis/motherboard/powersupply1
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=145
+NAME=powersupply1
+DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-0069
+EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-2.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-2.conf
new file mode 100644
index 000000000..0f2a9c4f6
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-2.conf
@@ -0,0 +1,6 @@
+INVENTORY=/system/chassis/motherboard/powersupply2
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=146
+NAME=powersupply2
+DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-006a
+EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-3.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-3.conf
new file mode 100644
index 000000000..3ea74acab
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/rainier/obmc/gpio/phosphor-power-supply-3.conf
@@ -0,0 +1,6 @@
+INVENTORY=/system/chassis/motherboard/powersupply3
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=147
+NAME=powersupply3
+DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-006b
+EXTRA_IFACES=xyz.openbmc_project.Inventory.Item.PowerSupply
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
index 6919edf7c..04399f83c 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
@@ -7,8 +7,10 @@ FMT_POWERSUPPLY = "../${TMPL_POWERSUPPLY}:${POWERSUPPLY_TGT}.requires/${INSTFMT_
SYSTEMD_LINK_${PN}-presence_append_ibm-ac-server = " ${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}"
SYSTEMD_LINK_${PN}-presence_append_mihawk = " ${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}"
+SYSTEMD_LINK_${PN}-presence_append_rainier = " ${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}"
POWERSUPPLY_ENV_FMT = "obmc/gpio/phosphor-power-supply-{0}.conf"
SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_ibm-ac-server = " ${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_mihawk = " ${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
+SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_rainier = " ${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
new file mode 100644
index 000000000..c847c0564
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
@@ -0,0 +1,6 @@
+ALT_RMCPP_IFACE_mihawk = "eth1"
+SYSTEMD_SERVICE_${PN}_append_mihawk += " \
+ ${PN}@${ALT_RMCPP_IFACE}.service \
+ ${PN}@${ALT_RMCPP_IFACE}.socket \
+ "
+
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json b/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json
index 80bfbcfd9..123aa6df9 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/ibm-ac-server/policyTable.json
@@ -9849,6 +9849,27 @@
"UserAction": null,
"VMMigrationFlag": null
},
+ "xyz.openbmc_project.Certs.Error.InvalidCertificate": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "xyz.openbmc_project.Certs.Error.InvalidCertificate",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPCR0075G",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Firmware/Software Failure",
+ "Internal": false,
+ "LengthyDescription": "The provided certificate is not valid. The BMC will continue operating with the old certificate.",
+ "LogSource": "BMC",
+ "Message": "The provided certificate is not valid",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
"xyz.openbmc_project.Certs.Install.Error.InvalidCertificate": {
"AffectedLEDs": null,
"AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
@@ -17451,6 +17472,48 @@
"UserAction": null,
"VMMigrationFlag": null
},
+ "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00:00/00:00:00:06/sbefifo1-dev0/occ-hwmon.1": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPCR0063F",
+ "ComponentInstance": 0,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Communication Failure/Timeout",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "Failed to read from the OCC on CPU 0",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0",
+ "RelatedEventIDs": {},
+ "Serviceable": false,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00:00/00:00:00:0a/fsi-master/fsi1/slave@01:00/01:01:00:06/sbefifo2-dev0/occ-hwmon.2": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "xyz.openbmc_project.Sensor.Device.Error.ReadFailure",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPCR0063F",
+ "ComponentInstance": 1,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Communication Failure/Timeout",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "Failed to read from the OCC on CPU 1",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1",
+ "RelatedEventIDs": {},
+ "Serviceable": false,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
"xyz.openbmc_project.Sensor.Device.Error.ReadFailure||/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:06/sbefifo1-dev0/occ-hwmon.1": {
"AffectedLEDs": null,
"AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
@@ -22218,6 +22281,27 @@
"UserAction": null,
"VMMigrationFlag": null
},
+ "xyz.openbmc_project.State.Shutdown.Power.Error.Blackout": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Power",
+ "BMCMessageID": "xyz.openbmc_project.State.Shutdown.Power.Error.Blackout",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPPW0065F",
+ "ComponentInstance": null,
+ "DateAdded": "10/29/2019",
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "All power input was lost and caused an unexpected shutdown while the host was powered on",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": false,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
"xyz.openbmc_project.State.Shutdown.Power.Error.Fault": {
"AffectedLEDs": null,
"AffectedSubsystem": "Cooling",
@@ -22431,7 +22515,7 @@
},
"fileInfo": {
"Entity": "IBM OpenBMC",
- "Version": "1.8.3",
+ "Version": "1.8.4",
"language": "English"
}
}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
index 005dd0c66..090912ec1 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -2,10 +2,15 @@ RDEPENDS_${PN}-inventory_append_ibm-ac-server = " openpower-fru-vpd openpower-oc
RDEPENDS_${PN}-inventory_append_rainier = " openpower-fru-vpd openpower-occ-control virtual/obmc-gpio-presence"
RDEPENDS_${PN}-inventory_append_mihawk = " openpower-fru-vpd openpower-occ-control virtual/obmc-gpio-presence id-button phosphor-cooling-type"
RDEPENDS_${PN}-fan-control_append_ibm-ac-server = " witherspoon-fan-watchdog"
-RDEPENDS_${PN}-extras_append_ibm-ac-server = " witherspoon-pfault-analysis witherspoon-power-supply-sync phosphor-webui"
-RDEPENDS_${PN}-extras_append_rainier = " phosphor-webui"
+RDEPENDS_${PN}-extras_append_ibm-ac-server = " phosphor-power phosphor-power-systemd-links witherspoon-power-supply-sync phosphor-webui"
+RDEPENDS_${PN}-extras_append_rainier = " phosphor-power phosphor-power-systemd-links phosphor-webui"
RDEPENDS_${PN}-extras_append_mihawk = " phosphor-webui phosphor-image-signing"
RDEPENDS_${PN}-extras_remove_rainier = "obmc-ikvm liberation-fonts uart-render-controller"
+RDEPENDS_${PN}-extras_remove_swift = "obmc-ikvm"
RDEPENDS_${PN}-extras_remove_witherspoon-tacoma = "obmc-ikvm liberation-fonts uart-render-controller"
RDEPENDS_${PN}-logging_remove_rainier = "ibm-logging"
+RDEPENDS_${PN}-extras_append_rainier = " pldm"
+RDEPENDS_${PN}-extras_append_witherspoon-128 = " pldm"
+RDEPENDS_${PN}-extras_append_witherspoon-tacoma = " pldm"
+
${PN}-software-extras_append_ibm-ac-server = " phosphor-software-manager-sync"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/11.json b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/11.json
new file mode 100644
index 000000000..26fdf5c09
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/11.json
@@ -0,0 +1,28 @@
+{
+ "entries" : [{
+ "type" : 33,
+ "instance" : 0,
+ "container" : 0,
+ "effecters" : [{
+ "set" : {
+ "id" : 196,
+ "size" : 1,
+ "states" : [1,2]
+ },
+ "dbus" : "/xyz/openbmc_project/state/host0"
+ }]
+ },
+ {
+ "type" : 45,
+ "instance" : 0,
+ "container" : 0,
+ "effecters" : [{
+ "set" : {
+ "id" : 260,
+ "size" : 2,
+ "states" : [9]
+ },
+ "dbus" : "/xyz/openbmc_project/state/chassis0"
+ }]
+ }]
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json
new file mode 100755
index 000000000..cf20e3e31
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/enum_attrs.json
@@ -0,0 +1,54 @@
+{
+ "entries":[
+ {
+ "attribute_name":"pvm-fw-boot-side",
+ "possible_values":[
+ "Perm",
+ "Temp"
+ ],
+ "default_values":[
+ "Perm"
+ ]
+ },
+ {
+ "attribute_name":"pvm-os-boot-side",
+ "possible_values":[
+ "Perm",
+ "Temp"
+ ],
+ "default_values":[
+ "Perm"
+ ]
+ },
+ {
+ "attribute_name":"pvm-inband-code-update",
+ "possible_values":[
+ "Allowed",
+ "Not Allowed"
+ ],
+ "default_values":[
+ "Allowed"
+ ]
+ },
+ {
+ "attribute_name":"pvm-surveillance",
+ "possible_values":[
+ "Disabled",
+ "Enabled"
+ ],
+ "default_values":[
+ "Enabled"
+ ]
+ },
+ {
+ "attribute_name":"pvm-pcie-error-inject",
+ "possible_values":[
+ "Disabled",
+ "Enabled"
+ ],
+ "default_values":[
+ "Enabled"
+ ]
+ }
+ ]
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/fileTable.json b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/fileTable.json
new file mode 100755
index 000000000..9d9750a58
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/fileTable.json
@@ -0,0 +1,10 @@
+[
+ {
+ "path":"/var/lib/pldm/PHYP-NVRAM",
+ "file_traits":1
+ },
+ {
+ "path":"/var/lib/pldm/PHYP-NVRAM-CKSUM",
+ "file_traits":4
+ }
+]
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/host_eid b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/host_eid
new file mode 100644
index 000000000..ec635144f
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm/host_eid
@@ -0,0 +1 @@
+9
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm_%.bbappend
new file mode 100644
index 000000000..335396bd7
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/pldm/pldm_%.bbappend
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+EXTRA_OEMESON_append = " \
+ -Doem-ibm=enabled \
+ "
+
+SRC_URI += "file://fileTable.json"
+SRC_URI += "file://enum_attrs.json"
+SRC_URI += "file://11.json"
+SRC_URI += "file://host_eid"
+
+do_install_append() {
+ install -d ${D}${datadir}/pldm/bios/
+ install -d ${D}${datadir}/pldm/pdr/
+ install -m 0644 ${WORKDIR}/fileTable.json ${D}${datadir}/pldm/
+ install -m 0644 ${WORKDIR}/enum_attrs.json ${D}${datadir}/pldm/bios/
+ install -m 0644 ${WORKDIR}/11.json ${D}${datadir}/pldm/pdr/
+ install -m 0644 ${WORKDIR}/host_eid ${D}${datadir}/pldm/
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/rainier/psu.json b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/rainier/psu.json
new file mode 100644
index 000000000..baa96ac27
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/rainier/psu.json
@@ -0,0 +1,31 @@
+{
+ "inventoryPMBusAccessType": "HwmonDeviceDebug",
+ "fruConfigs": [
+ {
+ "propertyName": "PartNumber",
+ "fileName": "part_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "SerialNumber",
+ "fileName": "serial_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Model",
+ "fileName": "ccin",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Version",
+ "fileName": "fw_version",
+ "interface": "xyz.openbmc_project.Software.Version"
+ }
+ ],
+ "psuDevices": {
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0068",
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/3-0069",
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply2" : "/sys/bus/i2c/devices/3-006a",
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply3" : "/sys/bus/i2c/devices/3-006b"
+ }
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf
index 167e605d0..167e605d0 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-0.conf
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf
index faa5adec6..faa5adec6 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/obmc/power-supply-monitor/power-supply-monitor-1.conf
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/psu.json b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/psu.json
new file mode 100644
index 000000000..94f14dd60
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/swift/psu.json
@@ -0,0 +1,29 @@
+{
+ "inventoryPMBusAccessType": "HwmonDeviceDebug",
+ "fruConfigs": [
+ {
+ "propertyName": "PartNumber",
+ "fileName": "part_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "SerialNumber",
+ "fileName": "serial_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Model",
+ "fileName": "ccin",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Version",
+ "fileName": "fw_version",
+ "interface": "xyz.openbmc_project.Software.Version"
+ }
+ ],
+ "psuDevices": {
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0068",
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/3-0069"
+ }
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf
index d6732e6b8..d6732e6b8 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-0.conf
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf
index cace335b1..cace335b1 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/obmc/power-supply-monitor/power-supply-monitor-1.conf
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/pseq-monitor-pgood.service
index 458c5e6d7..458c5e6d7 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/pseq-monitor-pgood.service
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/psu.json b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/psu.json
new file mode 100644
index 000000000..cbabc7839
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power/witherspoon/psu.json
@@ -0,0 +1,29 @@
+{
+ "inventoryPMBusAccessType": "HwmonDeviceDebug",
+ "fruConfigs": [
+ {
+ "propertyName": "PartNumber",
+ "fileName": "part_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "SerialNumber",
+ "fileName": "serial_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Model",
+ "fileName": "ccin",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Version",
+ "fileName": "fw_version",
+ "interface": "xyz.openbmc_project.Software.Version"
+ }
+ ],
+ "psuDevices": {
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/3-0069",
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/3-0068"
+ }
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power_%.bbappend
new file mode 100644
index 000000000..b90dc9b50
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-power_%.bbappend
@@ -0,0 +1,15 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://psu.json"
+
+EXTRA_OEMESON += "-Ducd90160-yaml=${STAGING_DIR_HOST}${datadir}/power-sequencer/ucd90160.yaml"
+
+DEPENDS += " power-sequencer"
+
+do_install_append(){
+ install -D ${WORKDIR}/psu.json ${D}${datadir}/phosphor-power/psu.json
+}
+FILES_${PN} += "${datadir}/phosphor-power/psu.json"
+
+PSU_MONITOR_ENV_FMT = "obmc/power-supply-monitor/power-supply-monitor-{0}.conf"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'PSU_MONITOR_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml
index e40e8dd7c..a6bba44ce 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/rainier/ucd90160.yaml
@@ -198,13 +198,4 @@
pinID: 83
poll: false
analysis: none
- GPIOAnalysis:
- - type: none
- path: ""
- gpio_value: low
- error_function: memGoodError
- option_flags: none
- GPIODefinitions:
- - GPIODefinition: none
- gpio: 0
- callout: ""
+
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml
index 39ee8ed36..9dd381248 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/witherspoon/ucd90160.yaml
@@ -1,7 +1,7 @@
- Device:
index: 0
# Linux sysfs path for this power sequencer (0xC8 8-bit address)
- path: /sys/bus/i2c/devices//i2c-11/11-0064
+ path: /sys/bus/i2c/devices/i2c-11/11-0064
RailNames:
- "5.0VCS"
- "12.0V"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb
index 76781cbdf..3c174c3e8 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native_git.bb
@@ -5,7 +5,7 @@ PV = "1.0+git${SRCPV}"
inherit native
inherit phosphor-dbus-yaml
-require witherspoon-pfault-analysis.inc
+require recipes-phosphor/power/phosphor-power.inc
S = "${WORKDIR}/git"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/power-supply-monitor@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/power-supply-monitor@.service
deleted file mode 100644
index bf027582d..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/power-supply-monitor@.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Power Supply %I Monitor
-Wants=mapper-wait@-xyz-openbmc_project-inventory-system-chassis-motherboard-powersupply%i.service
-After=mapper-wait@-xyz-openbmc_project-inventory-system-chassis-motherboard-powersupply%i.service
-Wants=mapper-wait@-org-openbmc-control-power0.service
-After=mapper-wait@-org-openbmc-control-power0.service
-ConditionPathExists={envfiledir}/obmc/power-supply-monitor/power-supply-monitor-%i.conf
-
-[Service]
-EnvironmentFile={envfiledir}/obmc/power-supply-monitor/power-supply-monitor-%i.conf
-ExecStart=/usr/bin/env psu-monitor --path=${{DEVPATH}} --instance=${{INSTANCE}} --inventory=${{INVENTORY}} --num-history-records=${{NUM_HISTORY_RECORDS}} --sync-gpio-path=${{SYNC_GPIO_PATH}} --sync-gpio-num=${{SYNC_GPIO_NUM}}
-SyslogIdentifier=psu-monitor
-
-[Install]
-RequiredBy=multi-user.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor.service b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor.service
deleted file mode 100644
index 8ce3b370d..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Power Sequencer Runtime Monitor
-Wants=obmc-host-start-pre@0.target
-Before=obmc-host-start-pre@0.target
-After=obmc-power-on@0.target
-Conflicts=obmc-chassis-poweroff@0.target
-
-[Service]
-ExecStart=/usr/bin/env pseq-monitor -a runtime-monitor -i 500
-SyslogIdentifier=pseq-monitor
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service
deleted file mode 100644
index 206fc6602..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Power Sequencer Power-on Monitor
-Wants=op-power-start@0.service
-After=op-power-start@0.service
-Conflicts=obmc-chassis-poweroff@0.target
-ConditionPathExists=!/run/openbmc/chassis@0-on
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/env pseq-monitor -a pgood-monitor -i 5000
-SyslogIdentifier=pseq-monitor
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis_git.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis_git.bb
deleted file mode 100644
index 49fe344dc..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis_git.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "Witherspoon Power Fault Analysis"
-DESCRIPTION = "Analyzes power devices for faults"
-PR = "r1"
-PV = "1.0+git${SRCPV}"
-
-inherit meson
-inherit pkgconfig
-inherit obmc-phosphor-systemd
-inherit pythonnative
-
-require ${PN}.inc
-
-S = "${WORKDIR}/git"
-
-DEPENDS += " \
- phosphor-logging \
- autoconf-archive-native \
- openpower-dbus-interfaces \
- sdbus++-native \
- sdeventplus \
- power-sequencer \
- nlohmann-json \
- "
-
-EXTRA_OEMESON += "-Ducd90160-yaml=${STAGING_DIR_HOST}${datadir}/power-sequencer/ucd90160.yaml"
-
-CHASSIS_ON_TGT = "obmc-chassis-poweron@0.target"
-SEQ_MONITOR_SVC = "pseq-monitor.service"
-SEQ_MONITOR_FMT = "../${SEQ_MONITOR_SVC}:${CHASSIS_ON_TGT}.wants/${SEQ_MONITOR_SVC}"
-
-SEQ_PGOOD_SVC = "pseq-monitor-pgood.service"
-SEQ_PGOOD_FMT = "../${SEQ_PGOOD_SVC}:${CHASSIS_ON_TGT}.wants/${SEQ_PGOOD_SVC}"
-
-SYSTEMD_SERVICE_${PN} += "${SEQ_MONITOR_SVC} ${SEQ_PGOOD_SVC}"
-SYSTEMD_LINK_${PN} += "${SEQ_MONITOR_FMT} ${SEQ_PGOOD_FMT}"
-
-PSU_MONITOR_TMPL = "power-supply-monitor@.service"
-PSU_MONITOR_INSTFMT = "power-supply-monitor@{0}.service"
-PSU_MONITOR_TGT = "multi-user.target"
-PSU_MONITOR_FMT = "../${PSU_MONITOR_TMPL}:${PSU_MONITOR_TGT}.requires/${PSU_MONITOR_INSTFMT}"
-
-FILES_psu-monitor = "${bindir}/psu-monitor"
-SYSTEMD_SERVICE_${PN} += "${PSU_MONITOR_TMPL}"
-SYSTEMD_LINK_${PN} += "${@compose_list(d, 'PSU_MONITOR_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
-
-PSU_MONITOR_ENV_FMT = "obmc/power-supply-monitor/power-supply-monitor-{0}.conf"
-SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'PSU_MONITOR_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf
index 7c7b24811..939b3c1e5 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf
@@ -1,2 +1,5 @@
LABEL_temp2 = "ambient_temp"
-
+WARNHI_temp2 = "38000"
+WARNLO_temp2 = "0"
+CRITHI_temp2 = "40000"
+CRITLO_temp2 = "0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
index 5d14ebc94..bb569f70a 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
@@ -5,21 +5,15 @@ LABEL_fan4 = "fan1_1"
LABEL_fan5 = "fan2_0"
LABEL_fan6 = "fan2_1"
LABEL_fan7 = "fan3_0"
-LABEL_fan8 = "fan3_1"
+LABEL_fan8 = "fan3_1"
LABEL_fan9 = "fan4_0"
LABEL_fan10 = "fan4_1"
LABEL_fan11 = "fan5_0"
LABEL_fan12 = "fan5_1"
PWM_TARGET_fan1 = "1"
-PWM_TARGET_fan2 = "1"
PWM_TARGET_fan3 = "2"
-PWM_TARGET_fan4 = "2"
PWM_TARGET_fan5 = "3"
-PWM_TARGET_fan6 = "3"
PWM_TARGET_fan7 = "4"
-PWM_TARGET_fan8 = "4"
PWM_TARGET_fan9 = "5"
-PWM_TARGET_fan10 = "5"
PWM_TARGET_fan11 = "6"
-PWM_TARGET_fan12 = "6" \ No newline at end of file
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
index 5b347c10c..94eeff7ca 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi-master/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
@@ -287,5 +287,4 @@ LABEL_power7 = "p0_vdd_power"
LABEL_power8 = "fans_power"
LABEL_power9 = "storage_b_power"
LABEL_power10 = "storage_a_power"
-LABEL_power11 = "gpu0_power"
-LABEL_power14 = "total_power"
+LABEL_power15 = "total_power"
diff --git a/meta-ibm/meta-z/conf/bblayers.conf.sample b/meta-ibm/meta-z/conf/bblayers.conf.sample
deleted file mode 100644
index 4a117c00b..000000000
--- a/meta-ibm/meta-z/conf/bblayers.conf.sample
+++ /dev/null
@@ -1,22 +0,0 @@
-# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
-# changes incompatibly
-LCONF_VERSION = "8"
-
-BBPATH = "${TOPDIR}"
-BBFILES ?= ""
-
-BBLAYERS ?= " \
- ##OEROOT##/meta \
- ##OEROOT##/meta-openembedded/meta-oe/ \
- ##OEROOT##/meta-openembedded/meta-filesystems/ \
- ##OEROOT##/meta-openembedded/meta-networking/ \
- ##OEROOT##/meta-openembedded/meta-python/ \
- ##OEROOT##/meta-phosphor \
- ##OEROOT##/meta-ibm/meta-fsp2 \
- ##OEROOT##/meta-openpower \
- ##OEROOT##/meta-ibm \
- ##OEROOT##/meta-ibm/meta-z \
-"
-BBLAYERS_NON_REMOVABLE ?= " \
- ##OEROOT##/meta \
- "
diff --git a/meta-ibm/meta-z/conf/layer.conf b/meta-ibm/meta-z/conf/layer.conf
deleted file mode 100644
index 7b542303c..000000000
--- a/meta-ibm/meta-z/conf/layer.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH .= ":${LAYERDIR}"
-
-BBFILE_COLLECTIONS += "ibm-z-layer"
-BBFILE_PATTERN_ibm-z-layer := "^${LAYERDIR}/"
diff --git a/meta-ibm/meta-z/conf/machine/ibm-z.conf b/meta-ibm/meta-z/conf/machine/ibm-z.conf
deleted file mode 100644
index b9d182453..000000000
--- a/meta-ibm/meta-z/conf/machine/ibm-z.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-MACHINE = "ibm-z"
-KERNEL_DEVICETREE = "fsp2.dtb"
-KBUILD_DEFCONFIG = "44x/fsp2_defconfig"
-
-require conf/machine/include/fsp2.inc
-require conf/machine/include/obmc-bsp-common.inc
-require conf/machine/include/openpower.inc
-
-UBOOT_MACHINE_sunray2 = "fsp2_defconfig"
-UBOOT_ENTRYPOINT = "0x10000000"
-UBOOT_LOADADDRESS = "0x10000000"
diff --git a/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb b/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb
index e087408ba..f98ee1c70 100644
--- a/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb
+++ b/meta-ibm/recipes-phosphor/logging/ibm-logging_git.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/openbmc/ibm-logging"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI += "git://github.com/openbmc/ibm-logging"
-SRCREV = "3dd7c2e6deec6b4fe3e46b240eae53848dcc520a"
+SRCREV = "4c0e8945f072f9139d0efb04e8f955663b972a84"
inherit autotools
inherit pkgconfig
diff --git a/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample b/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample
index 85de97268..d8aa6bebc 100644
--- a/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample
+++ b/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample
@@ -11,6 +11,7 @@ BBLAYERS ?= " \
##OEROOT##/meta-openembedded/meta-networking \
##OEROOT##/meta-openembedded/meta-perl \
##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
##OEROOT##/meta-openpower \
@@ -23,6 +24,7 @@ BBLAYERS_NON_REMOVABLE ?= " \
##OEROOT##/meta-openembedded/meta-networking \
##OEROOT##/meta-openembedded/meta-perl \
##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
##OEROOT##/meta-openpower \
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
index 0cd358a06..9f8035b5a 100644
--- a/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -1,2 +1,2 @@
RDEPENDS_${PN}-inventory_append_fp5280g2 = " openpower-fru-vpd openpower-occ-control phosphor-cooling-type virtual/obmc-gpio-presence"
-RDEPENDS_${PN}-extras_append_fp5280g2 = " phosphor-webui"
+RDEPENDS_${PN}-extras_append_fp5280g2 = " phosphor-power phosphor-power-systemd-links phosphor-webui"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-0.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-0.conf
new file mode 100644
index 000000000..fa80045e6
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-0.conf
@@ -0,0 +1,3 @@
+DEVPATH=/sys/bus/i2c/devices/11-0058
+INSTANCE=0
+INVENTORY=/system/chassis/motherboard/powersupply0
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-1.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-1.conf
new file mode 100644
index 000000000..de4b1194f
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/obmc/power-supply-monitor/power-supply-monitor-1.conf
@@ -0,0 +1,3 @@
+DEVPATH=/sys/bus/i2c/devices/11-0059
+INSTANCE=1
+INVENTORY=/system/chassis/motherboard/powersupply1
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/psu.json b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/psu.json
new file mode 100644
index 000000000..3669ea325
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power/psu.json
@@ -0,0 +1,34 @@
+{
+ "inventoryPMBusAccessType": "Hwmon",
+ "fruConfigs": [
+ {
+ "propertyName": "PartNumber",
+ "fileName": "part_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "SerialNumber",
+ "fileName": "serial_number",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Manufacturer",
+ "fileName": "manufacturer",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Model",
+ "fileName": "model",
+ "interface": "xyz.openbmc_project.Inventory.Decorator.Asset"
+ },
+ {
+ "propertyName": "Version",
+ "fileName": "fw_version",
+ "interface": "xyz.openbmc_project.Software.Version"
+ }
+ ],
+ "psuDevices": {
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0" : "/sys/bus/i2c/devices/11-0058",
+ "/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1" : "/sys/bus/i2c/devices/11-0059"
+ }
+}
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power_%.bbappend b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power_%.bbappend
new file mode 100644
index 000000000..ad1232a24
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/power/phosphor-power_%.bbappend
@@ -0,0 +1,12 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://psu.json"
+
+PSU_MONITOR_ENV_FMT = "obmc/power-supply-monitor/power-supply-monitor-{0}.conf"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'PSU_MONITOR_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
+
+do_install_append() {
+ install -D ${WORKDIR}/psu.json ${D}${datadir}/phosphor-power/psu.json
+}
+
+FILES_${PN} += "${datadir}/phosphor-power/psu.json"
diff --git a/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb b/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb
index d986ef19b..668d0a1ca 100755
--- a/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb
+++ b/meta-intel/meta-common/recipes-intel/chassis/x86-power-control_git.bb
@@ -2,7 +2,7 @@ SUMMARY = "Chassis Power Control service for Intel based platforms"
DESCRIPTION = "Chassis Power Control service for Intel based platforms"
SRC_URI = "git://github.com/openbmc/x86-power-control.git;protocol=ssh"
-SRCREV = "f61ca6fdcc52beba485e014b5fad38a9e9a555ad"
+SRCREV = "174ec66e41c0182ae3299637c2846a57dc4684f5"
PV = "1.0+git${SRCPV}"
diff --git a/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb b/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb
index eb14bf736..2f5008be8 100755
--- a/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb
+++ b/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb
@@ -5,7 +5,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a6a4edad4aed50f39a66d098d74b265b"
SRC_URI = "git://github.com/openbmc/intel-ipmi-oem"
-SRCREV = "262276f4964191d780aeab3a821de54b01c0a8ff"
+SRCREV = "7cc9e478c1d3f5d4571266db0636ac90ea688f22"
S = "${WORKDIR}/git"
PV = "0.1+git${SRCPV}"
diff --git a/meta-intel/meta-s2600wf/conf/bblayers.conf.sample b/meta-intel/meta-s2600wf/conf/bblayers.conf.sample
index 9bb77432c..900caca78 100644
--- a/meta-intel/meta-s2600wf/conf/bblayers.conf.sample
+++ b/meta-intel/meta-s2600wf/conf/bblayers.conf.sample
@@ -15,7 +15,6 @@ BBLAYERS ?= " \
##OEROOT##/meta-openembedded/meta-webserver \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
- ##OEROOT##/meta-x86 \
##OEROOT##/meta-intel \
##OEROOT##/meta-intel/meta-s2600wf \
"
diff --git a/meta-lenovo/MAINTAINERS b/meta-lenovo/MAINTAINERS
new file mode 100644
index 000000000..db50e2981
--- /dev/null
+++ b/meta-lenovo/MAINTAINERS
@@ -0,0 +1,46 @@
+How to use this list:
+ Find the most specific section entry (described below) that matches where
+ your change lives and add the reviewers (R) and maintainers (M) as
+ reviewers. You can use the same method to track down who knows a particular
+ code base best.
+
+ Your change/query may span multiple entries; that is okay.
+
+ If you do not find an entry that describes your request at all, someone
+ forgot to update this list; please at least file an issue or send an email
+ to a maintainer, but preferably you should just update this document.
+
+Description of section entries:
+
+ Section entries are structured according to the following scheme:
+
+ X: NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>
+ X: ...
+ .
+ .
+ .
+
+ Where REPO_NAME is the name of the repository within the OpenBMC GitHub
+ organization; FILE_PATH is a file path within the repository, possibly with
+ wildcards; X is a tag of one of the following types:
+
+ M: Denotes maintainer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ if omitted from an entry, assume one of the maintainers from the
+ MAINTAINERS entry.
+ R: Denotes reviewer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ these people are to be added as reviewers for a change matching the repo
+ path.
+ F: Denotes forked from an external repository; has fields URL.
+
+ Line comments are to be denoted "# SOME COMMENT" (typical shell style
+ comment); it is important to follow the correct syntax and semantics as we
+ may want to use automated tools with this file in the future.
+
+ A change cannot be added to an OpenBMC repository without a MAINTAINER's
+ approval; thus, a MAINTAINER should always be listed as a reviewer.
+
+START OF MAINTAINERS LIST
+-------------------------
+
+M: Benjamin Fair <benjaminfair@google.com> <benjaminfair!>
+M: Lisa Liu <luiyj19@lenovo.com>
diff --git a/meta-nuvoton/MAINTAINERS b/meta-nuvoton/MAINTAINERS
new file mode 100644
index 000000000..3bc2ef64b
--- /dev/null
+++ b/meta-nuvoton/MAINTAINERS
@@ -0,0 +1,45 @@
+How to use this list:
+ Find the most specific section entry (described below) that matches where
+ your change lives and add the reviewers (R) and maintainers (M) as
+ reviewers. You can use the same method to track down who knows a particular
+ code base best.
+
+ Your change/query may span multiple entries; that is okay.
+
+ If you do not find an entry that describes your request at all, someone
+ forgot to update this list; please at least file an issue or send an email
+ to a maintainer, but preferably you should just update this document.
+
+Description of section entries:
+
+ Section entries are structured according to the following scheme:
+
+ X: NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>
+ X: ...
+ .
+ .
+ .
+
+ Where REPO_NAME is the name of the repository within the OpenBMC GitHub
+ organization; FILE_PATH is a file path within the repository, possibly with
+ wildcards; X is a tag of one of the following types:
+
+ M: Denotes maintainer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ if omitted from an entry, assume one of the maintainers from the
+ MAINTAINERS entry.
+ R: Denotes reviewer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ these people are to be added as reviewers for a change matching the repo
+ path.
+ F: Denotes forked from an external repository; has fields URL.
+
+ Line comments are to be denoted "# SOME COMMENT" (typical shell style
+ comment); it is important to follow the correct syntax and semantics as we
+ may want to use automated tools with this file in the future.
+
+ A change cannot be added to an OpenBMC repository without a MAINTAINER's
+ approval; thus, a MAINTAINER should always be listed as a reviewer.
+
+START OF MAINTAINERS LIST
+-------------------------
+
+M: Benjamin Fair <benjaminfair@google.com> <benjaminfair!>
diff --git a/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml b/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml
deleted file mode 100644
index 03deb3026..000000000
--- a/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml
+++ /dev/null
@@ -1,276 +0,0 @@
-<!-- SPDX-License-Identifier: GPL-2.0
-#
-# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
-#
-# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
-#--------------------------------------------------------------------------->
-
-<?xml version="1.0" encoding="UTF-8"?>
-
-<Bin_Ecc_Map>
- <!-- BMC mandatory fields -->
- <ImageProperties>
- <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
- <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
- </ImageProperties>
-
- <BinField>
- <!-- BootBlock tag (0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42) or
- uboot tag (0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B) -->
- <name>StartTag</name> <!-- name of field -->
- <config>
- <offset>0</offset>
- <size>0x8</size>
- </config>
- <content format='bytes'>0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Code destination address, 32-bit aligned: for BootBlock should be 0xFFFD5E00 so code will run in 0xFFFD6000 as linked for -->
- <name>DestAddr</name> <!-- name of field -->
- <config>
- <offset>0x140</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0xFFFD5E00</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- BootBlock or u-boot Code size -->
- <name>CodeSize</name> <!-- name of field -->
- <config>
- <offset>0x144</offset>
- <size>0x4</size>
- </config>
- <content format='FileSize'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- The BootBlock or u-boot binary file -->
- <name>Code</name> <!-- name of field -->
- <config>
- <offset>0x200</offset>
- <size format='FileSize'>Poleg_bootblock.bin</size> <!-- size in the header calculated by tool-->
- </config>
- <content format='FileContent'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU0 FIU_DRD_CFG register -->
- <name>FIU0_DRD_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x108</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0x030011BB</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines the clock divide ratio from AHB to FIU0 clock -->
- <name>FIU_Clk_Divider</name> <!-- name of field -->
- <config>
- <offset>0x10C</offset>
- <size>0x1</size>
- </config>
- <content format='bytes'>4</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Version (Major.Minor) -->
- <name>Version</name> <!-- name of field -->
- <config>
- <offset>0x148</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0x0201</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Board manufaturer ( Dell = 0, Nuvoton = 100, Google = 1, MS = 2) -->
- <name>BOARD_VENDOR</name> <!-- name of field -->
- <config>
- <offset>0x14C</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>100</content> <!--Board_manufacturer: Nuvoton-->
- </BinField>
- <BinField>
- <!-- Board type ( DRB = 0, SVB = 1, EB = 2,HORIZON = 3, SANDSTORM = 4, ROCKAWAY = 100 RunBMC = 10) -->
- <!-- WARNING: Currently this value is only printed to serial. Set BOARD_VENDOR to 1 get Dell specific customization. -->
- <name>BOARD_TYPE</name> <!-- name of field -->
- <config>
- <offset>0x150</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0x02</content> <!--Board_type: EB-->
- </BinField>
-
- <!-- the next two fields are available since version 10.7.0 -->
- <BinField>
- <!-- supported values: 333,444,500,600,666,700,720,750,775,787,800,825,850,900,950,1000,1060 -->
- <name>MC_FREQ_IN_MHZ</name> <!-- name of field -->
- <config>
- <offset>0x11C</offset>
- <size>0x2</size>
- </config>
- <content format='32bit'>800</content>
- </BinField>
- <BinField>
- <!-- supporeted values: 333,500,600,666,700,720,750,800,825,850,900,950,1000,1060 -->
- <name>CPU_FREQ_IN_MHZ</name> <!-- name of field -->
- <config>
- <offset>0x154</offset>
- <size>0x2</size>
- </config>
- <content format='32bit'>800</content>
- </BinField>
-
- <BinField>
- <!-- MC_CONFIG.
- Bit 0: MC_DISABLE_CAPABILITY_INPUT_DQS_ENHANCE_TRAINING (0x01)
- Bit 1: MC_CAPABILITY_IGNORE_ECC_DEVICE (0x02) -->
- <name>MC_CONFIG</name> <!-- name of field -->
- <config>
- <offset>0x156</offset>
- <size>0x1</size>
- </config>
- <content format='32bit'>0x00</content>
- </BinField>
-
- <BinField>
- <!-- HOST_IF.
- 0xFF: LPC backward compatible
- 0x00: LPC.
- 0x01: eSPI
- 0x02: GPIOs TRIS. -->
- <name>HOST_IF</name> <!-- name of field -->
- <config>
- <offset>0x157</offset>
- <size>0x1</size>
- </config>
- <content format='32bit'>0x00</content>
- </BinField>
-
- <BinField>
- <!-- SECURITY_LEVEL_T.
- 0xFF: SECURITY_LEVEL_UNKNOWN: backward compatible
- 0x00: SECURITY_LEVEL_NONE.
- 0x01: SECURITY_LEVEL_STANDARD
- 0x02: SECURITY_LEVEL_NIST. (require BootBlock with NIST support) -->
- <name>SECURITY_LEVEL_T</name> <!-- name of field -->
- <config>
- <offset>0x15C</offset>
- <size>0x1</size>
- </config>
- <content format='32bit'>0xFF</content>
- </BinField>
-
- <BinField>
- <!-- Key revoke (bitwise). Set bit 0 to revoke key 0 etc. -->
- <name>SECURITY_REVOKE_KEYS</name> <!-- name of field -->
- <config>
- <offset>0x1D7</offset>
- <size>0x1</size>
- </config>
- <content format='bytes'>0x00</content>
- </BinField>
-
- <BinField>
- <!-- security log offset -->
- <name>SECURITY_LOG</name> <!-- name of field -->
- <config>
- <offset>0x1D8</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0x090000</content>
- </BinField>
- <BinField>
- <!-- hole 0 size: used for NIST security. -->
- <name>SECURITY_LOG_SIZE</name> <!-- name of field -->
- <config>
- <offset>0x1DC</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0x3000</content>
- </BinField>
-
-
- <BinField>
- <!-- hole 0: used for NIST security. -->
- <name>HOLE0</name> <!-- name of field -->
- <config>
- <offset>0x1E0</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0x0A0000</content>
- </BinField>
- <BinField>
- <!-- hole 0 size: used for NIST security. -->
- <name>HOLE0_SIZE</name> <!-- name of field -->
- <config>
- <offset>0x1E4</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0xF70000</content>
- </BinField>
-
- <BinField>
- <!-- hole 1: used for NIST security. -->
- <name>HOLE1</name> <!-- name of field -->
- <config>
- <offset>0x1E8</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0</content>
- </BinField>
- <BinField>
- <!-- hole 1 size: used for NIST security. -->
- <name>HOLE1_SIZE</name> <!-- name of field -->
- <config>
- <offset>0x1EC</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0</content>
- </BinField>
-
-
- <BinField>
- <!-- hole 2: used for NIST security. -->
- <name>HOLE2</name> <!-- name of field -->
- <config>
- <offset>0x1F0</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0xFFFFFFFF</content>
- </BinField>
- <BinField>
- <!-- hole 2 size: used for NIST security. -->
- <name>HOLE2_SIZE</name> <!-- name of field -->
- <config>
- <offset>0x1F4</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0</content>
- </BinField>
-
- <BinField>
- <!-- hole 3: used for NIST security. -->
- <name>HOLE3</name> <!-- name of field -->
- <config>
- <offset>0x1F8</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0</content>
- </BinField>
- <BinField>
- <!-- hole 3 size: used for NIST security. -->
- <name>HOLE3_SIZE</name> <!-- name of field -->
- <config>
- <offset>0x1FC</offset>
- <size>0x4</size>
- </config>
- <content format='32bit'>0</content>
- </BinField>
-
-</Bin_Ecc_Map>
diff --git a/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml b/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml
deleted file mode 100644
index 2e648599b..000000000
--- a/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml
+++ /dev/null
@@ -1,194 +0,0 @@
-<!-- SPDX-License-Identifier: GPL-2.0
-#
-# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
-#
-# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
-#--------------------------------------------------------------------------->
-
-<?xml version="1.0" encoding="UTF-8"?>
-
-<Bin_Ecc_Map>
- <!-- BMC mandatory fields -->
- <ImageProperties>
- <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
- <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
- </ImageProperties>
-
- <BinField>
- <!-- BootBlock tag (0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42) or
- uboot tag (0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B) -->
- <name>StartTag</name> <!-- name of field -->
- <config>
- <offset>0</offset> <!-- offset in the header -->
- <size>0x8</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Code destination address, 32-bit aligned: for u-boot should be 0x80005000 so code will run in 0x80005200 as linked for -->
- <name>DestAddr</name> <!-- name of field -->
- <config>
- <offset>0x140</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x8000</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- BootBlock or u-boot Code size -->
- <name>CodeSize</name> <!-- name of field -->
- <config>
- <offset>0x144</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='FileSize'>u-boot.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- The BootBlock or u-boot binary file -->
- <name>Code</name> <!-- name of field -->
- <config>
- <offset>0x200</offset> <!-- offset in the header -->
- <size format='FileSize'>u-boot.bin</size> <!-- size in the header calculated by tool-->
- </config>
- <content format='FileContent'>u-boot.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU0 FIU_DRD_CFG register -->
- <name>FIU0_DRD_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x108</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x030111BC</content> <!-- content the user should fill 0x030032EB -->
- </BinField>
-
- <BinField>
- <!-- Defines the clock divide ratio from AHB to FIU0 clock -->
- <name>FIU0_Clk_Divider</name> <!-- name of field -->
- <config>
- <offset>0x10C</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU0 CS1 is enabled -->
- <name>fiu0_cs1_en</name> <!-- name of field -->
- <config>
- <offset>0x10D</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU0 CS2 is enabled -->
- <name>fiu0_cs2_en</name> <!-- name of field -->
- <config>
- <offset>0x10E</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU0 CS3 is enabled -->
- <name>fiu0_cs3_en</name> <!-- name of field -->
- <config>
- <offset>0x10F</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
- <name>FIU3_DRD_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x110</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
- <name>FIU3_DWR_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x114</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines the clock divide ratio from AHB to FIU3 clock -->
- <name>FIU3_Clk_Divider</name> <!-- name of field -->
- <config>
- <offset>0x118</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
-
- <BinField>
- <!-- Defines if FIU3 CS1 is enabled -->
- <name>fiu3_cs1_en</name> <!-- name of field -->
- <config>
- <offset>0x119</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU3 CS2 is enabled -->
- <name>fiu3_cs2_en</name> <!-- name of field -->
- <config>
- <offset>0x11A</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU3 CS3 is enabled -->
- <name>fiu3_cs3_en</name> <!-- name of field -->
- <config>
- <offset>0x11B</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Version (Major.Minor) -->
- <name>Version</name> <!-- name of field -->
- <config>
- <offset>0x148</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by BB code to FIU0 FIU_DWR_CFG register -->
- <name>FIU0_DWR_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x14C</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x03001102</content> <!-- content the user should fill -->
- </BinField>
-
-
-</Bin_Ecc_Map>
diff --git a/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml b/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml
deleted file mode 100644
index 03529dcac..000000000
--- a/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- SPDX-License-Identifier: GPL-2.0
-#
-# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
-#
-# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
-#--------------------------------------------------------------------------->
-
-<?xml version="1.0" encoding="UTF-8"?>
-
-<Bin_Ecc_Map>
- <!-- BMC mandatory fields -->
- <ImageProperties>
- <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
- <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
- </ImageProperties>
-
- <BinField>
- <name>BootBlock</name> <!-- name of field -->
- <config>
- <offset>0</offset> <!-- offset in the header -->
- <size format='FileSize'>Poleg_bootblock.bin.full</size> <!-- size in the header -->
- </config>
- <content format='FileContent'>Poleg_bootblock.bin.full</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <name>u-boot</name> <!-- name of field -->
- <config>
- <offset format='FileSize' align='0x1000'>Poleg_bootblock.bin.full</offset> <!-- offset in the header -->
- <size format='FileSize'>u-boot.bin.full</size> <!-- size in the header -->
- </config>
- <content format='FileContent'>u-boot.bin.full</content> <!-- content the user should fill -->
- </BinField>
-
-</Bin_Ecc_Map>
diff --git a/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb b/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb
index 5ab1fc942..bff1c015e 100644
--- a/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb
+++ b/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_git.bb
@@ -3,14 +3,10 @@ DESCRIPTION = "XML-based binary image generator"
HOMEPAGE = "https://github.com/Nuvoton-Israel/bingo"
PR = "r1"
PV = "0.1+git${SRCPV}"
-LICENSE = "Apache-2.0"
+LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI += "git://github.com/Nuvoton-Israel/bingo"
-SRC_URI += "file://BootBlockAndHeader_EB.xml"
-SRC_URI += "file://UbootHeader_EB.xml"
-SRC_URI += "file://mergedBootBlockAndUboot.xml"
-
SRCREV = "4f102ff7851da9fd11965857edd1b3046c187b7a"
S = "${WORKDIR}/git"
@@ -19,7 +15,6 @@ do_install () {
install -d "${D}${bindir}"
install deliverables/linux/Release/bingo ${D}${bindir}
- install ${WORKDIR}/*.xml ${D}${bindir}
}
inherit native
diff --git a/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.09.05.bb b/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.09.05.bb
deleted file mode 100644
index 7c847f2ed..000000000
--- a/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.09.05.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Primary bootloader for NPCM7XX (Poleg) devices"
-DESCRIPTION = "Primary bootloader for NPCM7XX (Poleg) devices"
-HOMEPAGE = "https://github.com/Nuvoton-Israel/npcm7xx-bootblock"
-LICENSE = "CLOSED"
-LIC_FILES_CHKSUM = ""
-
-SRCREV = "${PV}"
-FILENAME = "Poleg_bootblock.bin"
-
-SRC_URI = "git://github.com/Nuvoton-Israel/npcm7xx-bootblock;protocol=git"
-SRC_URI[md5sum] = "cf8daa5f4636ed1ff952618e435af028"
-
-S = "${WORKDIR}/git"
-
-inherit deploy
-
-do_deploy () {
- install -d ${DEPLOYDIR}
- install -m 644 ${FILENAME} ${DEPLOYDIR}/
-}
-
-addtask deploy before do_build after do_compile
diff --git a/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.10.09.bb b/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.10.09.bb
new file mode 100644
index 000000000..3f2178bff
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock_10.10.09.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Primary bootloader for NPCM7XX (Poleg) devices"
+DESCRIPTION = "Primary bootloader for NPCM7XX (Poleg) devices"
+HOMEPAGE = "https://github.com/Nuvoton-Israel/npcm7xx-bootblock"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+FILENAME = "Poleg_bootblock.bin"
+
+S = "${WORKDIR}"
+
+SRCREV = "7bfef99f7a0354395519c4975f96d66cdda1fb67"
+SRC_URI = " \
+ https://raw.githubusercontent.com/Nuvoton-Israel/bootblock/${SRCREV}/LICENSE;name=lic \
+ https://github.com/Nuvoton-Israel/bootblock/releases/download/BootBlock_${PV}/Poleg_bootblock_basic.bin;downloadfilename=${FILENAME};name=bin \
+"
+
+SRC_URI[lic.md5sum] = "b234ee4d69f5fce4486a80fdaf4a4263"
+SRC_URI[bin.sha256sum] = "05f71da6ebb7798679fcffdcc928fbada8f941bd8e7a374ebc826131a0803e58"
+
+inherit deploy
+
+do_deploy () {
+ install -D -m 644 ${WORKDIR}/${FILENAME} ${DEPLOYDIR}/
+}
+
+addtask deploy before do_build after do_compile
diff --git a/meta-nuvoton/recipes-bsp/images/npcm7xx-igps-native_02.01.12.bb b/meta-nuvoton/recipes-bsp/images/npcm7xx-igps-native_02.01.12.bb
new file mode 100644
index 000000000..c04d92a0a
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/npcm7xx-igps-native_02.01.12.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Image Generation and Programming Scripts for NPCM7XX (Poleg) devices"
+DESCRIPTION = "Image Generation and Programming Scripts for NPCM7XX (Poleg) devices"
+HOMEPAGE = "https://github.com/Nuvoton-Israel/igps"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = " \
+ git://github.com/Nuvoton-Israel/igps \
+ file://0001-Adjust-paths-for-use-with-Bitbake.patch \
+"
+# tag IGPS_02.01.12
+SRCREV = "2fb1a3b0d61164ed1157e27889a4ec2292cbc760"
+
+S = "${WORKDIR}/git"
+
+DEST = "${D}${datadir}/${BPN}"
+
+do_install() {
+ install -d ${DEST}
+ install ImageGeneration/references/BootBlockAndHeader_${IGPS_MACHINE}.xml ${DEST}
+ install ImageGeneration/references/UbootHeader_${IGPS_MACHINE}.xml ${DEST}
+ install ImageGeneration/inputs/mergedBootBlockAndUboot.xml ${DEST}
+}
+
+inherit native
diff --git a/meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch b/meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch
new file mode 100644
index 000000000..118f19964
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch
@@ -0,0 +1,145 @@
+From 215a2d9660a929beae8bc420239467fc9e135b4f Mon Sep 17 00:00:00 2001
+From: Benjamin Fair <benjaminfair@google.com>
+Date: Wed, 23 Oct 2019 14:23:08 -0700
+Subject: [PATCH] Adjust paths for use with Bitbake
+
+Signed-off-by: Benjamin Fair <benjaminfair@google.com>
+---
+ ImageGeneration/inputs/mergedBootBlockAndUboot.xml | 10 +++++-----
+ ImageGeneration/references/BootBlockAndHeader_EB.xml | 6 +++---
+ .../references/BootBlockAndHeader_RunBMC.xml | 6 +++---
+ ImageGeneration/references/UbootHeader_EB.xml | 6 +++---
+ ImageGeneration/references/UbootHeader_RunBMC.xml | 6 +++---
+ 5 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/ImageGeneration/inputs/mergedBootBlockAndUboot.xml b/ImageGeneration/inputs/mergedBootBlockAndUboot.xml
+index d832f96..f4c7756 100644
+--- a/ImageGeneration/inputs/mergedBootBlockAndUboot.xml
++++ b/ImageGeneration/inputs/mergedBootBlockAndUboot.xml
+@@ -18,18 +18,18 @@
+ <name>BootBlock</name> <!-- name of field -->
+ <config>
+ <offset>0</offset> <!-- offset in the header -->
+- <size format='FileSize'>output_binaries/BootBlockAndHeader.bin</size> <!-- size in the header -->
++ <size format='FileSize'>Poleg_bootblock.bin.full</size> <!-- size in the header -->
+ </config>
+- <content format='FileContent'>output_binaries/BootBlockAndHeader.bin</content> <!-- content the user should fill -->
++ <content format='FileContent'>Poleg_bootblock.bin.full</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <name>u-boot</name> <!-- name of field -->
+ <config>
+- <offset format='FileSize' align='0x1000'>output_binaries/BootBlockAndHeader.bin</offset> <!-- offset in the header -->
+- <size format='FileSize'>output_binaries/UbootAndHeader.bin</size> <!-- size in the header -->
++ <offset format='FileSize' align='0x1000'>Poleg_bootblock.bin.full</offset> <!-- offset in the header -->
++ <size format='FileSize'>u-boot.bin.full</size> <!-- size in the header -->
+ </config>
+- <content format='FileContent'>output_binaries/UbootAndHeader.bin</content> <!-- content the user should fill -->
++ <content format='FileContent'>u-boot.bin.full</content> <!-- content the user should fill -->
+ </BinField>
+
+ </Bin_Ecc_Map>
+diff --git a/ImageGeneration/references/BootBlockAndHeader_EB.xml b/ImageGeneration/references/BootBlockAndHeader_EB.xml
+index 775534f..157535d 100644
+--- a/ImageGeneration/references/BootBlockAndHeader_EB.xml
++++ b/ImageGeneration/references/BootBlockAndHeader_EB.xml
+@@ -42,7 +42,7 @@
+ <offset>0x144</offset>
+ <size>0x4</size>
+ </config>
+- <content format='FileSize'>inputs/Poleg_bootblock.bin</content> <!-- content the user should fill -->
++ <content format='FileSize'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+@@ -50,9 +50,9 @@
+ <name>Code</name> <!-- name of field -->
+ <config>
+ <offset>0x200</offset>
+- <size format='FileSize'>inputs/Poleg_bootblock.bin</size> <!-- size in the header calculated by tool-->
++ <size format='FileSize'>Poleg_bootblock.bin</size> <!-- size in the header calculated by tool-->
+ </config>
+- <content format='FileContent'>inputs/Poleg_bootblock.bin</content> <!-- content the user should fill -->
++ <content format='FileContent'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+diff --git a/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml b/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml
+index cc719e9..4d1e972 100644
+--- a/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml
++++ b/ImageGeneration/references/BootBlockAndHeader_RunBMC.xml
+@@ -42,7 +42,7 @@
+ <offset>0x144</offset>
+ <size>0x4</size>
+ </config>
+- <content format='FileSize'>inputs/Poleg_bootblock.bin</content> <!-- content the user should fill -->
++ <content format='FileSize'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+@@ -50,9 +50,9 @@
+ <name>Code</name>
+ <config>
+ <offset>0x200</offset>
+- <size format='FileSize'>inputs/Poleg_bootblock.bin</size> <!-- size in the header calculated by tool-->
++ <size format='FileSize'>Poleg_bootblock.bin</size> <!-- size in the header calculated by tool-->
+ </config>
+- <content format='FileContent'>inputs/Poleg_bootblock.bin</content> <!-- content the user should fill -->
++ <content format='FileContent'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+diff --git a/ImageGeneration/references/UbootHeader_EB.xml b/ImageGeneration/references/UbootHeader_EB.xml
+index 1e72e22..475ec45 100644
+--- a/ImageGeneration/references/UbootHeader_EB.xml
++++ b/ImageGeneration/references/UbootHeader_EB.xml
+@@ -42,7 +42,7 @@
+ <offset>0x144</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+- <content format='FileSize'>inputs/u-boot.bin</content> <!-- content the user should fill -->
++ <content format='FileSize'>u-boot.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+@@ -50,9 +50,9 @@
+ <name>Code</name> <!-- name of field -->
+ <config>
+ <offset>0x200</offset> <!-- offset in the header -->
+- <size format='FileSize'>inputs/u-boot.bin</size> <!-- size in the header calculated by tool-->
++ <size format='FileSize'>u-boot.bin</size> <!-- size in the header calculated by tool-->
+ </config>
+- <content format='FileContent'>inputs/u-boot.bin</content> <!-- content the user should fill -->
++ <content format='FileContent'>u-boot.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+diff --git a/ImageGeneration/references/UbootHeader_RunBMC.xml b/ImageGeneration/references/UbootHeader_RunBMC.xml
+index 7eb3076..481ed2f 100644
+--- a/ImageGeneration/references/UbootHeader_RunBMC.xml
++++ b/ImageGeneration/references/UbootHeader_RunBMC.xml
+@@ -42,7 +42,7 @@
+ <offset>0x144</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+- <content format='FileSize'>inputs/u-boot.bin</content> <!-- content the user should fill -->
++ <content format='FileSize'>u-boot.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+@@ -50,9 +50,9 @@
+ <name>Code</name> <!-- name of field -->
+ <config>
+ <offset>0x200</offset> <!-- offset in the header -->
+- <size format='FileSize'>inputs/u-boot.bin</size> <!-- size in the header calculated by tool-->
++ <size format='FileSize'>u-boot.bin</size> <!-- size in the header calculated by tool-->
+ </config>
+- <content format='FileContent'>inputs/u-boot.bin</content> <!-- content the user should fill -->
++ <content format='FileContent'>u-boot.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+--
+2.24.0.rc0.303.g954a862665-goog
+
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch
new file mode 100644
index 000000000..e4d52a802
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch
@@ -0,0 +1,25 @@
+From dfeadd4eb43e829aafb0d10f611fa22ae81bfca4 Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+Date: Sun, 20 Oct 2019 17:00:45 +0900
+Subject: [PATCH] Add build rule for README.
+
+fix do_configure error:
+Makefile.am: required file `./README' not found
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index e0c4ad6..0449321 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -35,3 +35,4 @@ rpmcvs: preparerpm
+ @LN_S@ -f `pwd`/@PACKAGE@-@VERSION@.tar.gz ${RPMDIR}/SOURCES/@PACKAGE@-@VERSION@_cvs_`date +"%Y%m%d"`.tar.gz
+ cd ${RPMDIR}/SPECS && @RPMBUILD@ -ba @PACKAGE@.spec --define 'cvs 1'
+
++README: README.md
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch
deleted file mode 100644
index 0a990ac68..000000000
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From dd1af7541f18399bcdcb129a8b6618c18ebd9d63 Mon Sep 17 00:00:00 2001
-From: Tomasz Torcz <tomek@pipebreaker.pl>
-Date: Sat, 17 Mar 2018 12:56:04 +0100
-Subject: [PATCH] include <sys/sysmacros.h> for major()
-
- Linux glibc ceased to include it in sys/types.h:
-https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- module/owlib/src/include/ow.h | 6 +++++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 86751bf7..d625d3f0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -180,7 +180,7 @@ m4_include([src/scripts/m4/acx_pthread.m4])
- # Checks for header files.
- AC_HEADER_DIRENT
- AC_HEADER_STDC
--AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
-+AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/sysmacros.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
- AC_CHECK_HEADERS([linux/limits.h linux/types.h netdb.h dlfcn.h])
- AC_CHECK_HEADERS(sys/event.h sys/inotify.h)
-
-diff --git a/module/owlib/src/include/ow.h b/module/owlib/src/include/ow.h
-index 9dbec5f3..0a310552 100644
---- a/module/owlib/src/include/ow.h
-+++ b/module/owlib/src/include/ow.h
-@@ -188,8 +188,12 @@
- #include <netdb.h> /* for getaddrinfo */
- #endif /* HAVE_NETDB_H */
-
-+#ifdef HAVE_SYS_SYSMACROS_H
-+#include <sys/sysmacros.h> /* for major() */
-+#endif /* HAVE_SYS_SYSMACROS_H */
-+
- #ifdef HAVE_SYS_MKDEV_H
--#include <sys/mkdev.h> /* for major() */
-+#include <sys/mkdev.h> /* for major() on Solaris */
- #endif /* HAVE_SYS_MKDEV_H */
-
- #include <stddef.h> // for offsetof()
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb
index 857aaf216..414084449 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb
@@ -4,16 +4,16 @@ HOMEPAGE = "http://www.owfs.org/"
SECTION = "console/network"
LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=12a64df1cc87275e940cab05ee75c37d \
- file://COPYING.LIB;md5=16ff3ffebed582e19ea7a4f48ec77b42"
+LIC_FILES_CHKSUM = "file://COPYING;md5=628b867016631792781a8735a04760e5 \
+ file://COPYING.LIB;md5=9021b7435efdd9fb22beef8291134099"
DEPENDS = "fuse virtual/libusb0"
-# v3.2p2
-SRCREV = "93c1f36d9ac481075287da331d5184f590f8c0fa"
+# v3.2p3
+SRCREV = "3744375dfaa350e31c9b360eb1e1a517bbeb5c47"
SRC_URI = "git://github.com/owfs/owfs \
+ file://0001-Add-build-rule-for-README.patch \
file://owhttpd \
file://owserver \
- file://0001-include-sys-sysmacros.h-for-major.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
index f85977fd5..595b34900 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
@@ -7,7 +7,8 @@ DEPENDS = "fuse libmtp"
inherit autotools pkgconfig
+# 0.3.0
SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master"
-SRCREV = "a7ab64c7e4d7aca155cbc7ce9412aaf68ef6e404"
+SRCREV = "c9a691fc52fafaa55d26ac629856153c0514015a"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
index c72936c08..ddb2cc805 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
@@ -12,7 +12,7 @@ DEPENDS = "fuse samba"
DEPENDS_append_libc-musl = " libexecinfo"
# samba depends on libpam
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
inherit autotools gitpkgv pkgconfig
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.5.2.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb
index b10c5c5ff..2515d07d4 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.5.2.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb
@@ -7,7 +7,7 @@ DEPENDS = "glib-2.0 fuse3"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/libfuse/sshfs"
-SRCREV = "695cd8916f0e78d28009de3ffe112b9d1a1c9e5e"
+SRCREV = "a1e5f12c530ccf59434a7d59a34a049f160b3559"
S = "${WORKDIR}/git"
inherit meson
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.6.2.bb b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.8.0.bb
index e65eb08e2..b5bbe042a 100644
--- a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.6.2.bb
+++ b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.8.0.bb
@@ -13,8 +13,8 @@ LIC_FILES_CHKSUM = "file://GPL2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.xz \
"
-SRC_URI[md5sum] = "1798945aa69434286723b9999a141c7a"
-SRC_URI[sha256sum] = "f45869427575e1e59ab743a67deb57addbf2cb8f9ce431199dbd40ddab71f281"
+SRC_URI[md5sum] = "f184004cd3724f579cd602fa5232681b"
+SRC_URI[sha256sum] = "4a464f6df782a1dca1f7e85bf64ff6ece9547b389557aae4160371cb1c898d61"
S = "${WORKDIR}/fuse-${PV}"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch
deleted file mode 100644
index cf844bf87..000000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3b3c6e6376babcd9a0b0db312b0e1e3bb3ab833e Mon Sep 17 00:00:00 2001
-From: Sven Ebenfeld <sven.ebenfeld@vaillant.de>
-Date: Wed, 26 Nov 2014 10:36:44 +0100
-Subject: [PATCH] Remove AC_CHECK_FILE for cross compilation
-
----
- configure.ac | 7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0111e72..8c286d4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -20,14 +20,9 @@ AC_DEFINE([F2FS_MINOR_VERSION], m4_bpatsubst(f2fs_tools_version,
- [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]),
- [Minor version for f2fs-tools])
-
--AC_CHECK_FILE(.git,
-- AC_DEFINE([F2FS_TOOLS_DATE],
-- "m4_bpatsubst(f2fs_tools_gitdate,
-- [\([0-9-]*\)\(\w\|\W\)*], [\1])",
-- [f2fs-tools date based on Git commits]),
- AC_DEFINE([F2FS_TOOLS_DATE],
- "f2fs_tools_date",
-- [f2fs-tools date based on Source releases]))
-+ [f2fs-tools date based on Source releases])
-
- AC_CONFIG_SRCDIR([config.h.in])
- AC_CONFIG_HEADER([config.h])
---
-1.8.1.rc3
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.13.0.bb
index 2240049d4..98bd478f3 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.13.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
-HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/"
+HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
@@ -7,10 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
# to provide libuuid
DEPENDS = "util-linux"
-# v1.11.0
-SRCREV = "b98fab3666e498c2e27ad9dcda6874c9b683f06b"
+# v1.13.0
+SRCREV = "284f77f0075a16a2ad1f3b0fb89b7f64a1bc755d"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \
- file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch \
file://0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb
index b26709e97..30224c202 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "ec79fd2736b8da76e7a870e27cadf6fa"
-SRC_URI[sha256sum] = "0bd1e085015b28c24f57697d6def2fe84517967dc417554c0c3ccf1685ed0e56"
+SRC_URI[md5sum] = "d6b16763a2ca23eec718cfac1761b40f"
+SRC_URI[sha256sum] = "97a9c9831fa1b053f781f74a17b79327e7402c6163f5c7973453ba881616aeb4"
PACKAGECONFIG ??= "acl attr zlib bzip2 readline"
PACKAGECONFIG[acl] = "--enable-libacl,--disable-libacl,acl,"
@@ -17,7 +17,7 @@ PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib,"
PACKAGECONFIG[bzip2] = "--enable-libbz2,--disable-libbz2,bzip2,"
PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline,"
-inherit autotools-brokensep pkgconfig distro_features_check
+inherit autotools-brokensep pkgconfig features_check
do_configure_prepend () {
touch NEWS
diff --git a/meta-openembedded/meta-gnome/classes/gnome-help.bbclass b/meta-openembedded/meta-gnome/classes/gnome-help.bbclass
new file mode 100644
index 000000000..967091ba4
--- /dev/null
+++ b/meta-openembedded/meta-gnome/classes/gnome-help.bbclass
@@ -0,0 +1,69 @@
+# Class to pack gnome help files or delete them during install
+# There are the following cases:
+#
+# if 'helpfiles' not in DISTRO_FEATURES
+# delete all help contants during install
+# else
+# if PACKAGE_NO_HELP_SPLIT == 1
+# pack all help files to ${PN}-help
+# else
+# pack all help files to ${PN}-help-<lingua>
+
+FILES_${PN}-help = "${datadir}/*/translations"
+
+# Dummy to get yelp build & PACKAGE_NO_HELP_SPLIT set 1
+PACKAGES_append = " ${PN}-help"
+FILES_${PN}-help = "${datadir}/help"
+RRECOMMENDS_${PN}-help = "${@bb.utils.contains('DISTRO_FEATURES','helpfiles','yelp','',d)}"
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','false','true',d)}; then
+ rm -rf ${D}${datadir}/help/*
+ fi
+}
+
+python gnome_do_split_help() {
+ if bb.utils.contains('DISTRO_FEATURES', 'helpfiles', False, True, d):
+ return
+
+ if (d.getVar('PACKAGE_NO_HELP_SPLIT') == '1'):
+ # all help files go to ${
+ bb.debug(1, "package requested not splitting help-files")
+ return
+
+ packages = (d.getVar('PACKAGES') or "").split()
+ datadir = d.getVar('datadir')
+ dvar = d.getVar('PKGD')
+ pn = d.getVar('PN')
+
+ if pn + '-help' in packages:
+ packages.remove(pn + '-help')
+
+ helpdir = os.path.join(dvar + datadir, 'help')
+
+ if not cpath.isdir(helpdir):
+ bb.warn("No help files in this package - remove gnome-help from inherit?")
+ return
+
+ helps = os.listdir(helpdir)
+
+ summary = d.getVar('SUMMARY') or pn
+ description = d.getVar('DESCRIPTION') or ""
+ locale_section = d.getVar('LOCALE_SECTION')
+ mlprefix = d.getVar('MLPREFIX') or ""
+ for l in sorted(helps):
+ ln = legitimize_package_name(l)
+ pkg = pn + '-help-' + ln
+ packages.append(pkg)
+ d.setVar('FILES_' + pkg, os.path.join(datadir, 'help', l))
+ d.setVar('RRECOMMENDS_' + pkg, '%syelp' % mlprefix)
+ d.setVar('SUMMARY_' + pkg, '%s - %s help' % (summary, l))
+ d.setVar('DESCRIPTION_' + pkg, '%s This package contains language help files for the %s locale.' % (description, l))
+ if locale_section:
+ d.setVar('SECTION_' + pkg, locale_section)
+
+ d.setVar('PACKAGES', ' '.join(packages))
+}
+
+PACKAGESPLITFUNCS_prepend = "gnome_do_split_help "
+
diff --git a/meta-openembedded/meta-gnome/conf/layer.conf b/meta-openembedded/meta-gnome/conf/layer.conf
index 862d622ee..d381fdf07 100644
--- a/meta-openembedded/meta-gnome/conf/layer.conf
+++ b/meta-openembedded/meta-gnome/conf/layer.conf
@@ -8,6 +8,9 @@ BBFILE_COLLECTIONS += "gnome-layer"
BBFILE_PATTERN_gnome-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_gnome-layer = "7"
+# auto-pack gnome help files
+IMAGE_LINGUAS_COMPLEMENTARY_append = " ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','*-help-%s','',d)}"
+
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_gnome-layer = "1"
diff --git a/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb b/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb
index bf5178cf8..6b2688f3e 100644
--- a/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb
+++ b/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \
DEPENDS = "glib-2.0 gdk-pixbuf cogl-1.0 clutter-1.0 clutter-gst-3.0 librsvg"
-inherit autotools gettext pkgconfig distro_features_check
+inherit autotools gettext pkgconfig features_check
# cogl requires opengl
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.22.bb b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.22.bb
deleted file mode 100644
index 37f512a73..000000000
--- a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.22.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "GTK+ applet for NetworkManager"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-DEPENDS = "gtk+3 libnotify libsecret networkmanager \
- libgnome-keyring iso-codes nss \
- intltool-native \
-"
-
-GNOMEBASEBUILDCLASS = "autotools-brokensep"
-inherit distro_features_check gnomebase gsettings gtk-icon-cache gobject-introspection gettext
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "e0373f4c0d0637716e6e385799a9080f"
-SRC_URI[archive.sha256sum] = "ebef1c1050ff6d94cad060e8d259f2a88ae159cf83ca75cb71d9f76867877eed"
-
-PACKAGECONFIG[modemmanager] = "--with-wwan,--without-wwan,modemmanager"
-PACKAGECONFIG[mobile-provider-info] = "--enable-mobile-broadband-provider-info,--disable-mobile-broadband-provider-info,mobile-broadband-provider-info,mobile-broadband-provider-info"
-PACKAGECONFIG ??= ""
-
-EXTRA_OECONF = " \
- --without-selinux \
-"
-
-# gobject-introspection related
-GI_DATA_ENABLED_libc-musl = "False"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/src/libnma/.libs"
-}
-
-RDEPENDS_${PN} =+ "networkmanager"
-
-FILES_${PN} += " \
- ${datadir}/nm-applet/ \
- ${datadir}/libnma/wifi.ui \
- ${datadir}/metainfo \
-"
-
-# musl builds generate gir files which otherwise go un-packaged
-FILES_${PN}-dev += " \
- ${datadir}/gir-1.0 \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.24.bb b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.24.bb
new file mode 100644
index 000000000..0853407ca
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.24.bb
@@ -0,0 +1,29 @@
+SUMMARY = "GTK+ applet for NetworkManager"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "gtk+3 libnotify libsecret networkmanager iso-codes nss"
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit features_check gnomebase gsettings gtk-doc gtk-icon-cache gobject-introspection gettext
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.md5sum] = "5c1bf351fde5adc12200345550516050"
+SRC_URI[archive.sha256sum] = "118bbb8a5027634b62e8b45b16ceafce74441529c99bf230654e3bec38f9fbbf"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr"
+PACKAGECONFIG[modemmanager] = "-Dwwan=true, -Dwwan=false, modemmanager"
+PACKAGECONFIG[mobile-provider-info] = "-Dmobile_broadband_provider_info=true, -Dmobile_broadband_provider_info=false, mobile-broadband-provider-info,mobile-broadband-provider-info"
+PACKAGECONFIG[selinux] = "-Dselinux=true, -Dselinux=false, libselinux"
+
+RDEPENDS_${PN} =+ "networkmanager"
+
+FILES_${PN} += " \
+ ${datadir}/nm-applet/ \
+ ${datadir}/libnma/wifi.ui \
+ ${datadir}/metainfo \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb b/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb
index de143b9c8..aff994af7 100644
--- a/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.33.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://gparted.org/index.php"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-inherit distro_features_check autotools pkgconfig gtk-icon-cache
+inherit features_check autotools pkgconfig gtk-icon-cache
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.34.2.bb
index 999ed041a..699511f7a 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.32.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.34.2.bb
@@ -8,8 +8,8 @@ DEPENDS = "dconf gtk+3"
inherit gnomebase vala gettext gsettings bash-completion
-SRC_URI[archive.md5sum] = "331a3603c0f8a9913e3a3c0f178b5310"
-SRC_URI[archive.sha256sum] = "f19d1332ac27e23ef3dc2ed07ba4e4646d9d7f05e2e78748aa525a1320adbaba"
+SRC_URI[archive.md5sum] = "2907205ad1a0e2774c981932cb7ff25b"
+SRC_URI[archive.sha256sum] = "cecc2a5cb44af68be80e970e83fb9e3e92e2a74df7c90b63324e6da19a929d5f"
FILES_${PN} += " \
${datadir}/dbus-1 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch
new file mode 100644
index 000000000..485c46509
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch
@@ -0,0 +1,25 @@
+With meson 0.52 the build fails due to duplicate symbols. There is a fix
+to meson but the dconf build also needs tweaking.
+
+https://gitlab.gnome.org/GNOME/dconf/issues/59
+https://github.com/mesonbuild/meson/pull/5936
+
+Despite the comments there about this being incorrect, libdconf is unchanged
+between 0.51 and 0.52 and this patch.
+
+Upstream-Status: Pending [under discussion, see above links]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: dconf-0.34.0/client/meson.build
+===================================================================
+--- dconf-0.34.0.orig/client/meson.build
++++ dconf-0.34.0/client/meson.build
+@@ -28,7 +28,7 @@ libdconf_client = static_library(
+
+ libdconf_client_dep = declare_dependency(
+ dependencies: gio_dep,
+- link_whole: libdconf_client,
++ link_with: libdconf_client,
+ )
+
+ libdconf = shared_library(
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb
index a1996a1a3..3c3802f34 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.34.0.bb
@@ -12,10 +12,16 @@ GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase bash-completion vala
+SRC_URI += "file://fix-meson-0.52.patch"
+
# I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
EXTRA_OEMESON = "-Dman=false"
+# no bash-completion for native
+EXTRA_OEMESON_append_class-native = "-Dbash_completion=false"
FILES_${PN} += " \
${datadir}/dbus-1 \
${libdir}/gio/modules/*.so \
"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb b/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
index 6ef8e8a62..69c23d562 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
@@ -14,7 +14,7 @@ SRC_URI = " \
SRC_URI[md5sum] = "26eed0b5b4af5c7e13c551eceaeab832"
SRC_URI[sha256sum] = "ecffc17c62b41e196b72340192a90c4223329df041f135e74c0990860595f828"
-inherit distro_features_check pkgconfig gettext
+inherit features_check pkgconfig gettext
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-Use-LC_MESSAGES-for-address-localization-when-LC_ADD.patch b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-Use-LC_MESSAGES-for-address-localization-when-LC_ADD.patch
deleted file mode 100644
index 55ab5a7fc..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-Use-LC_MESSAGES-for-address-localization-when-LC_ADD.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 95425206e7317e59b7ca06d7f838ad357cdd200c Mon Sep 17 00:00:00 2001
-From: Piotr Tworek <tworaz@tworaz.net>
-Date: Wed, 14 Aug 2019 00:31:54 +0200
-Subject: [PATCH 5/7] Use LC_MESSAGES for address localization when LC_ADDRESS
- is not available.
-
-Musl does not define LC_ADDRESS unfortunately.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
----
- src/addressbook/libebook-contacts/e-phone-number-private.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/addressbook/libebook-contacts/e-phone-number-private.cpp b/src/addressbook/libebook-contacts/e-phone-number-private.cpp
-index 4c5aebb..9abcebd 100644
---- a/src/addressbook/libebook-contacts/e-phone-number-private.cpp
-+++ b/src/addressbook/libebook-contacts/e-phone-number-private.cpp
-@@ -36,6 +36,10 @@
- #include <phonenumbers/logger.h>
- #include <phonenumbers/phonenumberutil.h>
-
-+#ifndef LC_ADDRESS
-+#define LC_ADDRESS LC_MESSAGES
-+#endif
-+
- using i18n::phonenumbers::PhoneNumber;
- using i18n::phonenumbers::PhoneNumberUtil;
-
---
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-Dont-add-usr-lib-to-LDFLAGS-when-linking-libphonenum.patch b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-Dont-add-usr-lib-to-LDFLAGS-when-linking-libphonenum.patch
deleted file mode 100644
index c0c1427fd..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-Dont-add-usr-lib-to-LDFLAGS-when-linking-libphonenum.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From fb9164bbca5b425f1cf1bb3cac51d06afe81938a Mon Sep 17 00:00:00 2001
-From: Piotr Tworek <tworaz@tworaz.net>
-Date: Wed, 14 Aug 2019 00:47:59 +0200
-Subject: [PATCH 6/7] Dont add /usr/lib to LDFLAGS when linking libphonenumber.
-
-This will refer to host lib dir which is not what we want.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
----
- cmake/modules/FindPhonenumber.cmake | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/cmake/modules/FindPhonenumber.cmake b/cmake/modules/FindPhonenumber.cmake
-index 04d1056..70c0c41 100644
---- a/cmake/modules/FindPhonenumber.cmake
-+++ b/cmake/modules/FindPhonenumber.cmake
-@@ -37,12 +37,10 @@ string(TOUPPER "${WITH_PHONENUMBER}" optupper)
- if(("${optupper}" STREQUAL "ON") OR ("${substr}" STREQUAL "${CMAKE_BINARY_DIR}"))
- set(WITH_PHONENUMBER "ON")
- set(PHONENUMBER_INCLUDE_DIRS "${INCLUDE_INSTALL_DIR}")
-- set(PHONENUMBER_LIB_DIRS ${LIB_INSTALL_DIR})
-- set(PHONENUMBER_LDFLAGS -L${PHONENUMBER_LIB_DIRS} ${PHONENUMBER_LDFLAGS})
-+ set(PHONENUMBER_LDFLAGS ${PHONENUMBER_LDFLAGS})
- else(("${optupper}" STREQUAL "ON") OR ("${substr}" STREQUAL "${CMAKE_BINARY_DIR}"))
- set(PHONENUMBER_INCLUDE_DIRS "${WITH_PHONENUMBER}/include")
-- set(PHONENUMBER_LIB_DIRS ${WITH_PHONENUMBER}/lib${LIB_SUFFIX})
-- set(PHONENUMBER_LDFLAGS -L${PHONENUMBER_LIB_DIRS} ${PHONENUMBER_LDFLAGS})
-+ set(PHONENUMBER_LDFLAGS ${PHONENUMBER_LDFLAGS})
- endif(("${optupper}" STREQUAL "ON") OR ("${substr}" STREQUAL "${CMAKE_BINARY_DIR}"))
-
- unset(bindirlen)
---
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch
deleted file mode 100644
index c00082a2c..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From d84f4fd68441e934b37be2a6917abad52c5d1bda Mon Sep 17 00:00:00 2001
-From: Piotr Tworek <tworaz@tworaz.net>
-Date: Fri, 16 Aug 2019 21:22:16 +0200
-Subject: [PATCH 7/7] Modify gobject-intrispection support to work with OE.
-
-1. Use tools provided by the recipe sysroot instread of host ones.
-2. Make sure all the required dirs make it into g-ir-scanner via
- LDFLAGS.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
----
- cmake/modules/GObjectIntrospection.cmake | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/cmake/modules/GObjectIntrospection.cmake b/cmake/modules/GObjectIntrospection.cmake
-index 5be5042..67c035a 100644
---- a/cmake/modules/GObjectIntrospection.cmake
-+++ b/cmake/modules/GObjectIntrospection.cmake
-@@ -20,6 +20,9 @@ if(ENABLE_INTROSPECTION)
- pkg_check_variable(G_IR_SCANNER gobject-introspection-1.0 g_ir_scanner)
- pkg_check_variable(G_IR_COMPILER gobject-introspection-1.0 g_ir_compiler)
-
-+ string(CONCAT G_IR_SCANNER $ENV{PKG_CONFIG_SYSROOT_DIR} "${G_IR_SCANNER}")
-+ string(CONCAT G_IR_COMPILER $ENV{PKG_CONFIG_SYSROOT_DIR} "${G_IR_COMPILER}")
-+
- if(NOT G_IR_SCANNER)
- message(FATAL_ERROR "g-ir-scanner not provided by gobject-introspection-1.0, you can disable GObject introspection by -DENABLE_INTROSPECTION=OFF")
- endif(NOT G_IR_SCANNER)
-@@ -116,7 +119,7 @@ macro(gir_add_introspection gir)
- file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_gir_name}_files "${_gir_files}")
-
- add_custom_command(
-- COMMAND ${CMAKE_COMMAND} -E env "CC='${CMAKE_C_COMPILER}'" LDFLAGS=
-+ COMMAND ${CMAKE_COMMAND} -E env "CC='${CMAKE_C_COMPILER}'" LDFLAGS=${INTROSPECTION_SCANNER_LDFLAGS}
- ${INTROSPECTION_SCANNER_ENV}
- ${G_IR_SCANNER}
- ${INTROSPECTION_SCANNER_ARGS}
-@@ -186,6 +189,7 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver
- unset(INTROSPECTION_SCANNER_ARGS)
- unset(INTROSPECTION_SCANNER_ENV)
- unset(INTROSPECTION_COMPILER_ARGS)
-+ unset(INTROSPECTION_SCANNER_LDFLAGS)
-
- set(${gir_vars_prefix} ${gir_library})
- set(${gir_vars_prefix}_SCANNERFLAGS "--warn-all")
-@@ -223,12 +227,12 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver
- --add-include-path=${CMAKE_CURRENT_SOURCE_DIR}
- --library-path=${CMAKE_BINARY_DIR}
- --library-path=${CMAKE_BINARY_DIR}/src
-+ --library-path=${CMAKE_BINARY_DIR}/src/private
- --library-path=${CMAKE_CURRENT_BINARY_DIR}
- ${_gir_extra_libdirs}
- ${_gir_identifies_prefixes}
- ${_gir_deps}
- --add-include-path=${SHARE_INSTALL_PREFIX}/gir-1.0
-- --library-path=${LIB_INSTALL_DIR}
- ${_extra_library_path}
- --pkg-export ${pkg_export_prefix}-${gir_library_version}
- --c-include=${c_include}
-@@ -279,6 +283,10 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver
- )
- endif(UNIX)
-
-+ _gir_list_prefix(_gir_scanner_ldflags ${gir_extra_libdirs_var} "-Wl,-rpath-link=")
-+ string(REPLACE ";" " " _gir_scanner_ldflags "${_gir_scanner_ldflags}")
-+ set(INTROSPECTION_SCANNER_LDFLAGS "${_gir_scanner_ldflags}")
-+
- set(INTROSPECTION_SCANNER_ENV
- ${_loader_library_path_var}="${_extra_loader_library_path_native}"
- )
---
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb
deleted file mode 100644
index 429dd53d8..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb
+++ /dev/null
@@ -1,155 +0,0 @@
-SUMMARY = "Evolution database backend server"
-HOMEPAGE = "http://www.gnome.org/projects/evolution/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
- file://src/camel/camel.h;endline=24;md5=342fc5e9357254bc30c24e43ae47d9a1 \
- file://src/libedataserver/e-data-server-util.h;endline=20;md5=8f21a9c80ea82a4fb80b5f959f672543 \
- file://src/calendar/libecal/e-cal.h;endline=24;md5=e699ec3866f73f129f7a4ffffdcfc196"
-
-DEPENDS = " \
- intltool-native gperf-native glib-2.0-native \
- glib-2.0 gtk+3 libgnome-keyring libgdata libcanberra icu \
- dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \
-"
-
-inherit gnomebase cmake gtk-doc gettext gobject-introspection perlnative upstream-version-is-even vala
-
-SRC_URI += "file://0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch \
- file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \
- file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \
- file://0004-Add-native-suffix-to-exacutables-produced-and-run-du.patch \
- file://0005-Use-LC_MESSAGES-for-address-localization-when-LC_ADD.patch \
- file://0006-Dont-add-usr-lib-to-LDFLAGS-when-linking-libphonenum.patch \
- file://0007-Modify-gobject-intrispection-support-to-work-with-OE.patch \
- file://iconv-detect.h \
- "
-SRC_URI[archive.md5sum] = "57820f3f88fc554e1a58665a52e12c05"
-SRC_URI[archive.sha256sum] = "83f67cb4b680e892b22b51bcde64c788b7ac63e92a99de401fb347e3794f4c7f"
-
-LKSTRFTIME = "HAVE_LKSTRFTIME=ON"
-LKSTRFTIME_libc-musl = "HAVE_LKSTRFTIME=OFF"
-
-EXTRA_OECMAKE = " \
- -D${LKSTRFTIME} \
- -DSYSCONF_INSTALL_DIR=${sysconfdir} \
- -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'introspection', '', d)}"
-PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap"
-PACKAGECONFIG[oauth2] = "-DENABLE_OAUTH2=ON,-DENABLE_OAUTH2=OFF,json-glib webkitgtk"
-PACKAGECONFIG[mitkrb5] = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5"
-PACKAGECONFIG[goa] = "-DENABLE_GOA=ON,-DENABLE_GOA=OFF,gnome-online-accounts"
-PACKAGECONFIG[weather] = "-DENABLE_WEATHER=ON,-DENABLE_WEATHER=OFF,libgweather"
-PACKAGECONFIG[phonenumber] = "-DWITH_PHONENUMBER=ON,-DWITH_PHONENUMBER=OFF,libphonenumber"
-PACKAGECONFIG[introspection] = "-DENABLE_INTROSPECTION=ON,-DENABLE_INTROSPECTION=OFF"
-PACKAGECONFIG[vala] = "-DENABLE_VALA_BINDINGS=ON -DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen,-DENABLE_VALA_BINDINGS=OFF"
-
-# -ldb needs this on some platforms
-LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0"
-
-do_configure_append () {
- cp ${WORKDIR}/iconv-detect.h ${S}/src
-
- # fix native perl shebang
- sed -i 's:${STAGING_BINDIR_NATIVE}/perl-native:${bindir}:' ${B}/src/tools/addressbook-export/csv2vcard
-}
-
-do_compile_prepend() {
- # CMake does not support building native binaries when cross compiling. As result
- # it always cross compiles them for the target and then aborts when they fail to run.
- # To work around this manually build required tools and patch cmake targets to use
- # those native binaries we built here.
- ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} -I${B} ${S}/src/camel/camel-gen-tables.c \
- -o ${B}/src/camel/camel-gen-tables-native
- ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} -I${B} $(pkg-config-native --cflags glib-2.0) \
- ${S}/src/addressbook/libebook-contacts/gen-western-table.c \
- -o ${B}/src/addressbook/libebook-contacts/gen-western-table-native \
- $(pkg-config-native --libs glib-2.0)
-}
-
-
-PACKAGES =+ "libebook-contacts libebook-contacts-dev \
- libcamel libcamel-dev libebook libebook-dev libecal libecal-dev \
- libedata-book libedata-book-dev libedata-cal libedata-cal-dev \
- libedataserver libedataserver-dev \
- libedataserverui libedataserverui-dev"
-
-FILES_${PN} =+ "${systemd_user_unitdir} \
- ${datadir}/dbus-1 \
- ${datadir}/evolution-data-server-*/ui/"
-RDEPENDS_${PN} += "perl"
-
-FILES_${PN}-dev =+ "${libdir}/pkgconfig/evolution-data-server-*.pc"
-FILES_${PN}-dbg =+ "${libdir}/evolution-data-server*/camel-providers/.debug \
- ${libdir}/evolution-data-server*/calendar-backends/.debug \
- ${libdir}/evolution-data-server*/addressbook-backends/.debug \
- ${libdir}/evolution-data-server*/extensions/.debug/"
-
-RRECOMMENDS_${PN}-dev += "libecal-dev libebook-dev"
-
-FILES_libcamel = "${libdir}/libcamel-*.so.* \
- ${libdir}/libcamel-provider-*.so.* \
- ${libdir}/girepository-*/Camel-*.typelib \
- ${libdir}/evolution-data-server*/camel-providers/*.so \
- ${libdir}/evolution-data-server*/camel-providers/*.urls"
-FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \
- ${libdir}/pkgconfig/camel*pc \
- ${includedir}/evolution-data-server*/camel \
- ${datadir}/vala/vapi/camel-* \
- ${datadir}/gir-*/Camel-*.gir"
-
-FILES_libebook = "${libdir}/libebook-*.so.* \
- ${libdir}/girepository-*/EBook-*.typelib"
-FILES_libebook-dev = "${libdir}/libebook-*.so \
- ${libdir}/pkgconfig/libebook-*.pc \
- ${datadir}/gir-*/EBook-*.gir \
- ${datadir}/vala/vapi/libebook-*.* \
- ${includedir}/evolution-data-server*/libebook/*.h"
-RRECOMMENDS_libebook = "libedata-book"
-
-FILES_libebook-contacts = "${libdir}/libebook-contacts-*.so.* \
- ${libdir}/girepository-*/EBookContacts-*.typelib"
-FILES_libebook-contacts-dev = "${libdir}/libebook-contacts-*.so \
- ${libdir}/pkgconfig/libebook-contacts-*.pc \
- ${datadir}/gir-*/EBookContacts-*.gir \
- ${datadir}/vala/vapi/libebook-contacts-* \
- ${includedir}/evolution-data-server*/libebook-contacts/*.h"
-
-FILES_libecal = "${libdir}/libecal-*.so.*"
-FILES_libecal-dev = "${libdir}/libecal-*.so ${libdir}/pkgconfig/libecal-*.pc \
- ${includedir}/evolution-data-server*/libecal/*.h \
- ${includedir}/evolution-data-server*/libical/*.h"
-RRECOMMENDS_libecal = "libedata-cal tzdata"
-
-FILES_libedata-book = "${libexecdir}/e-addressbook-factory \
- ${datadir}/dbus-1/services/*.AddressBook.service \
- ${libdir}/libedata-book-*.so.* \
- ${libdir}/evolution-data-server-*/extensions/libebook*.so"
-FILES_libedata-book-dev = "${libdir}/libedata-book-*.so \
- ${libdir}/pkgconfig/libedata-book-*.pc \
- ${includedir}/evolution-data-server-*/libedata-book"
-
-FILES_libedata-cal = "${libexecdir}/e-calendar-factory \
- ${datadir}/dbus-1/services/*.Calendar.service \
- ${libdir}/libedata-cal-*.so.* \
- ${libdir}/evolution-data-server-*/extensions/libecal*.so"
-FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so \
- ${libdir}/pkgconfig/libedata-cal-*.pc \
- ${includedir}/evolution-data-server-*/libedata-cal"
-
-FILES_libedataserver = "${libdir}/libedataserver-*.so.* \
- ${libdir}/girepository-*/EDataServer-*.typelib"
-FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \
- ${libdir}/pkgconfig/libedataserver-*.pc \
- ${datadir}/vala/vapi/libedataserver-* \
- ${includedir}/evolution-data-server-*/libedataserver/*.h"
-
-FILES_libedataserverui = "${libdir}/libedataserverui-*.so.*"
-FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \
- ${libdir}/pkgconfig/libedataserverui-*.pc \
- ${datadir}/gir-*/EDataServerUI-*.gir \
- ${datadir}/vala/vapi/libedataserverui-* \
- ${includedir}/evolution-data-server-*/libedataserverui/*.h"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch
index de739c5b3..32ca073f9 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch
@@ -11,17 +11,17 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/cut-n-paste/synctex/synctex_parser_utils.c b/cut-n-paste/synctex/synctex_parser_utils.c
-index f8a9f6f..9459b2d 100644
+index 08053f0..0519b38 100644
--- a/cut-n-paste/synctex/synctex_parser_utils.c
+++ b/cut-n-paste/synctex/synctex_parser_utils.c
-@@ -78,6 +78,7 @@ void *_synctex_malloc(size_t size) {
- return (void *)ptr;
+@@ -136,6 +136,7 @@ int _synctex_log(int level, const char * prompt, const char * reason,va_list arg
+ return result;
}
+__attribute__((__format__ (__printf__, 1, 0)))
int _synctex_error(const char * reason,...) {
- va_list arg;
- int result;
+ va_list arg;
+ int result;
--
-2.12.2
+2.20.1
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch
deleted file mode 100644
index e87da90bc..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ef170dda7fbab53682c9bc287dec93fa86130bc9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 9 Sep 2018 21:49:59 -0700
-Subject: [PATCH] add a formatting attribute check
-
-Tell Clang that parameter is a printf style format using the
-attribute flag
-
-This helps in avoiding below warnings seen with clang
-
-unarr.c:106:22: error: format string is not a string literal
-[-Werror,-Wformat-nonliteral]
-| vfprintf(stderr, msg, args);
-| ^~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- cut-n-paste/unarr/common/unarr.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cut-n-paste/unarr/common/unarr.c b/cut-n-paste/unarr/common/unarr.c
-index 97ec92a..9e6e3ad 100644
---- a/cut-n-paste/unarr/common/unarr.c
-+++ b/cut-n-paste/unarr/common/unarr.c
-@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count)
- return ar->get_comment(ar, buffer, count);
- }
-
--void ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
-+void __attribute__((__format__ (__printf__, 4, 0))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
- {
- va_list args;
- va_start(args, msg);
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch
deleted file mode 100644
index 592f46606..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 40921037d8e7205a3889d529fb4e06f79e1e88b0 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 19 Feb 2016 16:52:18 +0200
-Subject: [PATCH] help: remove YELP macro
-
-Upstream-Status: Inappropriate [embedded-specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- help/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/help/Makefile.am b/help/Makefile.am
-index 7835810..37c88ce 100644
---- a/help/Makefile.am
-+++ b/help/Makefile.am
-@@ -1,5 +1,3 @@
--@YELP_HELP_RULES@
--
- SUBDIRS = reference
-
- HELP_ID = evince
---
-2.7.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch
deleted file mode 100644
index dcc4a4e9c..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 0cdce687d3edfa5ac0fd19539ba1815d039026d5 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?I=C3=B1igo=20Mart=C3=ADnez?= <inigomartinez@gmail.com>
-Date: Fri, 7 Sep 2018 22:34:29 +0200
-Subject: [PATCH] libview: Remove EvDocumentModel get type function declaration
-
-The EvDocumentModel class declares the `ev_document_model_get_type`
-function as part of the `GObject` boilerplate code.
-
-However, this declaration is not necessary and also causes a warning
-when introspection data file, `EvinceView-3.0.gir`, is generated.
-
-Upstream-Status: Applied [1]
-
-
----
- libview/ev-document-model.h | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libview/ev-document-model.h b/libview/ev-document-model.h
-index 784e27d6..6a99e43a 100644
---- a/libview/ev-document-model.h
-+++ b/libview/ev-document-model.h
-@@ -54,7 +54,6 @@ typedef enum {
- EV_PAGE_LAYOUT_AUTOMATIC
- } EvPageLayout;
-
--GType ev_document_model_get_type (void) G_GNUC_CONST;
- EvDocumentModel *ev_document_model_new (void);
- EvDocumentModel *ev_document_model_new_with_document (EvDocument *document);
-
---
-2.20.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch
new file mode 100644
index 000000000..c374fc943
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch
@@ -0,0 +1,122 @@
+From ef170dda7fbab53682c9bc287dec93fa86130bc9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 9 Sep 2018 21:49:59 -0700
+Subject: [PATCH] add a formatting attribute check
+
+Tell Clang that parameter is a printf style format using the
+attribute flag
+
+This helps in avoiding below warnings seen with clang
+
+unarr.c:106:22: error: format string is not a string literal
+[-Werror,-Wformat-nonliteral]
+| vfprintf(stderr, msg, args);
+| ^~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cut-n-paste/unarr/common/unarr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/cut-n-paste/unarr/common/unarr.c
++++ b/cut-n-paste/unarr/common/unarr.c
+@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive
+ return ar->get_comment(ar, buffer, count);
+ }
+
+-void ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
++void __attribute__((__format__ (__printf__, 4, 5))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
+ {
+ va_list args;
+ va_start(args, msg);
+--- a/cut-n-paste/synctex/synctex_parser_utils.c
++++ b/cut-n-paste/synctex/synctex_parser_utils.c
+@@ -87,11 +87,11 @@ void _synctex_free(void * ptr) {
+ # include <syslog.h>
+ #endif
+
+-int _synctex_error(const char * reason, ...) __attribute__((__format__ (__printf__, 1, 2)));
+-int _synctex_log(int level, const char * prompt, const char * reason, va_list arg) __attribute__((__format__ (__printf__, 3, 0)));
+-
+-int _synctex_log(int level, const char * prompt, const char * reason,va_list arg) {
++static int _synctex_log(int level, const char * prompt, const char * reason, ...) SYNCTEX_PRINTF_FORMAT(3, 0);
++static int _synctex_log(int level, const char * prompt, const char * reason, ...) {
++ va_list arg;
+ int result;
++ va_start(arg, reason);
+ # ifdef SYNCTEX_RECENT_WINDOWS
+ {/* This code is contributed by William Blum.
+ As it does not work on some older computers,
+@@ -133,10 +133,10 @@ int _synctex_log(int level, const char *
+ result += vfprintf(where, reason, arg);
+ result += fprintf(where,"\n");
+ # endif
++ va_end(arg);
+ return result;
+ }
+
+-__attribute__((__format__ (__printf__, 1, 0)))
+ int _synctex_error(const char * reason,...) {
+ va_list arg;
+ int result;
+@@ -355,6 +355,7 @@ char * _synctex_merge_strings(const char
+ size_t len = strlen(temp);
+ if(UINT_MAX-len<size) {
+ _synctex_error("! _synctex_merge_strings: Capacity exceeded.");
++ va_end(arg);
+ return NULL;
+ }
+ size+=len;
+@@ -374,6 +375,7 @@ char * _synctex_merge_strings(const char
+ if(dest != strncpy(dest,temp,size)) {
+ _synctex_error("! _synctex_merge_strings: Copy problem");
+ free(result);
++ va_end(arg);
+ result = NULL;
+ return NULL;
+ }
+--- a/cut-n-paste/synctex/synctex_parser.c
++++ b/cut-n-paste/synctex/synctex_parser.c
+@@ -8411,6 +8411,7 @@ struct synctex_updater_t {
+ int length; /* the number of chars appended */
+ };
+
++static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3);
+ static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) {
+ int result = 0;
+ if (updater) {
+@@ -8447,6 +8448,7 @@ static int vasprintf(char **ret,
+ /**
+ * gzvprintf is not available until OSX 10.10
+ */
++static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3);
+ static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) {
+ int result = 0;
+ if (updater) {
+--- a/cut-n-paste/synctex/synctex_parser_utils.h
++++ b/cut-n-paste/synctex/synctex_parser_utils.h
+@@ -85,7 +85,11 @@ extern "C" {
+ # else
+ # define SYNCTEX_ARE_PATH_CHARACTERS_EQUAL(left,right) (toupper(left) != toupper(right))
+ # endif
+-
++# ifdef __GNUC__
++# define SYNCTEX_PRINTF_FORMAT(si, ftc) __attribute__ ((format (printf, si, ftc)))
++# else
++# define SYNCTEX_PRINTF_FORMAT(si, ftc)
++# endif
+ /* This custom malloc functions initializes to 0 the newly allocated memory.
+ * There is no bzero function on windows. */
+ void *_synctex_malloc(size_t size);
+@@ -97,8 +101,8 @@ void _synctex_free(void * ptr);
+ /* This is used to log some informational message to the standard error stream.
+ * On Windows, the stderr stream is not exposed and another method is used.
+ * The return value is the number of characters printed. */
+- int _synctex_error(const char * reason,...);
+- int _synctex_debug(const char * reason,...);
++ int _synctex_error(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2);
++ int _synctex_debug(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2);
+
+ /* strip the last extension of the given string, this string is modified!
+ * This function depends on the OS because the path separator may differ.
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb
deleted file mode 100644
index f45180e79..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
-SECTION = "x11/office"
-DEPENDS = "gtk+3 libsecret ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} poppler gstreamer1.0-plugins-base orc adwaita-icon-theme intltool-native gnome-common-native"
-
-inherit gnomebase pkgconfig gtk-icon-cache gsettings gobject-introspection distro_features_check systemd
-
-SRC_URI = " \
- ${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
- file://0001-help-remove-YELP-macro.patch \
- file://0001-Add-format-attribute-to-_synctex_malloc.patch \
- file://0001-add-a-formatting-attribute-check.patch \
- file://0001-libview-Remove-EvDocumentModel-get-type-function-dec.patch \
-"
-SRC_URI[archive.md5sum] = "66aa1766eaaa37536e48def11a0e67a3"
-SRC_URI[archive.sha256sum] = "0955d22d85c9f6d322b6cbb464f1cc4c352db619017ec95dad4cc5c3440f73e1"
-
-EXTRA_OECONF = "--enable-thumbnailer"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
-}
-
-
-do_install_append() {
- install -d ${D}${datadir}/pixmaps
- install -m 0755 ${S}/data/icons/48x48/apps/evince.png ${D}${datadir}/pixmaps/
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}
- then
- install -d ${D}${systemd_unitdir}/system
- mv ${D}${systemd_user_unitdir}/evince.service ${D}${systemd_system_unitdir}/evince.service
- else
- rm -rf ${D}${libdir}/systemd/user/evince.service
- fi
- rmdir --ignore-fail-on-non-empty ${D}${systemd_user_unitdir}
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus"
-PACKAGECONFIG[browser-plugin] = "--enable-browser-plugin,--disable-browser-plugin,"
-
-SYSTEMD_SERVICE_${PN} = "evince.service"
-
-RDEPENDS_${PN} += "glib-2.0-utils"
-RRECOMMMENDS_${PN} = "adwaita-icon-theme"
-
-PACKAGES =+ "${PN}-nautilus-extension"
-PACKAGES =+ "${PN}-browser-plugin"
-
-FILES_${PN} += "${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/thumbnailers \
- ${systemd_unitdir}/systemd/user/evince.service \
- "
-FILES_${PN}-dbg += "${libdir}/*/*/.debug \
- ${libdir}/*/*/*/.debug"
-FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \
- ${libdir}/evince/*/backends/*.la"
-FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \
- ${libdir}/evince/*/backends/*.a"
-FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
-FILES_${PN}-browser-plugin = "${libdir}/mozilla/*/*so"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.34.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.34.1.bb
new file mode 100644
index 000000000..e30162c06
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.34.1.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
+SECTION = "x11/office"
+DEPENDS = " \
+ gnome-common-native \
+ yelp-tools-native \
+ appstream-glib \
+ gtk+3 \
+ gspell \
+ libsecret \
+ poppler \
+ gstreamer1.0-plugins-base \
+ orc \
+ adwaita-icon-theme \
+ ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} \
+"
+
+inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection upstream-version-is-even gettext features_check
+
+SRC_URI[archive.md5sum] = "77b38b625008f5940e9bd4b3d38e8cf8"
+SRC_URI[archive.sha256sum] = "85e407cde396147b249120d816c7715fb6df191ca561cf65ff3554a5d67626df"
+SRC_URI += " \
+ file://0001-Add-format-attribute-to-_synctex_malloc.patch \
+ file://0002-add-a-formatting-attribute-check.patch \
+"
+
+EXTRA_OECONF = " \
+ --enable-thumbnailer \
+ --without-systemduserunitdir \
+"
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus"
+PACKAGECONFIG[browser-plugin] = "--enable-browser-plugin,--disable-browser-plugin,"
+
+RDEPENDS_${PN} += "glib-2.0-utils"
+RRECOMMMENDS_${PN} = "adwaita-icon-theme"
+
+PACKAGES =+ "${PN}-nautilus-extension"
+PACKAGES =+ "${PN}-browser-plugin"
+
+FILES_${PN} += "${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/thumbnailers \
+"
+FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
+FILES_${PN}-browser-plugin = "${libdir}/mozilla/*/*so"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb
new file mode 100644
index 000000000..681a61c33
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb
@@ -0,0 +1,23 @@
+require ${BPN}.inc
+
+inherit native
+
+DEPENDS = "glib-2.0-native"
+
+# build native helpers
+do_compile() {
+ cd ${S}/src/camel
+ sed -i 's:#include "evolution-data-server-config.h"::g' camel-gen-tables.c
+ ${CC} -o ${B}/camel-gen-tables camel-gen-tables.c ${CFLAGS} ${LDFLAGS}
+
+ LDFLAGS_glib=`pkg-config glib-2.0 --libs`
+ CFLAGS_glib=`pkg-config glib-2.0 --cflags`
+ cd ${S}/src/addressbook/libebook-contacts
+ sed -i 's:#include "evolution-data-server-config.h"::g' gen-western-table.c
+ ${CC} -o ${B}/gen-western-table gen-western-table.c ${CFLAGS} ${CFLAGS_glib} ${LDFLAGS} ${LDFLAGS_glib}
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${B}/* ${D}${bindir}
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
new file mode 100644
index 000000000..08bd778d0
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
@@ -0,0 +1,70 @@
+require ${BPN}.inc
+
+DEPENDS = " \
+ ${BPN}-native intltool-native gperf-native \
+ glib-2.0 gtk+3 libgdata \
+ dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \
+"
+
+inherit gsettings gobject-introspection features_check cmake gtk-doc gettext perlnative pythonnative
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " \
+ file://0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch \
+ file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \
+ file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \
+ file://0004-call-native-helpers.patch \
+ file://iconv-detect.h \
+"
+
+LKSTRFTIME = "HAVE_LKSTRFTIME=ON"
+LKSTRFTIME_libc-musl = "HAVE_LKSTRFTIME=OFF"
+
+# For arm qemu-arm runs at 100% CPU load and never returns - so disable introspection for now
+GI_DATA_ENABLED="False"
+
+EXTRA_OECMAKE = " \
+ -DSYSCONF_INSTALL_DIR=${sysconfdir} \
+ -DWITH_KRB5=OFF \
+ -DENABLE_GOA=OFF \
+ -DENABLE_UOA=OFF \
+ -DENABLE_GOOGLE_AUTH=OFF \
+ -DENABLE_WEATHER=OFF \
+ -DENABLE_INTROSPECTION=${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'ON', 'OFF', d)} \
+ -D${LKSTRFTIME} \
+ -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+"
+
+PACKAGECONFIG[canberra] = "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra"
+PACKAGECONFIG[oauth] = "-DENABLE_OAUTH2=ON,-DENABLE_OAUTH2=OFF,webkitgtk json-glib"
+
+# BROKEN: due missing pkg-config in openldap eds' cmake finds host-libs when
+# searching for openldap-libs
+PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap"
+
+# -ldb needs this on some platforms
+LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0"
+
+do_configure_append () {
+ cp ${WORKDIR}/iconv-detect.h ${S}/src
+
+ # fix native perl shebang
+ sed -i 's:${STAGING_BINDIR_NATIVE}/perl-native:${bindir}:' ${B}/src/tools/addressbook-export/csv2vcard
+
+ # fix abs path for g-ir-scanner-wrapper
+ sed -i ${B}/build.ninja \
+ -e 's: ${bindir}/g-ir-scanner-wrapper: ${STAGING_BINDIR}/g-ir-scanner-wrapper:g'
+}
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs"
+}
+
+FILES_${PN} =+ " \
+ ${datadir}/dbus-1 \
+ ${datadir}/evolution-data-server-*/ui/ \
+ ${systemd_user_unitdir} \
+"
+
+RDEPENDS_${PN} += "perl"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
new file mode 100644
index 000000000..0893f8e92
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
@@ -0,0 +1,15 @@
+SUMMARY = "Evolution database backend server"
+HOMEPAGE = "http://www.gnome.org/projects/evolution/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPLv2 & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
+ file://src/camel/camel.h;endline=24;md5=342fc5e9357254bc30c24e43ae47d9a1 \
+ file://src/libedataserver/e-data-server-util.h;endline=20;md5=8f21a9c80ea82a4fb80b5f959f672543"
+
+inherit gnomebase upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "d1701875bbac80d6d62e9acfc6c43bea"
+SRC_URI[archive.sha256sum] = "6ff56ba04cb639e627fe9d6e0ada106a10cadd68a0d53b8ec72b4e285df53abe"
+PV = "3.34.1"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch
index cc9dca4ea..e8c6d6a76 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch
@@ -1,7 +1,7 @@
-From e32075119803f9fffbba01a31083e416cb213011 Mon Sep 17 00:00:00 2001
+From 131b88a81aba3d72d566bc8a9d968941a98e0007 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Tue, 19 Dec 2017 16:37:20 +0100
-Subject: [PATCH 1/7] CMakeLists.txt: Remove TRY_RUN for iconv
+Date: Sun, 31 Mar 2019 18:11:55 +0200
+Subject: [PATCH] CMakeLists.txt: Remove TRY_RUN for iconv
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -13,22 +13,24 @@ Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
- CMakeLists.txt | 6 ------
- 1 file changed, 6 deletions(-)
+ CMakeLists.txt | 11 -----------
+ 1 file changed, 11 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f9d72db..ed99904 100644
+index 1672daf..0b3e4e0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -526,15 +526,9 @@ endif(NOT HAVE_ICONV)
+@@ -524,17 +524,6 @@ if(NOT HAVE_ICONV)
+ message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv")
+ endif(NOT HAVE_ICONV)
- set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBS})
- file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/" _binary_dir_with_separator)
+-set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBS})
+-file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/" _binary_dir_with_separator)
-CHECK_C_SOURCE_RUNS("#define ICONV_DETECT_BUILD_DIR \"${_binary_dir_with_separator}\"
- #include \"${CMAKE_SOURCE_DIR}/iconv-detect.c\"" _correct_iconv)
- unset(_binary_dir_with_separator)
- unset(CMAKE_REQUIRED_LIBRARIES)
-
+-unset(_binary_dir_with_separator)
+-unset(CMAKE_REQUIRED_LIBRARIES)
+-
-if(NOT _correct_iconv)
- message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv")
-endif(NOT _correct_iconv)
@@ -37,5 +39,5 @@ index f9d72db..ed99904 100644
# Backtraces for debugging
# ******************************
--
-2.21.0
+2.20.1
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
index 23c3a96d4..23c3a96d4 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch
index c9e6f96f5..c9e6f96f5 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Add-native-suffix-to-exacutables-produced-and-run-du.patch b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch
index 67023df2c..e320f6342 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Add-native-suffix-to-exacutables-produced-and-run-du.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch
@@ -1,26 +1,21 @@
-From 30bd4ae3badb152c9f81c6d34014c586fa0cc825 Mon Sep 17 00:00:00 2001
-From: Piotr Tworek <tworaz@tworaz.net>
-Date: Mon, 12 Aug 2019 14:13:52 +0200
-Subject: [PATCH 4/7] Add native suffix to exacutables produced and run during
- build process.
+From 9c375e3fcf8ff778a5010a07a7da4b6a58adec7c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 31 Mar 2019 19:11:31 +0200
+Subject: [PATCH] call native helpers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
-CMake can't build tools for the host system when cross compiling. As
-result eds currently fails to build in OE due to some programs being
-cross compiled for the target and run on the host. To work around this
-limitation modify existing targets using build time generated binaries
-to invoke binaries suffixed with -native. We can inject such binaries
-into expected locations prior to invoking ninja in do_compile.
+Upstream-Status: Inappropriate[oe-specific]
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
src/addressbook/libebook-contacts/CMakeLists.txt | 2 +-
src/camel/CMakeLists.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/addressbook/libebook-contacts/CMakeLists.txt b/src/addressbook/libebook-contacts/CMakeLists.txt
-index e9e3259..2ae72a8 100644
+index e9e3259..e749d1b 100644
--- a/src/addressbook/libebook-contacts/CMakeLists.txt
+++ b/src/addressbook/libebook-contacts/CMakeLists.txt
@@ -25,7 +25,7 @@ target_link_libraries(gen-western-table
@@ -28,12 +23,12 @@ index e9e3259..2ae72a8 100644
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h
- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gen-western-table "${CMAKE_CURRENT_SOURCE_DIR}/e-name-western-tables.h.in" >${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h
-+ COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gen-western-table-native "${CMAKE_CURRENT_SOURCE_DIR}/e-name-western-tables.h.in" >${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h
++ COMMAND gen-western-table "${CMAKE_CURRENT_SOURCE_DIR}/e-name-western-tables.h.in" >${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h
DEPENDS gen-western-table e-name-western-tables.h.in
)
diff --git a/src/camel/CMakeLists.txt b/src/camel/CMakeLists.txt
-index be626a8..9226b2b 100644
+index be626a8..14ac8b8 100644
--- a/src/camel/CMakeLists.txt
+++ b/src/camel/CMakeLists.txt
@@ -10,7 +10,7 @@ target_include_directories(camel-gen-tables PUBLIC
@@ -41,10 +36,10 @@ index be626a8..9226b2b 100644
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c
- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/camel-gen-tables >${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c
-+ COMMAND ${CMAKE_CURRENT_BINARY_DIR}/camel-gen-tables-native >${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c
++ COMMAND camel-gen-tables >${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c
DEPENDS camel-gen-tables
)
--
-2.21.0
+2.20.1
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h
index 46f476d5b..46f476d5b 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.2.bb
new file mode 100644
index 000000000..7dcf3e9ec
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "An archive manager utility for the GNOME Environment"
+LICENSE="GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = " \
+ glib-2.0-native \
+ gtk+3 \
+ nautilus \
+ libarchive \
+ libnotify \
+"
+
+inherit gnomebase gsettings itstool gnome-help gettext upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "e79715bb2400df83c0f67cc0cce2b655"
+SRC_URI[archive.sha256sum] = "c60a79e0baf74cb1c09a1c8f5ffe0d6e311227ca14ecc5b1156beb3715341a71"
+
+PACKAGECONFIG[nautilus] = "-Dnautilus-actions=true,-Dnautilus-actions=false,nautilus"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${libdir}/nautilus \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch b/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch
deleted file mode 100644
index 4ad57effe..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1d2e6165e3154e27ecde329a40c05f0880afb9e0 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 17 May 2016 14:14:03 +0300
-Subject: [PATCH] Remove help directory from build
-
-It hardcodes the use of xml2po utility, which is provided by obsolete gnome-doc-utils
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- Makefile.am | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index e57b203..a88152d 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -3,9 +3,6 @@ ACLOCAL_AMFLAGS = -I m4
-
- SUBDIRS = gedit pixmaps po data plugin-loaders plugins docs tests win32 osx
-
--if !OS_OSX
--SUBDIRS += help
--endif
-
- distuninstallcheck_listfiles = find . -type f -print | grep -v scrollkeeper
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch b/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch
deleted file mode 100644
index 4885c4511..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 623ffac1f6e7725041b386e0f2933fe36809b5a9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 09:04:30 -0700
-Subject: [PATCH] gedit-utils: qualify handle_builder_error() with format
- string parameters
-
-gedit-utils.c:1063:32: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
- msg_plain = g_strdup_vprintf (message, args);
- ^~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gedit/gedit-utils.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gedit/gedit-utils.c b/gedit/gedit-utils.c
-index 41a5afd..c800828 100644
---- a/gedit/gedit-utils.c
-+++ b/gedit/gedit-utils.c
-@@ -1051,7 +1051,7 @@ gedit_utils_is_valid_uri (const gchar *uri)
- return TRUE;
- }
-
--static GtkWidget *
-+static G_GNUC_PRINTF(1, 2) GtkWidget *
- handle_builder_error (const gchar *message, ...)
- {
- GtkWidget *label;
---
-2.14.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch b/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch
deleted file mode 100644
index 11afe75ce..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ee43bcc3c8d69fe56a64c3487e2d3c780ea5d25e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 06:53:35 -0700
-Subject: [PATCH] tests/document-saver.c: Define ACCESSPERMS if not defined
- already
-
-Helps compile with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/document-saver.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/tests/document-saver.c b/tests/document-saver.c
-index 9f44d5a..811ade6 100644
---- a/tests/document-saver.c
-+++ b/tests/document-saver.c
-@@ -41,6 +41,10 @@
- #define UNOWNED_GROUP_LOCAL_URI "/tmp/gedit-document-saver-unowned-group.txt"
- #define UNOWNED_GROUP_REMOTE_URI "sftp://localhost/tmp/gedit-document-saver-unowned-group.txt"
-
-+#if !defined(ACCESSPERMS)
-+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
-+#endif
-+
- static gboolean test_completed;
- static gboolean mount_completed;
- static gboolean mount_success;
---
-2.13.2
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch b/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch
deleted file mode 100644
index a28808b8d..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 8e0cbfac142d38320dd02416601e14c65585cd17 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Sat, 9 Mar 2013 12:47:06 +0100
-Subject: [PATCH] workaround void pointer arithmetic
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-fixes errors like:
-error: pointer of type 'void *' used in arithmetic [-Werror=pointer-arith]
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- gedit/gedit-document-input-stream.c | 4 ++--
- gedit/gedit-smart-charset-converter.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/gedit/gedit-document-input-stream.c b/gedit/gedit-document-input-stream.c
-index 5a1f961..38316e7 100644
---- a/gedit/gedit-document-input-stream.c
-+++ b/gedit/gedit-document-input-stream.c
-@@ -426,7 +426,7 @@ gedit_document_input_stream_read (GInputStream *stream,
-
- do
- {
-- n = read_line (dstream, buffer + read, space_left);
-+ n = read_line (dstream, ((char*)buffer) + read, space_left);
- read += n;
- space_left -= n;
- } while (space_left > 0 && n != 0 && dstream->priv->bytes_partial == 0);
-@@ -451,7 +451,7 @@ gedit_document_input_stream_read (GInputStream *stream,
-
- newline = get_new_line (dstream);
-
-- memcpy (buffer + read, newline, newline_size);
-+ memcpy (((char*)buffer) + read, newline, newline_size);
-
- read += newline_size;
- dstream->priv->newline_added = TRUE;
-diff --git a/gedit/gedit-smart-charset-converter.c b/gedit/gedit-smart-charset-converter.c
-index e32b0b1..6745ce3 100644
---- a/gedit/gedit-smart-charset-converter.c
-+++ b/gedit/gedit-smart-charset-converter.c
-@@ -153,7 +153,7 @@ try_convert (GCharsetConverter *converter,
- do
- {
- res = g_converter_convert (G_CONVERTER (converter),
-- inbuf + nread,
-+ ((const char*)inbuf) + nread,
- inbuf_size - nread,
- out + nwritten,
- out_size - nwritten,
---
-1.7.4.4
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch b/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch
deleted file mode 100644
index a5d231012..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4ebdf8023f763f75a7e1b548894de2e8b784f4a8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Fri, 29 Jul 2016 23:19:40 +0200
-Subject: [PATCH] suppress string format literal warning to fix build with gcc6
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- plugins/time/gedit-time-plugin.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/plugins/time/gedit-time-plugin.c b/plugins/time/gedit-time-plugin.c
-index d2ffdb9..441d9f9 100644
---- a/plugins/time/gedit-time-plugin.c
-+++ b/plugins/time/gedit-time-plugin.c
-@@ -473,12 +473,15 @@ get_time (const gchar* format)
- clock = time (NULL);
- now = localtime (&clock);
-
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- do
- {
- out_length += 255;
- out = g_realloc (out, out_length);
- }
- while (strftime (out, out_length, locale_format, now) == 0);
-+#pragma GCC diagnostic pop
-
- g_free (locale_format);
-
---
-2.5.5
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb
deleted file mode 100644
index 6e0720888..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "GNOME editor"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2+"
-PR = "r2"
-
-DEPENDS = "gvfs enchant gconf gnome-doc-utils glib-2.0 glib-2.0-native gtk+ \
- gtksourceview2 iso-codes intltool-native gnome-common-native \
- libice python3-six-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit distro_features_check gnomebase gconf gettext python3native
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
- file://0001-workaround-void-pointer-arithmetic.patch \
- file://0001-Remove-help-directory-from-build.patch \
- file://0002-suppress-string-format-literal-warning-to-fix-build-.patch \
- file://0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch \
- file://0001-gedit-utils-qualify-handle_builder_error-with-format.patch \
- "
-SRC_URI[archive.md5sum] = "e1eecb0a92a1a363b3d375ec5ac0fb3b"
-SRC_URI[archive.sha256sum] = "a561fe3dd1d199baede1bd07c4ee65f06fc7c494dd4d3327117f04149a608e3c"
-GNOME_COMPRESS_TYPE="bz2"
-
-EXTRA_OECONF = "--disable-scrollkeeper \
- --enable-gvfs-metadata"
-
-LDFLAGS += "-lgmodule-2.0 -lICE"
-
-FILES_${PN} += "${libdir}/gedit-2/plugin* ${datadir}/gedit-2"
-FILES_${PN}-dbg += "${libdir}/gedit-2/plugin-loaders/.debug ${libdir}/gedit-2/plugins/.debug"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.34.0.bb
new file mode 100644
index 000000000..e9cdd8a6e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.34.0.bb
@@ -0,0 +1,44 @@
+SUMMARY = "GNOME editor"
+SECTION = "x11/gnome"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = " \
+ yelp-tools-native \
+ libxml2-native \
+ gdk-pixbuf-native \
+ iso-codes \
+ gtk+3 \
+ gsettings-desktop-schemas \
+ gtksourceview4 \
+ libpeas \
+ libsoup-2.4 \
+ gspell \
+ gtksourceview4 \
+"
+
+inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc vala gettext features_check upstream-version-is-even
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.md5sum] = "ec6632fa73d9ea6c817e74a98d16eab6"
+SRC_URI[archive.sha256sum] = "3e95e51d3ccb495a9ac95aa3ed7fe8fe37ccde7c678f37fa3cea684bc71d507e"
+
+GTKDOC_MESON_OPTION = "documentation"
+
+PACKAGECONFIG ??= "gvfs"
+PACKAGECONFIG[gvfs] = "-Denable-gvfs-metadata=yes,-Denable-gvfs-metadata=no,,gvfs"
+
+PACKAGES += "${PN}-python"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
+
+FILES_${PN}-python += " \
+ ${PYTHON_SITEPACKAGES_DIR} \
+"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.1.bb
new file mode 100644
index 000000000..dc218f3a3
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A convenience library for the geocoding"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+GNOMEBASEBUILDCLASS = "meson"
+GIR_MESON_OPTION = "enable-introspection"
+GTKDOC_MESON_OPTION = "enable-gtk-doc"
+
+inherit gnomebase gobject-introspection gettext gtk-doc upstream-version-is-even
+
+DEPENDS = " \
+ json-glib \
+ libsoup-2.4 \
+"
+
+SRC_URI[archive.md5sum] = "21094494e66c86368add6a55bf480049"
+SRC_URI[archive.sha256sum] = "5baa6ab76a76c9fc567e4c32c3af2cd1d1784934c255bc5a62c512e6af6bde1c"
+
+EXTRA_OEMESON = "-Denable-installed-tests=false"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.0.bb
new file mode 100644
index 000000000..458eaeaa1
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A GObject-based Exiv2 wrapper"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
+
+DEPENDS = "exiv2"
+
+GNOMEBASEBUILDCLASS = "meson"
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit gnomebase gobject-introspection gtk-doc
+
+SRC_URI[archive.md5sum] = "0a618c5b053106d1801d89cc77385419"
+SRC_URI[archive.sha256sum] = "58f539b0386f36300b76f3afea3a508de4914b27e78f58ee4d142486a42f926a"
+
+EXTRA_OEMESON = " \
+ -Dvapi=false \
+ -Dpython2_girdir=no \
+ -Dpython3_girdir=no \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.2.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.2.3.bb
new file mode 100644
index 000000000..16a9213cb
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.2.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "GNOME archive library"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ gnome-common-native \
+ gtk+3 \
+ libarchive \
+"
+
+inherit gnomebase gobject-introspection gtk-doc vala
+
+SRC_URI[archive.md5sum] = "39b13fb2fc7752fa3b80616244dc4ef8"
+SRC_URI[archive.sha256sum] = "5de9db0db028cd6cab7c2fec46ba90965474ecf9cd68cfd681a6488cf1fb240a"
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs"
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.32.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.0.bb
index 3c4438e7e..ae6587be1 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.32.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.0.bb
@@ -16,7 +16,7 @@ inherit gnomebase gtk-icon-cache gtk-doc gobject-introspection upstream-version-
# gtk-icon-cache bbclass will take care of this for us.
EXTRA_OEMESON = "-Dicon_update=false"
-SRC_URI[archive.md5sum] = "5b3d66f564a5067ea154750cdb6d850d"
-SRC_URI[archive.sha256sum] = "6441cafd313af94fba28b701698074f97d693b9023788a74e8e6f16f817ba1aa"
+SRC_URI[archive.md5sum] = "0c567e124a52e8ddc31c8bed0c3e57a1"
+SRC_URI[archive.sha256sum] = "e867e67423e1dc78c56c2ea11dec066ce0254238d559e4777c80fa2935eb6baf"
RDEPENDS_${PN} += "bluez5"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.1.bb
index 77aa3fb61..a2f73590f 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.1.bb
@@ -8,23 +8,23 @@ BPN = "gnome-desktop"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase pkgconfig upstream-version-is-even gobject-introspection distro_features_check
+inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspection features_check
# gobject-introspection is mandatory and cannot be configured
REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
-SRC_URI[archive.md5sum] = "3149bbd12eaf6f4420b1a999131ec470"
-SRC_URI[archive.sha256sum] = "8d331ee655c1d56b2b97562a07c7a7598ff6706a11ff1cdce97423ebc6b62426"
+SRC_URI[archive.md5sum] = "357b4e63960830c1399d3341d05746ea"
+SRC_URI[archive.sha256sum] = "c1dbeb5666dad27166c769e48e2ab41dd5ed74718ea35eb57c8488790662dc5a"
SRC_URI += " \
file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \
"
-DEPENDS += "itstool-native gsettings-desktop-schemas virtual/libx11 gtk+3 startup-notification xkeyboard-config iso-codes udev"
+DEPENDS += "gsettings-desktop-schemas virtual/libx11 gtk+3 startup-notification xkeyboard-config iso-codes udev"
-inherit distro_features_check gtk-doc
+inherit features_check gtk-doc
REQUIRED_DISTRO_FEATURES += "x11"
GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_3.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_3.34.0.bb
new file mode 100644
index 000000000..5be8d5037
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_3.34.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "GNOME bluetooth manager"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+ gtk+3 \
+ gnome-desktop3 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gtk-icon-cache gettext features_check upstream-version-is-even
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.md5sum] = "76004a8986ea622b09c408b01a6f42e5"
+SRC_URI[archive.sha256sum] = "aa6f0583e5f93aec095e537f0638b29de3d02491f0131ef584a7c55d39d6b98b"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/thumbnailers \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.28.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.28.2.bb
index 8dc11c85d..a84c218e6 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.28.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.28.2.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = " \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
"
-inherit distro_features_check gnomebase remove-libtool gettext upstream-version-is-even
+inherit features_check gnomebase remove-libtool gettext upstream-version-is-even
DEPENDS = " \
intltool-native \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb
deleted file mode 100644
index 647ae914f..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "GNOME menus"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = "python libxml2 gconf popt gtk+3 intltool-native gnome-common-native"
-
-inherit distro_features_check gnomebase pkgconfig python-dir pythonnative gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-BPN = "gnome-menus"
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BPN}-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "6db025e79e2b69f39fc7aa0753f43081"
-SRC_URI[sha256sum] = "46950aba274c1ad58234374fa9b235258650737307f3bc396af48eb983668a71"
-
-FILES_${PN} += "${datadir}/desktop-directories/"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.32.0.bb
new file mode 100644
index 000000000..3f441d915
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.32.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "GNOME menus"
+SECTION = "x11/gnome"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "python libxml2 popt gtk+3 gnome-common-native"
+
+inherit features_check gnomebase gettext pkgconfig gobject-introspection upstream-version-is-even
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+BPN = "gnome-menus"
+
+SRC_URI[archive.md5sum] = "4262208c13f266d9ada7d356aada9e1b"
+SRC_URI[archive.sha256sum] = "c850c64b2074265fe59e099a340b8689cf3dd4658dc9feddd2ab5e95f1a74b74"
+
+FILES_${PN} += "${datadir}/desktop-directories/"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.34.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.34.1.bb
new file mode 100644
index 000000000..65f669349
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_3.34.1.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Window navigation construction toolkit"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "528b0b7cc2dd22c6026a9c8739c71fa7"
+SRC_URI[archive.sha256sum] = "7ce4979817866911a94ecb75b36db56797e038c0c524c5c1a81aefccafc17337"
+
+DEPENDS = " \
+ colord \
+ geocode-glib \
+ gcr \
+ gnome-desktop3 \
+ libgweather \
+ lcms \
+ libcanberra \
+ geoclue \
+ libnotify \
+ upower \
+ libwacom \
+ virtual/libx11 \
+"
+
+# all these are mandatory
+REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
+
+SRC_URI[archive.md5sum] = "cdd0d0c8664056deb78aa40c88ec24d1"
+SRC_URI[archive.sha256sum] = "9981a20babf8da7744b7fbe175b9e36078bf08f3bf65fe5aedeb82cfe27ac11f"
+
+# allow cross build mixed with build of native tools
+do_write_config_append() {
+ cat >${WORKDIR}/meson.native <<EOF
+[binaries]
+pkgconfig = 'pkg-config-native'
+EOF
+}
+EXTRA_OEMESON = "--native-file ${WORKDIR}/meson.native"
+
+PACKAGECONFIG ??= " \
+ cups nm \
+ alsa gudev \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
+"
+PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,alsa-lib"
+PACKAGECONFIG[cups] = "-Dcups=true,-Dcups=false,cups"
+PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
+PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanager"
+PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland"
+
+FILES_${PN} += " \
+ ${systemd_user_unitdir} \
+ ${libdir}/gnome-settings-daemon-3.0/libgsd.so \
+"
+
+RDEPEND_${PN} += "gdbus"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor/0001-Do-not-build-help-we-do-not-have-yelp-yet.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor/0001-Do-not-build-help-we-do-not-have-yelp-yet.patch
deleted file mode 100644
index f2e720e9e..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor/0001-Do-not-build-help-we-do-not-have-yelp-yet.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c6649fdcfb2f44807089741557f8e527ab9751e4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sun, 24 Mar 2019 02:46:07 +0100
-Subject: [PATCH] Do not build help - we do not have yelp yet
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [embedded-specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- meson.build | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index d60ced7..6a0ab4b 100644
---- a/meson.build
-+++ b/meson.build
-@@ -183,7 +183,6 @@ subdir('data')
- subdir('po')
- subdir('scripts')
- subdir('src')
--subdir('help')
-
-
- message('\n'.join(['',
---
-2.20.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.1.bb
index 8930e1222..a3583d1de 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.32.1.bb
@@ -3,7 +3,6 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = " \
- itstool-native \
gnome-common-native \
libxml2-native \
glib-2.0-native \
@@ -15,13 +14,12 @@ DEPENDS = " \
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gconf gtk-icon-cache distro_features_check gettext
+inherit gnomebase gnome-help itstool gtk-icon-cache features_check gettext upstream-version-is-even
REQUIRED_DISTRO_FEATURES = "x11 polkit"
-SRC_URI[archive.md5sum] = "6c2c5c5bf8f15d3e6985faacbd3055dd"
-SRC_URI[archive.sha256sum] = "af00c4a42dd1db17d9abe88edb11c7751b20982db1a8a2a467bab206fd8a77e3"
-SRC_URI += "file://0001-Do-not-build-help-we-do-not-have-yelp-yet.patch"
+SRC_URI[archive.md5sum] = "37356a1b8c20939adc6f47f739d2e49a"
+SRC_URI[archive.sha256sum] = "48c131335091bd927862f40ef56400f997981df2acfc82abea662bf91a1ea4f1"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
new file mode 100644
index 000000000..a69390eb2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
@@ -0,0 +1,35 @@
+From f231cecc151930fd5b6309da317a8c5bc6001f38 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 17 Nov 2019 15:55:54 +0100
+Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/terminal.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/terminal.c b/src/terminal.c
+index d06ce35..6284e4c 100644
+--- a/src/terminal.c
++++ b/src/terminal.c
+@@ -47,6 +47,12 @@
+ GS_DEFINE_CLEANUP_FUNCTION0(TerminalOptions*, gs_local_options_free, terminal_options_free)
+ #define gs_free_options __attribute__ ((cleanup(gs_local_options_free)))
+
++/* fix for musl */
++#ifndef W_EXITCODE
++#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
++#endif
++
++
+ /* Wait-for-exit helper */
+
+ typedef struct {
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.34.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.34.2.bb
new file mode 100644
index 000000000..ba9a79d89
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.34.2.bb
@@ -0,0 +1,37 @@
+SUMMARY = "GNOME terminal"
+LICENSE = "GPLv3 & GFDL-1.3"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+ file://COPYING.GFDL;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
+"
+
+inherit gnomebase gsettings gnome-help gettext itstool upstream-version-is-even
+
+DEPENDS = " \
+ glib-2.0-native \
+ intltool-native \
+ yelp-tools-native \
+ desktop-file-utils-native \
+ gtk+3 \
+ gsettings-desktop-schemas \
+ vte \
+ dconf \
+ libpcre2 \
+"
+
+SRC_URI[archive.md5sum] = "13fa9f5f459481c7f05b6964c470ef16"
+SRC_URI[archive.sha256sum] = "3bd723f4058ec014da4715db4181b7d73eccc797b85ad5e6236996951c01803d"
+SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
+
+EXTRA_OECONF += " \
+ --disable-search-provider \
+ --without-nautilus-extension \
+"
+
+FILES_${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+ ${systemd_user_unitdir} \
+"
+
+RRECOMMENDS_${PN} += "vte-prompt gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb
index 9de298c41..128a89f5d 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb
@@ -1,4 +1,4 @@
-SUMMARY = "spell adds spell-checking to a GTK+ applications"
+SUMMARY = "gspell adds spell-checking to a GTK+ applications"
HOMEPAGE = "https://wiki.gnome.org/Projects/gspell"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=8c2e1ec1540fb3e0beb68361344cba7e"
@@ -7,5 +7,5 @@ DEPENDS = "gtk+3 iso-codes enchant2"
inherit gnomebase gettext gobject-introspection
-SRC_URI[archive.md5sum] = "8269918ea5ff798e49943e7daf6a32b9"
-SRC_URI[archive.sha256sum] = "819a1d23c7603000e73f5e738bdd284342e0cd345fb0c7650999c31ec741bbe5"
+SRC_URI[archive.md5sum] = "4f857382bc9d8d4afe1e67e5b5b9dbff"
+SRC_URI[archive.sha256sum] = "bb9195c3a95bacf556d0203e9691f7489e0d3bc5ae1e5a440c89b2f2435d3ed6"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb
index 7dabd1e39..bcc3106d9 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb
@@ -9,8 +9,6 @@ SRC_URI = "file://classic-light.xml"
S = "${WORKDIR}"
do_install() {
- install -d ${D}${datadir}/gtksourceview-2.0/styles
- install -m 0644 ${WORKDIR}/classic-light.xml ${D}${datadir}/gtksourceview-2.0/styles/
install -d ${D}${datadir}/gtksourceview-3.0/styles
install -m 0644 ${WORKDIR}/classic-light.xml ${D}${datadir}/gtksourceview-3.0/styles/
install -d ${D}${datadir}/gtksourceview-4/styles
@@ -18,7 +16,6 @@ do_install() {
}
FILES_${PN} = " \
- ${datadir}/gtksourceview-2.0/styles \
${datadir}/gtksourceview-3.0/styles \
${datadir}/gtksourceview-4/styles \
"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb
deleted file mode 100644
index 012f8e3bc..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Portable C library for multiline text editing"
-HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "gtk+ libxml2 intltool-native gnome-common-native glib-2.0-native"
-
-PNAME = "gtksourceview"
-
-S = "${WORKDIR}/${PNAME}-${PV}"
-
-inherit gnomebase lib_package gettext distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# overrule SRC_URI from gnome.conf
-SRC_URI = "${GNOME_MIRROR}/${PNAME}/${@gnome_verdir("${PV}")}/${PNAME}-${PV}.tar.bz2;name=archive \
- file://gtk-doc.make \
- file://suppress-string-format-literal-warning.patch \
- file://0001-test-widget.c-fix-non-literal-format-string-issues.patch \
- "
-SRC_URI[archive.md5sum] = "1219ad1694df136f126507466aeb41aa"
-SRC_URI[archive.sha256sum] = "c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e"
-
-do_configure_prepend() {
- cp ${WORKDIR}/gtk-doc.make ${S}/
- sed -i -e s:docs::g ${S}/Makefile.am
- echo "EXTRA_DIST = version.xml" > gnome-doc-utils.make
-}
-
-FILES_${PN} += " ${datadir}/gtksourceview-2.0"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
index f7884930c..13f81b4c9 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
@@ -10,7 +10,7 @@ PNAME = "gtksourceview"
S = "${WORKDIR}/${PNAME}-${PV}"
-inherit gnomebase lib_package gettext distro_features_check gtk-doc gobject-introspection upstream-version-is-even
+inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection upstream-version-is-even
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.2.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.4.0.bb
index 10deaffb8..bb49550c5 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.2.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.4.0.bb
@@ -10,12 +10,17 @@ PNAME = "gtksourceview"
S = "${WORKDIR}/${PNAME}-${PV}"
-inherit gnomebase lib_package gettext distro_features_check gtk-doc gobject-introspection
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection vala
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/4.2/${PNAME}-${PV}.tar.xz"
-SRC_URI[md5sum] = "c9e6913c2fd30ca2fcdd71482faf8b99"
-SRC_URI[sha256sum] = "c431eb234dc83c7819e58f77dd2af973252c7750da1c9d125ddc94268f94f675"
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/4.4/${PNAME}-${PV}.tar.xz"
+SRC_URI[md5sum] = "5c47e314517692f2622a0b724c65e628"
+SRC_URI[sha256sum] = "9ddb914aef70a29a66acd93b4f762d5681202e44094d2d6370e51c9e389e689a"
+
+GIR_MESON_OPTION = 'gir'
+GTKDOC_MESON_OPTION = "gtk_doc"
FILES_${PN} += "${datadir}/gtksourceview-4"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb
index d9f643106..d3b3bde43 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.1.bb
@@ -6,7 +6,7 @@ SECTION = "x11/gnome/libs"
DEPENDS = "gconf glib-2.0 libxklavier gtk+3 intltool-native"
-inherit distro_features_check gnomebase gobject-introspection gettext
+inherit features_check gnomebase gobject-introspection gettext
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
index a7c8a6fce..a990bfcfd 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
@@ -5,7 +5,7 @@ LICENSE = "LGPL-2.0+"
LIC_FILES_CHKSUM = "file://tap.c;beginline=1;endline=20;md5=71756eeb144e9eeb177c69aa672b1635"
PR = "r4"
-inherit distro_features_check autotools pkgconfig
+inherit features_check autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
index b594198a4..f0c9cdb0e 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
inherit gnomebase lib_package gtk-doc gobject-introspection gettext upstream-version-is-even
# depends on libxau
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI[archive.md5sum] = "c6d67325cd97b2208b41e07e6cc7b947"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.34.0.bb
new file mode 100644
index 000000000..d72b6ce24
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.34.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A library to access weather information from online services"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext gtk-doc vala features_check upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "52c3b1e27887fc88f862c92c42d930c1"
+SRC_URI[archive.sha256sum] = "02245395d639d9749fe2d19b7e66b64a152b9509ab0e5aad92514538b9c6f1b9"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+DEPENDS = " \
+ gtk+3 \
+ json-glib \
+ libsoup-2.4 \
+ geocode-glib \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
index 7f52c42cd..a0874521e 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
@@ -12,7 +12,7 @@ DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native"
B = "${S}"
-inherit distro_features_check autotools pkgconfig gobject-introspection
+inherit features_check autotools pkgconfig gobject-introspection
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb
index e4829ea8c..d88161a3d 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.32.0.bb
@@ -15,7 +15,7 @@ GTKDOC_MESON_OPTION = "gtk_doc"
GIR_MESON_ENABLE_FLAG = 'enabled'
GIR_MESON_DISABLE_FLAG = 'disabled'
-inherit gnomebase gobject-introspection gtk-doc gettext distro_features_check
+inherit gnomebase gobject-introspection gtk-doc gettext features_check
SRC_URI[archive.md5sum] = "89dbe5a1843fd3745b8b64b34a2ef55d"
SRC_URI[archive.sha256sum] = "9595835cf28d0fc6af5526a18f77f2fcf3ca8c09e36741bb33915b6e69b8e3ca"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
index f50b9ceb9..9eb041c27 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
@@ -8,7 +8,7 @@ DEPENDS = "intltool-native gnome-common-native gtk+ gdk-pixbuf-native libxres"
PACKAGECONFIG ??= "startup-notification"
PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-inherit gnomebase gobject-introspection distro_features_check
+inherit gnomebase gobject-introspection features_check
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI[archive.md5sum] = "f03e1139296e2a3a92e3b65a3080cd32"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
index 501a44972..3cef0d2e5 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812"
DEPENDS = "xkbcomp gtk+ iso-codes libxi libxml2"
-inherit autotools pkgconfig gettext gobject-introspection distro_features_check
+inherit autotools pkgconfig gettext gobject-introspection features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.32.0.bb
index ef6ea7946..8f15c5774 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.32.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.32.0.bb
@@ -10,7 +10,7 @@ DEPENDS = "gsettings-desktop-schemas startup-notification \
gnome-doc-utils gdk-pixbuf-native \
gtk+3 glib-2.0 libcanberra libgtop intltool-native"
-inherit autotools gettext gnomebase distro_features_check
+inherit autotools gettext gnomebase features_check
# depends on startup-notification which depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch
deleted file mode 100644
index f19eb4979..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From a4ed38e95cbe07f02028249b8b315565a5ac1e43 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 5 May 2018 22:32:45 -0700
-Subject: [PATCH] nautilus: drop gnome-desktop thumbnail API with new
- gdk-pixbuf
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-If gdk-pixbuf >= 2.36.5 is available, its scaling API can do what we
-want, so we don’t need to use the deprecated gnome-desktop one.
-
-Also fixes compile errors seen on master
-nautilus-properties-window.c:5101: undefined reference to `gnome_desktop_thumbnail_scale_down_pixbuf'
-
-Upstream-Status: Backport
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/nautilus-properties-window.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
-index dea8b0f..fad9bd1 100644
---- a/src/nautilus-properties-window.c
-+++ b/src/nautilus-properties-window.c
-@@ -5098,10 +5098,11 @@ update_preview_callback (GtkFileChooser *icon_chooser,
- scale = (double)gdk_pixbuf_get_height (pixbuf) /
- gdk_pixbuf_get_width (pixbuf);
-
-- scaled_pixbuf = gnome_desktop_thumbnail_scale_down_pixbuf
-+ scaled_pixbuf = gdk_pixbuf_scale_simple
- (pixbuf,
- PREVIEW_IMAGE_WIDTH,
-- scale * PREVIEW_IMAGE_WIDTH);
-+ scale * PREVIEW_IMAGE_WIDTH,
-+ GDK_INTERP_HYPER);
- g_object_unref (pixbuf);
- pixbuf = scaled_pixbuf;
- }
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb
deleted file mode 100644
index bdb2f3c88..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "File manager for GNOME"
-SECTION = "x11/gnome"
-
-LICENSE="GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=36cf660aea2b8beffba7945f44a7e748 \
- file://COPYING.EXTENSIONS;md5=7579d6678402a1868631bf82c93ff0d4 \
- file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
-
-inherit distro_features_check autotools pkgconfig gobject-introspection
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/nautilus/${MAJ_VER}/nautilus-${PV}.tar.xz \
- file://0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch \
- "
-
-SRC_URI[md5sum] = "0f578bda5655c0ce204befafca5803d7"
-SRC_URI[sha256sum] = "60a927c0522b4cced9d8f62baed2ee5e2fd4305be4523eb5bc44805971a6cc15"
-
-DEPENDS = "gtk+3 gnome-desktop3 gsettings-desktop-schemas glib-2.0-native intltool-native pango"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = " \
- --disable-gtk-doc \
- --disable-update-mimedb \
- --disable-nst-extension \
- --enable-tracker=no \
- --disable-schemas-compile \
- --enable-xmp=no \
- --enable-libexif=no \
-"
-
-FILES_${PN} += "${datadir}/*"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.34.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.34.1.bb
new file mode 100644
index 000000000..789a11dfd
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.34.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "File manager for GNOME"
+SECTION = "x11/gnome"
+
+LICENSE="GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = " \
+ fontconfig \
+ gtk+3 \
+ gnome-desktop3 \
+ gsettings-desktop-schemas \
+ gnome-autoar \
+ tracker \
+"
+
+inherit gnomebase gsettings gobject-introspection gtk-doc gettext features_check upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "19e4f1d89fb9d0ff135d5b1974ce43b5"
+SRC_URI[archive.sha256sum] = "37ce2c16a610c589dcc7660f9092446465568e38e29bce6ed8c24f2e8e0077f3"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGECONFIG = "extensions"
+PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/gnome-shell \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.1.bb
new file mode 100644
index 000000000..590d7bdaf
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.1.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Tracker is a file search engine"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+ file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
+ file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+
+DEPENDS = " \
+ libxml2-native \
+ dbus-native \
+ glib-2.0 \
+ sqlite3 \
+ libarchive \
+ dbus \
+ icu \
+ json-glib \
+ libsoup-2.4 \
+ libstemmer \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check
+
+SRC_URI[archive.md5sum] = "5e75b611b190c4cebf53e3de15266429"
+SRC_URI[archive.sha256sum] = "b6748726e465ad2f4d991560634b1fd0df8841f3d981b3b837c4162abedf08a1"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
+
+PACKAGECONFIG ??= "fts"
+PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger"
+# full text search requires sqlite3 build with PACKAGECONFIG[fts5] set
+PACKAGECONFIG[fts] = "-Dfts=true,-Dfts=false"
+
+# set required cross property sqlite3_has_fts5
+do_write_config[vardeps] += "PACKAGECONFIG"
+do_write_config_append() {
+ echo "[properties]" > ${WORKDIR}/meson-tracker.cross
+ echo "sqlite3_has_fts5 = '${@bb.utils.contains('PACKAGECONFIG', 'fts', 'true', 'false', d)}'" >> ${WORKDIR}/meson-tracker.cross
+}
+
+EXTRA_OEMESON = "--cross-file ${WORKDIR}/meson-tracker.cross"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${libdir}/tracker-2.0 \
+ ${systemd_user_unitdir} \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-tools_3.32.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-tools_3.32.2.bb
new file mode 100644
index 000000000..af2bab380
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-tools_3.32.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Collection of scripts and build utilities for documentation"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=d67c6f9f1515506abfea4f0d920c0774 \
+ file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
+"
+
+inherit gnomebase itstool
+
+DEPENDS += " \
+ libxslt-native \
+ libxml2-native \
+ yelp-xsl \
+"
+
+SRC_URI[archive.md5sum] = "7856f9ad0492aaf9adf097f5058bfc2e"
+SRC_URI[archive.sha256sum] = "183856b5ed0b0bb2c05dd1204af023946ed436943e35e789afb0295e5e71e8f9"
+
+RDEPENDS_${PN} += "yelp-xsl"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_3.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_3.34.0.bb
new file mode 100644
index 000000000..20052cf16
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp-xsl_3.34.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "XSL stylesheets for the yelp help browser"
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=3e2bad3c5e3990988f9fa1bc5785b147 \
+ file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
+ file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+"
+
+inherit gnomebase gettext itstool
+
+DEPENDS += "libxml2"
+
+SRC_URI[archive.md5sum] = "f8c4e777aee8b055251c333ef48a0cd0"
+SRC_URI[archive.sha256sum] = "e8063aee67d1df634f3d062f1c28130b2dabb3c0c66396b1af90388f34e14ee2"
+
+RDEPENDS_${PN}_append_class-target = " libxml2 itstool"
+
+# ensure our native consumers are forced to inherit itstool
+RDEPENDS_${PN}_append_class-native = " libxml2"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_3.34.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_3.34.0.bb
new file mode 100644
index 000000000..f6311965e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_3.34.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Help browser for the GNOME desktop"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=6e1b9cb787e76d7e6946887a65caa754 \
+"
+
+inherit gnomebase itstool autotools-brokensep gsettings gettext gtk-doc
+
+SRC_URI[archive.md5sum] = "776e29bd16424c8712cbf340cfe6429b"
+SRC_URI[archive.sha256sum] = "e3d6527c5963d73206891b32f1f23363164be57de248555513bd0be77a7bd045"
+
+DEPENDS += " \
+ libxml2-native \
+ glib-2.0-native \
+ gtk+3 \
+ appstream-glib \
+ libxslt \
+ sqlite3 \
+ webkitgtk \
+ yelp-xsl \
+"
+
+do_configure_prepend() {
+ export ITSTOOL=${STAGING_BINDIR_NATIVE}/itstool
+}
+
+FILES_${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/yelp-xsl \
+"
+
+RDEPENDS_${PN} += "yelp-xsl"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity/0001-build-don-t-generate-manual.patch b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity/0001-build-don-t-generate-manual.patch
deleted file mode 100644
index 488548667..000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity/0001-build-don-t-generate-manual.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 38eeb345fdfca0298b11427aa942b68e627ba10e Mon Sep 17 00:00:00 2001
-From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
-Date: Thu, 12 Sep 2019 13:14:55 +0200
-Subject: [PATCH] build: don't generate manual
-
-We don't have yelp in yocto and even if we did it would pull in
-webkitgtk just to generate help. Just remove the manual generation
-altogether.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
----
- Makefile.am | 3 +--
- configure.ac | 5 -----
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 81ae6a7..bd073dd 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -4,8 +4,7 @@ AM_CPPFLAGS = src
- SUBDIRS = \
- src \
- po \
-- data \
-- help
-+ data
-
- EXTRA_DIST = \
- autogen.sh \
-diff --git a/configure.ac b/configure.ac
-index 5dccdb0..f88b2c0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -115,11 +115,6 @@ GETTEXT_PACKAGE=zenity
- AC_SUBST([GETTEXT_PACKAGE])
- AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext domain])
-
--# *******************************
--# User manual
--# *******************************
--YELP_HELP_INIT
--
- # *******************************
-
- AC_SUBST([AM_CPPFLAGS])
---
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb
index 295288bfb..c6883ae44 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.32.0.bb
@@ -4,19 +4,17 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-inherit distro_features_check gnomebase gettext
+inherit gnomebase itstool gnome-help features_check gettext
-DEPENDS = "gtk+3"
+DEPENDS = " \
+ yelp-tools-native \
+ gtk+3 \
+"
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
- file://0001-build-don-t-generate-manual.patch \
-"
-
SRC_URI[archive.md5sum] = "ba2b2a13248773b4ec0fd323d95e6d5a"
SRC_URI[archive.sha256sum] = "e786e733569c97372c3ef1776e71be7e7599ebe87e11e8ad67dcc2e63a82cd95"
-GNOME_COMPRESS_TYPE="xz"
do_install_append() {
# Remove gdialog compatibility helper - we don't want to pull in perl
diff --git a/meta-openembedded/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.16.bb b/meta-openembedded/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.16.bb
new file mode 100644
index 000000000..ec3e4a3d3
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.16.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Objects and helper methods to help reading and writing AppStream metadata"
+HOMEPAGE = "https://people.freedesktop.org/~hughsient/appstream-glib/index.htm"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ gperf-native \
+ glib-2.0 \
+ gtk+3 \
+ libyaml \
+ libarchive \
+ libsoup-2.4 \
+ json-glib \
+ gdk-pixbuf \
+ freetype \
+ fontconfig \
+ libstemmer \
+"
+
+inherit meson gobject-introspection gettext bash-completion
+
+SRC_URI = "https://people.freedesktop.org/~hughsient/${BPN}/releases/${BP}.tar.xz"
+SRC_URI[md5sum] = "78306049412396a72746186452abdf66"
+SRC_URI[sha256sum] = "04f290d73bc865071112076b8a3345df2730783a16af976fe3becfd2f50d5992"
+
+EXTRA_OEMESON = " \
+ -Drpm=false \
+"
+
+FILES_${PN} += "${libdir}/asb-plugins-5"
+
+FILES_${PN}-dev += " \
+ ${datadir}/installed-tests \
+ ${datadir}/gettext \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb b/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb
new file mode 100644
index 000000000..8f6cd0431
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.2.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "GTK support library for colord"
+HOMEPAGE = "https://www.freedesktop.org/software/colord/"
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+inherit meson gobject-introspection gettext gtk-doc features_check
+
+DEPENDS = " \
+ gtk+3 \
+ colord \
+"
+
+SRC_URI = "http://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "66d048803c8b89e5e63da4b461484933"
+SRC_URI[sha256sum] = "2a4cfae08bc69f000f40374934cd26f4ae86d286ce7de89f1622abc59644c717"
+
+EXTRA_OEMESON = "-Dman=false"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
diff --git a/meta-openembedded/meta-gnome/recipes-support/ibus/ibus-native.bb b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus-native.bb
new file mode 100644
index 000000000..ca65114c4
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus-native.bb
@@ -0,0 +1,34 @@
+require ${BPN}.inc
+
+inherit native
+
+DEPENDS += " \
+ glib-2.0-native \
+ dbus-native \
+ iso-codes \
+"
+
+PACKAGECONFIG = ""
+
+# for allarch iso-codes
+EXTRA_NATIVE_PKGCONFIG_PATH = ":${RECIPE_SYSROOT}${datadir_native}/pkgconfig"
+# for allarch unicode-ucd - just to make configure happy
+EXTRA_OECONF += "--with-ucd-dir=${RECIPE_SYSROOT}${datadir_native}/unicode/ucd"
+
+do_compile() {
+ cd src
+ # seems by moving to src we break dependency tracking so build what's
+ # necessary step by step
+ oe_runmake ibusenumtypes.h
+ oe_runmake ibusmarshalers.h
+ oe_runmake ibusenumtypes.c
+ oe_runmake unicode-parser
+}
+
+do_install() {
+ install -d ${D}/${libdir}
+ install -m 755 ${S}/src/.libs/libibus-*.so* ${D}/${libdir}
+
+ install -d ${D}/${bindir}
+ install -m 755 ${S}/src/.libs/unicode-parser ${D}/${bindir}
+}
diff --git a/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.bb b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.bb
new file mode 100644
index 000000000..caec455b6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.bb
@@ -0,0 +1,37 @@
+require ${BPN}.inc
+
+DEPENDS += " \
+ ${BPN}-native \
+ glib-2.0-native \
+ glib-2.0 \
+ dbus \
+ iso-codes \
+"
+
+inherit gtk-icon-cache bash-completion
+
+# for unicode-ucd
+EXTRA_OECONF += "--with-ucd-dir=${STAGING_DATADIR}/unicode/ucd"
+
+PACKAGECONFIG ??= " \
+ dconf vala \
+ ${@bb.utils.contains_any('DISTRO_FEATURES', [ 'wayland', 'x11' ], 'gtk3', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \
+"
+
+do_configure_prepend() {
+ # run native unicode-parser
+ sed -i 's:$(builddir)/unicode-parser:unicode-parser:g' ${S}/src/Makefile.am
+}
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/GConf \
+ ${datadir}/glib-2.0 \
+ ${libdir}/gtk-3.0 \
+"
+
+FILES_${PN}-dev += " \
+ ${datadir}/gettext \
+"
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc
new file mode 100644
index 000000000..0f4ae7d04
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus.inc
@@ -0,0 +1,36 @@
+SUMMARY = "Intelligent Input Bus for Linux/Unix"
+HOMEPAGE = "https://github.com/ibus/ibus/wiki"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+inherit autotools-brokensep pkgconfig gobject-introspection gettext gtk-doc vala
+
+PV = "1.5.21"
+
+DEPENDS = "unicode-ucd"
+
+SRC_URI = " \
+ git://github.com/ibus/ibus.git \
+ file://0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch \
+"
+SRCREV = "ae0040c73466bb6e78fce5e669a55fcce6ffd16d"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG[appindicator] = "--enable-appindicator,--disable-appindicator,qtbase"
+PACKAGECONFIG[dconf] = "--enable-dconf,--disable-dconf,dconf"
+PACKAGECONFIG[gtk2] = "--enable-gtk2,--disable-gtk2,gtk+"
+PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3,gtk+3"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland"
+PACKAGECONFIG[vala] = "--enable-vala,--disable-vala"
+PACKAGECONFIG[x11] = "--enable-xim --enable-ui,--disable-xim --disable-ui,virtual/libx11"
+
+EXTRA_OECONF = " \
+ --disable-tests \
+ --disable-emoji-dict \
+ --disable-python2 \
+"
+
+do_configure_prepend() {
+ touch ${S}/ChangeLog
+ touch ${S}/ABOUT-NLS
+}
diff --git a/meta-openembedded/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch
new file mode 100644
index 000000000..3701d19f5
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch
@@ -0,0 +1,39 @@
+From f567bcbc2108d722faa90afeb03d3a3bcdf5f58b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 10 May 2019 14:30:08 +0200
+Subject: [PATCH] Do not try to start dbus - we do not have dbus-lauch
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ data/dconf/make-dconf-override-db.sh | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/data/dconf/make-dconf-override-db.sh b/data/dconf/make-dconf-override-db.sh
+index 9c650e97..02fbf059 100755
+--- a/data/dconf/make-dconf-override-db.sh
++++ b/data/dconf/make-dconf-override-db.sh
+@@ -12,10 +12,6 @@ export XDG_CACHE_HOME="$TMPDIR/cache"
+ export GSETTINGS_SCHEMA_DIR="$TMPDIR/schemas"
+ mkdir -p $XDG_CONFIG_HOME $XDG_CACHE_HOME $GSETTINGS_SCHEMA_DIR
+
+-eval `dbus-launch --sh-syntax`
+-
+-trap 'rm -rf $TMPDIR; kill $DBUS_SESSION_BUS_PID' ERR
+-
+ # in case that schema is not installed on the system
+ glib-compile-schemas --targetdir "$GSETTINGS_SCHEMA_DIR" "$PWD"
+
+@@ -46,5 +42,3 @@ for schema in $schemas; do
+ done
+
+ rm -rf $TMPDIR
+-
+-kill $DBUS_SESSION_BUS_PID
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb b/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
index 0a0a3e6b4..d567d00d3 100644
--- a/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
@@ -18,7 +18,7 @@ SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0 \
RDEPENDS_${PN} = "gtk+"
-inherit distro_features_check autotools gtk-doc gobject-introspection
+inherit features_check autotools gtk-doc gobject-introspection
REQUIRED_DISTRO_FEATURES = "x11"
do_configure_prepend() {
diff --git a/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
new file mode 100644
index 000000000..73ebeb484
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
@@ -0,0 +1,63 @@
+From eacc9e9c62a3857ce1e2e24b81fc22d8ae91f422 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Thu, 9 May 2019 22:06:48 +0200
+Subject: [PATCH] Build so-lib
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Stolen from [1]
+
+[1] https://aur.archlinux.org/cgit/aur.git/commit/dynamiclib.patch?h=snowball-git&id=a9cbf4f42f3661e4b8f791cd4374233821716ea1
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ GNUmakefile | 7 +++++--
+ libstemmer/symbol.map | 6 ++++++
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+ create mode 100644 libstemmer/symbol.map
+
+diff --git a/GNUmakefile b/GNUmakefile
+index cbd6ff7..a85230b 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -142,10 +142,10 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.o)
+ JAVA_CLASSES = $(JAVA_SOURCES:.java=.class)
+ JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class)
+
+-CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
++CFLAGS=-O2 -fPIC -W -Wall -Wmissing-prototypes -Wmissing-declarations
+ CPPFLAGS=-Iinclude
+
+-all: snowball libstemmer.o stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
++all: snowball libstemmer.o libstemmer.so stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
+
+ clean:
+ rm -f $(COMPILER_OBJECTS) $(RUNTIME_OBJECTS) \
+@@ -192,6 +192,9 @@ libstemmer/libstemmer.o: libstemmer/modules.h $(C_LIB_HEADERS)
+ libstemmer.o: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
+ $(AR) -cru $@ $^
+
++libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
++ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^
++
+ stemwords: $(STEMWORDS_OBJECTS) libstemmer.o
+ $(CC) $(CFLAGS) -o $@ $^
+
+diff --git a/libstemmer/symbol.map b/libstemmer/symbol.map
+new file mode 100644
+index 0000000..7a3d423
+--- /dev/null
++++ b/libstemmer/symbol.map
+@@ -0,0 +1,6 @@
++SB_STEMMER_0 {
++ global:
++ sb_stemmer_*;
++ local:
++ *;
++};
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch
new file mode 100644
index 000000000..69c1d670e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer/0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch
@@ -0,0 +1,46 @@
+From 23eacfbcc10c777ce47283a5285455ec83c8aa41 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 6 Oct 2019 13:05:08 +0200
+Subject: [PATCH] snowball/stemwords: do link with LDFLAGS set by build
+ environment
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Some (cross-)build systems as OpeneEmbedded are picky (for certain reasons) if
+their LDFLAGS are ignored.
+
+Upstream-Status: Submitted [1]
+
+[1] https://github.com/snowballstem/snowball/pull/120
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ GNUmakefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/GNUmakefile b/GNUmakefile
+index 76f6ae9..47c6077 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -179,7 +179,7 @@ clean:
+ -rmdir $(js_output_dir)
+
+ snowball: $(COMPILER_OBJECTS)
+- $(CC) $(CFLAGS) -o $@ $^
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
+
+ $(COMPILER_OBJECTS): $(COMPILER_HEADERS)
+
+@@ -204,7 +204,7 @@ libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
+ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^
+
+ stemwords: $(STEMWORDS_OBJECTS) libstemmer.o
+- $(CC) $(CFLAGS) -o $@ $^
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
+
+ csharp_stemwords: $(CSHARP_STEMWORDS_SOURCES) $(CSHARP_RUNTIME_SOURCES) $(CSHARP_SOURCES)
+ $(MCS) -unsafe -target:exe -out:$@ $(CSHARP_STEMWORDS_SOURCES) $(CSHARP_RUNTIME_SOURCES) $(CSHARP_SOURCES)
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb
new file mode 100644
index 000000000..96dd880b6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Snowball compiler and stemming algorithms"
+HOMEPAGE = "https://snowballstem.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2750797da77c1d784e7626b3f7d7ff3e"
+
+DEPENDS_class-target = "${BPN}-native"
+
+SRC_URI = "\
+ git://github.com/snowballstem/snowball.git \
+ file://0001-Build-so-lib.patch \
+ file://0002-snowball-stemwords-do-link-with-LDFLAGS-set-by-build.patch \
+"
+SRCREV = "c70ed64f9d41c1032fba4e962b054f8e9d489a74"
+S = "${WORKDIR}/git"
+PV = "2.0.0"
+LIBVER = "0.0.0"
+
+inherit lib_package
+
+BBCLASSEXTEND = "native"
+
+do_compile_prepend_class-target() {
+ # use native tools
+ sed -i 's:./snowball :snowball :g' ${S}/GNUmakefile
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/snowball ${D}${bindir}
+ install -m 755 ${S}/stemwords ${D}${bindir}
+
+ install -d ${D}${libdir}
+ install -m 755 ${S}/libstemmer.so.${LIBVER} ${D}${libdir}/
+ ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so.0
+ ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so
+
+ install -d ${D}${includedir}
+ install -m 644 ${S}/include/*.h ${D}${includedir}
+}
diff --git a/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb
index 74053e451..2c580f872 100644
--- a/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb
@@ -21,7 +21,7 @@ SRC_URI[sha256sum] = "a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3c
DEPENDS = "popt libpam glib-2.0 python3"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
inherit autotools gettext python3native python3-dir pkgconfig gtk-doc
diff --git a/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb b/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb
new file mode 100644
index 000000000..6fb3b82ef
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libwacom/libwacom_0.33.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A tablet description library"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e"
+
+DEPENDS = " \
+ libxml2-native \
+ libgudev \
+"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://github.com/linuxwacom/libwacom.git"
+SRCREV = "87cc710e21a6220e267dd08936bbec2932aa3658"
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb b/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb
index 4e49becc4..03fd0517b 100644
--- a/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb
@@ -10,7 +10,7 @@ SRC_URI = "https://launchpad.net/onboard/1.4/${PV}/+download/${BPN}-${PV}.tar.gz
SRC_URI[md5sum] = "1a2fbe82e934f5b37841d17ff51e80e8"
SRC_URI[sha256sum] = "01cae1ac5b1ef1ab985bd2d2d79ded6fc99ee04b1535cc1bb191e43a231a3865"
-inherit distro_features_check setuptools3 pkgconfig gtk-icon-cache gsettings
+inherit features_check setuptools3 pkgconfig gtk-icon-cache gsettings
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb
index 052783626..a94440c93 100644
--- a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.113.bb
@@ -22,7 +22,7 @@ SRC_URI[sha256sum] = "99fbfd248b411ed0e7c44d1957b0ecde699b5a968a4db5d37228e82e7b
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-inherit distro_features_check autotools gettext pkgconfig
+inherit features_check autotools gettext pkgconfig
EXTRA_OEMAKE += "INSTALL='install -p'"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/0001-Fix-missing-include-in-sys-mman.h.patch b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/0001-Fix-missing-include-in-sys-mman.h.patch
deleted file mode 100644
index 4bedef805..000000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/0001-Fix-missing-include-in-sys-mman.h.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 36360b16833400de7818151be5588b16ac4fd5bc Mon Sep 17 00:00:00 2001
-From: Barret Rhoden <brho@google.com>
-Date: Thu, 14 Mar 2019 17:30:38 -0400
-Subject: [PATCH] Fix missing include in sys/mman.h
-
-Linux commit 746c9398f5ac ("arch: move common mmap flags to
-linux/mman.h") moved a few mmap flags, particularly MAP_PRIVATE, from
-asm/mman.h to linux/mman.h. This broke klibc's build, which uses
-MAP_PRIVATE.
-
-linux/mman.h includes asm/mman.h, so this commit merely includes
-linux/mman.h instead of asm/mman.h.
-
-Signed-off-by: Barret Rhoden <brho@google.com>
-Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
----
-Upstream-Status: Backport [https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=d4853d030639cf3542ae39129c18b654d8d4f020]
- usr/include/sys/mman.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/usr/include/sys/mman.h b/usr/include/sys/mman.h
-index 56f0b65c..3fd626e7 100644
---- a/usr/include/sys/mman.h
-+++ b/usr/include/sys/mman.h
-@@ -7,7 +7,7 @@
-
- #include <klibc/extern.h>
- #include <sys/types.h>
--#include <asm/mman.h>
-+#include <linux/mman.h>
-
- #define MAP_FAILED ((void *)-1)
-
---
-2.23.0
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klibc-config-eabi.patch b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klibc-config-eabi.patch
deleted file mode 100644
index a6998f86d..000000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/files/klibc-config-eabi.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 1118cc971917abe19ddb029aa80417f6fd6bb343 Mon Sep 17 00:00:00 2001
-From: Thomas Kunze <thommycheck@gmx.de>
-Date: Sat, 6 Aug 2011 05:30:14 +0000
-Subject: [PATCH] klibc: initial commit of version 1.5.24
-
-Patch was imported from the OpenEmbedded git server
-(git://git.openembedded.org/openembedded)
-as of commit id b6764cf32ec93547531130dca364fb95e1c495f4
-Signed-off-by: Thomas Kunze <thommycheck@gmx.de>
-
----
- defconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/defconfig
-+++ b/defconfig
-@@ -6,5 +6,5 @@ CONFIG_KLIBC_ZLIB=y
- CONFIG_REGPARM=y
- # ARM options
- # CONFIG_KLIBC_THUMB is not set
--# CONFIG_AEABI is not set
-+CONFIG_AEABI=y
- # CONFIG_DEBUG_INFO is not set
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.6.bb b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.7.bb
index 4011aa231..4011aa231 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.6.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.7.bb
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.6.bb b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.7.bb
index c835fd647..c835fd647 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.6.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.7.bb
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.6.bb b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.7.bb
index 06e71cb7b..06e71cb7b 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.6.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.7.bb
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc
index 26689f87e..e1afe7f33 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc
@@ -5,9 +5,8 @@ SECTION = "libs"
LICENSE = "BSD-3-Clause & GPL-2.0 & MIT & Zlib"
LIC_FILES_CHKSUM = "file://usr/klibc/LICENSE;md5=d75181f10e998c21eb147f6d2e43ce8b"
DEPENDS = "linux-libc-headers perl-native"
-SRCREV = "22b36d1ae34416bc48869619cbb0cccb2070f48f"
-SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git \
+SRC_URI = "${KERNELORG_MIRROR}/linux/libs/klibc/2.0/klibc-${PV}.tar.xz \
${ARMPATCHES} \
file://klcc-consider-sysroot.patch \
file://klcc-cross-accept-clang-options.patch \
@@ -23,16 +22,18 @@ SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git \
file://0001-klibc-add-getrandom-syscall.patch \
file://0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch \
file://0001-Define-ulocked_-fgets-fread-fwrite-aliases.patch \
- file://0001-Fix-missing-include-in-sys-mman.h.patch \
"
ARMPATCHES ?= ""
-ARMPATCHES_arm = "file://klibc-config-eabi.patch \
+ARMPATCHES_arm = " \
file://armv4-fix-v4bx.patch \
"
-S = "${WORKDIR}/git"
+SRC_URI[md5sum] = "712f8bc1a069e03d92584b7f5380c521"
+SRC_URI[sha256sum] = "abef2637ca823485d9c90ce9512e2b08a65047ec4da204635eeaef95a41a9122"
+
+S = "${WORKDIR}/klibc-${PV}"
OPTFLAGS = "${TUNE_CCARGS} -Os"
OPTFLAGS_append_toolchain-clang = " -fno-builtin-bcmp"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.6.bb b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.7.bb
index 7df0b0a3d..7df0b0a3d 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.6.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.7.bb
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb
index 3ddb818df..7a6b872f1 100644
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb
@@ -8,6 +8,6 @@ RRECOMMENDS_${PN} = "adwaita-icon-theme"
SRC_URI = "http://download.gnome.org/sources/${BPN}/0.8/${BPN}-${PV}.tar.xz"
SRC_URI[md5sum] = "212d85ebce89b32468b59e1164050d40"
SRC_URI[sha256sum] = "aa3decb9d532c0e2e505adc592f431fd81c0231ded2981129e87da13712479ed"
-inherit distro_features_check autotools pkgconfig gettext
+inherit features_check autotools pkgconfig gettext
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch b/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch
new file mode 100644
index 000000000..59bd4ef08
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch
@@ -0,0 +1,176 @@
+From 81f29b028473a3d8ac0aaeb126fc0336a98bb077 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Nov 2019 11:03:16 -0800
+Subject: [PATCH] adjust for 64bit time_t
+
+Break assumption about time_t being of certain size, and use intmax_t to
+print it where needed
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/cron.c | 4 ++--
+ src/epggrab/module/psip.c | 2 +-
+ src/epggrab/otamux.c | 2 +-
+ src/parsers/parser_teletext.c | 2 +-
+ src/tvheadend.h | 6 +-----
+ src/webui/webui.c | 4 ++--
+ 6 files changed, 8 insertions(+), 12 deletions(-)
+
+--- a/src/cron.c
++++ b/src/cron.c
+@@ -329,9 +329,9 @@ cron_next ( cron_t *c, const time_t now,
+ *ret = mktime(&tmp);
+ if (*ret <= now) {
+ #ifndef CRON_TEST
+- tvherror(LS_CRON, "invalid time, now %"PRItime_t", result %"PRItime_t, now, *ret);
++ tvherror(LS_CRON, "invalid time, now %"PRItime_t", result %"PRItime_t, (intmax_t)now, (intmax_t)*ret);
+ #else
+- printf("ERROR: invalid time, now %"PRItime_t", result %"PRItime_t"\n", now, *ret);
++ printf("ERROR: invalid time, now %"PRItime_t", result %"PRItime_t"\n", (intmax_t)now, (intmax_t)*ret);
+ #endif
+ *ret = now + 600;
+ }
+--- a/src/epggrab/module/psip.c
++++ b/src/epggrab/module/psip.c
+@@ -383,14 +383,14 @@ _psip_eit_callback_channel
+
+ tvhtrace(LS_PSIP, " %03d: [%s] eventid 0x%04x at %"PRItime_t", duration %d, title: '%s' (%d bytes)",
+ i, ch ? channel_get_name(ch, channel_blank_name) : "(null)",
+- eventid, start, length,
++ eventid, (intmax_t)start, length,
+ lang_str_get(title, NULL), titlelen);
+
+ save2 = changes2 = 0;
+
+ ebc = epg_broadcast_find_by_time(ch, mod, start, stop, 1, &save2, &changes2);
+ tvhtrace(LS_PSIP, " eid=%5d, start=%"PRItime_t", stop=%"PRItime_t", ebc=%p",
+- eventid, start, stop, ebc);
++ eventid, (intmax_t)start, (intmax_t)stop, ebc);
+ if (!ebc) goto next;
+
+ save2 |= epg_broadcast_set_dvb_eid(ebc, eventid, &changes2);
+--- a/src/epggrab/otamux.c
++++ b/src/epggrab/otamux.c
+@@ -719,7 +719,7 @@ epggrab_ota_start_cb ( void *p );
+ static void
+ epggrab_ota_next_arm( time_t next )
+ {
+- tvhtrace(LS_EPGGRAB, "next ota start event in %li seconds", next - time(NULL));
++ tvhtrace(LS_EPGGRAB, "next ota start event in %jd seconds", (intmax_t)(next - time(NULL)));
+ gtimer_arm_absn(&epggrab_ota_start_timer, epggrab_ota_start_cb, NULL, next);
+ dbus_emit_signal_s64("/epggrab/ota", "next", next);
+ }
+--- a/src/parsers/parser_teletext.c
++++ b/src/parsers/parser_teletext.c
+@@ -625,7 +625,7 @@ tt_construct_unix_time(uint8_t *buf)
+ r[2] = mktime(&tm);
+
+ for(i = 0; i < 3; i++)
+- v[i] = labs(r[i] - t);
++ v[i] = (time_t)llabs((long long)(r[i] - t));
+
+ if(v[0] < v[1] && v[0] < v[2])
+ return r[0];
+--- a/src/tvheadend.h
++++ b/src/tvheadend.h
+@@ -332,11 +332,7 @@ void tvh_qsort_r(void *base, size_t nmem
+ # endif /* ULONG_MAX */
+ #endif /* __WORDSIZE */
+
+-#if __WORDSIZE == 32 && defined(PLATFORM_FREEBSD)
+-#define PRItime_t "d"
+-#else
+-#define PRItime_t "ld"
+-#endif
++#define PRItime_t "jd"
+
+ /* transcoding */
+ #define TVH_NAME_LEN 32
+--- a/src/webui/webui.c
++++ b/src/webui/webui.c
+@@ -886,9 +886,9 @@ http_dvr_list_playlist(http_connection_t
+ bandwidth = ((8*fsize) / (durration*1024.0));
+ strftime(buf, sizeof(buf), "%FT%T%z", localtime_r(&(de->de_start), &tm));
+
+- htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", durration, lang_str_get(de->de_title, NULL));
++ htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", (intmax_t)durration, lang_str_get(de->de_title, NULL));
+
+- htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", durration);
++ htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", (intmax_t)durration);
+ uuid = idnode_uuid_as_str(&de->de_id, ubuf);
+ htsbuf_qprintf(hq, "#EXT-X-STREAM-INF:PROGRAM-ID=%s,BANDWIDTH=%d\n", uuid, bandwidth);
+ htsbuf_qprintf(hq, "#EXT-X-PROGRAM-DATE-TIME:%s\n", buf);
+@@ -944,9 +944,9 @@ http_dvr_playlist(http_connection_t *hc,
+ strftime(buf, sizeof(buf), "%FT%T%z", localtime_r(&(de->de_start), &tm));
+
+ htsbuf_append_str(hq, "#EXTM3U\n");
+- htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", durration, lang_str_get(de->de_title, NULL));
++ htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", (intmax_t)durration, lang_str_get(de->de_title, NULL));
+
+- htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", durration);
++ htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", (intmax_t)durration);
+ uuid = idnode_uuid_as_str(&de->de_id, ubuf);
+ htsbuf_qprintf(hq, "#EXT-X-STREAM-INF:PROGRAM-ID=%s,BANDWIDTH=%d\n", uuid, bandwidth);
+ htsbuf_qprintf(hq, "#EXT-X-PROGRAM-DATE-TIME:%s\n", buf);
+--- a/src/dvr/dvr_rec.c
++++ b/src/dvr/dvr_rec.c
+@@ -723,7 +723,7 @@ static const char *
+ dvr_sub_start(const char *id, const char *fmt, const void *aux, char *tmp, size_t tmplen)
+ {
+ char buf[16];
+- snprintf(buf, sizeof(buf), "%"PRItime_t, (time_t)dvr_entry_get_start_time((dvr_entry_t *)aux, 0));
++ snprintf(buf, sizeof(buf), "%"PRItime_t, (intmax_t)dvr_entry_get_start_time((dvr_entry_t *)aux, 0));
+ return dvr_do_prefix(id, fmt, buf, tmp, tmplen);
+ }
+
+@@ -747,7 +747,7 @@ static const char *
+ dvr_sub_stop(const char *id, const char *fmt, const void *aux, char *tmp, size_t tmplen)
+ {
+ char buf[16];
+- snprintf(buf, sizeof(buf), "%"PRItime_t, (time_t)dvr_entry_get_stop_time((dvr_entry_t *)aux));
++ snprintf(buf, sizeof(buf), "%"PRItime_t, (intmax_t)dvr_entry_get_stop_time((dvr_entry_t *)aux));
+ return dvr_do_prefix(id, fmt, buf, tmp, tmplen);
+ }
+
+--- a/src/epggrab/module.c
++++ b/src/epggrab/module.c
+@@ -582,7 +582,7 @@ static void _epggrab_socket_handler ( ep
+
+ /* Process */
+ if ( data ) {
+- tvhinfo(mod->subsys, "%s: grab took %"PRItime_t" seconds", mod->id, tm2 - tm1);
++ tvhinfo(mod->subsys, "%s: grab took %"PRItime_t" seconds", mod->id, (intmax_t)(tm2 - tm1));
+ epggrab_module_parse(mod, data);
+
+ /* Failed */
+--- a/src/epggrab/module/opentv.c
++++ b/src/epggrab/module/opentv.c
+@@ -486,7 +486,7 @@ opentv_parse_event_section_one
+ 1, &save, &changes);
+ tvhdebug(LS_OPENTV, "find by time start %"PRItime_t " stop "
+ "%"PRItime_t " eid %d = %p",
+- ev.start, ev.stop, ev.eid, ebc);
++ (intmax_t)ev.start, (intmax_t)ev.stop, ev.eid, ebc);
+ save |= epg_broadcast_set_dvb_eid(ebc, ev.eid, &changes);
+ } else {
+ ebc = epg_broadcast_find_by_eid(ch, ev.eid);
+--- a/src/webui/simpleui.c
++++ b/src/webui/simpleui.c
+@@ -556,12 +556,12 @@ page_status(http_connection_t *hc,
+ "<title>%s</title>\n",
+ a.tm_year + 1900, a.tm_mon + 1, a.tm_mday,
+ a.tm_hour, a.tm_min,
+- de->de_start,
+- (time_t)dvr_entry_get_extra_time_pre(de),
++ (intmax_t)de->de_start,
++ (intmax_t)dvr_entry_get_extra_time_pre(de),
+ b.tm_year+1900, b.tm_mon + 1, b.tm_mday,
+ b.tm_hour, b.tm_min,
+- de->de_stop,
+- (time_t)dvr_entry_get_extra_time_post(de),
++ (intmax_t)de->de_stop,
++ (intmax_t)dvr_entry_get_extra_time_post(de),
+ buf);
+
+ rstatus = val2str(de->de_sched_state, recstatustxt);
diff --git a/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb b/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
index dc6cd46b0..e31fc6bb8 100644
--- a/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
@@ -8,9 +8,11 @@ DEPENDS = "avahi cmake-native dvb-apps libdvbcsa libpcre2 openssl uriparser zlib
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db"
-SRC_URI = "git://github.com/tvheadend/tvheadend.git"
+SRC_URI = "git://github.com/tvheadend/tvheadend.git \
+ file://0001-adjust-for-64bit-time_t.patch \
+ "
-SRCREV = "bdc2ae9e19520a10cdf0bec0fcc0050b32bc75ff"
+SRCREV = "fda89e85e0b6ae796d8a09e178d3937aa7869270"
PV = "4.3+git${SRCPV}"
PKGV = "4.3+git${GITPKGV}"
@@ -21,3 +23,6 @@ EXTRA_OECONF += "--arch=${TARGET_ARCH} \
--disable-ffmpeg_static \
--disable-libav \
"
+
+CLEANBROKEN = "1"
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
index c4c623ad9..764ed375e 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
@@ -4,9 +4,9 @@ SECTION = "libs/multimedia"
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
-SRC_URI = "git://github.com/FluidSynth/fluidsynth.git"
-SRCREV = "62b38b1c66aec606f83b322bb03bd84810bbda41"
+SRC_URI = "git://github.com/FluidSynth/fluidsynth.git;branch=2.0.x"
+SRCREV = "c2f4683bf57f61451d14d219fdb25cf9f29cb7fe"
S = "${WORKDIR}/git"
-PV = "2.0.7"
+PV = "2.0.9"
inherit cmake pkgconfig lib_package
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service
deleted file mode 100644
index 1b5a3ad3e..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Start Gerbera, an UPnP media server
-After=multi-user.target network-online.target
-Wants=network-online.target
-
-[Service]
-ExecStart=/usr/bin/gerbera
-Environment='HOME=/root'
-Type=simple
-RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target \ No newline at end of file
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb
index 9c78da0d2..c96e4c52e 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb
@@ -4,12 +4,10 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8"
SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \
- file://gerbera.service \
"
-PV = "1.3.0+git${SRCPV}"
-# v1.3.0
-SRCREV = "c7a81fb41e446ee67b3eac90e2caecd6de651a16"
+PV = "1.3.2"
+SRCREV = "42b035ea9098c02af503d6391a0ed56d973aaf23"
S = "${WORKDIR}/git"
@@ -26,8 +24,6 @@ EXTRA_OECMAKE = "-DWITH_JS=FALSE -DWITH_MAGIC=FALSE -DWITH_EXIF=FALSE -DLIBUUID_
do_install_append() {
install -d ${D}/root/.config/
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/gerbera.service ${D}${systemd_system_unitdir}/
}
FILES_${PN} += "/root/.config/"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb
deleted file mode 100644
index 94f6b575b..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require gstd.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
index 455d89684..828caa883 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
@@ -1,8 +1,9 @@
-DESCRIPTION = "Gstreamer Daemon 1.0"
+DESCRIPTION = "Gstreamer Daemon"
SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages"
HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0"
SECTION = "multimedia"
LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon"
@@ -14,6 +15,9 @@ SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SR
"
S = "${WORKDIR}/git"
+# Remove the +really when upstream version is > 1.0
+PV = "1.0+really0.6.3"
+
inherit autotools pkgconfig gettext gtk-doc
do_configure_prepend() {
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch
index 43994e0ca..245785c82 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch
@@ -1,7 +1,7 @@
From 07fce2101d83b5334de78e661ba0361c2874ebdf Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@wdc.com>
Date: Mon, 18 Mar 2019 16:30:45 -0700
-Subject: [PATCH 1/5] Remove python venv
+Subject: [PATCH 1/7] Remove python venv
Remove the python venv requirements and instead just use the native
python and pip pacakges.
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch
index dd2431fdf..637854fdf 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch
@@ -1,7 +1,7 @@
From 88696037af52d6a7f57bc0fb82598de1a25365cc Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@wdc.com>
Date: Fri, 29 Mar 2019 16:09:57 -0700
-Subject: [PATCH 2/5] dev_setup.sh: Remove the git dependency
+Subject: [PATCH 2/7] dev_setup.sh: Remove the git dependency
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Upstream-Status: Inappropriate [embedded specific]
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch
index a4290d1cd..d803f526d 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch
@@ -1,9 +1,10 @@
From 5ef52cdea278a1dff966a912549cb6708f2cb699 Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@wdc.com>
Date: Tue, 17 Sep 2019 11:31:47 -0700
-Subject: [PATCH 3/5] dev_setup.sh: Remove the TERM dependency
+Subject: [PATCH 3/7] dev_setup.sh: Remove the TERM dependency
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
---
dev_setup.sh | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch
new file mode 100644
index 000000000..d2dc179ca
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch
@@ -0,0 +1,31 @@
+From e3b6ca995caca22e65d012a54bc2aeb08eb7e9d4 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 15 Oct 2019 17:09:06 -0700
+Subject: [PATCH 4/7] dev_setup.sh: Ignore missing package manager
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index 72f734f36bf..0c8e11b8170 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -317,12 +317,6 @@ Please review the following package changes carefully."
+ echo -e "${YELLOW}Could not find package manager
+ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools python-venv pygobject libtool libffi libjpg openssl autoconf bison swig glib2.0 portaudio19 mpg123 flac curl fann g++ jq\n$RESET"
+
+- echo 'Warning: Failed to install all dependencies. Continue? y/N'
+- read -n1 continue
+- if [[ $continue != 'y' ]] ; then
+- exit 1
+- fi
+-
+ fi
+ }
+
+--
+2.23.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-pip-requirements-Don-t-install-requirements-with-pip.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch
index 3063e7f8d..7f63ea13d 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-pip-requirements-Don-t-install-requirements-with-pip.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch
@@ -1,7 +1,7 @@
-From ac749f2512e8d121e8a64a8d5e6f226f16735dda Mon Sep 17 00:00:00 2001
+From 04b14c4569309f1a433d955773aeb8a3607a1360 Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@wdc.com>
Date: Tue, 19 Mar 2019 13:32:54 -0700
-Subject: [PATCH 4/5] pip requirements: Don't install requirements with pip
+Subject: [PATCH 5/7] pip requirements: Don't install requirements with pip
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Upstream-Status: Inappropriate [embedded specific]
@@ -14,10 +14,10 @@ Upstream-Status: Inappropriate [embedded specific]
delete mode 100644 test-requirements.txt
diff --git a/dev_setup.sh b/dev_setup.sh
-index 72f734f36bf..b5ca6851631 100755
+index 0c8e11b8170..be4a19de0c3 100755
--- a/dev_setup.sh
+++ b/dev_setup.sh
-@@ -357,19 +357,6 @@ fi
+@@ -351,19 +351,6 @@ fi
PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))")
@@ -37,7 +37,7 @@ index 72f734f36bf..b5ca6851631 100755
SYSMEM=$(free | awk '/^Mem:/ { print $2 }')
MAXCORES=$(($SYSMEM / 512000))
MINCORES=1
-@@ -426,4 +413,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then
+@@ -420,4 +407,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then
fi
#Store a fingerprint of setup
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-Use-python3-and-pip3-instead-of-python-and-pip.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch
index 189b686c9..6f1f6f78d 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-Use-python3-and-pip3-instead-of-python-and-pip.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch
@@ -1,7 +1,7 @@
-From 9a0bd09706da3949db17ea7272d6647a487bb6ad Mon Sep 17 00:00:00 2001
+From 86a1d18d96f827baa0c1029c85a53fc89d436e17 Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@wdc.com>
Date: Tue, 19 Mar 2019 13:38:44 -0700
-Subject: [PATCH 5/5] Use python3 and pip3 instead of python and pip
+Subject: [PATCH 6/7] Use python3 and pip3 instead of python and pip
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Upstream-Status: Inappropriate [embedded specific]
@@ -73,7 +73,7 @@ index d80f0e75b13..9448ea3400f 100755
-output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}")
+output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}")
diff --git a/dev_setup.sh b/dev_setup.sh
-index b5ca6851631..fcd0834669f 100755
+index be4a19de0c3..2d9e17ddfd6 100755
--- a/dev_setup.sh
+++ b/dev_setup.sh
@@ -48,7 +48,7 @@ param=''
@@ -94,7 +94,7 @@ index b5ca6851631..fcd0834669f 100755
fi
done
-@@ -355,7 +355,7 @@ else
+@@ -349,7 +349,7 @@ else
fi
fi
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch
new file mode 100644
index 000000000..574bda144
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch
@@ -0,0 +1,30 @@
+From b48b3d240cb0fa5e76aa5daf578e51bb8126431d Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Wed, 16 Oct 2019 09:18:39 -0700
+Subject: [PATCH 7/7] mycroft.conf: Use pocketsphinx by default
+
+precise only works on certain architectures, to make Mycroft more
+versitle use pocketsphinx as it is architecture independent.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ mycroft/configuration/mycroft.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mycroft/configuration/mycroft.conf b/mycroft/configuration/mycroft.conf
+index 1d0be0dcd2b..d2dc75dac44 100644
+--- a/mycroft/configuration/mycroft.conf
++++ b/mycroft/configuration/mycroft.conf
+@@ -196,7 +196,7 @@
+ // Hotword configurations
+ "hotwords": {
+ "hey mycroft": {
+- "module": "precise",
++ "module": "pocketsphinx",
+ "phonemes": "HH EY . M AY K R AO F T",
+ "threshold": 1e-90,
+ "lang": "en-us"
+--
+2.23.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
index d4ac4096b..3c7bd8963 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
@@ -11,8 +11,10 @@ SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \
file://0001-Remove-python-venv.patch \
file://0002-dev_setup.sh-Remove-the-git-dependency.patch \
file://0003-dev_setup.sh-Remove-the-TERM-dependency.patch \
- file://0004-pip-requirements-Don-t-install-requirements-with-pip.patch \
- file://0005-Use-python3-and-pip3-instead-of-python-and-pip.patch \
+ file://0004-dev_setup.sh-Ignore-missing-package-manager.patch \
+ file://0005-pip-requirements-Don-t-install-requirements-with-pip.patch \
+ file://0006-Use-python3-and-pip3-instead-of-python-and-pip.patch \
+ file://0007-mycroft.conf-Use-pocketsphinx-by-default.patch \
file://dev_opts.json \
file://mycroft-setup.service \
file://mycroft.service \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb
deleted file mode 100644
index fcd321cb0..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require ${BPN}.inc
-
-LDFLAGS_append_riscv64 = " -pthread"
-
-SRC_URI += " \
- file://0006-make-opencv-configurable.patch \
- file://0007-use-vorbisidec.patch \
- file://0008-fix-luaL-checkint.patch \
-"
-SRC_URI[md5sum] = "4ff71d262e070fd19f86a1c3542c7b4e"
-SRC_URI[sha256sum] = "18c16d4be0f34861d0aa51fbd274fb87f0cab3b7119757ead93f3db3a1f27ed3"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb
index 7308465b1..fa7174d32 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb
@@ -16,9 +16,15 @@ DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \
# While this item does not require it, it depends on ffmpeg which does
LICENSE_FLAGS = "commercial"
-SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz"
+SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz \
+ file://0006-make-opencv-configurable.patch \
+ file://0007-use-vorbisidec.patch \
+ file://0008-fix-luaL-checkint.patch \
+"
+SRC_URI[md5sum] = "744442ec0c145453ea1d257914c8072e"
+SRC_URI[sha256sum] = "e0149ef4a20a19b9ecd87309c2d27787ee3f47dfd47c6639644bc1f6fd95bdf6"
-inherit autotools gettext pkgconfig distro_features_check
+inherit autotools gettext pkgconfig features_check
ARM_INSTRUCTION_SET = "arm"
export BUILDCC = "${BUILD_CC}"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch
deleted file mode 100644
index 7668df35d..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4945dca11bc4ddec60bd858f45212dc8f39638e0 Mon Sep 17 00:00:00 2001
-From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
-Date: Tue, 5 Jul 2016 18:07:45 -0400
-Subject: [PATCH 1/6] build: Protect against unsupported CPU types
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
-Upstream-Status: Accepted [expected in 0.4]
----
- configure.ac | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6f9553b..f5304b8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -70,8 +70,9 @@ AS_CASE(["${host_cpu}"],
- [
- HAVE_ARM=1
- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM"
-- ]
-+ ],
- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines
-+ [AC_MSG_ERROR([Unsupported CPU type $host_cpu])]
- )
- AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"])
- AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"])
---
-2.11.0
-
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch
deleted file mode 100644
index 2e202b03c..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b5bda3431159b6505dcd069641c863018c4d4309 Mon Sep 17 00:00:00 2001
-From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
-Date: Wed, 6 Jul 2016 15:18:15 -0400
-Subject: [PATCH 2/6] build: Add ARM 64bit support
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
-Upstream-Status: Accepted [expected in 0.4]
----
- configure.ac | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index f5304b8..be20514 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -71,6 +71,11 @@ AS_CASE(["${host_cpu}"],
- HAVE_ARM=1
- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM"
- ],
-+ [aarch64*],
-+ [
-+ HAVE_NEON=1
-+ ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"
-+ ],
- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines
- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])]
- )
---
-2.11.0
-
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch
deleted file mode 100644
index 82e270fac..000000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 7722fb8a3189fea0f6381f02a0e4f63c847f0393 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sat, 6 Aug 2016 11:02:43 +0200
-Subject: [PATCH 3/6] build: fix architecture detection
-
-The current architecture detection, based on the "host_cpu" part of the
-tuple does not work properly for a number of reason:
-
- - The code assumes that if host_cpu starts with "arm" then ARM
- instructions are available, which is incorrect. Indeed, Cortex-M
- platforms can run Linux, they are ARM platforms (so host_cpu = arm),
- but they don't support ARM instructions: they support only the
- Thumb-2 instruction set.
-
- - The armv7 case is also not very useful, as it is not standard at all
- to pass armv7 as host_cpu even if the host system is actually ARMv7
- based.
-
- - For the same reason, the armv8 case is not very useful: ARMv8 is
- AArch64, and there is already a separate case to handle this
- architecture.
-
-So, this commit moves away from a host_cpu based logic, and instead
-tests using AC_CHECK_DECLS() the built-in definitions of the compiler:
-
- - If we have __ARM_ARCH_ISA_ARM defined, then it's an ARM processor
- that supports the ARM instruction set (this allows to exclude Thumb-2
- only processors).
-
- - If we have __ARM_ARCH_7A__, then we have an ARMv7-A processor, and
- we can enable the corresponding optimizations
-
- - Same for __aarch64__, __i386__ and __x86_64__.
-
-In addition, we remove the AC_MSG_ERROR() that makes the build fail for
-all architectures but the ones that are explicitly supported. Indeed,
-webrtc-audio-processing builds just fine for other architectures (tested
-on MIPS), it's just that none of the architecture-specific optimizations
-will be used.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
-Upstream-Status: Accepted [expected in 0.4]
----
- configure.ac | 35 +++++++++++------------------------
- 1 file changed, 11 insertions(+), 24 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index be20514..e898014 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -55,30 +55,17 @@ AS_CASE(["${host}"],
- )
- AC_SUBST(PLATFORM_CFLAGS)
-
--AS_CASE(["${host_cpu}"],
-- [i?86|x86_64],
-- [
-- HAVE_X86=1
-- ],
-- [armv7*|armv8*],
-- [
-- HAVE_ARM=1
-- HAVE_ARMV7=1
-- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7"
-- ],
-- [arm*],
-- [
-- HAVE_ARM=1
-- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM"
-- ],
-- [aarch64*],
-- [
-- HAVE_NEON=1
-- ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"
-- ],
-- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines
-- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])]
--)
-+# Testing __ARM_ARCH_ISA_ARM since the code contains ARM instructions,
-+# which don't work on Thumb-2 only platforms (ARMv7-M).
-+AC_CHECK_DECLS([__ARM_ARCH_ISA_ARM],
-+ [HAVE_ARM=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM"])
-+AC_CHECK_DECLS([__ARM_ARCH_7A__],
-+ [HAVE_ARMV7=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM_V7"])
-+AC_CHECK_DECLS([__aarch64__],
-+ [HAVE_NEON=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"])
-+AC_CHECK_DECLS([__i386__], [HAVE_X86=1])
-+AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1])
-+
- AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"])
- AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"])
- AM_CONDITIONAL(HAVE_ARMV7, [test "x${HAVE_ARMV7}" = "x1"])
---
-2.11.0
-
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb
index dbba2f488..b94dcf9f1 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb
@@ -9,21 +9,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \
file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \
"
-# Note that patch 3 effectively reverts patches 1 and 2. The only reason
-# why patches 1 and 2 are included is that otherwise patch 3 wouldn't
-# apply cleanly.
SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \
- file://0001-build-Protect-against-unsupported-CPU-types.patch \
- file://0002-build-Add-ARM-64bit-support.patch \
- file://0003-build-fix-architecture-detection.patch \
file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \
file://0005-typedefs.h-add-support-for-PowerPC.patch \
file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \
file://riscv_support.patch \
"
-SRC_URI[md5sum] = "336ae032f608e65808ac577cde0ab72c"
-SRC_URI[sha256sum] = "756e291d4f557d88cd50c4fe3b8454ec238362d22cedb3e6173240d90f0a80fa"
+SRC_URI[md5sum] = "6e10724ca34bcbc715a4c208273acb0c"
+SRC_URI[sha256sum] = "a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf"
LDFLAGS_append_libc-musl = " -lexecinfo"
-inherit autotools
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
new file mode 100644
index 000000000..00115cfca
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
@@ -0,0 +1,81 @@
+Fix fail to enable bluetooth issue
+
+When launch blueman-manager while bluetooth is disable, it may fails
+with error:
+
+ Failed to enable bluetooth
+
+Because when get bluetooth status right after change its status, the
+status may not be updated that plugin applet/KillSwitch.py sets the
+bluetooth status via method of another dbus service which doesn't return
+immediately.
+
+Provides a new dbus method for PowerManager which checks whether dbus
+method SetBluetoothStatus() has finished. Then it makes sure to get
+right bluetooth status.
+
+Upstream-Status: Inappropriate
+Send to upstream but not accepted:
+https://github.com/blueman-project/blueman/pull/1121
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ blueman/Functions.py | 12 +++++++++++-
+ blueman/plugins/applet/PowerManager.py | 4 ++++
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/blueman/Functions.py b/blueman/Functions.py
+index 3b76271..c5eeb27 100644
+--- a/blueman/Functions.py
++++ b/blueman/Functions.py
+@@ -17,7 +17,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #
+-from time import sleep
++from time import sleep, time
+ import re
+ import os
+ import signal
+@@ -86,6 +86,16 @@ def check_bluetooth_status(message, exitfunc):
+ return
+
+ applet.SetBluetoothStatus('(b)', True)
++
++ timeout = time() + 10
++ while applet.GetRequestStatus():
++ sleep(0.1)
++ if time() > timeout:
++ # timeout 5s has been set in applet/PowerManager.py
++ # so it should NOT reach timeout here
++ logging.warning('Should NOT reach timeout.')
++ break
++
+ if not applet.GetBluetoothStatus():
+ print('Failed to enable bluetooth')
+ exitfunc()
+diff --git a/blueman/plugins/applet/PowerManager.py b/blueman/plugins/applet/PowerManager.py
+index 8ec9fc4..29a0fb0 100644
+--- a/blueman/plugins/applet/PowerManager.py
++++ b/blueman/plugins/applet/PowerManager.py
+@@ -48,6 +48,7 @@ class PowerManager(AppletPlugin):
+ self._add_dbus_signal("BluetoothStatusChanged", "b")
+ self._add_dbus_method("SetBluetoothStatus", ("b",), "", self.request_power_state)
+ self._add_dbus_method("GetBluetoothStatus", (), "b", self.get_bluetooth_status)
++ self._add_dbus_method("GetRequestStatus", (), "b", self.get_request_status)
+
+ def on_unload(self):
+ self.parent.Plugins.Menu.unregister(self)
+@@ -182,6 +183,9 @@ class PowerManager(AppletPlugin):
+ def get_bluetooth_status(self):
+ return self.current_state
+
++ def get_request_status(self):
++ return self.request_in_progress
++
+ def on_adapter_property_changed(self, _path, key, value):
+ if key == "Powered":
+ if value and not self.current_state:
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb
index 36de2af1d..96c8bb26c 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.1.bb
@@ -9,6 +9,7 @@ inherit autotools systemd gsettings python3native gtk-icon-cache
SRC_URI = " \
https://github.com/blueman-project/blueman/releases/download/${PV}/blueman-${PV}.tar.xz \
file://0001-Search-for-cython3.patch \
+ file://0002-fix-fail-to-enable-bluetooth.patch \
"
SRC_URI[md5sum] = "9de89abb31be45bdbf11f7884764a2dc"
SRC_URI[sha256sum] = "f1eab2334e5a1587defa80900901048d14c2e8ffa8c0cff7240bc9937a61dbc3"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.0.2.bb b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.1.bb
index 79d1dada0..a5aa584f5 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.0.2.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.1.bb
@@ -10,9 +10,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0531457992a97ecebc6975914a874a9d"
UPSTREAM_CHECK_URI = "https://roy.marples.name/downloads/dhcpcd/"
SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz \
- file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch"
-SRC_URI[md5sum] = "c0375a1f725f1c191b43af60e4f7175b"
-SRC_URI[sha256sum] = "33a26ad561546cd2cfe1e6de6352a85df72b41c37def8c7eb00e90e57c627a5c"
+ file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch \
+ file://0001-dhcpcd-Fix-build-error-with-musl.patch"
+
+SRC_URI[md5sum] = "dc4f29a62afc53cdac311e925cfd1bc7"
+SRC_URI[sha256sum] = "485d308fe10febd36b6f936e4260e4ab34a146e4f00a9f7a5509c4377ad5ea82"
inherit pkgconfig autotools-brokensep
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-dhcpcd-Fix-build-error-with-musl.patch b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-dhcpcd-Fix-build-error-with-musl.patch
new file mode 100644
index 000000000..b48b467b8
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-dhcpcd-Fix-build-error-with-musl.patch
@@ -0,0 +1,34 @@
+Subject: [PATCH] dhcpcd: Fix build error with musl.
+
+Re-organize the header includes in if-linux.c to fix error as follows:
+In file included from if-linux.c:49:
+path/usr/include/netinet/if_ether.h:112:8: error: redefinition of 'struct ethhdr'
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/if-linux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/if-linux.c b/src/if-linux.c
+index fd47278..bfa878b 100644
+--- a/src/if-linux.c
++++ b/src/if-linux.c
+@@ -37,6 +37,7 @@
+ #include <linux/if_addr.h>
+ #include <linux/if_link.h>
+ #include <linux/if_packet.h>
++#include <netinet/if_ether.h>
+ #include <linux/if_tun.h>
+ #include <linux/if_vlan.h>
+ #include <linux/filter.h>
+@@ -46,7 +47,6 @@
+
+ #include <arpa/inet.h>
+ #include <net/if.h>
+-#include <netinet/if_ether.h>
+ #include <netinet/in_systm.h>
+ #include <netinet/in.h>
+ #include <net/route.h>
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
index 8dae0df5b..2d766488e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
@@ -4,8 +4,8 @@ After=syslog.target network.target
[Service]
Type=forking
-PIDFile=@STATEDIR@/run/radiusd/radiusd.pid
-ExecStartPre=-@BASE_BINDIR@/chown -R radiusd.radiusd @STATEDIR@/run/radiusd
+PIDFile=/run/radiusd/radiusd.pid
+ExecStartPre=-@BASE_BINDIR@/chown -R radiusd.radiusd /run/radiusd
ExecStartPre=@SBINDIR@/radiusd -C
ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/raddb
ExecReload=@SBINDIR@/radiusd -C
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb
index 8c95bbae3..31e6978d6 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb
@@ -230,3 +230,5 @@ FILES_${PN} =+ "${libdir}/rlm_*.so* ${libdir}/proto_*so*"
RDEPENDS_${PN} += "perl"
RDEPENDS_${PN}-utils = "${PN} perl"
+
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
index 53ba25e23..5b6e45c7b 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
@@ -1,7 +1,7 @@
SUMMARY = "dumb networking library"
HOMEPAGE = "http://code.google.com/p/libdnet/"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.2.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.3.bb
index b0bd942ee..79d0dbeae 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.2.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.3.bb
@@ -23,8 +23,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=302d50a6369f5f22efdb674db908167a"
SECTION = "libs"
SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-apache.tgz"
-SRC_URI[md5sum] = "37cdec398ae9ebdd4640df74af893c95"
-SRC_URI[sha256sum] = "a6834fcd7b7e64b83dfaaa6ee695198cb5019a929b2806cb0162e049f98206a4"
+SRC_URI[md5sum] = "90ce7c7a001d2514410280706b3ab1a7"
+SRC_URI[sha256sum] = "ec1bee6d82090ed6ea2690784ea4b294ab576a65d428da9fe8750f932d2da661"
inherit cmake
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch
index cd4291d91..e33d8eac1 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch
@@ -3,17 +3,15 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 22 Dec 2018 18:47:45 -0800
Subject: [PATCH] Add OpenEmbedded cross compile case
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/miniupnp/miniupnp/pull/410]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
genconfig.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
-diff --git a/genconfig.sh b/genconfig.sh
-index dc42462..59922e9 100755
--- a/genconfig.sh
+++ b/genconfig.sh
-@@ -98,6 +98,12 @@ if [ -f ../shared/tomato_version ]; then
+@@ -103,6 +103,12 @@ if [ -f ../shared/tomato_version ]; then
OS_VERSION="Tomato $TOMATO_VER"
fi
@@ -26,14 +24,14 @@ index dc42462..59922e9 100755
${RM} ${CONFIGFILE}
echo "/* MiniUPnP Project" >> ${CONFIGFILE}
-@@ -318,6 +324,11 @@ case $OS_NAME in
+@@ -346,6 +352,11 @@ case $OS_NAME in
echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
- FW=netfilter
+ FW=iptables
;;
+ OpenEmbedded)
+ OS_URL=http://www.openembedded.org/
+ echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
-+ FW=netfilter
++ FW=iptables
+ ;;
AstLinux)
OS_URL=http://www.astlinux.org/
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20190630.bb b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20191006.bb
index 6b8fdca4c..81bfe66a9 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20190630.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20191006.bb
@@ -15,8 +15,8 @@ SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${BP}.tar.gz;do
file://miniupnpd.service \
file://0001-Add-OpenEmbedded-cross-compile-case.patch \
"
-SRC_URI[md5sum] = "394e676f555d8047be69730d9c4d23a5"
-SRC_URI[sha256sum] = "29f49fe6868597d041ee29f511fa7b65781b9e4e85ef2569a2381c2079e1743e"
+SRC_URI[md5sum] = "340789edd49c113afe37834cc901a1e8"
+SRC_URI[sha256sum] = "218fad7af31f3c22fb4c9db28a55a2a8b5067d41f5b38f52008a057a00d2206d"
IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}"
@@ -26,6 +26,7 @@ do_configure_prepend() {
do_compile() {
cd ${S}
+ CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux config.h
CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux
}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.4.bb
index 085807c4c..27508c4d9 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.4.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.4.bb
@@ -141,8 +141,11 @@ do_install_append() {
rm -rf ${D}/run ${D}${localstatedir}/run
- # For read-only filesystem, do not create links during bootup
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ # For read-only filesystem, do not create links during bootup
ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager
+
+ # systemd v210 and newer do not need this rule file
+ rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules
fi
}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.8.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.10.bb
index d824eacf9..1ad5d55ac 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.8.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.10.bb
@@ -34,8 +34,8 @@ SRC_URI_append_libc-musl = " \
file://0001-samba-fix-musl-lib-without-innetgr.patch \
"
-SRC_URI[md5sum] = "f3c722bbcd903479008fa1b529f56365"
-SRC_URI[sha256sum] = "c41f05fb567f7359998b451543501c7690a2bf6551d658a76bd6916316a410f4"
+SRC_URI[md5sum] = "dde27447f39d124efe18f719ccf956dd"
+SRC_URI[sha256sum] = "700c734b51610e2feaa0d6744f9bec0c0d8917bca8cc78d5b63a4591f32866a5"
UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.10(\.\d+)+).tar.gz"
@@ -45,7 +45,7 @@ RDEPENDS_${PN}_remove = "perl"
DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libbsd libaio libpam libtasn1 jansson"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
DEPENDS_append_libc-musl = " libtirpc"
@@ -189,15 +189,17 @@ do_install_append() {
sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
fi
- chmod 0750 ${D}${sysconfdir}/sudoers.d
+ chmod 0750 ${D}${sysconfdir}/sudoers.d || true
rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
- sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba-gpupdate
- sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_upgradedns
- sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_spnupdate
- sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_kcc
- sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_dnsupdate
- sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${bindir}/samba-tool
+ for f in samba-gpupdate samba_upgradedns samba_spnupdate samba_kcc samba_dnsupdate; do
+ if [ -f "${D}${sbindir}/$f" ]; then
+ sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/$f
+ fi
+ done
+ if [ -f "${D}${bindir}/samba-tool" ]; then
+ sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${bindir}/samba-tool
+ fi
}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.14.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.15.bb
index 892fe4d4c..fbec1950d 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.14.1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.15.bb
@@ -16,8 +16,8 @@ SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
file://0001-chdeck-for-gettid-API-during-configure.patch \
"
-SRC_URI[md5sum] = "009254a9797ec93321c5936b99dcd6c8"
-SRC_URI[sha256sum] = "2472989da3aace000d1ea5931ece68f8e5cc0c511e272d65182113a2481e822d"
+SRC_URI[md5sum] = "b56cadfa840f706ff67d4df0256c03eb"
+SRC_URI[sha256sum] = "bfb437746446ef72a03c501db13cd6da5edd2b41f55c80c437ba288be6da7dba"
UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb
index 19cfe46b7..6ff103c77 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb
@@ -20,7 +20,7 @@ SRC_URI = " \
SRC_URI[md5sum] = "3747b453d76709e5a99da209fc0bb5f5"
SRC_URI[sha256sum] = "5f85a8084ad3539b547bec097286948233188c971f498890316dec170bdd1da8"
-inherit setuptools distro_features_check
+inherit setuptools features_check
RDEPENDS_${PN} = " \
iptables \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.1.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.2.0.bb
index ae379383a..5d8bc9ba9 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.1.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.2.0.bb
@@ -13,7 +13,7 @@ PROVIDES += "cyassl"
RPROVIDES_${PN} = "cyassl"
SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https"
-SRCREV = "50fbdb961fd8c2d8123064e567ae8ec44167732d"
+SRCREV = "cb7b4af9861ad627faffdc3d24a196c2d11930b8"
S = "${WORKDIR}/git"
inherit autotools
diff --git a/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
index f511d729e..9109b105f 100644
--- a/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
+++ b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
@@ -42,6 +42,8 @@ RDEPENDS_packagegroup-meta-networking-connectivity = "\
${@bb.utils.contains("DISTRO_FEATURES", "pam", "samba", "", d)} \
"
+RDEPENDS_packagegroup-meta-networking-connectivity_remove_libc-musl = "rdist"
+
RDEPENDS_packagegroup-meta-networking-daemons = "\
ippool radvd autofs keepalived proftpd openhpi lldpd \
ptpd igmpproxy opensaf squid \
@@ -50,6 +52,8 @@ RDEPENDS_packagegroup-meta-networking-daemons = "\
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "networkd-dispatcher", "", d)} \
"
+RDEPENDS_packagegroup-meta-networking-daemons_remove_libc-musl = "opensaf"
+
RDEPENDS_packagegroup-meta-networking-devtools = "\
python-ldap grpc \
"
@@ -81,6 +85,9 @@ RDEPENDS_packagegroup-meta-networking-netkit = "\
netkit-ftp netkit-rpc \
"
+RDEPENDS_packagegroup-meta-networking-netkit_remove_libc-musl = " \
+ netkit-rsh-client netkit-rsh-server netkit-telnet"
+
RDEPENDS_packagegroup-meta-networking-protocols = "\
tsocks freediameter xl2tpd babeld mdns net-snmp \
quagga pptp-linux zeroconf nopoll openflow rp-pppoe \
@@ -88,6 +95,8 @@ RDEPENDS_packagegroup-meta-networking-protocols = "\
${@bb.utils.contains("DISTRO_FEATURES", "pam", "dante", "", d)} \
"
+RDEPENDS_packagegroup-meta-networking-protocols_remove_libc-musl = "mdns"
+
RDEPENDS_packagegroup-meta-networking-support = "\
ncp ndisc6 mtr tinyproxy ssmping ntp \
wpan-tools bridge-utils ifenslave celt051 pimd \
@@ -99,7 +108,7 @@ RDEPENDS_packagegroup-meta-networking-support = "\
usbredir ntop wireshark tnftp lksctp-tools \
cim-schema-docs cim-schema-final cim-schema-exper \
libmemcached smcroute libtevent ipcalc c-ares uftp \
- ntimed linux-atm ssmtp openvpn lowpan-tools rdma-core \
+ ntimed linux-atm ssmtp openvpn rdma-core \
iftop aoetools tcpslice tcpdump libtalloc memcached nuttcp netcat \
netcat-openbsd fetchmail yp-tools ypbind-mt yp-tools \
arptables macchanger nghttp2 strongswan fping \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch
new file mode 100644
index 000000000..2a583466e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch
@@ -0,0 +1,30 @@
+From d0d5ac317dab11610a5fc91ca3e7f5ad72ce2236 Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+Date: Tue, 29 Oct 2019 13:19:37 +0800
+Subject: [PATCH] Bug fix for pid_t not found on musl.
+
+When compiling version 5.1.6 on musl, the following error occurs:
+log.h:49:8: error: unknown type name 'pid_t'
+
+Upstream-Status: Pending
+
+Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+---
+ lib/defaults.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/defaults.c b/lib/defaults.c
+index a6ea116..b3ecfa5 100644
+--- a/lib/defaults.c
++++ b/lib/defaults.c
+@@ -21,6 +21,7 @@
+ #include <string.h>
+ #include <sys/utsname.h>
+ #include <sys/stat.h>
++#include <sys/types.h>
+ #include <stdarg.h>
+
+ #include "config.h"
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
index 410827b33..b991acad3 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
@@ -9,7 +9,7 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-update patch to version 5.1.5
+update patch to version 5.1.6
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
configure.in | 2 +-
@@ -20,7 +20,7 @@ index 493b9f1..268d06b 100644
--- a/configure.in
+++ b/configure.in
@@ -12,7 +12,7 @@ define([AC_CACHE_SAVE], )dnl
- AC_INIT(.autofs-5.1.5)
+ AC_INIT(.autofs-5.1.6)
# for pkg-config macros
-m4_include([/usr/share/aclocal/pkg.m4])
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.5.bb b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.6.bb
index 9e43549e8..54f0b9991 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.5.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.6.bb
@@ -25,11 +25,12 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
file://pkgconfig-libnsl.patch \
file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
file://0001-Do-not-hardcode-path-for-pkg.m4.patch \
+ file://0001-Bug-fix-for-pid_t-not-found-on-musl.patch \
"
-SRC_URI[md5sum] = "03b13168ec7bd66a6f2d5f6fea705eee"
-SRC_URI[sha256sum] = "86a8e56ea9d72bb53ff8cdfeefb5cafe983592c6b0178fb99c4a731e59879181"
+SRC_URI[md5sum] = "e6800e0afd6009ecdff148088c564050"
+SRC_URI[sha256sum] = "82094cad44f4e5c4f93eff2789cd66b57d7ab3fa646b7722d97608571001e694"
UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/"
@@ -46,13 +47,19 @@ PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
EXTRA_OEMAKE = "DONTSTRIP=1"
EXTRA_OECONF += "--disable-mount-locking \
--enable-ignore-busy --with-openldap=no \
+ --with-confdir=${sysconfdir}/default \
+ --with-fifodir=/run \
+ --with-flagdir=/run \
--with-sasl=no --with-libtirpc \
+ --with-mapdir=${sysconfdir} \
--with-path=${STAGING_BINDIR_NATIVE} \
--with-fifodir=${localstatedir}/run \
--with-flagdir=${localstatedir}/run \
"
CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \
ac_cv_path_RPCGEN=rpcgen \
+ initdir=${INIT_D_DIR} \
+ piddir=/run \
"
do_configure_prepend () {
@@ -72,6 +79,11 @@ do_install_append () {
if [ -d ${D}${localstatedir}/run ]; then
rmdir ${D}${localstatedir}/run
fi
+ # On hybrid systemd/sysvinit builds, we need to install the sysvinit script by hand.
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d -m 755 ${D}${INIT_D_DIR}
+ install -m 755 ${S}/samples/rc.autofs ${D}${INIT_D_DIR}/autofs
+ fi
}
SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
index 594e55da1..be7131d7d 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
@@ -2,7 +2,7 @@ SUMMARY = "Generic client/server library for SASL authentication"
SECTION = "libs"
HOMEPAGE = "http://asg.web.cmu.edu/sasl/"
DEPENDS = "openssl db groff-native"
-LICENSE = "BSD"
+LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396"
SRCREV = "e41cfb986c1b1935770de554872247453fdbb079"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-i586-build-issues-with-string-length-overflow.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-i586-build-issues-with-string-length-overflow.patch
deleted file mode 100644
index f945c636f..000000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-i586-build-issues-with-string-length-overflow.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From 24ce8f62e042e69497e1299212504c356179e15b Mon Sep 17 00:00:00 2001
-From: Lee Duncan <lduncan@suse.com>
-Date: Tue, 6 Nov 2018 11:16:06 -0800
-Subject: [PATCH] Fix i586 build issues with string length overflow.
-
-Gcc7 warns of possible string print overflow, on i586,
-when printing password length (via a macro), generating
-errors like:
-
-[ 59s] ^~~~~~~~~~~~~~~~~~~~
-[ 59s] In file included from /usr/include/stdio.h:862:0,
-[ 59s] from idbm.h:27,
-[ 59s] from context.h:22,
-[ 59s] from idbm.c:59:
-[ 59s] /usr/include/bits/stdio2.h:64:10: note:
-'__builtin___snprintf_chk' output between 2 and 11 bytes into a
-destination of size 8
-[ 59s] return __builtin___snprintf_chk (__s, __n,
-__USE_FORTIFY_LEVEL - 1,
-[ 59s] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-~~~~~~~~~~
-[ 59s] __bos (__s), __fmt, __va_arg_pack ());
-[ 59s] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-[ 59s] cc1: all warnings being treated as errors
-[ 59s] make[1]: *** [<builtin>: idbm.o] Error 1
-[ 59s] make[1]: Leaving directory
-
-The fix is to limit the size of the string printed, so that no
-overflow is possible.
-
-The print macros in usr/idbm.c were updated, as well, to match
-the newer version in libopeniscsiusr/idbm.c, also to help the
-i586 build.
-
-Upstream-Status: Backport[https://github.com/open-iscsi/open-iscsi/commit/24ce8f62e042e69497e1299212504c356179e15b]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- libopeniscsiusr/idbm.c | 2 +-
- usr/idbm.c | 11 ++++++-----
- 2 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
-index 7724de2..055dd9a 100644
---- a/libopeniscsiusr/idbm.c
-+++ b/libopeniscsiusr/idbm.c
-@@ -676,7 +676,7 @@ updated:
- if (!passwd_done && !strcmp(#_param, name)) { \
- passwd_done = 1; \
- name = #_param "_length"; \
-- snprintf(passwd_len, 8, "%d", (int)strlen(value)); \
-+ snprintf(passwd_len, 8, "%.7d", (int)strlen(value) & 0xffff); \
- value = passwd_len; \
- goto setup_passwd_len; \
- }
-diff --git a/usr/idbm.c b/usr/idbm.c
-index a0207e2..89a6c27 100644
---- a/usr/idbm.c
-+++ b/usr/idbm.c
-@@ -30,6 +30,7 @@
- #include <fcntl.h>
- #include <sys/stat.h>
- #include <sys/file.h>
-+#include <inttypes.h>
-
- #include "idbm.h"
- #include "idbm_fields.h"
-@@ -65,7 +66,7 @@ static struct idbm *db;
- #define __recinfo_int(_key, _info, _rec, _name, _show, _n, _mod) do { \
- _info[_n].type = TYPE_INT; \
- strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
-- snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
-+ snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIi32, _rec->_name); \
- _info[_n].data = &_rec->_name; \
- _info[_n].data_len = sizeof(_rec->_name); \
- _info[_n].visible = _show; \
-@@ -76,7 +77,7 @@ static struct idbm *db;
- #define __recinfo_uint8(_key, _info, _rec, _name, _show, _n, _mod) do { \
- _info[_n].type = TYPE_UINT8; \
- strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
-- snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
-+ snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIu8, _rec->_name); \
- _info[_n].data = &_rec->_name; \
- _info[_n].data_len = sizeof(_rec->_name); \
- _info[_n].visible = _show; \
-@@ -87,7 +88,7 @@ static struct idbm *db;
- #define __recinfo_uint16(_key, _info, _rec, _name, _show, _n, _mod) do { \
- _info[_n].type = TYPE_UINT16; \
- strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
-- snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
-+ snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIu16, _rec->_name); \
- _info[_n].data = &_rec->_name; \
- _info[_n].data_len = sizeof(_rec->_name); \
- _info[_n].visible = _show; \
-@@ -98,7 +99,7 @@ static struct idbm *db;
- #define __recinfo_uint32(_key, _info, _rec, _name, _show, _n, _mod) do { \
- _info[_n].type = TYPE_UINT32; \
- strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
-- snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
-+ snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIu32, _rec->_name); \
- _info[_n].data = &_rec->_name; \
- _info[_n].data_len = sizeof(_rec->_name); \
- _info[_n].visible = _show; \
-@@ -1041,7 +1042,7 @@ updated:
- if (!passwd_done && !strcmp(#_param, name)) { \
- passwd_done = 1; \
- name = #_param "_length"; \
-- snprintf(passwd_len, 8, "%d", (int)strlen(value)); \
-+ snprintf(passwd_len, 8, "%.7" PRIi32, (int)strlen(value) & 0xffff); \
- value = passwd_len; \
- goto setup_passwd_len; \
- }
---
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Make-iscsid-systemd-usage-optional.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Make-iscsid-systemd-usage-optional.patch
deleted file mode 100644
index 08248d358..000000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Make-iscsid-systemd-usage-optional.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 365efb2fd3062065af4b6eb3dc1661b96557dae8 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Wed, 21 Aug 2019 16:37:53 +0800
-Subject: [PATCH] Make iscsid systemd usage optional
-
-Upstream-Status: Backport[https://github.com/open-iscsi/open-iscsi
-/commit/f71581bd641dc26d330cb8b97e5ec272dd08f811]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- Makefile | 5 +++++
- usr/Makefile | 2 ++
- usr/iscsid.c | 6 ++++++
- 3 files changed, 13 insertions(+)
-
-diff --git a/Makefile b/Makefile
-index c533e9d..1ef0921 100644
---- a/Makefile
-+++ b/Makefile
-@@ -39,6 +39,11 @@ ifneq (,$(CFLAGS))
- export CFLAGS
- endif
-
-+# export systemd disablement if set
-+ifneq ($(NO_SYSTEMD),)
-+export NO_SYSTEMD
-+endif
-+
- # Random comments:
- # using '$(MAKE)' instead of just 'make' allows make to run in parallel
- # over multiple makefile.
-diff --git a/usr/Makefile b/usr/Makefile
-index f9445ad..0203127 100644
---- a/usr/Makefile
-+++ b/usr/Makefile
-@@ -41,7 +41,9 @@ CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \
- CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
- ISCSI_LIB = -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr
- LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
-+ifneq ($(NO_SYSTEMD),)
- LDFLAGS += $(shell $(PKG_CONFIG) --libs libsystemd)
-+endif
- PROGRAMS = iscsid iscsiadm iscsistart
-
- # libc compat files
-diff --git a/usr/iscsid.c b/usr/iscsid.c
-index 0c98440..164325e 100644
---- a/usr/iscsid.c
-+++ b/usr/iscsid.c
-@@ -34,7 +34,9 @@
- #include <sys/wait.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#ifndef NO_SYSTEMD
- #include <systemd/sd-daemon.h>
-+#endif
-
- #include "iscsid.h"
- #include "mgmt_ipc.h"
-@@ -339,6 +341,7 @@ static void missing_iname_warn(char *initiatorname_file)
- /* called right before we enter the event loop */
- static void set_state_to_ready(void)
- {
-+#ifndef NO_SYSTEMD
- if (sessions_to_recover)
- sd_notify(0, "READY=1\n"
- "RELOADING=1\n"
-@@ -346,14 +349,17 @@ static void set_state_to_ready(void)
- else
- sd_notify(0, "READY=1\n"
- "STATUS=Ready to process requests\n");
-+#endif
- }
-
- /* called when recovery process has been reaped */
- static void set_state_done_reloading(void)
- {
-+#ifndef NO_SYSTEMD
- sessions_to_recover = 0;
- sd_notifyf(0, "READY=1\n"
- "STATUS=Ready to process requests\n");
-+#endif
- }
-
- int main(int argc, char *argv[])
---
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Use-pkg-config-in-Makefiles-for-newer-libraries.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Use-pkg-config-in-Makefiles-for-newer-libraries.patch
deleted file mode 100644
index 37b764e85..000000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Use-pkg-config-in-Makefiles-for-newer-libraries.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From e9b49664e969fd5cad1abef7b8b59e1fb8d02a47 Mon Sep 17 00:00:00 2001
-From: Lee Duncan <lduncan@suse.com>
-Date: Mon, 12 Nov 2018 13:10:04 -0800
-Subject: [PATCH] Use pkg-config in Makefiles for newer libraries.
-
-These two recently-added libraries can be in different
-locations on different distros, so use pkg-config to
-added the appropriate actions in the make files.
-
-Upstream-Status: Backport[https://github.com/open-iscsi/open-iscsi/commit/
-623a81123c494f5c69dc6616bd72e838862e2f1f#diff-c4bf6688222ad28c9719cfaf88c16329]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libopeniscsiusr/Makefile | 8 +++++++-
- usr/Makefile | 11 ++++++++---
- 2 files changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/libopeniscsiusr/Makefile b/libopeniscsiusr/Makefile
-index bf7c96c..a045a45 100644
---- a/libopeniscsiusr/Makefile
-+++ b/libopeniscsiusr/Makefile
-@@ -23,6 +23,8 @@ endif
- INCLUDE_DIR ?= $(prefix)/include
- PKGCONF_DIR ?= $(LIB_DIR)/pkgconfig
-
-+PKG_CONFIG = /usr/bin/pkg-config
-+
- LIBISCSI_USR_DIR=$(TOPDIR)/libopeniscsiusr
-
- LIBISCSI_USR_VERSION_MAJOR=0
-@@ -43,13 +45,17 @@ OBJS = context.o misc.o session.o sysfs.o iface.o idbm.o node.o default.o
-
- CFLAGS ?= -O2 -g
- CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC
-+CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
-+
-+LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
-
- LIBADD =
-
- all: $(LIBS) $(LIBS_MAJOR) $(TESTS) doc
-
- $(LIBS): $(OBJS)
-- $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LIBADD)
-+ @echo CFLAGS= $(CFLAGS)
-+ $(CC) $(CFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LDFLAGS) $(LIBADD)
- ln -sf $@ $(DEVLIB)
-
- $(LIBS_MAJOR): $(LIBS)
-diff --git a/usr/Makefile b/usr/Makefile
-index f9445ad..f1c35aa 100644
---- a/usr/Makefile
-+++ b/usr/Makefile
-@@ -32,11 +32,16 @@ IPC_OBJ=ioctl.o
- endif
- endif
-
-+PKG_CONFIG = /usr/bin/pkg-config
-+
- CFLAGS ?= -O2 -g
- WARNFLAGS ?= -Wall -Wstrict-prototypes
- CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \
- -I$(TOPDIR)/libopeniscsiusr
-+CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
- ISCSI_LIB = -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr
-+LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
-+LDFLAGS += $(shell $(PKG_CONFIG) --libs libsystemd)
- PROGRAMS = iscsid iscsiadm iscsistart
-
- # libc compat files
-@@ -60,14 +65,14 @@ all: $(PROGRAMS)
-
- iscsid: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(DISCOVERY_SRCS) \
- iscsid.o session_mgmt.o discoveryd.o mntcheck.o
-- $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -lisns -lcrypto -lrt -lmount $(ISCSI_LIB)
-+ $(CC) $(CFLAGS) $^ -o $@ -lisns -lcrypto -lrt -lmount $(LDFLAGS) $(ISCSI_LIB)
-
- iscsiadm: $(ISCSI_LIB_SRCS) $(DISCOVERY_SRCS) iscsiadm.o session_mgmt.o mntcheck.o
-- $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -lisns -lcrypto -lmount $(ISCSI_LIB)
-+ $(CC) $(CFLAGS) $^ -o $@ -lisns -lcrypto -lmount $(LDFLAGS) $(ISCSI_LIB)
-
- iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
- iscsistart.o statics.o
-- $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -lrt $(ISCSI_LIB)
-+ $(CC) $(CFLAGS) $^ -o $@ -lrt $(LDFLAGS) $(ISCSI_LIB)
- clean:
- rm -f *.o $(PROGRAMS) .depend $(LIBSYS)
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.877.bb b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.878.bb
index 3cef70f5e..b75e54b9c 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.877.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.878.bb
@@ -8,21 +8,19 @@ HOMEPAGE = "http://www.open-iscsi.com/"
LICENSE = "GPLv2 & LGPLv2.1"
SECTION = "net"
DEPENDS = "openssl flex-native bison-native open-isns util-linux kmod"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV ?= "120ac127654c4644d46a74799fffe527ab1f4f42"
+SRCREV ?= "288add22d6b61cc68ede358faeec9affb15019cd"
SRC_URI = "git://github.com/open-iscsi/open-iscsi \
- file://0001-Fix-i586-build-issues-with-string-length-overflow.patch \
file://initd.debian \
file://99_iscsi-initiator-utils \
file://iscsi-initiator \
file://iscsi-initiator.service \
file://iscsi-initiator-targets.service \
file://set_initiatorname \
- file://0001-Use-pkg-config-in-Makefiles-for-newer-libraries.patch \
- file://0001-Make-iscsid-systemd-usage-optional.patch \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
@@ -36,6 +34,8 @@ EXTRA_OECONF = " \
--host=${BUILD_SYS} \
"
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '--without-systemd', d)}"
+
EXTRA_OEMAKE = ' \
OS="${TARGET_SYS}" \
TARGET="${TARGET_OS}" \
@@ -46,6 +46,7 @@ EXTRA_OEMAKE = ' \
NO_SYSTEMD=1 \
'
+
do_configure () {
cd ${S}/iscsiuio ; autoreconf --install; ./configure ${EXTRA_OECONF}
}
diff --git a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.0.16.bb b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.0.19.bb
index 5257c5cfe..08182b1b2 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.0.16.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.0.19.bb
@@ -11,8 +11,8 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz"
-SRC_URI[md5sum] = "03f202eace2ad392c61ced15bb710e24"
-SRC_URI[sha256sum] = "f0c7dc86147a286913c1c2c918f557735016285d25779d4d2fce5732fcb888df"
+SRC_URI[md5sum] = "df670e0904d4e48e72ccc8409ad9c6de"
+SRC_URI[sha256sum] = "0e2f8454765bc6a5fa26758bd9cec18aae42882843cdd24848aff0ae65ce4ca7"
DEPENDS = "libnfnetlink openssl"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/0001-priv-include-limits.h-for-PATH_MAX.patch b/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/0001-priv-include-limits.h-for-PATH_MAX.patch
deleted file mode 100644
index 9ea4a9ffb..000000000
--- a/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/0001-priv-include-limits.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From c6a283bfcbfefe9c89113e81b0f792c12c4eefb8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Mon, 25 Mar 2019 18:43:03 +0100
-Subject: [PATCH] priv: include limits.h for PATH_MAX
-
-Upstream-Status: Backport
-
-Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
----
- src/daemon/priv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/daemon/priv.c b/src/daemon/priv.c
-index f4d6bdf..ba5ae58 100644
---- a/src/daemon/priv.c
-+++ b/src/daemon/priv.c
-@@ -27,6 +27,7 @@
- #include <unistd.h>
- #include <signal.h>
- #include <errno.h>
-+#include <limits.h>
- #include <sys/wait.h>
- #include <sys/stat.h>
- #include <sys/socket.h>
---
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_1.0.3.bb b/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb
index e650b5795..8fdaf848f 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_1.0.3.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb
@@ -9,11 +9,10 @@ SRC_URI = "\
http://media.luffy.cx/files/${BPN}/${BPN}-${PV}.tar.gz \
file://lldpd.init.d \
file://lldpd.default \
- file://0001-priv-include-limits.h-for-PATH_MAX.patch \
"
-SRC_URI[md5sum] = "04844328f053ee343344d892efb8a00c"
-SRC_URI[sha256sum] = "39fced395168015416bfe78b95414facf066f841f349024433aa20ab54e4c360"
+SRC_URI[md5sum] = "33e8d58623f99184e4e709cbbfe45db3"
+SRC_URI[sha256sum] = "5319bc032fabf1008d5d91e280276aa7f1bbfbb70129d8526cd4526d7c22724f"
inherit autotools update-rc.d useradd systemd pkgconfig bash-completion
diff --git a/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.0.1.bb b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.0.1.bb
index 8523ae8c0..6b73506c2 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.0.1.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.0.1.bb
@@ -7,7 +7,7 @@ AUTHOR = "Clayton Craft and others"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
-inherit distro_features_check systemd
+inherit features_check systemd
RDEPENDS_${PN} = "python3-pygobject python3-dbus"
REQUIRED_DISTRO_FEATURES = "systemd"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
index b47d59e2d..e8d19a2c0 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
@@ -17,7 +17,7 @@ servers, Blade Center, and machines which export data via sysfs. \
HOMEPAGE = "http://openhpi.sourceforge.net/Home"
SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"
DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
index 778100533..64c20d0f5 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
@@ -202,29 +202,19 @@ ALTERNATIVE_LINK_NAME[mailq.1] = "${mandir}/man1/mailq.1"
ALTERNATIVE_LINK_NAME[newaliases.1] = "${mandir}/man1/newaliases.1"
ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1"
-PACKAGE_WRITE_DEPS += "postfix-native"
-pkg_postinst_${PN} () {
- if [ "x$D" = "x" ]; then
- touch /etc/aliases
- newaliases
-
- # generate virtual_alias, default is hash
- touch /etc/postfix/virtual_alias
- postmap /etc/postfix/virtual_alias
- else
- touch $D/etc/aliases
- # This can fail depending on host setup
- if ! newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases; then
- $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
- else
- touch $D/etc/postfix/virtual_alias
- postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias
- fi
+pkg_postinst_ontarget_${PN}-cfg () {
+ touch /etc/aliases
+ newaliases
- fi
+ # generate virtual_alias, default is hash
+ touch /etc/postfix/virtual_alias
+ postmap /etc/postfix/virtual_alias
}
+PACKAGES =+ "${PN}-cfg"
+RDEPENDS_${PN}_class-target += "${PN}-cfg"
# Exclude .debug directories from the main package
-FILES_${PN} = "${sysconfdir} ${localstatedir} ${bindir}/* ${sbindir}/* \
+FILES_${PN} = "${localstatedir} ${bindir}/* ${sbindir}/* \
${libexecdir}/* ${systemd_unitdir}/*"
+FILES_${PN}-cfg = "${sysconfdir}"
FILES_${PN}-dbg += "${libexecdir}/postfix/.debug"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.5.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.7.bb
index 189baea5c..3699ee58d 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.5.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.7.bb
@@ -15,7 +15,7 @@ SRC_URI += "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${P
file://0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
file://0001-Fixed-build-failure-with-glibc-2.30-due-to-dropped-R.patch \
"
-SRC_URI[md5sum] = "093109941095390562166de766d4720d"
-SRC_URI[sha256sum] = "8b2ba54f9d2a049582a0ed3ee2dbe96ba57e278feea9cb4f80e1a61844e6319f"
+SRC_URI[md5sum] = "b29ab85e8f6ef7fae132b004e777671b"
+SRC_URI[sha256sum] = "fe3253121d3ba8836a23774225518560b35e40497951ad5bec154afa8205f967"
UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.3(\.\d+)+).tar.gz"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb b/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb
index 58625c809..2bd642706 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb
@@ -5,7 +5,7 @@ and PTP Version 2 implements IEEE-1588-2008. PTP was developed to provide very p
time coordination of LAN connected computers."
HOMEPAGE = "http://sourceforge.net/projects/ptpd"
SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://README;md5=0733e1b3788ab2ebbc63bf33a020da1d"
DEPENDS = "libpcap"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch
index 16a611e3c..2606a3667 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch
@@ -8,30 +8,39 @@ Upstream-Status: Inappropriate [config]
Signed-off-by: Yauhen Kharuzhy <yauhen.kharuzhy@promwad.com>
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
+Update for 1.0.49.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
---
- configure.ac | 12 ------------
- 1 file changed, 12 deletions(-)
+ configure.ac | 15 ---------------
+ 1 file changed, 15 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 3a4209b..695ce68 100644
+index 079e6f0..9a1ec06 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -91,18 +91,6 @@ AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS="$LDFLAGS -Wl,-z,relro"])
+@@ -96,21 +96,6 @@ AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS="$LDFLAGS -Wl,-z,relro"])
AX_CHECK_LINK_FLAG([-Wl,-z,now], [LDFLAGS="$LDFLAGS -Wl,-z,now"])
AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"])
--if test -d /usr/local/include; then
-- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
--fi
--
--if test -d /usr/kerberos/include; then
-- CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
--fi
--
--if test -d /usr/local/lib; then
-- LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-if test "x$cross_compiling" != "xyes"; then
+- for path in \
+- /usr/kerberos \
+- /usr/local /opt /usr/local/opt \
+- /usr/openssl@1.1 /opt/openssl@1.1 /usr/local/opt/openssl@1.1 \
+- /usr/openssl /opt/openssl /usr/local/opt/openssl; do
+- if test -d $path/include; then
+- CPPFLAGS="$CPPFLAGS -I${path}/include"
+- fi
+- if test -d $path/lib; then
+- LDFLAGS="$LDFLAGS -L${path}/lib"
+- fi
+- done
-fi
-
CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
dnl Checks for header files
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.47.bb b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.49.bb
index 43be44ea3..5a8e9c130 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.47.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.49.bb
@@ -2,8 +2,8 @@ SUMMARY = "FTP Server with a strong focus on software security"
DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server."
HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd"
SECTION = "net"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0595b4261a04bc2d27f30b9c90796c1f"
+LICENSE = "BSD-0-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e25e28bc568d70eb26c3a91387c86ccb"
DEPENDS = "libcap virtual/crypt"
@@ -11,11 +11,10 @@ SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.t
file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \
file://nostrip.patch \
"
-SRC_URI[md5sum] = "f000e519918682ee6b65090352177d4a"
-SRC_URI[sha256sum] = "4740c316f5df879a2d68464489fb9b8b90113fe7dce58e2cdd2054a4768f27ad"
+SRC_URI[md5sum] = "451879495ba61c1d7dcfca8dd231119f"
+SRC_URI[sha256sum] = "767bf458c70b24f80c0bb7a1bbc89823399e75a0a7da141d30051a2b8cc892a5"
inherit autotools
-EXTRA_OECONF = "--with-minimal"
PACKAGECONFIG[libsodium] ="ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=yes, \
ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=no, libsodium"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.6.bb b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.9.bb
index ca4927dda..6f202cf40 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.6.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.9.bb
@@ -28,8 +28,8 @@ SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${BPN}-${PV}.tar.bz2
SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
-SRC_URI[md5sum] = "6fb9f2be772b9bcaf2b3322d9e16ee1e"
-SRC_URI[sha256sum] = "73c1970467618db194057f6c43c80019a4dc47847579fc404796ff2dcd215f05"
+SRC_URI[md5sum] = "b315d0dce37627dfe61eec7f5304baaf"
+SRC_URI[sha256sum] = "0f5829d878002147e7c4d9b8901c2c3c051693465e82e45cef9ab0e226e3e729"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://errors/COPYRIGHT;md5=19cc4dd146f397e72f3ff6f9f58fbfbe \
diff --git a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.24.3.bb
index 5cfa3aa82..24072c083 100644
--- a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb
+++ b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.24.3.bb
@@ -6,12 +6,12 @@ SECTION = "libs"
LICENSE = "Apache-2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl"
+DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl libnsl2"
DEPENDS_append_class-target = " googletest grpc-native "
DEPENDS_append_class-nativesdk = " grpc-native "
S = "${WORKDIR}/git"
-SRCREV_grpc = "fe494ff4104b6f6a78117ab2da71d29c93053267"
+SRCREV_grpc = "2de2e8dd8921e1f7d043e01faf7fe8a291fbb072"
SRCREV_upb = "9effcbcb27f0a665f9f345030188c0b291e32482"
BRANCH = "v1.24.x"
SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
@@ -42,6 +42,10 @@ do_configure_prepend_mipsarch() {
sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
}
+do_configure_prepend_toolchain-clang_x86() {
+ sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
BBCLASSEXTEND = "native nativesdk"
SYSROOT_DIRS_BLACKLIST_append_class-target = "${libdir}/cmake/grpc"
diff --git a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.5.bb
index e2ab25b10..1f4a3e1c6 100644
--- a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb
+++ b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.5.bb
@@ -11,12 +11,12 @@ SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz \
file://corosync.conf \
"
-SRC_URI[md5sum] = "69db29ff4bc035936946be44fc8be5cd"
-SRC_URI[sha256sum] = "9bd4707bb271df16f8d543ec782eb4c35ec0330b7be696b797da4bd8f058a25d"
+SRC_URI[md5sum] = "e36a056b893c313c4ec1fe0d7e6cdebd"
+SRC_URI[sha256sum] = "ab6eafdb8f43a23794fc15d4c5198bbd6759060cb13c8d2d1e78a6c8360aba5f"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.(?!99)\d+(\.\d+)+)"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
DEPENDS = "groff-native nss libqb"
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.9.bb b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.9.bb
index 876462d2f..4bf9944aa 100644
--- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.9.bb
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.9.bb
@@ -23,7 +23,7 @@ S = "${WORKDIR}/dlm-dlm-${PV}"
DEPENDS = "corosync systemd"
-inherit pkgconfig systemd distro_features_check
+inherit pkgconfig systemd features_check
PACKAGECONFIG ??= ""
@@ -36,6 +36,10 @@ export EXTRA_OEMAKE = ""
DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}"
+do_compile_prepend_toolchain-clang() {
+ sed -i -e "s/-fstack-clash-protection//g" ${S}/*/Makefile
+}
+
do_compile_prepend() {
sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
sed -i -e "s/ ${DONTBUILD}//g" ${S}/Makefile
diff --git a/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.4.bb b/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.5.bb
index 75860073a..a3d4b7cc5 100644
--- a/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.4.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.5.bb
@@ -8,7 +8,7 @@ DEPENDS = "openssl zlib icu"
SRC_URI = "git://github.com/znc/znc.git;name=znc \
git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \
"
-SRCREV_znc = "e661cdf9a394e2afd1b97517efa21fa2fa757e22"
+SRCREV_znc = "c7f72f8bc800115ac985e7e13eace78031cb1b50"
SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4"
# This constructs a composite revision based on multiple SRCREV's.
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
index 394a69e62..65c20c072 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "netkit-ft includes the ftp client."
SECTION = "net"
HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
-LICENSE = "BSD"
+LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://ftp/ftp.c;beginline=2;endline=3;md5=2d40a75a50d83b8f6317b3f53db72bfa"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
index ba1ad3f7f..c39faef8d 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "netkit-rusers includes rusers - Displays who is logged in to mach
rusersd - Logged in users server"
HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://rusers/rusers.c;beginline=2;endline=3;md5=f4fc634a4ce8c569911196b72b10770e"
DEPENDS = " tcp-wrappers libtirpc rpcbind rpcsvc-proto rpcsvc-proto-native"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch b/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch
index 717b4d73f..349a1351f 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch
@@ -12,8 +12,6 @@ Upstream-Status: Pending
rwhod/rwhod.c | 5 +++--
3 files changed, 5 insertions(+), 2 deletions(-)
-diff --git a/ruptime/ruptime.c b/ruptime/ruptime.c
-index 1d4f7b6..f1f043c 100644
--- a/ruptime/ruptime.c
+++ b/ruptime/ruptime.c
@@ -53,6 +53,7 @@ char ruptime_rcsid[] =
@@ -24,11 +22,9 @@ index 1d4f7b6..f1f043c 100644
struct hs {
char hs_hostname[MAXHOSTNAMELEN];
-diff --git a/rwho/rwho.c b/rwho/rwho.c
-index 63919ac..71aec9e 100644
--- a/rwho/rwho.c
+++ b/rwho/rwho.c
-@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/08/01 20:44:18 dholland Exp $";
+@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/0
#include <assert.h>
#include <stdio.h>
#include <time.h>
@@ -36,8 +32,6 @@ index 63919ac..71aec9e 100644
#include <protocols/rwhod.h>
#include "../version.h"
-diff --git a/rwhod/rwhod.c b/rwhod/rwhod.c
-index 54498d0..40cabcf 100644
--- a/rwhod/rwhod.c
+++ b/rwhod/rwhod.c
@@ -76,6 +76,7 @@ char rcsid[] =
@@ -66,6 +60,13 @@ index 54498d0..40cabcf 100644
/*
* Taken from:
*
---
-2.14.1
-
+--- a/include/protocols/rwhod.h
++++ b/include/protocols/rwhod.h
+@@ -37,6 +37,7 @@
+ #ifndef _RWHOD_H_
+ #define _RWHOD_H_
+
++#include <stdint.h>
+ /*
+ * rwho protocol packet format.
+ */
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
index 5685f03d6..60a8d95b0 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "netkit-rwho includes, ruptime rwho and rwhod (Daemon to maintain data for rwho/ruptime)"
HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://rwho/rwho.c;beginline=2;endline=3;md5=5a85f13c0142d72fc378e00f15da5b9e"
SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}.orig.tar.gz;name=archive \
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
index a8d98c940..cf9934138 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "netkit-telnet includes the telnet daemon and client."
HOMEPAGE = "http://www.hcs.harvard.edu/~dholland/computers/netkit.html"
SECTION = "net"
DEPENDS = "ncurses"
-LICENSE = "BSD"
+LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef"
SRC_URI = "http://ftp.linux.org.uk/pub/linux/Networking/netkit/${BP}.tar.gz \
diff --git a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.4.bb b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.9.1.bb
index 550e126f7..27e7b4307 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.4.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.9.1.bb
@@ -13,7 +13,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754"
SRC_URI = "git://github.com/jech/babeld.git;protocol=git"
-SRCREV = "8627b6fcd4992f2e7992ecec97a4a4aa2d7ff099"
+SRCREV = "0835d5d894ea016ab7b81562466cade2c51a12d4"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb b/meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb
index ffdab22cf..cfe71dd69 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb
@@ -25,7 +25,7 @@ EXTRA_OECONF += "--without-gssapi --sbindir=${bindir}"
DEPENDS += "flex-native bison-native libpam"
-inherit autotools-brokensep distro_features_check
+inherit autotools-brokensep features_check
REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.3.2.bb b/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.3.2.bb
index 8e928c989..385b8b373 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.3.2.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.3.2.bb
@@ -28,7 +28,7 @@ SRC_URI[sha256sum] = "ce05b4bf2a04cd2f472e77ba4b86fbfca690bfc83e51da8ce0e575804b
S = "${WORKDIR}/${fd_pkgname}-${PV}"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=69bdc1d97648a2d35914563fcbbb361a"
PTEST_PATH = "${libdir}/${fd_pkgname}/ptest"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch
deleted file mode 100644
index 863866d18..000000000
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d3082d2c606c810aa0a39378bf1e02575af3a301 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 21:54:11 -0800
-Subject: [PATCH] nss_mdns: Do not include nss.h when libc != glibc
-
-Provide nss_status macro instead for non-glibc case
-where nss.h is absent
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- mDNSPosix/nss_mdns.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/mDNSPosix/nss_mdns.c b/mDNSPosix/nss_mdns.c
-index afadb3c..c469584 100755
---- a/mDNSPosix/nss_mdns.c
-+++ b/mDNSPosix/nss_mdns.c
-@@ -378,8 +378,19 @@ init_config ();
-
- #define ENTNAME hostent
- #define DATABASE "hosts"
--
-+#ifdef __GLIBC__
- #include <nss.h>
-+#else
-+enum nss_status
-+{
-+ NSS_STATUS_TRYAGAIN = -2,
-+ NSS_STATUS_UNAVAIL,
-+ NSS_STATUS_NOTFOUND,
-+ NSS_STATUS_SUCCESS,
-+ NSS_STATUS_RETURN
-+};
-+#define NETDB_INTERNAL NULL
-+#endif
- // For nss_status
- #include <netdb.h>
- // For hostent
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.200.35.bb b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.260.1.bb
index 1bd17031a..017894531 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.200.35.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.260.1.bb
@@ -4,15 +4,16 @@ HOMEPAGE = "http://developer.apple.com/networking/bonjour/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
+COMPATIBLE_HOST_libc-musl = 'null'
+
RPROVIDES_${PN} += "libdns_sd.so"
SRC_URI = "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
file://build.patch;patchdir=.. \
file://mdns.service \
- file://0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch;patchdir=.. \
"
-SRC_URI[md5sum] = "e773f290a7d29f1072247985d6add2ff"
-SRC_URI[sha256sum] = "e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0"
+SRC_URI[md5sum] = "aeb92d838a4aa2402ef128ed501484eb"
+SRC_URI[sha256sum] = "3cc71582e8eee469c2de8ecae1d769e7f32b3468dfb7f2ca77f1dee1f30a7d1e"
PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb b/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
index 780423f0f..ea3775452 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
@@ -12,7 +12,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/r/${BPN}/${BPN}_${PV}.orig.tar.gz \
SRC_URI[md5sum] = "6fb7d4d0aefafaee7385831ac46a8e9c"
SRC_URI[sha256sum] = "282a9f1355f190efbb06c0d7c4e062eaa652caf342ed3ad361ac595f72f09f14"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause & BSD-2-Clause & HPND"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3e47566c9271b786693d8a08792dbf41"
inherit autotools-brokensep
diff --git a/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch b/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch
deleted file mode 100644
index b932ebbb4..000000000
--- a/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 748bc693cf24baf42e459e12f152349e392b6737 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 20 Dec 2016 21:32:11 -0800
-Subject: [PATCH] Use foreign switch for automake
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 64cc9994..19ccd4a3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -29,7 +29,7 @@ dnl SUCH DAMAGE.
- dnl
-
- AC_INIT([libusrsctp], [0.9.3.0])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
-
- AC_PROG_CC
- AC_PROG_LIBTOOL
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb b/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
index 3ec746684..a5a5605da 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
@@ -2,9 +2,8 @@ DESCRIPTION = "This is a userland SCTP stack supporting FreeBSD, Linux, Mac OS X
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=ffcf846341f3856d79a483eafa18e2a5"
-SRCREV = "dbfc1b8c4cf1a46a4d8987ba542d5ff06bdaf14c"
+SRCREV = "a10cd498d964508c0e6ec6bd2be9dd4afcbb4d86"
SRC_URI = "git://github.com/sctplab/usrsctp;protocol=https;branch=master \
- file://0001-Use-foreign-switch-for-automake.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb b/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb
index 116800522..12b9124f7 100644
--- a/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb
@@ -9,7 +9,7 @@ with high quality. Unlike these formats CELT imposes very little delay \
on the signal, even less than is typical for speech centric formats \
like Speex, GSM, or G.729."
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=375f60ab360d17f0172737036ff155b2"
PV = "0.5.1.3+git${SRCPV}"
diff --git a/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE b/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE
deleted file mode 100644
index 54a28120e..000000000
--- a/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 1998-2008 Distributed Management Task Force, Inc. (DMTF).
-// All rights reserved.
-// DMTF is a not-for-profit association of industry members dedicated
-// to promoting enterprise and systems management and interoperability.
-// DMTF specifications and documents may be reproduced by
-// members and non-members, provided that correct attribution is given.
-// As DMTF specifications may be revised from time to time,
-// the particular version and release date should always be noted.
-//
-// Implementation of certain elements of this standard or proposed
-// standard may be subject to third party patent rights, including
-// provisional patent rights (herein "patent rights"). DMTF makes
-// no representations to users of the standard as to the existence
-// of such rights, and is not responsible to recognize, disclose, or
-// identify any or all such third party patent right, owners or
-// claimants, nor for any incomplete or inaccurate identification or
-// disclosure of such rights, owners or claimants. DMTF shall have no
-// liability to any party, in any manner or circumstance, under any
-// legal theory whatsoever, for failure to recognize, disclose, or
-// identify any such third party patent rights, or for such party's
-// reliance on the standard or incorporation thereof in its product,
-// protocols or testing procedures. DMTF shall have no liability to
-// any party implementing such standard, whether such implementation
-// is foreseeable or not, nor to any patent owner or claimant, and shall
-// have no liability or responsibility for costs or losses incurred if
-// a standard is withdrawn or modified after publication, and shall be
-// indemnified and held harmless by any party implementing the
-// standard from any and all claims of infringement by a patent owner
-// for such implementations.
-//
-// For information about patents held by third-parties which have
-// notified the DMTF that, in their opinion, such patent may relate to
-// or impact implementations of DMTF standards, visit
-// http://www.dmtf.org/about/policies/disclosures.php.
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf b/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
index 9e5ab9f81..2897b9030 100755
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
@@ -2,7 +2,7 @@
#
# Format is one option per line, legal options are the same
# as the long options legal on the command line. See
-# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.
+# "/usr/bin/dnsmasq --help" or "man 8 dnsmasq" for details.
# Listen on this specific port instead of the standard DNS port
# (53). Setting this to zero completely disables DNS function,
diff --git a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.3.bb b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.4.bb
index be633e03b..239a25273 100644
--- a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.4.bb
@@ -12,8 +12,8 @@ SRC_URI = "http://dovecot.org/releases/2.2/dovecot-${PV}.tar.gz \
file://0001-doveadm-Fix-parallel-build.patch \
"
-SRC_URI[md5sum] = "80c1c271b1c4cbe26a793f4e3b09eb8e"
-SRC_URI[sha256sum] = "992521305fa1d61f4726aac2619ccc65094a3cc2e5c80644455199764305863e"
+SRC_URI[md5sum] = "66c4d71858b214afee5b390ee602dee2"
+SRC_URI[sha256sum] = "777c61e264869e9b288b8d6603f4ed3ac3aac9ec573908067353f51269dce2fe"
DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc"
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.10.0.bb b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.11.0.bb
index 0e14ae73f..286b0f606 100644
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.10.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.11.0.bb
@@ -12,9 +12,9 @@ SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils \
git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers \
${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \
"
-# v9.10.0
-SRCREV_drbd-utils = "859151b228d3b3aacefb09d06d515a2589c22e35"
-SRCREV_drbd-headers = "0955b3423f08f8e11ff05092bc1b766609fd804b"
+# v9.11.0
+SRCREV_drbd-utils = "63092751e76e1fba397e53df4be5c1161b83a223"
+SRCREV_drbd-headers = "d100ee01bf5aa8d5220767e4e35c4224faa8d865"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.1.bb b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.2.bb
index d4fd73e3d..d9d726861 100644
--- a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.2.bb
@@ -22,8 +22,8 @@ SRC_URI = "http://www.vervest.org/htp/archive/c/htpdate-${PV}.tar.xz \
file://0001-Make-environment-variables-assignments-to-be-weak.patch \
file://0001-Replace-ntp_adjtime-with-adjtimex.patch \
"
-SRC_URI[md5sum] = "cab01ddcb62bd84154670a37a7a0c31c"
-SRC_URI[sha256sum] = "186c69509ba68178e2894cb8900e240bb688870ec25de2ac4676724e1e1d1cbf"
+SRC_URI[md5sum] = "aad8c33933648532ac8716c809b15be1"
+SRC_URI[sha256sum] = "5f1f959877852abb3153fa407e8532161a7abe916aa635796ef93f8e4119f955"
do_configure () {
:
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.5.5.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.5.6.bb
index b19c964d8..cc24863c6 100644
--- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.5.5.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.5.6.bb
@@ -33,11 +33,10 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada
file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
-SRC_URI[md5sum] = "339a41ac9efaec680e6d1469dd9aa35b"
-SRC_URI[sha256sum] = "199f5861aa863f538ec66d5fa95ecc13254a2030c53daf0e47363fa9ba235c68"
+SRC_URI[md5sum] = "fc58ef432c1fcb03fc3bb6cccce08977"
+SRC_URI[sha256sum] = "ff82474d0bf109e415a2d50334bde5715f486a53ff4bb8c7f74459dd229e975b"
-inherit waf-samba distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
+inherit waf-samba
S = "${WORKDIR}/ldb-${PV}"
diff --git a/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc b/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc
index e86f832f8..d9a821d10 100644
--- a/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc
+++ b/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc
@@ -1,7 +1,7 @@
DESCRIPTION = "open source C/C++ client library and tools for the memcached server"
DEPENDS = "libevent util-linux"
SECTION = "libdevel"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=865490941c91ba790f0ea78dec93bd60"
SRC_URI = "http://launchpad.net/libmemcached/1.0/${PV}/+download/libmemcached-${PV}.tar.gz"
diff --git a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
index b70c43f15..585968f83 100644
--- a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
@@ -35,3 +35,5 @@ FILES_${PN}-dbg += "${libexecdir}/lowpan-tools/.debug/"
PACKAGES =+ "${PN}-python"
FILES_${PN}-python = "${libdir}/python*"
+
+PNBLACKLIST[lowpan-tools] = "WARNING these tools are deprecated! Use wpan-tools instead"
diff --git a/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.92.bb b/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.93.bb
index 2bc7d9787..dd150700a 100644
--- a/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.92.bb
+++ b/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.93.bb
@@ -6,11 +6,9 @@ DEPENDS = "ncurses"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://ui/mtr.c;beginline=5;endline=16;md5=af1fafbbfa1bfd48af839f4bb3221106"
+ file://ui/mtr.c;beginline=5;endline=16;md5=00a894a39d53726a27386534d1c4e468"
-PV .= "+git${SRCPV}"
-
-SRCREV = "6cddfc6e8f0e20af4af218b545f83d43b3f9a387"
+SRCREV = "304349bad86229aedbc62c07d5e98a8292967991"
SRC_URI = "git://github.com/traviscross/mtr"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.19.bb b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.20.bb
index a6da18ea7..12a82c25b 100644
--- a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.19.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.20.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "glib-2.0"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "162da84302abb5b9be06143c7943a642"
-SRC_URI[sha256sum] = "b4466412f13e057659f25d35e1e8e181afd62c7179bff22a6add81445ecb8690"
+SRC_URI[md5sum] = "910fe6c152f8c30ad8608388e6a4ce89"
+SRC_URI[sha256sum] = "e0e1b3538ab7ae5accf56180afd1a9887d415b98d21223b8ad42592b4af7d6cd"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-support/ncp/libowfat/0001-Depend-on-haveuint128.h-for-umult64.c.patch b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat/0001-Depend-on-haveuint128.h-for-umult64.c.patch
new file mode 100644
index 000000000..6226e2c03
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat/0001-Depend-on-haveuint128.h-for-umult64.c.patch
@@ -0,0 +1,44 @@
+From 7f6a104a682d59f28f7df889129f4467cc45e912 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 6 Nov 2019 19:55:42 -0800
+Subject: [PATCH] Depend on haveuint128.h for umult64.c
+
+This fixes parallel build issue e.g.
+mult/umult64.c:9:10: fatal error: 'haveuint128.h' file not found
+ ^~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ GNUmakefile | 1 +
+ Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/GNUmakefile b/GNUmakefile
+index 3f3193d..751ca60 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -126,6 +126,7 @@ $(CDB_OBJS): cdb.h uint32.h
+ $(CRITBIT_OBJS): critbit.h
+
+ mult64.o: haveuint128.h
++umult64.o: haveuint128.h
+
+
+ iob_addbuf.o iob_addfile.o iob_new.o iob_reset.o iob_send.o: iob_internal.h iob.h
+diff --git a/Makefile b/Makefile
+index 0d08da4..02df6c6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -430,7 +430,7 @@ range_str4inbuf.o: mult/range_str4inbuf.c rangecheck.h
+ range_strinbuf.o: mult/range_strinbuf.c rangecheck.h
+ umult16.o: mult/umult16.c uint16.h
+ umult32.o: mult/umult32.c uint32.h
+-umult64.o: mult/umult64.c uint64.h
++umult64.o: mult/umult64.c uint64.h haveuint128.h
+ open_append.o: open/open_append.c open.h
+ open_excl.o: open/open_excl.c open.h
+ open_read.o: open/open_read.c open.h
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.31.bb b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.32.bb
index 4b072f7e7..24f413555 100644
--- a/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.31.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.32.bb
@@ -6,9 +6,11 @@ HOMEPAGE = "http://www.fefe.de/libowfat"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-SRC_URI = "https://www.fefe.de/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "120798fab86cfd72dc6b12284d248dd0"
-SRC_URI[sha256sum] = "d1e4ac1cfccbb7dc51d77d96398e6302d229ba7538158826c84cb4254c7e8a12"
+SRC_URI = "https://www.fefe.de/${BPN}/${BP}.tar.xz \
+ file://0001-Depend-on-haveuint128.h-for-umult64.c.patch \
+ "
+SRC_URI[md5sum] = "ee015ccf45cb2bc61c942642038c2bdc"
+SRC_URI[sha256sum] = "f4b9b3d9922dc25bc93adedf9e9ff8ddbebaf623f14c8e7a5f2301bfef7998c1"
EXTRA_OEMAKE = "\
DIET= \
@@ -19,7 +21,7 @@ EXTRA_OEMAKE = "\
do_install() {
make install \
DESTDIR=${D} \
- INCLUDEDIR=${includedir}/${BPN} \
+ INCLUDEDIR=${includedir} \
LIBDIR=${libdir} \
MAN3DIR=${mandir}/man3
}
diff --git a/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2/0001-fetch-ocsp-response-use-python3.patch b/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2/0001-fetch-ocsp-response-use-python3.patch
new file mode 100644
index 000000000..e4db09638
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2/0001-fetch-ocsp-response-use-python3.patch
@@ -0,0 +1,27 @@
+From 73ec79432fc557a8be4f1500982b1c0f5fdf12a9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
+Date: Thu, 7 Nov 2019 09:58:52 +0000
+Subject: [PATCH] fetch-ocsp-response: use python3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [oe specific]
+Signed-off-by: André Draszik <git@andred.net>
+---
+ script/fetch-ocsp-response | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/script/fetch-ocsp-response b/script/fetch-ocsp-response
+index 0ff7461..185116b 100755
+--- a/script/fetch-ocsp-response
++++ b/script/fetch-ocsp-response
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ # nghttp2 - HTTP/2 C Library
+--
+2.23.0.rc1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.1.bb b/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.1.bb
deleted file mode 100644
index 6077daf76..000000000
--- a/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "HTTP/2 C Library and tools"
-HOMEPAGE = "https://nghttp2.org/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
-
-+UPSTREAM_CHECK_URI = "https://github.com/nghttp2/nghttp2/releases"
-
-SRC_URI = "https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.xz"
-SRC_URI[md5sum] = "02b015cb178c46f27dd87228e33db35f"
-SRC_URI[sha256sum] = "679160766401f474731fd60c3aca095f88451e3cc4709b72306e4c34cf981448"
-
-DEPENDS = "libxml2 openssl zlib jansson cunit c-ares"
-
-inherit cmake pythonnative python-dir
diff --git a/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.2.bb b/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.2.bb
new file mode 100644
index 000000000..c27afdb55
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.39.2.bb
@@ -0,0 +1,41 @@
+SUMMARY = "HTTP/2 C Library and tools"
+HOMEPAGE = "https://nghttp2.org/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
+DEPENDS = "c-ares cunit jansson libev libevent libxml2 openssl zlib"
+
+UPSTREAM_CHECK_URI = "https://github.com/nghttp2/nghttp2/releases"
+
+SRC_URI = "\
+ https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.xz \
+ file://0001-fetch-ocsp-response-use-python3.patch \
+"
+SRC_URI[md5sum] = "de52cd6b587b76486346745514972995"
+SRC_URI[sha256sum] = "a2d216450abd2beaf4e200c168957968e89d602ca4119338b9d7ab059fd4ce8b"
+
+inherit cmake manpages pythonnative
+PACKAGECONFIG[manpages] = ""
+
+# examples are never installed, and don't need to be built in the
+# first place
+EXTRA_OECMAKE = "-DENABLE_EXAMPLES=OFF -DENABLE_APP=ON"
+
+do_install_append() {
+ rm ${D}${bindir}/deflatehd ${D}${bindir}/inflatehd
+}
+
+PACKAGES =+ "lib${PN} ${PN}-client ${PN}-proxy ${PN}-server"
+
+RDEPENDS_${PN} = "${PN}-client (>= ${PV}) ${PN}-proxy (>= ${PV}) ${PN}-server (>= ${PV})"
+RDEPENDS_${PN}_class-native = ""
+RDEPENDS_${PN}-proxy = "openssl python3-core python3-io python3-shell"
+
+ALLOW_EMPTY_${PN} = "1"
+FILES_${PN} = ""
+FILES_lib${PN} = "${libdir}/*${SOLIBS}"
+FILES_${PN}-client = "${bindir}/h2load ${bindir}/nghttp"
+FILES_${PN}-proxy = "${bindir}/nghttpx ${datadir}/${BPN}/fetch-ocsp-response"
+FILES_${PN}-server = "${bindir}/nghttpd"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch b/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch
index f8eb3ae67..8ca26b51b 100644
--- a/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch
+++ b/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch
@@ -15,11 +15,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
src/ruli_addr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/ruli_addr.c b/src/ruli_addr.c
-index 00d5d0d..f1eabae 100644
--- a/src/ruli_addr.c
+++ b/src/ruli_addr.c
-@@ -415,7 +415,7 @@ int ruli_in_print(FILE *out, const _ruli_addr *addr, int family)
+@@ -415,7 +415,7 @@ int ruli_in_print(FILE *out, const _ruli
{
switch (family) {
case PF_INET:
@@ -28,6 +26,25 @@ index 00d5d0d..f1eabae 100644
case PF_INET6:
return ruli_inet6_print(out, &addr->ipv6);
---
-2.13.1
-
+--- a/sample/getaddrinfo.c
++++ b/sample/getaddrinfo.c
+@@ -174,7 +174,7 @@ static void solve(const char *fullname)
+
+ for (ai = ai_res; ai; ai = ai->ai_next) {
+
+- printf(fullname);
++ printf("%s", fullname);
+
+ switch (ai->ai_family) {
+ case PF_INET:
+--- a/sample/ruli-getaddrinfo.c
++++ b/sample/ruli-getaddrinfo.c
+@@ -176,7 +176,7 @@ static void solve(const char *fullname)
+
+ for (ai = ai_res; ai; ai = ai->ai_next) {
+
+- printf(fullname);
++ printf("%s", fullname);
+
+ switch (ai->ai_family) {
+ case PF_INET:
diff --git a/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch b/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch
new file mode 100644
index 000000000..c3ca07a39
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch
@@ -0,0 +1,95 @@
+From bb19a2c7e5b3142d70d3e13c2d8a92a63f2b840a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Nov 2019 22:12:52 -0800
+Subject: [PATCH] Make space for flags from environment
+
+Add force option to ln cmd, so do_install can be rerun in same directory
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sample/Makefile | 20 ++++++++++----------
+ src/Makefile | 8 ++++----
+ 2 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/sample/Makefile b/sample/Makefile
+index 15cafd9..d83641f 100644
+--- a/sample/Makefile
++++ b/sample/Makefile
+@@ -35,9 +35,9 @@ ifeq ($(PLATFORM),SunOS)
+ SOLARIS_LIBS = -lresolv -lnsl -lsocket
+ endif
+
+-CC = gcc
+-CFLAGS = -O2 -pipe -Wall -g -I../src -I$(OOP_INCLUDE_DIR)
+-LDFLAGS = -L../src -L$(OOP_LIB_DIR) $(SOLARIS_LDFLAGS)
++CC ?= gcc
++CFLAGS += -O2 -pipe -Wall -g -I../src -I$(OOP_INCLUDE_DIR)
++LDFLAGS += -L../src -L$(OOP_LIB_DIR) $(SOLARIS_LDFLAGS)
+ UNRULI_LINK = $(CC) $(ARCH) $(LDFLAGS) -o $@ $^ $(SOLARIS_LIBS)
+ LINK = $(UNRULI_LINK) -lruli -loop
+
+@@ -65,13 +65,13 @@ install: $(TARGETS)
+ mkdir -p $(INSTALL_BIN_DIR) $(INSTALL_MAN1_DIR)
+ cp $(TARGETS) $(INSTALL_BIN_DIR)
+ cp ../doc/man/*.1 $(INSTALL_MAN1_DIR)
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 smtpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 httpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 sync_srvsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 sync_smtpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 sync_httpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 ruli-getaddrinfo.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 getaddrinfo.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 smtpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 httpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 sync_srvsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 sync_smtpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 sync_httpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 ruli-getaddrinfo.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 getaddrinfo.1
+
+ %.o: %.c
+ $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c $<
+diff --git a/src/Makefile b/src/Makefile
+index 9b56b5e..39a5ea1 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -45,7 +45,7 @@ endif
+
+ WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \
+ -Wcast-align -Wwrite-strings -Wredundant-decls
+-CC = gcc
++CC ?= gcc
+
+ # gcc-specific options (not valid for g++)
+ ifeq ($(CC),gcc)
+@@ -58,7 +58,7 @@ SHARED = -fPIC
+ FLAGS = $(DEBUG) -O2 -pipe -Wall -g -shared -D_REENTRANT \
+ $(DEFINE_SOLARIS) -I. -I$(OOP_INCLUDE_DIR)
+ SOFT_CFLAGS = $(WARN) $(FLAGS)
+-CFLAGS = $(WARN) -Werror $(FLAGS)
++CFLAGS += $(WARN) -Werror $(FLAGS)
+ LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \
+ ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \
+ ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \
+@@ -66,7 +66,7 @@ LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \
+ ruli_getaddrinfo.o
+ SHAREDOBJ = $(LIBOBJ:%.o=%.os)
+ SONAME = libruli.so.4
+-LDFLAGS = -L$(OOP_LIB_DIR)
++LDFLAGS += -L$(OOP_LIB_DIR)
+
+ COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c
+ SHARED_COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(SHARED) $(CFLAGS) -o $@ -c
+@@ -95,7 +95,7 @@ install: ruli
+ cp $(SONAME) libruli.a $(INSTALL_LIB_DIR)
+ cp *.h $(INSTALL_INCLUDE_DIR)
+ cp ../doc/man/*.3 $(INSTALL_MAN3_DIR)
+- cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so
++ cd $(INSTALL_LIB_DIR) && ln -sf $(SONAME) libruli.so
+ @echo
+ @echo "REMINDER:"
+ @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:"
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch b/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch
new file mode 100644
index 000000000..213006a67
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch
@@ -0,0 +1,35 @@
+From 895ae26e36c4498677ad0b2695a6e5af05548a29 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Nov 2019 22:02:43 -0800
+Subject: [PATCH] ruli_srv: Mark prev_addr_list_size as unused
+
+This ensures that compiler does not trip on building it
+
+ruli_srv.c:157:20: error: variable 'prev_addr_list_size' set but not used [-Werror=unused-but-set-variable]
+| int prev_addr_list_size;
+| ^~~~~~~~~~~~~~~~~~~
+cc1: all warnings being treated as errors
+
+Upstream-Status: Inappropriate [Workaround]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ruli_srv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ruli_srv.c b/src/ruli_srv.c
+index 45c70c7..ff82349 100644
+--- a/src/ruli_srv.c
++++ b/src/ruli_srv.c
+@@ -154,7 +154,7 @@ static void *on_walk_answer(ruli_host_t *host_qry, void *qry_arg)
+ walk_t *walk_qry = (walk_t *) qry_arg;
+ ruli_srv_t *srv_qry = walk_qry->srv_query;
+ ruli_srv_entry_t *srv_entry;
+- int prev_addr_list_size;
++ __attribute__((unused)) int prev_addr_list_size;
+
+ assert(ruli_host_answer_code(host_qry) != RULI_SRV_CODE_VOID);
+
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ruli/files/Makefile.patch b/meta-openembedded/meta-networking/recipes-support/ruli/files/Makefile.patch
deleted file mode 100644
index 60789a3d5..000000000
--- a/meta-openembedded/meta-networking/recipes-support/ruli/files/Makefile.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-diff -Naur patch.org/ruli-0.36/Makefile patch.new/ruli-0.36/Makefile
---- ruli-0.36/Makefile 2015-09-10 15:14:13.952262350 -0400
-+++ ruli-0.36/Makefile 2015-09-10 15:14:38.628261620 -0400
-@@ -7,17 +7,17 @@
- .PHONY: default
- default:
- $(MAKE) -C src
-- $(MAKE) -C sample
-+# $(MAKE) -C sample
-
- .PHONY: clean
- clean:
- $(MAKE) -C src clean
-- $(MAKE) -C sample clean
-+# $(MAKE) -C sample clean
-
- .PHONY: install
- install:
- $(MAKE) -C src install
-- $(MAKE) -C sample install
-+# $(MAKE) -C sample install
-
- .PHONY: dpkg
- dpkg:
-
-=====================================================================
-
-diff -Naur patch.org/git/src/Makefile patch.new/git/src/Makefile
---- ruli-0.36/src/Makefile 2005-06-13 12:34:53.000000000 -0400
-+++ ruli-0.36/src/Makefile 2015-09-11 09:46:06.290287347 -0400
-@@ -18,9 +18,9 @@
- #
- # Debian packaging likes this: OOP_BASE_DIR = /usr
- #
--OOP_BASE_DIR = /usr/local/oop
--OOP_INCLUDE_DIR = $(OOP_BASE_DIR)/include
--OOP_LIB_DIR = $(OOP_BASE_DIR)/lib
-+#OOP_BASE_DIR = /usr/local/oop
-+OOP_INCLUDE_DIR = ${PKG_CONFIG_SYSROOT_DIR}/$(includedir)/
-+#OOP_LIB_DIR = $(OOP_BASE_DIR)/lib
-
- #
- # INSTALL_BASE_DIR indicates where RULI
-@@ -30,11 +30,11 @@
- #
- # Debian packaging likes this: INSTALL_BASE_DIR = $(DESTDIR)/usr
- #
--INSTALL_BASE_DIR = ../install/ruli
--INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include
--INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib
--INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man
--INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3
-+#INSTALL_BASE_DIR = ../install/ruli
-+#INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include
-+#INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib
-+#INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man
-+#INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3
-
- # SunOS, Linux
- PLATFORM=$(shell uname)
-@@ -45,7 +45,7 @@
-
- WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \
- -Wcast-align -Wwrite-strings -Wredundant-decls
--CC = gcc
-+#CC = gcc
-
- # gcc-specific options (not valid for g++)
- ifeq ($(CC),gcc)
-@@ -58,7 +58,7 @@
- FLAGS = $(DEBUG) -O2 -pipe -Wall -g -shared -D_REENTRANT \
- $(DEFINE_SOLARIS) -I. -I$(OOP_INCLUDE_DIR)
- SOFT_CFLAGS = $(WARN) $(FLAGS)
--CFLAGS = $(WARN) -Werror $(FLAGS)
-+CFLAGS = $(WARN) $(FLAGS)
- LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \
- ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \
- ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \
-@@ -66,7 +66,7 @@
- ruli_getaddrinfo.o
- SHAREDOBJ = $(LIBOBJ:%.o=%.os)
- SONAME = libruli.so.4
--LDFLAGS = -L$(OOP_LIB_DIR)
-+#LDFLAGS = -L$(OOP_LIB_DIR)
-
- COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c
- SHARED_COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(SHARED) $(CFLAGS) -o $@ -c
-@@ -89,19 +89,19 @@
- strip: ruli
- strip $(SONAME) libruli.a
-
--.PHONY: install
--install: ruli
-- mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR)
-- cp $(SONAME) libruli.a $(INSTALL_LIB_DIR)
-- cp *.h $(INSTALL_INCLUDE_DIR)
-- cp ../doc/man/*.3 $(INSTALL_MAN3_DIR)
-- cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so
-- @echo
-- @echo "REMINDER:"
-- @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:"
-- @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf"
-- @echo "# ldconfig"
-- @echo
-+#.PHONY: install
-+#install: ruli
-+# mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR)
-+# cp $(SONAME) libruli.a $(INSTALL_LIB_DIR)
-+# cp *.h $(INSTALL_INCLUDE_DIR)
-+# cp ../doc/man/*.3 $(INSTALL_MAN3_DIR)
-+# cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so
-+# @echo
-+# @echo "REMINDER:"
-+# @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:"
-+# @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf"
-+# @echo "# ldconfig"
-+# @echo
-
- .PHONY: ruli
- ruli: $(SONAME) libruli.a
-
-
diff --git a/meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb b/meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb
index 885796d2a..b82a3d08e 100644
--- a/meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb
@@ -8,18 +8,27 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
DEPENDS = "liboop"
SRC_URI = "http://download.savannah.gnu.org/releases/ruli/ruli_${PV}.orig.tar.gz \
- file://Makefile.patch \
file://0001-Fix-build-with-format-string-checks.patch \
file://0001-src-ruli_addr.c-Add-missing-format-string.patch \
+ file://0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch \
+ file://0001-Make-space-for-flags-from-environment.patch \
"
SRC_URI[md5sum] = "e73fbfdeadddb68a703a70cea5271468"
SRC_URI[sha256sum] = "11d32def5b514748fbd9ea8c88049ae99e1bb358efc74eb91a4d268a3999dbfa"
-do_install1() {
- install -d ${D}${includedir}/ruli
- install -d ${D}${libdir}
- install -m 0644 ${S}/src/ruli*.h ${D}${includedir}/ruli
- install -m 0644 ${S}/src/libruli.so ${D}${libdir}
- install -m 0644 ${S}/src/libruli.so.4 ${D}${libdir}
+B = "${S}"
+
+EXTRA_OEMAKE = 'CC="${CC}" OOP_BASE_DIR="${STAGING_EXECPREFIXDIR}" INSTALL_BASE_DIR="${D}${exec_prefix}"'
+
+do_configure() {
+ touch configure-stamp
+}
+
+do_install() {
+ oe_runmake install
}
+
+PACKAGES =+ "${PN}-bin"
+
+FILES_${PN} =+ "${bindir}"
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
index be9dba32f..966ca41c9 100644
--- a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
@@ -10,7 +10,7 @@ environment - not only on its computer-server machine, but also from \
anywhere on the Internet and using a wide variety of machine \
architectures."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=b37311cb5604f3e5cc2fb0fd23527e95"
PV = "0.14.0+git${SRCPV}"
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb
index 3cd12aee7..05fc99bdc 100644
--- a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb
@@ -1,7 +1,7 @@
SUMMARY = "A sophisticated network protocol analyzer"
HOMEPAGE = "http://www.tcpdump.org/"
SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867"
DEPENDS = "libpcap"
diff --git a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.9.2.bb b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.9.4.bb
index 0607c9d77..03eb2faec 100644
--- a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.9.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.9.4.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5308494bc0590c0cb036afd781d78f06"
SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=http;branch=master \
file://0001-contrib-add-yocto-compatible-startup-scripts.patch \
"
-SRCREV="ee06aaaad99dc4d6b73f915d98f05c506885b98a"
+SRCREV="b60c4a472c856f0a98120b7259e991b3a6507eb5"
inherit autotools pkgconfig systemd update-rc.d
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.3.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb
index a3c0b4998..ccaa0c94a 100644
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb
@@ -12,8 +12,8 @@ SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz
UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
-SRC_URI[md5sum] = "e945d76a57db2c3e6cf776f95da2cf0e"
-SRC_URI[sha256sum] = "af92729c781d870110885c31ebcbe4c4224ed51bb580d00c896fe9746994211c"
+SRC_URI[md5sum] = "c6f8d12a3efe21cc7885f7cb0c4bd938"
+SRC_URI[sha256sum] = "a87f4022a0c15ddbf1730bf1acafce9e75a4e657ce9fa494ceda0324c0c3e33e"
PE = "1"
diff --git a/meta-openembedded/meta-oe/classes/gitpkgv.bbclass b/meta-openembedded/meta-oe/classes/gitpkgv.bbclass
index 2d9680a35..ab591bd45 100644
--- a/meta-openembedded/meta-oe/classes/gitpkgv.bbclass
+++ b/meta-openembedded/meta-oe/classes/gitpkgv.bbclass
@@ -7,8 +7,8 @@
# NN equals the total number of revs up to SRCREV
# GITHASH is SRCREV's (full) hash
#
-# - GITPKGVTAG which is the output of 'git describe' allowing for
-# automatic versioning
+# - GITPKGVTAG which is the output of 'git describe --tags --exact-match'
+# allowing for automatic versioning
#
# gitpkgv.bbclass assumes the git repository has been cloned, and
# contains SRCREV. So ${GITPKGV} and ${GITPKGVTAG} should never be
@@ -87,10 +87,8 @@ def get_git_pkgv(d, use_tags):
if not os.path.exists(rev_file) or os.path.getsize(rev_file)==0:
commits = bb.fetch2.runfetchcmd(
- "cd %(repodir)s && "
- "git rev-list %(rev)s -- 2> /dev/null "
- "| wc -l" % vars,
- d, quiet=True).strip().lstrip('0')
+ "git --git-dir=%(repodir)s rev-list %(rev)s -- 2>/dev/null | wc -l"
+ % vars, d, quiet=True).strip().lstrip('0')
if commits != "":
oe.path.remove(rev_file, recurse=False)
@@ -105,9 +103,8 @@ def get_git_pkgv(d, use_tags):
if use_tags:
try:
output = bb.fetch2.runfetchcmd(
- "cd %(repodir)s && "
- "git describe %(rev)s 2>/dev/null" % vars,
- d, quiet=True).strip()
+ "git --git-dir=%(repodir)s describe %(rev)s --tags --exact-match 2>/dev/null"
+ % vars, d, quiet=True).strip()
ver = gitpkgv_drop_tag_prefix(output)
except Exception:
ver = "0.0-%s-g%s" % (commits, vars['rev'][:7])
diff --git a/meta-openembedded/meta-oe/classes/itstool.bbclass b/meta-openembedded/meta-oe/classes/itstool.bbclass
new file mode 100644
index 000000000..45e3fb839
--- /dev/null
+++ b/meta-openembedded/meta-oe/classes/itstool.bbclass
@@ -0,0 +1,5 @@
+# helper class to prepare correct environment for native itstool
+
+inherit python3native
+
+DEPENDS_append = " itstool-native"
diff --git a/meta-openembedded/meta-oe/conf/layer.conf b/meta-openembedded/meta-oe/conf/layer.conf
index 2a17eef30..bad87850e 100644
--- a/meta-openembedded/meta-oe/conf/layer.conf
+++ b/meta-openembedded/meta-oe/conf/layer.conf
@@ -71,6 +71,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
ttf-lklug->fontconfig \
ttf-lohit->fontconfig \
ttf-pt-sans->fontconfig \
+ ttf-roboto->fontconfig \
ttf-mplus->fontconfig \
ttf-sazanami->fontconfig \
ttf-tlwg->fontconfig \
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 605417634..d590b0501 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -19,7 +19,7 @@ SRCREV = "c17fd14505f30d9e4dbad276f7aa956fd21a637b"
S = "${WORKDIR}/git"
-inherit waf pkgconfig distro_features_check
+inherit waf pkgconfig features_check
REQUIRED_DISTRO_FEATURES += "opengl"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_484.bb b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_487.bb
index f218b87e9..42864bead 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_484.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_487.bb
@@ -4,14 +4,14 @@ AUTHOR = "Don Capps <don.capps2@verizon.net>, William D. Norcott <wnorcott@us.or
SECTION = "console/tests"
LICENSE = "iozone3"
LIC_FILES_CHKSUM = "file://iozone.c;beginline=37;endline=48;md5=7331260091868dcad0f9edea735b5f4b \
- file://iozone.c;beginline=269;endline=275;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \
+ file://iozone.c;beginline=276;endline=282;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \
"
SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
file://parallelism.patch \
file://copyright.txt \
"
-SRC_URI[md5sum] = "aa6b88ab83793cb6809ca06949a6ab01"
-SRC_URI[sha256sum] = "e816e6ae2f02003f2a6d19d47fcd9a50fdd8078da4f35fe3d4b9caf91c3d7216"
+SRC_URI[md5sum] = "2dbe035caf99c5367625352e158bb866"
+SRC_URI[sha256sum] = "2c488a7ccddd624fd557af16e71442c367b131d6178e1b4023bbd532bacdda59"
UPSTREAM_CHECK_REGEX = "iozone3_(?P<pver>\d+).tar"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb
index d5296d733..98d2faabf 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "http://software.es.net/iperf/"
SECTION = "console/network"
BUGTRACKER = "https://github.com/esnet/iperf/issues"
AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f9088fe7ffdccd042f7645f1012d7f70"
DEPENDS = "openssl"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
index 53f35abb7..34a62207e 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
@@ -10,15 +10,17 @@ Upstream-Status: Submitted
Signed-off-by: Ting Liu <b28495@freescale.com>
+Update for 2.22.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
tests/run_tests.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/tests/run_tests.py b/tests/run_tests.py
-index 3c95a03..560df6b 100755
+index 018264d..0aabcd1 100755
--- a/tests/run_tests.py
+++ b/tests/run_tests.py
-@@ -234,9 +234,19 @@ def get_pagesizes():
+@@ -245,9 +245,19 @@ def get_pagesizes():
Use libhugetlbfs' hugeadm utility to get a list of page sizes that have
active mount points and at least one huge page allocated to the pool.
"""
@@ -36,6 +38,9 @@ index 3c95a03..560df6b 100755
+ return sizes
+ out = p.stdout.read().strip()
+
- if rc != 0 or out == "": return sizes
+ if rc != 0 or out == "":
+ return sizes
- for size in out.split("\n"): sizes.add(int(size))
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
index 08174200d..e736cbc79 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
@@ -8,12 +8,14 @@ error: unknown type name 'ino_t'; did you mean 'int'?
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Update for 2.22.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
tests/hugetests.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/hugetests.h b/tests/hugetests.h
-index 8b1d8d9..056042c 100644
+index bc4e16a..fbe4dc0 100644
--- a/tests/hugetests.h
+++ b/tests/hugetests.h
@@ -22,6 +22,7 @@
@@ -21,6 +23,9 @@ index 8b1d8d9..056042c 100644
#include <errno.h>
#include <string.h>
+#include <dirent.h>
+ #include <unistd.h>
#include "libhugetlbfs_privutils.h"
- #include "libhugetlbfs_testprobes.h"
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index 66fd8e21d..f25812279 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -5,12 +5,12 @@ LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "sysfsutils"
RDEPENDS_${PN} += "bash python python-io python-lang python-subprocess python-resource"
-RDEPENDS_${PN}-tests += "bash"
+RDEPENDS_${PN}-tests += "bash python3-core"
-PV = "2.21"
+PV = "2.22"
PE = "1"
-SRCREV = "73d06e69108f231696e9c5c44f4b42690fc5d752"
+SRCREV = "e6499ff92b4a7dcffbd131d1f5d24933e48c3f20"
SRC_URI = " \
git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \
file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.8.1.bb b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.0.1.bb
index c4df1a90b..89050e4f7 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.0.1.bb
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SECTION = "console/tests"
SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "08fc81d25a1c24c7b091ac78ef145da6"
-SRC_URI[sha256sum] = "d6feeeafb6d636667480b6fbfd2a6537e3b354b2c7c72305784d14d38ab4bcd0"
+SRC_URI[md5sum] = "58023c8136a0206909552942660fe28a"
+SRC_URI[sha256sum] = "a117a4350774e67989d90bf0b5e82a8072652f8caa60a62c3e5f64adc317ce14"
S = "${WORKDIR}/phoronix-test-suite"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb
index 8c49b4674..d6852e29f 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb
@@ -2,8 +2,8 @@ SUMMARY = "Small collection of benchmarks for storage I/O"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b529aaa6a0c50f15d29f89609b5c22f3"
-SRCREV = "3b9eef2259a70f412ab02fbe6b3a4d313d09c38a"
-PV = "3.5"
+SRCREV = "f97f1ae321d1fb8111a2c638075702ed2512ff07"
+PV = "3.6"
SRC_URI = "git://github.com/Algodev-github/S.git;protocol=https;branch=master"
S = "${WORKDIR}/git"
@@ -19,6 +19,7 @@ do_install() {
install -m0755 ${S}/def_config.sh ${D}/opt/S-suite
install -m0755 ${S}/config_params.sh ${D}/opt/S-suite
+ install -m0755 ${S}/create_config.sh ${D}/opt/S-suite
install -m0755 ${S}/process_config.sh ${D}/opt/S-suite
}
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch
deleted file mode 100644
index df8028627..000000000
--- a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e5f68189ab3602b1042cc8423fd6a3a23abd5455 Mon Sep 17 00:00:00 2001
-From: Alex James <theracermaster@gmail.com>
-Date: Sat, 14 Apr 2018 22:59:57 -0500
-Subject: [PATCH] ch341a_spi: Avoid deprecated libusb functions
-
-libusb 1.0.22 marked libusb_set_debug as deprecated. For such versions
-of libusb, use libusb_set_option instead.
-
-Change-Id: Ib71ebe812316eaf49136979a942a946ef9e4d487
-Signed-off-by: Alex James <theracermaster@gmail.com>
-Reviewed-on: https://review.coreboot.org/25681
-Tested-by: Nico Huber <nico.h@gmx.de>
-Reviewed-by: David Hendricks <david.hendricks@gmail.com>
----
-Upstream-Status: Backport
- ch341a_spi.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/ch341a_spi.c b/ch341a_spi.c
-index 6eb2804..d880510 100644
---- a/ch341a_spi.c
-+++ b/ch341a_spi.c
-@@ -444,7 +444,12 @@ int ch341a_spi_init(void)
- return -1;
- }
-
-- libusb_set_debug(NULL, 3); // Enable information, warning and error messages (only).
-+ /* Enable information, warning, and error messages (only). */
-+#if LIBUSB_API_VERSION < 0x01000106
-+ libusb_set_debug(NULL, 3);
-+#else
-+ libusb_set_option(NULL, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_INFO);
-+#endif
-
- uint16_t vid = devs_ch341a_spi[0].vendor_id;
- uint16_t pid = devs_ch341a_spi[0].device_id;
---
-2.17.0
-
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch
deleted file mode 100644
index 7ba69a917..000000000
--- a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From d2a28dcdbd1051d2f48320e2eda3393581fe0519 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Mar 2018 23:08:29 -0700
-Subject: [PATCH] platform: Add riscv to known platforms
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted [https://review.coreboot.org/#/c/flashrom/+/25260/]
- platform.h | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/platform.h b/platform.h
-index b2fdcd0..2cadbb3 100644
---- a/platform.h
-+++ b/platform.h
-@@ -69,6 +69,9 @@
- #elif defined (__m68k__)
- #define __FLASHROM_ARCH__ "m68k"
- #define IS_M68K 1
-+#elif defined (__riscv)
-+ #define __FLASHROM_ARCH__ "riscv"
-+ #define IS_RISCV 1
- #elif defined (__sh__)
- #define __FLASHROM_ARCH__ "sh"
- #define IS_SH 1
-@@ -77,7 +80,7 @@
- #define IS_S390 1
- #endif
-
--#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM || IS_SPARC || IS_ALPHA || IS_HPPA || IS_M68K || IS_SH || IS_S390)
-+#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM || IS_SPARC || IS_ALPHA || IS_HPPA || IS_M68K || IS_RISCV || IS_SH || IS_S390)
- #error Unknown architecture
- #endif
-
---
-2.16.2
-
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch
deleted file mode 100644
index 46a01529f..000000000
--- a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch
+++ /dev/null
@@ -1,198 +0,0 @@
---- flashrom-0.9.9.orig/chipdrivers.h
-+++ flashrom-0.9.9/chipdrivers.h
-@@ -103,6 +103,7 @@
- int spi_prettyprint_status_register_sst25(struct flashctx *flash);
- int spi_prettyprint_status_register_sst25vf016(struct flashctx *flash);
- int spi_prettyprint_status_register_sst25vf040b(struct flashctx *flash);
-+int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash);
-
- /* sfdp.c */
- int probe_spi_sfdp(struct flashctx *flash);
---- flashrom-0.9.9.orig/flashchips.c
-+++ flashrom-0.9.9/flashchips.c
-@@ -12564,6 +12564,120 @@
-
- {
- .vendor = "SST",
-+ .name = "SST26VF016B(A)",
-+ .bustype = BUS_SPI,
-+ .manufacture_id = SST_ID,
-+ .model_id = SST_SST26VF016B,
-+ .total_size = 2048,
-+ .page_size = 256,
-+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
-+ .tested = TEST_OK_PREW,
-+ .probe = probe_spi_rdid,
-+ .probe_timing = TIMING_ZERO,
-+ .block_erasers =
-+ {
-+ {
-+ .eraseblocks = { {4 * 1024, 512} },
-+ .block_erase = spi_block_erase_20,
-+ }, {
-+ .eraseblocks = {
-+ {8 * 1024, 4},
-+ {32 * 1024, 1},
-+ {64 * 1024, 30},
-+ {32 * 1024, 1},
-+ {8 * 1024, 4},
-+ },
-+ .block_erase = spi_block_erase_d8,
-+ }, {
-+ .eraseblocks = { {2 * 1024 * 1024, 1} },
-+ .block_erase = spi_block_erase_c7,
-+ },
-+ },
-+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */
-+ .unlock = spi_disable_blockprotect_sst26_global_unprotect,
-+ .write = spi_chip_write_256, /* Multi I/O supported */
-+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
-+ .voltage = {2700, 3600},
-+ },
-+ {
-+ .vendor = "SST",
-+ .name = "SST26VF032B(A)",
-+ .bustype = BUS_SPI,
-+ .manufacture_id = SST_ID,
-+ .model_id = SST_SST26VF032B,
-+ .total_size = 4096,
-+ .page_size = 256,
-+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
-+ .tested = TEST_UNTESTED,
-+ .probe = probe_spi_rdid,
-+ .probe_timing = TIMING_ZERO,
-+ .block_erasers =
-+ {
-+ {
-+ .eraseblocks = { {4 * 1024, 1024} },
-+ .block_erase = spi_block_erase_20,
-+ }, {
-+ .eraseblocks = {
-+ {8 * 1024, 4},
-+ {32 * 1024, 1},
-+ {64 * 1024, 62},
-+ {32 * 1024, 1},
-+ {8 * 1024, 4},
-+ },
-+ .block_erase = spi_block_erase_d8,
-+ }, {
-+ .eraseblocks = { {4 * 1024 * 1024, 1} },
-+ .block_erase = spi_block_erase_c7,
-+ },
-+ },
-+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */
-+ .unlock = spi_disable_blockprotect_sst26_global_unprotect,
-+ .write = spi_chip_write_256, /* Multi I/O supported */
-+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
-+ .voltage = {2700, 3600},
-+ },
-+
-+
-+ {
-+ .vendor = "SST",
-+ .name = "SST26VF064B(A)",
-+ .bustype = BUS_SPI,
-+ .manufacture_id = SST_ID,
-+ .model_id = SST_SST26VF064B,
-+ .total_size = 8192,
-+ .page_size = 256,
-+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
-+ .tested = TEST_OK_PREW,
-+ .probe = probe_spi_rdid,
-+ .probe_timing = TIMING_ZERO,
-+ .block_erasers =
-+ {
-+ {
-+ .eraseblocks = { {4 * 1024, 2048} },
-+ .block_erase = spi_block_erase_20,
-+ }, {
-+ .eraseblocks = {
-+ {8 * 1024, 4},
-+ {32 * 1024, 1},
-+ {64 * 1024, 126},
-+ {32 * 1024, 1},
-+ {8 * 1024, 4},
-+ },
-+ .block_erase = spi_block_erase_d8,
-+ }, {
-+ .eraseblocks = { {8 * 1024 * 1024, 1} },
-+ .block_erase = spi_block_erase_c7,
-+ },
-+ },
-+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */
-+ .unlock = spi_disable_blockprotect_sst26_global_unprotect,
-+ .write = spi_chip_write_256, /* Multi I/O supported */
-+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
-+ .voltage = {2700, 3600},
-+ },
-+
-+ {
-+ .vendor = "SST",
- .name = "SST25WF512",
- .bustype = BUS_SPI,
- .manufacture_id = SST_ID,
---- flashrom-0.9.9.orig/flashchips.h
-+++ flashrom-0.9.9/flashchips.h
-@@ -697,6 +697,8 @@
- #define SST_SST25VF064C 0x254B
- #define SST_SST26VF016 0x2601
- #define SST_SST26VF032 0x2602
-+#define SST_SST26VF016B 0x2641
-+#define SST_SST26VF032B 0x2642
- #define SST_SST26VF064B 0x2643
- #define SST_SST27SF512 0xA4
- #define SST_SST27SF010 0xA5
---- flashrom-0.9.9.orig/linux_spi.c
-+++ flashrom-0.9.9/linux_spi.c
-@@ -141,6 +141,16 @@
- return 0;
- }
-
-+static void print_hex(const char *msg, const void *buf, size_t len)
-+{
-+ size_t i;
-+ msg_pspew("%s:\n", msg);
-+ for (i = 0; i < len; i++) {
-+ msg_pspew(" %02x", ((uint8_t *)buf)[i]);
-+ }
-+ msg_pspew("\n");
-+}
-+
- static int linux_spi_send_command(struct flashctx *flash, unsigned int writecnt,
- unsigned int readcnt,
- const unsigned char *txbuf,
-@@ -172,10 +182,12 @@
- else
- iocontrol_code = SPI_IOC_MESSAGE(2);
-
-+ print_hex("Write", txbuf, writecnt);
- if (ioctl(fd, iocontrol_code, msg) == -1) {
- msg_cerr("%s: ioctl: %s\n", __func__, strerror(errno));
- return -1;
- }
-+ if (readcnt) print_hex("Got", rxbuf, readcnt);
- return 0;
- }
-
---- flashrom-0.9.9.orig/spi25_statusreg.c
-+++ flashrom-0.9.9/spi25_statusreg.c
-@@ -196,6 +196,19 @@
- return spi_disable_blockprotect_generic(flash, 0x3C, 0, 0, 0xFF);
- }
-
-+int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash)
-+{
-+ int result = spi_write_enable(flash);
-+ if (result)
-+ return result;
-+
-+ static const unsigned char cmd[] = { 0x98 }; /* ULBPR */
-+ result = spi_send_command(flash, sizeof(cmd), 0, cmd, NULL);
-+ if (result)
-+ msg_cerr("ULBPR failed\n");
-+ return result;
-+}
-+
- /* A common block protection disable that tries to unset the status register bits masked by 0x0C (BP0-1) and
- * protected/locked by bit #7. Useful when bits 4-5 may be non-0). */
- int spi_disable_blockprotect_bp1_srwd(struct flashctx *flash)
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
deleted file mode 100644
index 1c1724668..000000000
--- a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
-LICENSE = "GPLv2"
-HOMEPAGE = "http://flashrom.org"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "pciutils libusb libusb-compat"
-
-SRC_URI = "https://download.flashrom.org/releases/flashrom-${PV}.tar.bz2 \
- file://sst26.patch \
- file://0001-platform-Add-riscv-to-known-platforms.patch \
- file://0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch \
- "
-SRC_URI[md5sum] = "42d999990c735d88653627cefcc13b9a"
-SRC_URI[sha256sum] = "3702fa215ba5fb5af8e54c852d239899cfa1389194c1e51cb2a170c4dc9dee64"
-
-inherit pkgconfig
-
-do_install() {
- oe_runmake PREFIX=${prefix} DESTDIR=${D} install
-}
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb
new file mode 100644
index 000000000..074a1a5f6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
+LICENSE = "GPLv2"
+HOMEPAGE = "http://flashrom.org"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "pciutils libusb libusb-compat"
+
+SRC_URI = "https://download.flashrom.org/releases/flashrom-v${PV}.tar.bz2 \
+ "
+SRC_URI[md5sum] = "91bab6c072e38a493bb4eb673e4fe0d6"
+SRC_URI[sha256sum] = "aeada9c70c22421217c669356180c0deddd0b60876e63d2224e3260b90c14e19"
+
+S = "${WORKDIR}/flashrom-v${PV}"
+
+inherit pkgconfig
+
+do_install() {
+ oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+}
diff --git a/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch b/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch
new file mode 100644
index 000000000..09f4993a2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch
@@ -0,0 +1,30 @@
+Subject: [PATCH] Don't build with -Werror to fix compile error.
+
+| 550 | _dump_sgpio_amd(&amd_reg->amd);
+| | ^~~~~~~~~~~~~
+| amd_sgpio.c: In function '_write_amd_register':
+| amd_sgpio.c:558:18: error: taking address of packed member of 'struct amd_register' may result in an unaligned pointer value [-Werror=address-of-packed-member]
+
+Upstream-Status: Submitted
+https://github.com/intel/ledmon/pull/48/commits
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7bc20f8..7e01bd5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,7 +22,6 @@ AX_AM_CFLAGS_ADD([-Werror=format-truncation=1])
+ AX_AM_CFLAGS_ADD([-Werror=shift-negative-value])
+ AX_AM_CFLAGS_ADD([-Werror=alloca])
+ AX_AM_CFLAGS_ADD([-Werror=missing-field-initializers])
+-AX_AM_CFLAGS_ADD([-Werror])
+ AX_AM_CFLAGS_ADD([-Werror=format-signedness])
+
+ AC_SUBST([AM_CFLAGS])
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb b/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
index 74ae56c67..f9ae9aad9 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
@@ -11,15 +11,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
DEPENDS = "sg3-utils udev"
-inherit systemd
+inherit autotools systemd
SYSTEMD_SERVICE_${PN} = "ledmon.service"
+# 0.93
SRC_URI = "git://github.com/intel/ledmon;branch=master \
file://0002-include-sys-select.h-and-sys-types.h.patch \
+ file://0001-Don-t-build-with-Werror-to-fix-compile-error.patch \
"
-SRCREV = "ad1304ca1363d727425a1f23703c523e21feae4f"
+SRCREV = "1d72f9cb5c9163b2ecdf19709935720e65f5b90e"
COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
COMPATIBLE_HOST_libc-musl = "null"
@@ -27,8 +29,13 @@ COMPATIBLE_HOST_libc-musl = "null"
S = "${WORKDIR}/git"
EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}' CFLAGS='${CFLAGS}'"
+# The ledmon sources include headers in ${S}/config to build but not in CFLAGS.
+# We need to add this include path in CFLAGS.
+CFLAGS += "-I${S}/config"
+
do_install_append() {
- install -d ${D}/${systemd_unitdir}/system
- oe_runmake DESTDIR=${D} install
- oe_runmake DESTDIR=${D}${systemd_unitdir}/system install-systemd
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0755 ${S}/systemd/ledmon.service ${D}${systemd_unitdir}/system
+ fi
}
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch
deleted file mode 100644
index 337fb11dd..000000000
--- a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 05a4d54e2adc4caed507baca529089ec01f48340 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Tue, 6 Sep 2016 14:04:29 +0800
-Subject: [PATCH 1/2] lmsensors: sensors-detect: print a special message when
- there isn't enough cpu info
-
-When running sensors-detect, if there isn't enough information in
-/proc/cpuinfo for this arch (e.g. ppc64), "Use of uninitialized value
-in concatenation (.) or string at /usr/sbin/sensors-detect line 2867"
-and incomplete "# Processor: (//)" will be printed.
-Here print out a prompt for such a case.
-
-Upstream-Status: Pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- prog/detect/sensors-detect | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect
-index 0b3b0ff2..68594cd7 100755
---- a/prog/detect/sensors-detect
-+++ b/prog/detect/sensors-detect
-@@ -3119,7 +3119,12 @@ sub initialize_cpu_list
- sub print_cpu_info
- {
- my $cpu = $cpu[0];
-- print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n";
-+ if ( $cpu->{'model name'} && $cpu->{'cpu family'} && $cpu->{model} && $cpu->{stepping} ) {
-+ print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n";
-+ }
-+ else {
-+ print "# Processor: There isn't enough cpu info for this arch!!!\n";
-+ }
- }
-
- # @i2c_adapters is a list of references to hashes, one hash per I2C/SMBus
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0002-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0002-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch
deleted file mode 100644
index 68f51f5a6..000000000
--- a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0002-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 26742544bc9f136093b6be78259f4a891870aa3c Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Wed, 21 Sep 2016 03:17:32 -0400
-Subject: [PATCH 2/2] lm-sensors: fix sensors-detect can't read the cpu
- information on fsl-t4xxx
-
-This is because two reasons:
-
-1. The sensors-detect program in lm-sensors depends on the file '/proc/cpuinfo',
- different arch write different infomation to it. That program supports x86
- and x86-64 well, but weak on ppc and arm.
-
-2. The sensors-detect program show the cpu information just design for intel's
- cpu, when meets other arch, it can't output the correct information.
-
-So we need to add the ppc and arm support for this program:
-
-1. add the ppc cpu information field 'cpu' in initialize_cpu_list function.
-
-2. add the correspond case of ppc and arm when print cpu information in
- print_cpu_info function.
-
-Upstream-Status: Pending
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- prog/detect/sensors-detect | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect
-index 68594cd7..efe2c1af 100755
---- a/prog/detect/sensors-detect
-+++ b/prog/detect/sensors-detect
-@@ -3088,6 +3088,7 @@ sub kernel_version_at_least
- # model name and stepping, directly taken from /proc/cpuinfo.
- use vars qw(@cpu);
-
-+# The added field 'cpu' is for support the ppc.
- sub initialize_cpu_list
- {
- local $_;
-@@ -3103,7 +3104,7 @@ sub initialize_cpu_list
- };
- next;
- }
-- if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level)\s*:\s*(.+)$/) {
-+ if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level|cpu|revision)\s*:\s*(.+)$/) {
- my $k = $1;
- my $v = $2;
- $v =~ s/\s+/ /g; # Merge multiple spaces
-@@ -3116,12 +3117,20 @@ sub initialize_cpu_list
- push @cpu, $entry if scalar keys(%{$entry}); # Last entry
- }
-
-+# The field 'model name' is for ARM.
-+# The field 'cpu' is for ppc.
- sub print_cpu_info
- {
- my $cpu = $cpu[0];
- if ( $cpu->{'model name'} && $cpu->{'cpu family'} && $cpu->{model} && $cpu->{stepping} ) {
- print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n";
- }
-+ elsif ( $cpu->{'model name'} ) {
-+ print "# Processor: $cpu->{'model name'}\n";
-+ }
-+ elsif ( $cpu->{'cpu'} && $cpu->{'revision'} ) {
-+ print "# Processor: $cpu->{'cpu'} $cpu->{'revision'}\n";
-+ }
- else {
- print "# Processor: There isn't enough cpu info for this arch!!!\n";
- }
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.5.0.bb b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
index ffafd17f8..48490e8d8 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
@@ -14,10 +14,8 @@ DEPENDS = " \
SRC_URI = "git://github.com/lm-sensors/lm-sensors.git;protocol=https \
file://fancontrol.init \
file://sensord.init \
- file://0001-lmsensors-sensors-detect-print-a-special-message-whe.patch \
- file://0002-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch \
"
-SRCREV = "e8afbda10fba571c816abddcb5c8180afc435bba"
+SRCREV = "1667b850a1ce38151dae17156276f981be6fb557"
inherit update-rc.d systemd
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
index e26a6ff86..982514f5d 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
@@ -19,7 +19,7 @@ SRC_URI[sha256sum] = "881d7d6a90b2428479288d64233151448f8990ab4958e0ecaca7eeb3c9
S = "${WORKDIR}/hostapd-${PV}"
B = "${WORKDIR}/hostapd-${PV}/hostapd"
-inherit update-rc.d systemd pkgconfig distro_features_check
+inherit update-rc.d systemd pkgconfig features_check
CONFLICT_DISTRO_FEATURES = "openssl-no-weak-ciphers"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch
index 4bd40606b..35665bd3f 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch
@@ -9,13 +9,14 @@ Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
src/ethtool-local.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
-diff --git a/src/ethtool-local.h b/src/ethtool-local.h
-index 200476b..0edc7a9 100644
--- a/src/ethtool-local.h
+++ b/src/ethtool-local.h
-@@ -22,9 +22,9 @@
+@@ -20,11 +20,11 @@
+ * along with ifplugd; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-
+-
++#include <stdint.h>
typedef unsigned long long u64;
-typedef __uint32_t u32;
-typedef __uint16_t u16;
@@ -26,6 +27,3 @@ index 200476b..0edc7a9 100644
#include "ethtool-kernel.h"
---
-2.20.1
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch
new file mode 100644
index 000000000..93ef007f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch
@@ -0,0 +1,40 @@
+From f2a2b9f445ab1e31fbb27a74744e9a2ededfce17 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 4 Nov 2019 16:38:04 -0800
+Subject: [PATCH] Makefile.am: Avoid redirection of input and output files
+
+Ensure that directory is created before its written to
+
+This can cause a build race in a highly parallelised build where a directory is not yet created but
+output file is being written using redirection e.g.
+
+rst2man.py --strict --no-raw --no-generator --no-datestamp < ../git/monitor/iwmon.rst > monitor/iwmon.1
+/bin/sh: monitor/iwmon.1: No such file or directory
+make[1]: *** [Makefile:3544: monitor/iwmon.1] Error 1
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.am | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 823b7d02..1bd0005c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -626,8 +626,9 @@ SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(SED) \
+ < $< > $@
+
+ if RUN_RST2MAN
+-RST2MAN_PROCESS = $(AM_V_GEN)$(RST2MAN) --strict --no-raw --no-generator \
+- --no-datestamp < $< > $@
++RST2MAN_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
++ $(AM_V_GEN)$(RST2MAN) --strict --no-raw \
++ --no-generator --no-datestamp $< $@
+ else
+ RST2MAN_PROCESS = $(AM_V_GEN)test -f $@ || \
+ { echo "Generated manual page $@ does not exist"; false; }
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_0.20.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb
index 42205034c..d11e0d4ae 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_0.20.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb
@@ -2,12 +2,14 @@ DESCRIPTION = "Wireless daemon for Linux"
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
-inherit autotools pkgconfig systemd
+inherit autotools pkgconfig systemd python3native
-DEPENDS = "ell readline dbus"
+DEPENDS = "ell readline dbus python3-docutils-native"
-SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git"
-SRCREV = "00f0039232cc73bbcf7a1875f8f9aae464d90a8f"
+SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \
+ file://0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch \
+ "
+SRCREV = "971e1d2038a203ad43bd2278a811a9e5ec8d52db"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
@@ -26,7 +28,7 @@ do_install_append() {
install -m644 ${S}/doc/*.txt ${D}${docdir}/${BPN}
}
-FILES_${PN} += "${datadir}/dbus-1 ${libdir}/modules-load.d"
+FILES_${PN} += "${datadir}/dbus-1 ${libdir}/modules-load.d ${systemd_unitdir}/network/"
SYSTEMD_SERVICE_${PN} = "iwd.service ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb
index b72b7af4f..be4536b9c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb
@@ -17,3 +17,5 @@ do_install_append() {
# still basic so drop it for now.
rm ${D}${includedir}/event.h
}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb b/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
index c9913444d..785abf66d 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
@@ -2,7 +2,7 @@ SUMMARY = "A packet dissection and creation library"
# libnet at packetfactory.net is dead
HOMEPAGE = "https://github.com/sam-github/libnet"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=3ec839e00408b484d33b472a86b7c266"
DEPENDS = "libpcap"
# There are major API changes beween libnet v1.0 and libnet v1.1
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch
deleted file mode 100644
index 4d0979710..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c9859a38a58996b8767a30e14febc03845f66f95 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Jul 2017 13:10:53 -0700
-Subject: [PATCH] Define 64bit atomic helpers for ppc 32-bit
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/atomic64.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/atomic64.c b/src/atomic64.c
-index f841b39b..35c7c9d8 100644
---- a/src/atomic64.c
-+++ b/src/atomic64.c
-@@ -18,10 +18,10 @@
- #include <stdbool.h>
-
- /*
-- * only need these on MIPS, since it lacks hardware 64-bit atomics,
-+ * only need these on MIPS & PPC32, since it lacks hardware 64-bit atomics,
- * unlike x86 and ARM.
- */
--#if defined(__mips__) || defined(__mipsel__)
-+#if defined(__mips__) || defined(__mipsel__) || defined(__powerpc__)
-
- static void __spin_lock(volatile int *lock) {
- while (__sync_lock_test_and_set(lock, 1))
---
-2.13.2
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch
deleted file mode 100644
index 84e0772a7..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-From d7b6df5808e7bef5930b61a82e880699a9f9e208 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 29 Jun 2017 15:39:19 -0700
-Subject: [PATCH] implement 64bit atomic for mips
-
-GCC does not provide 64bit atomics for mips32
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/Makefile.am | 1 +
- src/atomic64.c | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 229 insertions(+)
- create mode 100644 src/atomic64.c
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 99aaace0..cbbbbee9 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -27,6 +27,7 @@ libtorrent_la_LIBADD = \
- utils/libsub_utils.la
-
- libtorrent_la_SOURCES = \
-+ atomic64.c \
- globals.cc \
- globals.h \
- manager.cc \
-diff --git a/src/atomic64.c b/src/atomic64.c
-new file mode 100644
-index 00000000..f841b39b
---- /dev/null
-+++ b/src/atomic64.c
-@@ -0,0 +1,228 @@
-+/*===----- atomic64.c - Support functions for 64-bit atomic operations.-----===
-+ *
-+ * The LLVM Compiler Infrastructure
-+ *
-+ * This file is dual licensed under the MIT and the University of Illinois Open
-+ * Source Licenses. See LICENSE.TXT for details.
-+ *
-+ *===-----------------------------------------------------------------------===
-+ *
-+ * atomic64.c defines a set of functions for performing atomic accesses on
-+ * 64-bit memory locations. It also implements spinlock synchronization
-+ * operations.
-+ *
-+ *===-----------------------------------------------------------------------===
-+ */
-+
-+#include <stdint.h>
-+#include <stdbool.h>
-+
-+/*
-+ * only need these on MIPS, since it lacks hardware 64-bit atomics,
-+ * unlike x86 and ARM.
-+ */
-+#if defined(__mips__) || defined(__mipsel__)
-+
-+static void __spin_lock(volatile int *lock) {
-+ while (__sync_lock_test_and_set(lock, 1))
-+ while (*lock) {}
-+}
-+
-+static void __spin_unlock(volatile int *lock) {
-+ __sync_lock_release(lock);
-+}
-+
-+/*
-+ * Make sure the lock is on its own cache line to prevent false sharing.
-+ * Put it inside a struct that is aligned and padded to the typical MIPS
-+ * cacheline which is 32 bytes.
-+ */
-+static struct {
-+ int lock;
-+ char pad[32 - sizeof(int)];
-+} __attribute__((aligned (32))) lock = { 0 };
-+
-+
-+uint64_t __sync_fetch_and_add_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret + val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_sub_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret - val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_and_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret & val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_or_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret | val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_xor_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret ^ val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_add_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr + val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_sub_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr - val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_and_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr & val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_or_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr | val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_xor_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr ^ val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+bool __sync_bool_compare_and_swap_8(volatile uint64_t *ptr,
-+ uint64_t oldval, uint64_t newval) {
-+ bool ret = false;
-+
-+ __spin_lock(&lock.lock);
-+
-+ if (*ptr == oldval) {
-+ *ptr = newval;
-+ ret = true;
-+ }
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_val_compare_and_swap_8(volatile uint64_t *ptr,
-+ uint64_t oldval, uint64_t newval) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ if (ret == oldval)
-+ *ptr = newval;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_lock_test_and_set_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+void __sync_lock_release_8(volatile uint64_t *ptr) {
-+ __spin_lock(&lock.lock);
-+
-+ *ptr = 0;
-+
-+ __spin_unlock(&lock.lock);
-+}
-+
-+#endif
---
-2.13.2
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
index b2dffcdb9..3ee69554b 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
@@ -8,15 +8,20 @@ DEPENDS = "zlib libsigc++-2.0 openssl cppunit"
SRC_URI = "git://github.com/rakshasa/libtorrent \
file://don-t-run-code-while-configuring-package.patch \
- file://0001-implement-64bit-atomic-for-mips.patch \
- file://0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch \
"
-SRCREV = "074f6ec51a2e4bc5c6140b4dad13c9bb56f3f0dc"
+SRCREV = "756f70010779927dc0691e1e722ed433d5d295e1"
-PV = "0.13.7+git${SRCPV}"
+PV = "0.13.8"
S = "${WORKDIR}/git"
+PACKAGECONFIG ??= "instrumentation"
+
+PACKAGECONFIG_remove_mipsarch = "instrumentation"
+PACKAGECONFIG_remove_powerpc = "instrumentation"
+
+PACKAGECONFIG[instrumentation] = "--enable-instrumentation,--disable-instrumentation,"
+
inherit autotools pkgconfig
EXTRA_OECONF = "--with-zlib=${STAGING_EXECPREFIXDIR}"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.32.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.33.1.bb
index c7fa3c10f..604568e62 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.32.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.33.1.bb
@@ -4,7 +4,7 @@ BUGTRACKER = "https://github.com/libuv/libuv/issues"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
-SRCREV = "697bea87b3a0b0e9b4e5ff86b39d1dedb70ee46d"
+SRCREV = "07ad32138f4d2285ba2226b5e20462b27b091a59"
SRC_URI = "git://github.com/libuv/libuv;branch=v1.x"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.8.bb
index 92d4fe0f4..3cd21cc0d 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.8.bb
@@ -14,8 +14,8 @@ DEPENDS = "glib-2.0 libgudev intltool-native libxslt-native"
SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \
"
-SRC_URI[md5sum] = "7452a94f0d1ca361ae51ff1d287c53f5"
-SRC_URI[sha256sum] = "3c2ca73782215664141042422759899ca9846440fc26d6223c7cf7ea4dd3c996"
+SRC_URI[md5sum] = "c05ac4246c81cc15d617c4a129232988"
+SRC_URI[sha256sum] = "cbe174078dbdf3f746a55f0004353d3c27da2a31da553036d90fc7dc34a0169a"
S = "${WORKDIR}/ModemManager-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
index c201c8651..876370935 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
@@ -10,7 +10,7 @@ SRC_URI = "http://tadas.dailyda.com/software/obex-data-server-${PV}.tar.gz \
SRC_URI[md5sum] = "961ca5db6fe9c97024e133cc6203cc4d"
SRC_URI[sha256sum] = "b399465ddbd6d0217abedd9411d9d74a820effa0a6a142adc448268d3920094f"
-inherit distro_features_check autotools-brokensep pkgconfig
+inherit features_check autotools-brokensep pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.1.bb
index f3086315d..fa249677e 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.1.bb
@@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = " \
SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http"
-SRCREV = "9f715d0862a8e16099b5837c4e53a1bf6a6a0675"
+SRCREV = "d34c51214f4172f2e12bb17532c9f44f72a57dd4"
DEPENDS = "openssl"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb b/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb
index 3e644760c..5c19e65b0 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb
@@ -1,7 +1,7 @@
SUMMARY = "Radio enable/disable command line utility"
HOMEPAGE = "http://linuxwireless.org/en/users/Documentation/rfkill"
SECTION = "base"
-LICENSE = "BSD"
+LICENSE = "BSD-0-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=c6036d0eb7edbfced28c4160e5d3fa94"
SRC_URI = "http://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.bz2 \
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
index 79d4f29fa..7d09f4382 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
@@ -1,19 +1,26 @@
-Using AC_RUN_IFELSE prevent people from configuring package for
-cross-compiling. Don't run code while configuring package.
+Using AC_RUN_IFELSE prevent people from configuring package
+ for cross-compiling. Don't run code while configuring package.
Upstream-Status: Pending
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-Index: libtorrent-0.13.3/scripts/checks.m4
-===================================================================
---- libtorrent-0.13.3.orig/scripts/checks.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/checks.m4 2013-02-10 15:28:37.414445524 +0200
-@@ -95,40 +95,6 @@
+Update for 0.9.8.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ scripts/checks.m4 | 34 ----------------------------------
+ scripts/common.m4 | 28 ----------------------------
+ 2 files changed, 62 deletions(-)
+diff --git a/scripts/checks.m4 b/scripts/checks.m4
+index 83be846..1af80f5 100644
+--- a/scripts/checks.m4
++++ b/scripts/checks.m4
+@@ -95,40 +95,6 @@ AC_DEFUN([TORRENT_CHECK_KQUEUE], [
+
AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
-
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
+- AC_LINK_IFELSE([AC_LANG_SOURCE([
- #include <fcntl.h>
- #include <stdlib.h>
- #include <unistd.h>
@@ -47,18 +54,18 @@ Index: libtorrent-0.13.3/scripts/checks.m4
- AC_MSG_RESULT(no)
- ])
])
-
+
AC_DEFUN([TORRENT_WITH_KQUEUE], [
-Index: libtorrent-0.13.3/scripts/common.m4
-===================================================================
---- libtorrent-0.13.3.orig/scripts/common.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/common.m4 2013-02-10 15:27:55.874446741 +0200
-@@ -222,38 +222,10 @@
-
+diff --git a/scripts/common.m4 b/scripts/common.m4
+index aaf005e..42fb016 100644
+--- a/scripts/common.m4
++++ b/scripts/common.m4
+@@ -152,38 +152,10 @@ dnl Need to fix this so that it uses the stuff defined by the system.
+
AC_DEFUN([TORRENT_CHECK_EXECINFO], [
AC_MSG_CHECKING(for execinfo.h)
-
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
+- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- #include <execinfo.h>
- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
- ])],
@@ -69,11 +76,11 @@ Index: libtorrent-0.13.3/scripts/common.m4
- AC_MSG_RESULT(no)
- ])
])
-
+
AC_DEFUN([TORRENT_CHECK_ALIGNED], [
AC_MSG_CHECKING(the byte alignment)
-
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
+- AC_LINK_IFELSE([AC_LANG_SOURCE([
- #include <inttypes.h>
- int main() {
- char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
@@ -90,5 +97,8 @@ Index: libtorrent-0.13.3/scripts/common.m4
- AC_MSG_RESULT(required)
- ])
])
-
+
+
+--
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
index 9bb81c409..331f978f8 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
@@ -8,10 +8,10 @@ DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses"
SRC_URI = "git://github.com/rakshasa/rtorrent \
file://don-t-run-code-while-configuring-package.patch \
"
-# v0.9.7
-SRCREV = "327164f9d86aafcd2500a317d485374df32ea622"
+# v0.9.8
+SRCREV = "6154d1698756e0c4842b1c13a0e56db93f1aa947"
-PV = "0.9.7+git${SRCPV}"
+PV = "0.9.8"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.2.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb
index 33c0a82b8..656ff0dd8 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.2.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb
@@ -28,8 +28,8 @@ SRC_URI = "http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stab
file://zabbix-agent.service \
"
-SRC_URI[md5sum] = "6cd55cd743d416d9ffbf2e6fdee680ee"
-SRC_URI[sha256sum] = "646b1f29a768e3123a00a9afadf382b4d0dfd54e20fb31023f0d6da066da0864"
+SRC_URI[md5sum] = "e9df94149790f86732f18d042b70155d"
+SRC_URI[sha256sum] = "0bf74e597dd41a558305fe17a2b1ed6fe2d77044b87696a92e4227fbf315564a"
inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd
@@ -51,7 +51,6 @@ EXTRA_OECONF = " \
--enable-ipv6 \
--with-net-snmp \
--with-ldap=${STAGING_EXECPREFIXDIR} \
- --with-jabber \
--with-unixodbc \
--with-ssh2 \
--with-sqlite3 \
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch
new file mode 100644
index 000000000..ccc175bb8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch
@@ -0,0 +1,48 @@
+From f42d5e38859c65a186acd0da94bbeeca12faf7a2 Mon Sep 17 00:00:00 2001
+From: David Rheinsberg <david.rheinsberg@gmail.com>
+Date: Thu, 2 May 2019 17:33:34 +0200
+Subject: [PATCH] launch: improve error handling for opendir()
+
+This improves the error-handling of opendir() by always printing
+diagnostics. Furthermore, it aligns the behavior with dbus-deamon and
+ignores EACCES.
+
+Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com>
+Upstream-Status: dbus-broker@f42d5e38859c65a186acd0da94bbeeca12faf7a2
+---
+ src/launch/launcher.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/src/launch/launcher.c b/src/launch/launcher.c
+index 31a5364..2ec4bda 100644
+--- a/src/launch/launcher.c
++++ b/src/launch/launcher.c
+@@ -749,10 +749,23 @@ static int launcher_load_service_dir(Launcher *launcher, const char *dirpath, NS
+
+ dir = opendir(dirpath);
+ if (!dir) {
+- if (errno == ENOENT || errno == ENOTDIR)
++ if (errno == ENOENT || errno == ENOTDIR) {
+ return 0;
+- else
++ } else if (errno == EACCES) {
++ log_append_here(&launcher->log, LOG_ERR, 0, NULL);
++ r = log_commitf(&launcher->log, "Access denied to service directory '%s'\n", dirpath);
++ if (r)
++ return error_fold(r);
++
++ return 0;
++ } else {
++ log_append_here(&launcher->log, LOG_ERR, errno, NULL);
++ r = log_commitf(&launcher->log, "Unable to open service directory '%s': %m\n", dirpath);
++ if (r)
++ return error_fold(r);
++
+ return error_origin(-errno);
++ }
+ }
+
+ r = dirwatch_add(launcher->dirwatch, dirpath);
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch
new file mode 100644
index 000000000..67a2dc46f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch
@@ -0,0 +1,86 @@
+From 3570b3e9ba367f10718b56336ce32d5254f66575 Mon Sep 17 00:00:00 2001
+From: Tom Gundersen <teg@jklm.no>
+Date: Thu, 9 May 2019 13:00:37 +0200
+Subject: [PATCH] metrics: change the constant used for invalid timestamps
+
+Use (uint64_t)-1 rather than 0 to indicate an invalid timestamp. It
+should not be possible for the kernel to return 0 from
+clock_gettime(), but we have received some reports of our asserts
+triggering, so avoid the issue entirely by using -1 instead (which
+really can never be returned).
+
+See https://retrace.fedoraproject.org/faf/reports/2539484/
+
+Signed-off-by: Tom Gundersen <teg@jklm.no>
+Upstream-Status: dbus-broker@3570b3e9ba367f10718b56336ce32d5254f66575
+---
+ src/util/metrics.c | 8 ++++----
+ src/util/metrics.h | 9 ++++++---
+ 2 files changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/src/util/metrics.c b/src/util/metrics.c
+index b5a7182..eef94eb 100644
+--- a/src/util/metrics.c
++++ b/src/util/metrics.c
+@@ -26,7 +26,7 @@ void metrics_init(Metrics *metrics, clockid_t id) {
+ }
+
+ void metrics_deinit(Metrics *metrics) {
+- c_assert(!metrics->timestamp);
++ c_assert(metrics->timestamp == METRICS_TIMESTAMP_INVALID);
+ metrics_init(metrics, metrics->id);
+ }
+
+@@ -82,7 +82,7 @@ void metrics_sample_add(Metrics *metrics, uint64_t timestamp) {
+ * a sample is not currently running.
+ */
+ void metrics_sample_start(Metrics *metrics) {
+- c_assert(!metrics->timestamp);
++ c_assert(metrics->timestamp == METRICS_TIMESTAMP_INVALID);
+ metrics->timestamp = metrics_get_time(metrics);
+ }
+
+@@ -93,11 +93,11 @@ void metrics_sample_start(Metrics *metrics) {
+ * End a currently running sample, and update the internal state.
+ */
+ void metrics_sample_end(Metrics *metrics) {
+- c_assert(metrics->timestamp);
++ c_assert(metrics->timestamp != METRICS_TIMESTAMP_INVALID);
+
+ metrics_sample_add(metrics, metrics->timestamp);
+
+- metrics->timestamp = 0;
++ metrics->timestamp = METRICS_TIMESTAMP_INVALID;
+ }
+
+ /**
+diff --git a/src/util/metrics.h b/src/util/metrics.h
+index a8ee915..b00dee6 100644
+--- a/src/util/metrics.h
++++ b/src/util/metrics.h
+@@ -8,6 +8,8 @@
+ #include <stdlib.h>
+ #include <time.h>
+
++#define METRICS_TIMESTAMP_INVALID ((uint64_t) -1)
++
+ typedef struct Metrics Metrics;
+
+ struct Metrics {
+@@ -23,9 +25,10 @@ struct Metrics {
+ uint64_t sum_of_squares;
+ };
+
+-#define METRICS_INIT(_id) { \
+- .minimum = (uint64_t) -1, \
+- .id = (_id), \
++#define METRICS_INIT(_id) { \
++ .minimum = (uint64_t) -1, \
++ .id = (_id), \
++ .timestamp = METRICS_TIMESTAMP_INVALID, \
+ }
+
+ void metrics_init(Metrics *metrics, clockid_t id);
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch
new file mode 100644
index 000000000..53f9e71aa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch
@@ -0,0 +1,83 @@
+From 520c47c53deeb893e03194fefaf3c5b9223ede27 Mon Sep 17 00:00:00 2001
+From: David Rheinsberg <david.rheinsberg@gmail.com>
+Date: Fri, 10 May 2019 10:58:06 +0200
+Subject: [PATCH] dbus/socket: treat MSG_CTRUNC gracefully
+
+As it turns out, LSMs allow clients to trigger a MSG_CTRUNC on the
+remote side of a unix socket. Whenever LSMs reject the transmission of
+an FD, they will simply drop the FD and set MSG_CTRUNC, without any
+other error notification.
+
+Therefore, we must assume any occurance of MSG_CTRUNC is trigger by a
+client. This makes it impossible to consider MSG_CTRUNC for any other
+error handling, and as such we are left to disconnecting the client and
+ignoring the flag.
+
+Luckily, MSG_CTRUNC is expected for any other event, so we only used it
+for diagnostics so far.
+
+Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com>
+Upstream-Status: dbus-broker@520c47c53deeb893e03194fefaf3c5b9223ede27
+---
+ src/dbus/socket.c | 44 +++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/src/dbus/socket.c b/src/dbus/socket.c
+index cacdff2..6e6ba10 100644
+--- a/src/dbus/socket.c
++++ b/src/dbus/socket.c
+@@ -593,18 +593,40 @@ static int socket_recvmsg(Socket *socket,
+
+ if (msg.msg_flags & MSG_CTRUNC) {
+ /*
+- * This flag means the control-buffer was too small to retrieve
+- * all data. If this can be triggered remotely, it means a peer
+- * can cause us to miss FDs. Hence, we really must protect
+- * against this.
+- * We do provide suitably sized buffers to be prepared for any
+- * possible scenario. So if this happens, something is fishy
+- * and we better report it.
+- * Note that this is also reported by the kernel if we exceeded
+- * our NOFILE limit. Since this implies resource
+- * misconfiguration as well, we treat it the same way.
++ * Our control-buffer-size is carefully calculated to be big
++ * enough for any possible ancillary data we expect. Therefore,
++ * the kernel should never be required to truncate it, and thus
++ * MSG_CTRUNC will never be set. This is also foward compatible
++ * to future extensions to the ancillary data, since these must
++ * be enabled explicitly before the kernel considers forwarding
++ * them.
++ *
++ * Unfortunately, the SCM_RIGHTS implementation might set this
++ * flag as well. In particular, if not all FDs can be returned
++ * to user-space, MSG_CTRUNC will be set (signalling that the
++ * FD-set is non-complete). No other error is returned or
++ * signalled, though. There are several reasons why the FD
++ * transmission can fail. Most importantly, if we exhaust our
++ * FD limit, further FDs will simply be discarded. We are
++ * protected against this by our accounting-quotas, but we
++ * would still like to catch this condition and warn loudly.
++ * However, FDs are also dropped if the security layer refused
++ * the transmission of the FD in question. This means, if an
++ * LSM refuses the D-Bus client to send us an FD, the FD is
++ * just dropped and MSG_CTRUNC will be set. This can be
++ * triggered by clients.
++ *
++ * To summarize: In an ideal world, we would expect this flag
++ * to never be set, and we would just use
++ * `error_origin(-ENOTRECOVERABLE)` to provide diagnostics.
++ * Unfortunately, the gross misuse of this flag for LSM
++ * security enforcements means we have to assume any occurence
++ * of MSG_CTRUNC means the client was refused to send a
++ * specific message. Our only possible way to deal with this is
++ * to disconnect the client.
+ */
+- r = error_origin(-ENOTRECOVERABLE);
++ socket_close(socket);
++ r = SOCKET_E_LOST_INTEREST;
+ goto error;
+ }
+
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch
new file mode 100644
index 000000000..0348d9722
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch
@@ -0,0 +1,38 @@
+From fc1d26dd08c48c04fc9883b36a94c219aba2091c Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <luca.boccassi@microsoft.com>
+Date: Mon, 28 Oct 2019 14:31:38 +0000
+Subject: [PATCH] launcher: fix build with musl libc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+../src/launch/launcher.c: In function ‘launcher_fork’:
+../src/launch/launcher.c:378:60: error: ‘WEXITED’ undeclared (first use in this function); did you mean ‘WIFEXITED’?
+ r = sd_event_add_child(launcher->event, NULL, pid, WEXITED, launcher_on_child_exit, launcher);
+ ^~~~~~~
+ WIFEXITED
+
+Include sys/wait.h which defines it.
+
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+Suggested-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: pending https://github.com/bus1/dbus-broker/pull/214
+---
+ src/launch/launcher.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/launch/launcher.c b/src/launch/launcher.c
+index 2ec4bda..1f38fcf 100644
+--- a/src/launch/launcher.c
++++ b/src/launch/launcher.c
+@@ -10,6 +10,7 @@
+ #include <stdlib.h>
+ #include <sys/prctl.h>
+ #include <sys/un.h>
++#include <sys/wait.h>
+ #include <systemd/sd-bus.h>
+ #include <systemd/sd-daemon.h>
+ #include <systemd/sd-event.h>
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_19.bb b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_19.bb
deleted file mode 100644
index 82d8b8ba6..000000000
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_19.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "dbus broker"
-DESCRIPTION = "Drop-in replacement for dbus-daemon."
-
-SECTION = "base"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8"
-
-SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/dbus-broker-${PV}.tar.xz"
-SRC_URI[sha256sum] = "1648227f5a347d4f38d8a29bb9295a73a25c3feb4f3e79e3f04cc847343da3ed"
-
-inherit meson pkgconfig systemd distro_features_check
-
-DEPENDS = "expat systemd"
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-
-FILES_${PN} += "${systemd_system_unitdir}"
-FILES_${PN} += "${systemd_user_unitdir}"
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_21.bb b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_21.bb
new file mode 100644
index 000000000..98c50c4b2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_21.bb
@@ -0,0 +1,32 @@
+SUMMARY = "dbus broker"
+DESCRIPTION = "Drop-in replacement for dbus-daemon."
+
+SECTION = "base"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8"
+
+SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/dbus-broker-${PV}.tar.xz"
+SRC_URI += " file://0001-launch-improve-error-handling-for-opendir.patch"
+SRC_URI += " file://0002-metrics-change-the-constant-used-for-invalid-timesta.patch"
+SRC_URI += " file://0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch"
+SRC_URI += " file://0004-launcher-fix-build-with-musl-libc.patch"
+SRC_URI[md5sum] = "a17886a92ab1e0bc2e4b1a274339e388"
+SRC_URI[sha256sum] = "6fff9a831a514659e2c7d704e76867ce31ebcf43e8d7a62e080c6656f64cd39e"
+
+inherit meson pkgconfig systemd features_check
+
+DEPENDS = "expat systemd"
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}"
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'audit', '', d)}"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+FILES_${PN} += "${systemd_system_unitdir}"
+FILES_${PN} += "${systemd_user_unitdir}"
+FILES_${PN} += "${libdir}/systemd/catalog"
+
+EXTRA_OEMESON += " -Dselinux=${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'true', 'false', d)}"
+EXTRA_OEMESON += " -Daudit=${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'true', 'false', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb
new file mode 100644
index 000000000..e3853a201
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input"
+HOMEPAGE = "https://www.glfw.org/"
+DESCRIPTION = "GLFW is an Open Source, multi-platform library for OpenGL, \
+OpenGL ES and Vulkan application development. It provides a simple, \
+platform-independent API for creating windows, contexts and surfaces, reading \
+input, handling events, etc."
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=98d93d1ddc537f9b9ea6def64e046b5f"
+SECTION = "lib"
+
+inherit pkgconfig cmake
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://github.com/glfw/glfw.git"
+SRCREV = "d25248343e248337284dfbe5ecd1eddbd37ae66d"
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+
+DEPENDS = "libpng libglu zlib libxrandr libxinerama libxi libxcursor"
+REQUIRED_DISTRO_FEATURES = "x11"
+
+COMPATIBLE_HOST_libc-musl = "null"
diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.60.0.bb b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.62.0.bb
index 7163212b5..75eea4e58 100644
--- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.60.0.bb
+++ b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.62.0.bb
@@ -13,8 +13,8 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
SRC_URI += " \
file://remove-examples.patch \
"
-SRC_URI[archive.md5sum] = "0f6180d185c067bdb2aa30d035f9b867"
-SRC_URI[archive.sha256sum] = "a3a1b1c9805479a16c0018acd84b3bfff23a122aee9e3c5013bb81231aeef2bc"
+SRC_URI[archive.md5sum] = "7da228e3f0c6a10024b9a7708c53691e"
+SRC_URI[archive.sha256sum] = "36659f13cc73282392d1305858f3bbca46fbd1ce2f078cc9db8b9f79b2e93cfe"
do_install_append() {
install -d ${D}${datadir}/glibmm-2.4
diff --git a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.0.bb b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.0.bb
new file mode 100644
index 000000000..3c0330f50
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A library for loose coupling of C++ method calls"
+SECTION = "libs"
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=959bffe2993816eb32ec4bc1ec1d5875"
+
+DEPENDS = "mm-common"
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/3.0/libsigc++-${PV}.tar.xz"
+SRC_URI[md5sum] = "6ffe924f1d8624b5716468cde67dc03f"
+SRC_URI[sha256sum] = "50a0855c1eb26e6044ffe888dbe061938ab4241f96d8f3754ea7ead38ab8ed06"
+
+S = "${WORKDIR}/libsigc++-${PV}"
+
+inherit autotools
+
+FILES_${PN}-dev += "${libdir}/sigc++-*/"
+FILES_${PN}-doc += "${datadir}/devhelp"
+
+BBCLASSEXTEND = "native"
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch
new file mode 100644
index 000000000..6031eaa78
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch
@@ -0,0 +1,41 @@
+From af4069263487399be82ee53d48b1edda7f8e594e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 4 Nov 2019 19:19:47 +0100
+Subject: [PATCH] meson.build: do not ask for python installation / version
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Even by adding python3-setuptools-native the following error is not fixed so
+just ask for python3 executable.
+
+| meson.build:9:0: ERROR: <ExternalProgram 'python3' -> ['<...>/recipe-sysroot-native/usr/bin/python3-native/python3']> is not a valid python or it is missing setuptools
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 3255328..7a6094c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -6,12 +6,7 @@ project('mm-common',
+ license: 'GPLv2+'
+ )
+
+-python3 = import('python').find_installation('python3')
+-python_version = python3.language_version()
+-python_version_req = '>= 3.5'
+-if not python_version.version_compare(python_version_req)
+- error('Requires Python @0@, found @1@.'.format(python_version_req, python_version))
+-endif
++python3 = import('python3').find_python()
+
+ # Use these instead of meson.source_root() and meson.build_root().
+ # source_root() and build_root() are not useful, if this is a subproject.
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.12.bb b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.12.bb
deleted file mode 100644
index 4f91f31e4..000000000
--- a/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.12.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-inherit gnomebase
-
-SRC_URI[archive.md5sum] = "be1c61587db989c7677375a729b94672"
-SRC_URI[archive.sha256sum] = "ceffdcce1e5b52742884c233ec604bf6fded12eea9da077ce7a62c02c87e7c0b"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_1.0.0.bb b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_1.0.0.bb
new file mode 100644
index 000000000..c7d1f2b73
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_1.0.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Common GNOME build files for C++ bindings"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase
+
+SRC_URI[archive.md5sum] = "9087b8612d75cbc1fad0c99e15c2a718"
+SRC_URI[archive.sha256sum] = "b97d9b041e5952486cab620b44ab09f6013a478f43b6699ae899b8a4da189cd4"
+SRC_URI += "file://0001-meson.build-do-not-ask-for-python-installation-versi.patch"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.1.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb
index ae5988b57..479b9eb37 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb
@@ -21,8 +21,8 @@ RDEPENDS_${PN} = " \
"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
-SRC_URI[md5sum] = "1654c8d2aa0dac51c8d1d755df61ae6c"
-SRC_URI[sha256sum] = "94e79a31ed38bdb0acd9af7ccca1605a2ac62ca850ed640202876b1ee11c1c61"
+SRC_URI[md5sum] = "2b64ca9ea16e823df359eacf9c02414b"
+SRC_URI[sha256sum] = "2af0ec9551ab9c870074cae9d3f68d82cab004f4095fa89db0e4413713424a46"
inherit autotools gettext pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Use-__builtin_bswap32-on-Clang-if-supported.patch b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Use-__builtin_bswap32-on-Clang-if-supported.patch
new file mode 100644
index 000000000..e713665ab
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Use-__builtin_bswap32-on-Clang-if-supported.patch
@@ -0,0 +1,39 @@
+From 7b5dd67fee58f9f54c8a676abe2131776c0a3c52 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Nov 2019 13:41:39 -0800
+Subject: [PATCH] Use __builtin_bswap32 on Clang if supported
+
+clang pretends to be gcc 4.2.1 so GCC_VERSION macro will decide that
+__builtin_bswap32 is not supported on clang, whereas in reality it might
+so its better to add a check for enquiring clang if it supports
+__builtin_bswap32 or not
+
+Upstream-Status: Submitted [https://github.com/smuellerDD/libkcapi/pull/83]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/kcapi-kdf.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/lib/kcapi-kdf.c b/lib/kcapi-kdf.c
+index 9e53a0b..f32fbe9 100644
+--- a/lib/kcapi-kdf.c
++++ b/lib/kcapi-kdf.c
+@@ -54,10 +54,14 @@
+ #include "kcapi.h"
+ #include "internal.h"
+
++#ifndef __has_builtin
++# define __has_builtin(x) 0
++#endif
++
+ #define GCC_VERSION (__GNUC__ * 10000 \
+ + __GNUC_MINOR__ * 100 \
+ + __GNUC_PATCHLEVEL__)
+-#if GCC_VERSION >= 40400
++#if GCC_VERSION >= 40400 || (defined(__clang__) && __has_builtin(__builtin_bswap32))
+ # define __HAVE_BUILTIN_BSWAP32__
+ #endif
+
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-kcapi-kdf-Move-code-to-fix.patch b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-kcapi-kdf-Move-code-to-fix.patch
new file mode 100644
index 000000000..7ed9caf09
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-kcapi-kdf-Move-code-to-fix.patch
@@ -0,0 +1,73 @@
+From 8f961521add49278b48c9721fc53e05ee3543b74 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Nov 2019 23:03:51 -0800
+Subject: [PATCH] kcapi-kdf: Move code to fix
+
+Fixes clang build
+unused function '_bswap32' [-Werror,-Wunused-function]
+
+Upstream-Status: Submitted [https://github.com/smuellerDD/libkcapi/pull/83]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/kcapi-kdf.c | 37 +++++++++++++++++--------------------
+ 1 file changed, 17 insertions(+), 20 deletions(-)
+
+diff --git a/lib/kcapi-kdf.c b/lib/kcapi-kdf.c
+index ea39846..9e53a0b 100644
+--- a/lib/kcapi-kdf.c
++++ b/lib/kcapi-kdf.c
+@@ -54,6 +54,20 @@
+ #include "kcapi.h"
+ #include "internal.h"
+
++#define GCC_VERSION (__GNUC__ * 10000 \
++ + __GNUC_MINOR__ * 100 \
++ + __GNUC_PATCHLEVEL__)
++#if GCC_VERSION >= 40400
++# define __HAVE_BUILTIN_BSWAP32__
++#endif
++
++/* Endian dependent byte swap operations. */
++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
++# define be_bswap32(x) ((uint32_t)(x))
++#elif __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
++# ifdef __HAVE_BUILTIN_BSWAP32__
++# define be_bswap32(x) (uint32_t)__builtin_bswap32((uint32_t)(x))
++# else
+ static inline uint32_t rol32(uint32_t x, int n)
+ {
+ return ( (x << (n&(32-1))) | (x >> ((32-n)&(32-1))) );
+@@ -68,27 +82,10 @@ static inline uint32_t _bswap32(uint32_t x)
+ {
+ return ((rol32(x, 8) & 0x00ff00ffL) | (ror32(x, 8) & 0xff00ff00L));
+ }
+-
+-#define GCC_VERSION (__GNUC__ * 10000 \
+- + __GNUC_MINOR__ * 100 \
+- + __GNUC_PATCHLEVEL__)
+-#if GCC_VERSION >= 40400
+-# define __HAVE_BUILTIN_BSWAP32__
+-#endif
+-
+-#ifdef __HAVE_BUILTIN_BSWAP32__
+-# define _swap32(x) (uint32_t)__builtin_bswap32((uint32_t)(x))
+-#else
+-# define _swap32(x) _bswap32(x)
+-#endif
+-
+-/* Endian dependent byte swap operations. */
+-#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+-# define be_bswap32(x) ((uint32_t)(x))
+-#elif __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+-# define be_bswap32(x) _swap32(x)
++# define be_bswap32(x) _bswap32(x)
++# endif
+ #else
+-#error "Endianess not defined"
++# error "endianess not defined"
+ #endif
+
+ DSO_PUBLIC
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb
index 799070972..4e217a351 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb
@@ -10,6 +10,8 @@ SRCREV = "5649050d201856bf06c8738b5d2aa1710c86ac2f"
PV = "1.1.5"
SRC_URI = " \
git://github.com/smuellerDD/libkcapi.git \
+ file://0001-kcapi-kdf-Move-code-to-fix.patch \
+ file://0001-Use-__builtin_bswap32-on-Clang-if-supported.patch \
"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.16.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.18.bb
index e1a038dfa..e1a038dfa 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.16.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.18.bb
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
index f1c71feeb..ec5ac11ef 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -19,8 +19,8 @@ SRC_URI = "http://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
file://clang_version_header_conflict.patch \
file://fix-arm-atomic.patch \
"
-SRC_URI[md5sum] = "11220d0b94c5c24caa2e1e9eaba38e31"
-SRC_URI[sha256sum] = "39e9723eaf620afd99b0925b2c2a5a50a89110ba50040adf14cce7cf89e5e21b"
+SRC_URI[md5sum] = "b3524c0825c3a1c255496daea38304a0"
+SRC_URI[sha256sum] = "69456ca85bf9d96c6d28b4ade2a9f6787d79a602e27ef941f9ba4e0b55dddedc"
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
@@ -58,7 +58,6 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} setupdb"
PACKAGECONFIG_class-native = ""
PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam"
PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind"
-PACKAGECONFIG[libedit] = "-DLIBEDIT_INTERFACE=TRUE,-DLIBEDIT_INTERFACE=FALSE,libedit"
PACKAGECONFIG[krb5] = ", ,krb5"
PACKAGECONFIG[setupdb] = ", ,,${PN}-setupdb"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.16.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.18.bb
index de24c920f..c0b53379d 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.16.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.18.bb
@@ -2,7 +2,7 @@ require mariadb.inc
EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1"
-DEPENDS += "mariadb-native bison-native openssl ncurses zlib readline libaio libevent libxml2"
+DEPENDS += "mariadb-native bison-native openssl ncurses zlib libaio libedit libevent libxml2"
PROVIDES += "mysql5 libmysqlclient"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
index f14da06d9..84cd5c157 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
@@ -9,21 +9,25 @@ xml2-config does not work. Use pkgconfig to set CPPFLAGS and LIBS.
Signed-off-by: Philip Balister <philip@balister.org>
-upate to version 10.4
+update to version 10.4
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Update for version 12.0
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
- configure.in | 15 ++-------------
- 1 file changed, 2 insertions(+), 13 deletions(-)
+ configure.in | 16 ++--------------
+ 1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/configure.in b/configure.in
-index d9fe56e..3e2cd3a 100644
+index 6942f81..7fd3e78 100644
--- a/configure.in
+++ b/configure.in
-@@ -816,19 +816,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build with XML support],
+@@ -923,20 +923,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build with XML support],
[AC_DEFINE([USE_LIBXML], 1, [Define to 1 to build with XML support. (--with-libxml)])])
if test "$with_libxml" = yes ; then
- PGAC_PATH_PROGS(XML2_CONFIG, xml2-config)
+- AC_ARG_VAR(XML2_CONFIG, [path to xml2-config utility])dnl
- if test -n "$XML2_CONFIG"; then
- for pgac_option in `$XML2_CONFIG --cflags`; do
- case $pgac_option in
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
index 0fe5d58e1..91d0275b3 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -18,7 +18,7 @@ DESCRIPTION = "\
this package if you're installing the postgresql-server package. \
"
HOMEPAGE = "http://www.postgresql.com"
-LICENSE = "BSD"
+LICENSE = "BSD-0-Clause"
DEPENDS = "libnsl2 zlib readline tzcode-native"
ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_11.5.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.0.bb
index fd4200a73..d5b1ebdb5 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_11.5.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.0.bb
@@ -8,5 +8,5 @@ SRC_URI += "\
file://0001-Improve-reproducibility.patch \
"
-SRC_URI[md5sum] = "580da94f6d85046ff2a228785ab2cc89"
-SRC_URI[sha256sum] = "7fdf23060bfc715144cbf2696cf05b0fa284ad3eb21f0c378591c6bca99ad180"
+SRC_URI[md5sum] = "87545416ef021eee8621d31a93fcc899"
+SRC_URI[sha256sum] = "cda2397215f758b793f741c86be05468257b0e6bcb1a6113882ab5d0df0855c6"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/0001-Avoid-use-of-mips-which-is-reserved-on-mips.patch b/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/0001-Avoid-use-of-mips-which-is-reserved-on-mips.patch
new file mode 100644
index 000000000..daf90ad44
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/0001-Avoid-use-of-mips-which-is-reserved-on-mips.patch
@@ -0,0 +1,67 @@
+From a3eba0fcee5e96ef47a6d3fac7196a1074f0dc17 Mon Sep 17 00:00:00 2001
+From: Adrian Bunk <bunk@stusta.de>
+Date: Wed, 30 Oct 2019 11:07:23 +0200
+Subject: Avoid use of "mips" which is reserved on mips
+
+Upstream-Status: Submitted [https://github.com/brasko/gdbwire/pull/9]
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+
+diff --git a/src/gdbwire_mi_parser.c b/src/gdbwire_mi_parser.c
+index 3f6b563..24aa0cf 100644
+--- a/lib/tgdb/gdbwire.c
++++ b/lib/tgdb/gdbwire.c
+@@ -40,7 +40,7 @@ struct gdbwire_mi_parser {
+ /* The GDB/MI lexer state */
+ yyscan_t mils;
+ /* The GDB/MI push parser state */
+- gdbwire_mi_pstate *mips;
++ gdbwire_mi_pstate *mipst;
+ /* The client parser callbacks */
+ struct gdbwire_mi_parser_callbacks callbacks;
+ };
+@@ -71,8 +71,8 @@ gdbwire_mi_parser_create(struct gdbwire_mi_parser_callbacks callbacks)
+ }
+
+ /* Create a new push parser state instance */
+- parser->mips = gdbwire_mi_pstate_new();
+- if (!parser->mips) {
++ parser->mipst = gdbwire_mi_pstate_new();
++ if (!parser->mipst) {
+ gdbwire_mi_lex_destroy(parser->mils);
+ gdbwire_string_destroy(parser->buffer);
+ free(parser);
+@@ -81,7 +81,7 @@ gdbwire_mi_parser_create(struct gdbwire_mi_parser_callbacks callbacks)
+
+ /* Ensure that the callbacks are non null */
+ if (!callbacks.gdbwire_mi_output_callback) {
+- gdbwire_mi_pstate_delete(parser->mips);
++ gdbwire_mi_pstate_delete(parser->mipst);
+ gdbwire_mi_lex_destroy(parser->mils);
+ gdbwire_string_destroy(parser->buffer);
+ free(parser);
+@@ -109,9 +109,9 @@ void gdbwire_mi_parser_destroy(struct gdbwire_mi_parser *parser)
+ }
+
+ /* Free the push parser instance */
+- if (parser->mips) {
+- gdbwire_mi_pstate_delete(parser->mips);
+- parser->mips = NULL;
++ if (parser->mipst) {
++ gdbwire_mi_pstate_delete(parser->mipst);
++ parser->mipst = NULL;
+ }
+
+ free(parser);
+@@ -162,7 +162,7 @@ gdbwire_mi_parser_parse_line(struct gdbwire_mi_parser *parser,
+ pattern = gdbwire_mi_lex(parser->mils);
+ if (pattern == 0)
+ break;
+- mi_status = gdbwire_mi_push_parse(parser->mips, pattern, NULL,
++ mi_status = gdbwire_mi_push_parse(parser->mipst, pattern, NULL,
+ parser->mils, &output);
+ } while (mi_status == YYPUSH_MORE);
+
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch b/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch
deleted file mode 100644
index 4358629b7..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Disable building manpages so that make install doesn't fail due to lack of help2man
-
-Upstream-Status: Inappropriate [config]
-
-Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
----
- configure.ac | 3 ---
- doc/Makefile.am | 5 -----
- 2 files changed, 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ee7eca0..1f0d924 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -134,9 +134,6 @@ dnl check that the required tools are available to generate documentation
- if test "$HAS_MAKEINFO" != "yes" ; then
- AC_MSG_ERROR([Please install makeinfo before installing])
- fi
--if test "$HAS_HELP2MAN" != "yes" ; then
-- AC_MSG_ERROR([Please install help2man])
--fi
-
- dnl Checking for log10 function in math - I would like to remove this
- AC_CHECK_LIB(m, log10)
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index 60662f6..0ae0013 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -1,15 +1,10 @@
- info_TEXINFOS = cgdb.texi
- cgdb_TEXINFOS = gpl.texi
-
--dist_man_MANS = cgdb.1
- EXTRA_DIST = cgdb.txt
-
- dist_pkgdata_DATA = cgdb.txt
-
--# generate the man page using help2man.
--cgdb.1:
-- help2man --output=$(top_srcdir)/doc/cgdb.1 $(top_builddir)/cgdb/cgdb$(EXEEXT)
--
- cgdb.txt: cgdb.texi $(srcdir)/version.texi $(cgdb_TEXINFOS)
- TEXTS = cgdb.txt
- text-am: $(TEXTS)
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb b/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb
index 74019fb62..57e364e1c 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb
@@ -10,11 +10,12 @@ DEPENDS = "flex-native readline ncurses"
inherit autotools
SRC_URI = "http://cgdb.me/files/${BP}.tar.gz \
- file://remove-help2man.patch"
-SRC_URI[md5sum] = "7bd38c79bf4d794d239928fef401fca3"
-SRC_URI[sha256sum] = "be203e29be295097439ab67efe3dc8261f742c55ff3647718d67d52891f4cf41"
+ file://0001-Avoid-use-of-mips-which-is-reserved-on-mips.patch \
+"
+SRC_URI[md5sum] = "a104862ffd3145b076303992e9a3af26"
+SRC_URI[sha256sum] = "bb723be58ec68cb59a598b8e24a31d10ef31e0e9c277a4de07b2f457fe7de198"
-CACHED_CONFIGUREVARS = "ac_cv_file__dev_ptmx=yes ac_cv_rl_version=6.2"
+CACHED_CONFIGUREVARS = "ac_cv_file__dev_ptmx=yes ac_cv_rl_version=6.2 ac_cv_file__proc_self_status=yes"
EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR} \
--with-ncurses=${STAGING_LIBDIR}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb b/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb
index 8aa5947d0..199c31e15 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb
@@ -11,7 +11,7 @@ DESCRIPTION = "Cscope is a developer's tool for browsing source code. \
HOMEPAGE = "http://cscope.sourceforge.net/"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=d4667b67b483823043fcffa489ea343b"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/0001-Fix-6906.patch b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/0001-Fix-6906.patch
deleted file mode 100644
index bbebc4dc7..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/0001-Fix-6906.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 81b213b98f51ec3eed5774f6f797c074ac35db3e Mon Sep 17 00:00:00 2001
-From: Ton van den Heuvel <tonvandenheuvel@gmail.com>
-Date: Mon, 6 May 2019 15:17:28 +0200
-Subject: [PATCH] Fix #6906
-
-Generate configvalues.h only as a dependency for the VHDL parser. Fixes
-a problem in combination with Ninja v1.9.0 because of duplicate rules
-for generating configvalues.h.
-
-Upstream-Status: Backport
-Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
----
- addon/doxyapp/CMakeLists.txt | 8 --------
- addon/doxyparse/CMakeLists.txt | 8 --------
- src/CMakeLists.txt | 4 ++++
- vhdlparser/CMakeLists.txt | 12 +++---------
- 4 files changed, 7 insertions(+), 25 deletions(-)
-
-diff --git a/addon/doxyapp/CMakeLists.txt b/addon/doxyapp/CMakeLists.txt
-index a7377112..0aaf4655 100644
---- a/addon/doxyapp/CMakeLists.txt
-+++ b/addon/doxyapp/CMakeLists.txt
-@@ -1,11 +1,3 @@
--# configvalues.h
--add_custom_command(
-- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
-- DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
-- OUTPUT ${GENERATED_SRC}/configvalues.h
--)
--set_source_files_properties(${GENERATED_SRC}/configvalues.h PROPERTIES GENERATED 1)
--
- find_package(Iconv)
-
- include_directories(
-diff --git a/addon/doxyparse/CMakeLists.txt b/addon/doxyparse/CMakeLists.txt
-index ff198fb4..1620c72e 100644
---- a/addon/doxyparse/CMakeLists.txt
-+++ b/addon/doxyparse/CMakeLists.txt
-@@ -1,11 +1,3 @@
--# configvalues.h
--add_custom_command(
-- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
-- DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
-- OUTPUT ${GENERATED_SRC}/configvalues.h
--)
--set_source_files_properties(${GENERATED_SRC}/configvalues.h PROPERTIES GENERATED 1)
--
- find_package(Iconv)
-
- include_directories(
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 92a302ab..37a21ff6 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -43,6 +43,10 @@ add_custom_command(
- OUTPUT ${GENERATED_SRC}/configvalues.h
- )
- set_source_files_properties(${GENERATED_SRC}/configvalues.h PROPERTIES GENERATED 1)
-+add_custom_target(
-+ generate_configvalues_header
-+ DEPENDS ${GENERATED_SRC}/configvalues.h
-+)
-
- # configvalues.cpp
- add_custom_command(
-diff --git a/vhdlparser/CMakeLists.txt b/vhdlparser/CMakeLists.txt
-index 71e97df5..f89008c5 100644
---- a/vhdlparser/CMakeLists.txt
-+++ b/vhdlparser/CMakeLists.txt
-@@ -1,14 +1,5 @@
--# configvalues.h
--add_custom_command(
-- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
-- DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
-- OUTPUT ${GENERATED_SRC}/configvalues.h
--)
--set_source_files_properties(${GENERATED_SRC}/configvalues.h PROPERTIES GENERATED 1)
--
- include_directories(${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/qtools ${GENERATED_SRC})
- add_library(vhdlparser STATIC
--${GENERATED_SRC}/configvalues.h
- CharStream.cc
- ParseException.cc
- Token.cc
-@@ -17,3 +8,6 @@ VhdlParser.cc
- VhdlParserTokenManager.cc
- VhdlParserIF.cpp
- )
-+add_dependencies(vhdlparser
-+ generate_configvalues_header
-+)
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.16.bb
index b49fbd4d0..4df994c75 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.16.bb
@@ -8,9 +8,9 @@ DEPENDS = "flex-native bison-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \
file://0001-build-don-t-look-for-Iconv.patch \
- file://0001-Fix-6906.patch"
-SRC_URI[md5sum] = "2c98c73eba392d334f5bbaf15e09bae3"
-SRC_URI[sha256sum] = "bd9c0ec462b6a9b5b41ede97bede5458e0d7bb40d4cfa27f6f622eb33c59245d"
+"
+SRC_URI[md5sum] = "3ec5f8bfda38a05845161fbbd5d8b439"
+SRC_URI[sha256sum] = "ff981fb6f5db4af9deb1dd0c0d9325e0f9ba807d17bd5750636595cf16da3c82"
inherit cmake python3native
diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch
new file mode 100644
index 000000000..f3e82101b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch
@@ -0,0 +1,38 @@
+From bff7ffbc5130cd46caf33b76b4bb0593fcd15066 Mon Sep 17 00:00:00 2001
+From: Vladimir Glavnyy <31897320+vglavnyy@users.noreply.github.com>
+Date: Fri, 10 May 2019 00:15:29 +0700
+Subject: [PATCH] Add detection of strtoull_l function (#5333) (#5337)
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Retrieved from:
+https://github.com/google/flatbuffers/commit/bff7ffbc5130cd46caf33b76b4bb0593fcd15066]
+---
+ CMakeLists.txt | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0640c37b5..30be238fe 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -42,12 +42,18 @@ if(DEFINED FLATBUFFERS_MAX_PARSING_DEPTH)
+ message(STATUS "FLATBUFFERS_MAX_PARSING_DEPTH: ${FLATBUFFERS_MAX_PARSING_DEPTH}")
+ endif()
+
+-# Auto-detect locale-narrow 'strtod_l' function.
++# Auto-detect locale-narrow 'strtod_l' and 'strtoull_l' functions.
+ if(NOT DEFINED FLATBUFFERS_LOCALE_INDEPENDENT)
++ set(FLATBUFFERS_LOCALE_INDEPENDENT 0)
+ if(MSVC)
+- check_cxx_symbol_exists(_strtof_l stdlib.h FLATBUFFERS_LOCALE_INDEPENDENT)
++ check_cxx_symbol_exists(_strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L)
++ check_cxx_symbol_exists(_strtoui64_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L)
+ else()
+- check_cxx_symbol_exists(strtof_l stdlib.h FLATBUFFERS_LOCALE_INDEPENDENT)
++ check_cxx_symbol_exists(strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L)
++ check_cxx_symbol_exists(strtoull_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L)
++ endif()
++ if(FLATBUFFERS_HAS_STRTOF_L AND FLATBUFFERS_HAS_STRTOULL_L)
++ set(FLATBUFFERS_LOCALE_INDEPENDENT 1)
+ endif()
+ endif()
+ add_definitions(-DFLATBUFFERS_LOCALE_INDEPENDENT=$<BOOL:${FLATBUFFERS_LOCALE_INDEPENDENT}>)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.10.0.bb b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb
index 452e1e65a..bd6dcef4e 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb
@@ -10,9 +10,11 @@ RDEPENDS_${PN}-dev += "${PN}-compiler"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559"
-SRCREV = "c0698cc33f1e534bb59c455909b88cc2726089af"
+SRCREV = "9e7e8cbe9f675123dd41b7c62868acad39188cae"
-SRC_URI = "git://github.com/google/flatbuffers.git"
+SRC_URI = "git://github.com/google/flatbuffers.git \
+ file://0001-Add-detection-of-strtoull_l-function.patch \
+ "
# Make sure C++11 is used, required for example for GCC 4.9
CXXFLAGS += "-std=c++11"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.36.bb
index 84adc7abe..c43d23b34 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.36.bb
@@ -24,16 +24,16 @@ DEPENDS = " \
libgit2 \
"
-inherit distro_features_check autotools pkgconfig gtk-icon-cache
+inherit features_check autotools pkgconfig gtk-icon-cache
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = " \
- http://plugins.geany.org/${BPN}/${BP}.tar.bz2 \
+ https://plugins.geany.org/${BPN}/${BP}.tar.bz2 \
file://0001-Use-pkg-config-to-find-gpgme.patch \
"
-SRC_URI[md5sum] = "bf5fdd50727ad8bbbfe00027ccf2dac5"
-SRC_URI[sha256sum] = "244417c681636e82a63cf6f9901b5b7f3889168f7d9b5ba9b45601767a589c3b"
+SRC_URI[md5sum] = "91fb4634953702f914d9105da7048a33"
+SRC_URI[sha256sum] = "ebe18dd699292174622e8cb8745b020ada8a5be3b604ab980af36e8518df7ce6"
do_configure_prepend() {
rm -f ${S}/build/cache/glib-gettext.m4
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.34.1.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
index aab535d85..0d29b138a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.34.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
@@ -5,13 +5,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5"
DEPENDS = "gtk+3 libxml-parser-perl-native python3-docutils-native intltool-native"
-inherit distro_features_check autotools pkgconfig perlnative pythonnative gettext
+inherit features_check autotools pkgconfig perlnative pythonnative gettext
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "http://download.geany.org/${BP}.tar.bz2"
-SRC_URI[md5sum] = "87220f4a0e03623ab9d86820f6be7b5d"
-SRC_URI[sha256sum] = "e765efd89e759defe3fd797d8a2052afbb4b23522efbcc72e3a72b7f1093ec11"
+SRC_URI = "https://download.geany.org/${BP}.tar.bz2"
+SRC_URI[md5sum] = "53216a43345e2b6dbefa02ac24885753"
+SRC_URI[sha256sum] = "9184dd3dd40b7b84fca70083284bb9dbf2ee8022bf2be066bdc36592d909d53e"
FILES_${PN} += "${datadir}/icons"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb b/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb
index bd4b586f1..cdd7057b3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb
@@ -9,7 +9,7 @@ DEPENDS = "gtk+ gtk+3 glib-2.0 libxml2 intltool-native \
"
-inherit distro_features_check autotools pkgconfig gnomebase gobject-introspection
+inherit features_check autotools pkgconfig gnomebase gobject-introspection
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.4.bb b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb
index 1a413452a..0057db661 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb
@@ -6,12 +6,12 @@ AUTHOR = "Peace Lee <ipeace5@gmail.com>"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
-PV = "3.9.4+git${SRCPV}"
+PV = "3.9.6+git${SRCPV}"
PR = "r0"
SRC_URI = "git://github.com/iipeace/${BPN}"
#SRCREV = "${AUTOREV}"
-SRCREV = "b433f3805674ef4588c1a161986c74eeac6a48e7"
+SRCREV = "fef25c41efb9bde0614ea477d0b90bd9565ae0b4"
S = "${WORKDIR}/git"
R = "${RECIPE_SYSROOT}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch
new file mode 100644
index 000000000..98cc9ba90
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch
@@ -0,0 +1,42 @@
+From 5226333bddb755dbefd780d31450e0238dd5d3bd Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+Date: Wed, 16 Oct 2019 08:24:23 +0900
+Subject: [PATCH] Bug fix for data type length judgment.
+
+...
+if (byte_size == sizeof(long)) {
+
+ *type = is_signed ? ARGTYPE_LONG : ARGTYPE_ULONG;
+
+ return true;
+
+}
+...
+
+If ltrace's target command has a dbg package, ltrace will look for the debug file and analyze its contents.
+Ltrace determines the type of analysis result variable. The type of the variable is longlong.
+On 32-bit systems, longlong is 8 and long is 4 (same as in).
+An error occurred because the ltrace code did not process a variable of length 8.
+
+Upstream-Status: Pending
+Signed-off-by: Wang Mingyu <wangmy.fnst@cn.fujitsu.com>
+---
+ dwarf_prototypes.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dwarf_prototypes.c b/dwarf_prototypes.c
+index bfac177..9887d4b 100644
+--- a/dwarf_prototypes.c
++++ b/dwarf_prototypes.c
+@@ -190,7 +190,7 @@ static bool get_integer_base_type(enum arg_type *type, int byte_size,
+ return true;
+ }
+
+- if (byte_size == sizeof(long)) {
++ if (byte_size == sizeof(long long)) {
+ *type = is_signed ? ARGTYPE_LONG : ARGTYPE_ULONG;
+ return true;
+ }
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index ead637cb7..bb21cbca8 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -14,7 +14,6 @@ PV = "7.91+git${SRCPV}"
SRCREV = "c22d359433b333937ee3d803450dc41998115685"
DEPENDS = "elfutils"
-RDEPENDS_${PN} = "elfutils"
SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http \
file://configure-allow-to-disable-selinux-support.patch \
file://0001-replace-readdir_r-with-readdir.patch \
@@ -28,6 +27,7 @@ SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http
file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \
file://0001-hook-Do-not-append-int-to-std-string.patch \
file://include_unistd_nr.patch \
+ file://0001-Bug-fix-for-data-type-length-judgment.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb b/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
index a7163a35a..b5ca49566 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "MCPP is a portable C/C++ preprocessor"
HOMEPAGE = "http://mcpp.sourceforge.net/"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5ca370b75ec890321888a00cea9bc1d5"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb
index 65e49bc95..4399edaab 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb
@@ -2,13 +2,13 @@ SUMMARY = "JSON for modern C++"
HOMEPAGE = "https://nlohmann.github.io/json/"
SECTION = "libs"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=9a8ae1c2d606c432a2aa2e2de15be22a"
+LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=f5f7c71504da070bcf4f090205ce1080"
SRC_URI = "git://github.com/nlohmann/json.git"
-PV = "3.3.0+git${SRCPV}"
+PV = "3.7.0+git${SRCPV}"
-SRCREV = "aafad2be1f3cd259a1e79d2f6fcf267d1ede9ec7"
+SRCREV = "ea60d40f4a60a47d3be9560d8f7bc37c163fe47b"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Crypto-reduce-memory-usage-of-SignFinal.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Crypto-reduce-memory-usage-of-SignFinal.patch
deleted file mode 100644
index ed3bac39b..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Crypto-reduce-memory-usage-of-SignFinal.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 20282b1cb0389553421c4c5b14de198c5dfff50b Mon Sep 17 00:00:00 2001
-From: Anna Henningsen <anna@addaleax.net>
-Date: Sat, 20 Oct 2018 05:24:54 +0200
-Subject: [PATCH] src: use more explicit return type in Sign::SignFinal()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Using the non-indexed variant of `std::get<>` broke Travis CI.
-Also, this allows us to be a bit more concise when returning
-from `SignFinal()` due to some error condition.
-
-Refs: https://github.com/nodejs/node/pull/23427
-
-PR-URL: https://github.com/nodejs/node/pull/23779
-Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
-Reviewed-By: Tobias Nießen <tniessen@tnie.de>
-Reviewed-By: Refael Ackermann <refack@gmail.com>
-Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
----
- src/node_crypto.cc | 23 +++++++++++------------
- src/node_crypto.h | 12 +++++++++++-
- 2 files changed, 22 insertions(+), 13 deletions(-)
-
-diff --git a/src/node_crypto.cc b/src/node_crypto.cc
-index bd8d9e032554..ec7d4f2bb5be 100644
---- a/src/node_crypto.cc
-+++ b/src/node_crypto.cc
-@@ -3562,22 +3562,20 @@ static MallocedBuffer<unsigned char> Node_SignFinal(EVPMDPointer&& mdctx,
- return MallocedBuffer<unsigned char>();
- }
-
--std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
-+Sign::SignResult Sign::SignFinal(
- const char* key_pem,
- int key_pem_len,
- const char* passphrase,
- int padding,
- int salt_len) {
-- MallocedBuffer<unsigned char> buffer;
--
- if (!mdctx_)
-- return std::make_pair(kSignNotInitialised, std::move(buffer));
-+ return SignResult(kSignNotInitialised);
-
- EVPMDPointer mdctx = std::move(mdctx_);
-
- BIOPointer bp(BIO_new_mem_buf(const_cast<char*>(key_pem), key_pem_len));
- if (!bp)
-- return std::make_pair(kSignPrivateKey, std::move(buffer));
-+ return SignResult(kSignPrivateKey);
-
- EVPKeyPointer pkey(PEM_read_bio_PrivateKey(bp.get(),
- nullptr,
-@@ -3588,7 +3586,7 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
- // without `pkey` being set to nullptr;
- // cf. the test of `test_bad_rsa_privkey.pem` for an example.
- if (!pkey || 0 != ERR_peek_error())
-- return std::make_pair(kSignPrivateKey, std::move(buffer));
-+ return SignResult(kSignPrivateKey);
-
- #ifdef NODE_FIPS_MODE
- /* Validate DSA2 parameters from FIPS 186-4 */
-@@ -3612,9 +3610,10 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
- }
- #endif // NODE_FIPS_MODE
-
-- buffer = Node_SignFinal(std::move(mdctx), pkey, padding, salt_len);
-+ MallocedBuffer<unsigned char> buffer =
-+ Node_SignFinal(std::move(mdctx), pkey, padding, salt_len);
- Error error = buffer.is_empty() ? kSignPrivateKey : kSignOk;
-- return std::make_pair(error, std::move(buffer));
-+ return SignResult(error, std::move(buffer));
- }
-
-
-@@ -3639,18 +3638,18 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) {
-
- ClearErrorOnReturn clear_error_on_return;
-
-- std::pair<Error, MallocedBuffer<unsigned char>> ret = sign->SignFinal(
-+ SignResult ret = sign->SignFinal(
- buf,
- buf_len,
- len >= 2 && !args[1]->IsNull() ? *passphrase : nullptr,
- padding,
- salt_len);
-
-- if (std::get<Error>(ret) != kSignOk)
-- return sign->CheckThrow(std::get<Error>(ret));
-+ if (ret.error != kSignOk)
-+ return sign->CheckThrow(ret.error);
-
- MallocedBuffer<unsigned char> sig =
-- std::move(std::get<MallocedBuffer<unsigned char>>(ret));
-+ std::move(ret.signature);
-
- Local<Object> rc =
- Buffer::New(env, reinterpret_cast<char*>(sig.release()), sig.size)
-diff --git a/src/node_crypto.h b/src/node_crypto.h
-index 6fcf737f6c43..0c26c1f6ff1d 100644
---- a/src/node_crypto.h
-+++ b/src/node_crypto.h
-@@ -518,7 +518,17 @@ class Sign : public SignBase {
- public:
- static void Initialize(Environment* env, v8::Local<v8::Object> target);
-
-- std::pair<Error, MallocedBuffer<unsigned char>> SignFinal(
-+ struct SignResult {
-+ Error error;
-+ MallocedBuffer<unsigned char> signature;
-+
-+ explicit SignResult(
-+ Error err,
-+ MallocedBuffer<unsigned char>&& sig = MallocedBuffer<unsigned char>())
-+ : error(err), signature(std::move(sig)) {}
-+ };
-+
-+ SignResult SignFinal(
- const char* key_pem,
- int key_pem_len,
- const char* passphrase,
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch
deleted file mode 100644
index f6569cd57..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-The target LDFLAGS have been ignored. Tools like torque
-have been loaded from system libraries, even if a native
-one was the target.
-|$ ldd torque
-| libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
-| libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-| libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1
-| libicui18n.so.63 => not found
-| libicuuc.so.63 => not found
-...
-
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-
-diff -Naur node-v10.15.1/deps/v8/gypfiles/toolchain.gypi node-v10.15.1/deps/v8/gypfiles/toolchain.gypi
---- node-v10.15.1/deps/v8/gypfiles/toolchain.gypi 2019-03-18 15:01:39.000000000 +0100
-+++ node-v10.15.1/deps/v8/gypfiles/toolchain.gypi 2019-03-18 15:04:08.628361308 +0100
-@@ -1106,6 +1106,7 @@
- 'cflags': [ '-fno-strict-aliasing' ],
- }],
- ], # conditions
-+ 'ldflags+': [ '$(LDFLAGS)' ],
- }],
- ['OS=="solaris"', {
- 'defines': [ '__C99FEATURES__=1' ], # isinf() etc.
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0007-v8-don-t-override-ARM-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0007-v8-don-t-override-ARM-CFLAGS.patch
new file mode 100644
index 000000000..eb2cbfb8b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0007-v8-don-t-override-ARM-CFLAGS.patch
@@ -0,0 +1,102 @@
+From 47ee5cc5501289205d3e8e9f27ea9daf18cebac1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Sat, 9 Nov 2019 14:45:30 +0000
+Subject: [PATCH] v8: don't override ARM CFLAGS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This overrides yocto-provided build flags with its own, e.g we get
+ arm-poky-linux-musleabi-g++ -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 \
+ ... \
+ -march=armv7-a -mfpu=neon -mfloat-abi=hard -marm
+
+Causing the latter to override the former, and compiler warnings:
+ cc1plus: warning: switch '-mcpu=cortex-a7' conflicts with '-march=armv7-a' switch
+
+Patch this out, so that yocto-provided flags take precedence.
+Note that in reality the same should probably be done for all the other
+supported architectures, too.
+
+Note that this also switches to Thumb(2) mode (in my case). No obvious
+problems have been noted during compilation or runtime.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: André Draszik <git@andred.net>
+---
+ deps/v8/gypfiles/toolchain.gypi | 52 ++-------------------------------
+ 1 file changed, 2 insertions(+), 50 deletions(-)
+
+diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi
+index 910a212..1390b15 100644
+--- a/deps/v8/gypfiles/toolchain.gypi
++++ b/deps/v8/gypfiles/toolchain.gypi
+@@ -199,31 +199,7 @@
+ 'target_conditions': [
+ ['_toolset=="host"', {
+ 'conditions': [
+- ['v8_target_arch==host_arch', {
+- # Host built with an Arm CXX compiler.
+- 'conditions': [
+- [ 'arm_version==7', {
+- 'cflags': ['-march=armv7-a',],
+- }],
+- [ 'arm_version==7 or arm_version=="default"', {
+- 'conditions': [
+- [ 'arm_fpu!="default"', {
+- 'cflags': ['-mfpu=<(arm_fpu)',],
+- }],
+- ],
+- }],
+- [ 'arm_float_abi!="default"', {
+- 'cflags': ['-mfloat-abi=<(arm_float_abi)',],
+- }],
+- [ 'arm_thumb==1', {
+- 'cflags': ['-mthumb',],
+- }],
+- [ 'arm_thumb==0', {
+- 'cflags': ['-marm',],
+- }],
+- ],
+- }, {
+- # 'v8_target_arch!=host_arch'
++ ['v8_target_arch!=host_arch', {
+ # Host not built with an Arm CXX compiler (simulator build).
+ 'conditions': [
+ [ 'arm_float_abi=="hard"', {
+@@ -242,31 +218,7 @@
+ }], # _toolset=="host"
+ ['_toolset=="target"', {
+ 'conditions': [
+- ['v8_target_arch==target_arch', {
+- # Target built with an Arm CXX compiler.
+- 'conditions': [
+- [ 'arm_version==7', {
+- 'cflags': ['-march=armv7-a',],
+- }],
+- [ 'arm_version==7 or arm_version=="default"', {
+- 'conditions': [
+- [ 'arm_fpu!="default"', {
+- 'cflags': ['-mfpu=<(arm_fpu)',],
+- }],
+- ],
+- }],
+- [ 'arm_float_abi!="default"', {
+- 'cflags': ['-mfloat-abi=<(arm_float_abi)',],
+- }],
+- [ 'arm_thumb==1', {
+- 'cflags': ['-mthumb',],
+- }],
+- [ 'arm_thumb==0', {
+- 'cflags': ['-marm',],
+- }],
+- ],
+- }, {
+- # 'v8_target_arch!=target_arch'
++ ['v8_target_arch!=target_arch', {
+ # Target not built with an Arm CXX compiler (simulator build).
+ 'conditions': [
+ [ 'arm_float_abi=="hard"', {
+--
+2.23.0.rc1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.16.3.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb
index a978eebe4..e36995c25 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.16.3.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=be980eb7ccafe287cb438076a65e888c"
DEPENDS = "openssl"
DEPENDS_append_class-target = " nodejs-native"
-inherit pkgconfig
+inherit pkgconfig pythonnative
COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
@@ -17,17 +17,16 @@ COMPATIBLE_HOST_riscv32 = "null"
SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
- file://0003-Crypto-reduce-memory-usage-of-SignFinal.patch \
file://0004-Make-compatibility-with-gcc-4.8.patch \
- file://0005-Link-atomic-library.patch \
- file://0006-Use-target-ldflags.patch \
+ file://0007-v8-don-t-override-ARM-CFLAGS.patch \
"
SRC_URI_append_class-target = " \
+ file://0005-Link-atomic-library.patch \
file://0002-Using-native-torque.patch \
"
-SRC_URI[md5sum] = "b41275a018e670947c1950b12f050a2f"
-SRC_URI[sha256sum] = "7bf1123d7415964775b8f81fe6ec6dd5c3c08abb42bb71dfe4409dbeeba26bbd"
+SRC_URI[md5sum] = "d5a56d0abf764a91f627f0690cd4b9f3"
+SRC_URI[sha256sum] = "412667d76bd5273c07cb69c215998109fd5bb35c874654f93e6a0132d666c58e"
S = "${WORKDIR}/node-v${PV}"
@@ -52,13 +51,48 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '-
GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
ARCHFLAGS ?= ""
-PACKAGECONFIG ??= "zlib icu"
-PACKAGECONFIG[zlib] = "--shared-zlib,,zlib"
+PACKAGECONFIG ??= "ares icu libuv zlib"
+PACKAGECONFIG[ares] = "--shared-cares,,c-ares"
+PACKAGECONFIG[gyp] = ",,gyp-py2-native"
PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu"
+PACKAGECONFIG[libuv] = "--shared-libuv,,libuv"
+PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
+PACKAGECONFIG[zlib] = "--shared-zlib,,zlib"
+
+# We don't want to cross-compile during target compile,
+# and we need to use the right flags during host compile,
+# too.
+EXTRA_OEMAKE = "\
+ CC.host='${CC}' \
+ CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
+ CXX.host='${CXX}' \
+ CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
+ LDFLAGS.host='${LDFLAGS}' \
+ AR.host='${AR}' \
+ \
+ builddir_name=./ \
+"
+
+python do_unpack() {
+ import shutil
+
+ bb.build.exec_func('base_do_unpack', d)
+
+ shutil.rmtree(d.getVar('S') + '/deps/openssl', True)
+ if 'ares' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/cares', True)
+ if 'gyp' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/tools/gyp', True)
+ if 'libuv' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/uv', True)
+ if 'nghttp2' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/nghttp2', True)
+ if 'zlib' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/zlib', True)
+}
# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
do_configure () {
- rm -rf ${S}/deps/openssl
export LD="${CXX}"
GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
# $TARGET_ARCH settings don't match --dest-cpu settings
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-esirisc_flash-Rename-PAGE_SIZE-to-FLASH_PAGE_SIZE.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-esirisc_flash-Rename-PAGE_SIZE-to-FLASH_PAGE_SIZE.patch
deleted file mode 100644
index c80d9f19f..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-esirisc_flash-Rename-PAGE_SIZE-to-FLASH_PAGE_SIZE.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From bee22f143ffa0457aefcf31053f76416e6d242e5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 20 May 2019 23:24:26 -0700
-Subject: [PATCH] esirisc_flash: Rename PAGE_SIZE to FLASH_PAGE_SIZE
-
-PAGE_SIZE is defined in system includes on some systems, this would
-avoid the unintended conflict
-
-Fixes
-| src/flash/nor/esirisc_flash.c:95:9: error: 'PAGE_SIZE' macro redefined [-Werror,-Wmacro-redefined]
-| #define PAGE_SIZE 4096
-| ^
-| /mnt/a/yoe/build/tmp/work/core2-64-yoe-linux-musl/openocd/0.10+gitrAUTOINC+7ee618692f-r0/recipe-sysroot/usr/inclu
-de/limits.h:89:9: note: previous definition is here
-| #define PAGE_SIZE PAGESIZE
-
-Upstream-Status: Submitted [http://openocd.zylin.com/#/c/5180/2]
-Change-Id: I195b303fc88a7c848ca4e55fd6ba893796df55cc
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/flash/nor/esirisc_flash.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/flash/nor/esirisc_flash.c b/src/flash/nor/esirisc_flash.c
-index 4e33b942..3bed0658 100644
---- a/src/flash/nor/esirisc_flash.c
-+++ b/src/flash/nor/esirisc_flash.c
-@@ -92,7 +92,7 @@
- #endif
-
- #define CONTROL_TIMEOUT 5000 /* 5s */
--#define PAGE_SIZE 4096
-+#define FLASH_PAGE_SIZE 4096
- #define PB_MAX 32
-
- #define NUM_NS_PER_S 1000000000ULL
-@@ -264,7 +264,7 @@ static int esirisc_flash_erase(struct flash_bank *bank, int first, int last)
- (void)esirisc_flash_disable_protect(bank);
-
- for (int page = first; page < last; ++page) {
-- uint32_t address = page * PAGE_SIZE;
-+ uint32_t address = page * FLASH_PAGE_SIZE;
-
- target_write_u32(target, esirisc_info->cfg + ADDRESS, address);
-
-@@ -464,8 +464,8 @@ static int esirisc_flash_probe(struct flash_bank *bank)
- if (target->state != TARGET_HALTED)
- return ERROR_TARGET_NOT_HALTED;
-
-- bank->num_sectors = bank->size / PAGE_SIZE;
-- bank->sectors = alloc_block_array(0, PAGE_SIZE, bank->num_sectors);
-+ bank->num_sectors = bank->size / FLASH_PAGE_SIZE;
-+ bank->sectors = alloc_block_array(0, FLASH_PAGE_SIZE, bank->num_sectors);
-
- retval = esirisc_flash_init(bank);
- if (retval != ERROR_OK) {
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
index 241b4baa3..9ec77fdc4 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -9,22 +9,21 @@ SRC_URI = " \
git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl \
git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl \
git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink \
- file://0001-esirisc_flash-Rename-PAGE_SIZE-to-FLASH_PAGE_SIZE.patch \
file://0001-Do-not-include-syscrtl.h-with-glibc.patch \
"
SRCREV_FORMAT = "openocd"
-SRCREV_openocd = "7ee618692f56b0efea864890da45d73d28e393d9"
+SRCREV_openocd = "ded67990255cc1e63c77832ffd6e6bef9120873d"
SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
-SRCREV_jimtcl = "a9bf5975fd0f89974d689a2d9ebd0873c8d64787"
-SRCREV_libjaylink = "8645845c1abebd004e991ba9a7f808f4fd0c608b"
+SRCREV_jimtcl = "dc4ba7770d580800634f90b67a24e077b4a26d98"
+SRCREV_libjaylink = "cfccbc9d6763733f1d14dff3c2dc5b75aaef136b"
PV = "0.10+gitr${SRCPV}"
S = "${WORKDIR}/git"
inherit pkgconfig autotools-brokensep gettext
-BBCLASSEXTEND += "nativesdk"
+BBCLASSEXTEND += "native nativesdk"
EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html --disable-werror"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.13.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.14.bb
index f5bdb2087..a96e3adc7 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.13.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.14.bb
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = "file://README;md5=7911cdbb572d25c5f2e2ea17f669efc2"
SRC_URI = "https://cpan.metacpan.org/modules/by-module/Devel/Devel-CheckLib-${PV}.tar.gz \
file://0001-CheckLib.pm-don-t-execute-the-binary.patch \
"
-SRC_URI[md5sum] = "930216c5abc0f016df8a7539d48c891a"
-SRC_URI[sha256sum] = "24adfd908705dfac4bb320711763f37126b75cf54b3566c2c27c7cdef9c429a8"
+SRC_URI[md5sum] = "3519cbf9fe5ec3404449d5330ee5537f"
+SRC_URI[sha256sum] = "f21c5e299ad3ce0fdc0cb0f41378dca85a70e8d6c9a7599f0e56a957200ec294"
S = "${WORKDIR}/Devel-CheckLib-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch
deleted file mode 100644
index 2258c4c7f..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 03fecab78f9fa747ad8ab3484e7ca00c0148321d Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Sun, 28 Apr 2019 16:45:02 +0800
-Subject: [PATCH] From: Hugh McMaster <hugh.mcmaster@outlook.com> Date: Wed, 5
- Dec 2018 23:27:30 +1100 Subject: ext/intl: Use pkg-config to detect icu
-
-The developers of icu recommend using pkg-config to detect icu,
-because icu-config is deprecated.
-
-Upstream-Status: Pending
-
-update to version 7.3.4
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- acinclude.m4 | 95 ++++++------------------------------------------------
- ext/intl/config.m4 | 16 ++++-----
- 2 files changed, 15 insertions(+), 96 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 7d77c33..86b0ecc 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2158,92 +2158,15 @@ dnl
- dnl Common setup macro for ICU
- dnl
- AC_DEFUN([PHP_SETUP_ICU],[
-- PHP_ARG_WITH(icu-dir,,
-- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
--
-- if test "$PHP_ICU_DIR" = "no"; then
-- PHP_ICU_DIR=DEFAULT
-- fi
--
-- AC_MSG_CHECKING([for location of ICU headers and libraries])
-- found_icu=no
--
-- dnl First try to find pkg-config
-- if test -z "$PKG_CONFIG"; then
-- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-- fi
--
-- dnl If pkg-config is found try using it
-- if test "$PHP_ICU_DIR" = "DEFAULT" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists icu-uc icu-io icu-i18n; then
-- if $PKG_CONFIG --atleast-version=40 icu-uc; then
-- found_icu=yes
-- icu_version_full=`$PKG_CONFIG --modversion icu-uc`
-- ac_IFS=$IFS
-- IFS="."
-- set $icu_version_full
-- IFS=$ac_IFS
-- icu_version=`expr [$]1 \* 1000 + [$]2`
-- AC_MSG_RESULT([found $icu_version_full])
--
-- ICU_LIBS=`$PKG_CONFIG --libs icu-uc icu-io icu-i18n`
-- ICU_INCS=`$PKG_CONFIG --cflags-only-I icu-uc icu-io icu-i18n`
-- ICU_CXXFLAGS="-DU_USING_ICU_NAMESPACE=1"
--
-- AC_MSG_RESULT([found $ICU_VERSION])
--
-- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
-- PHP_EVAL_INCLINE($ICU_INCS)
-- else
-- AC_MSG_ERROR([ICU version 4.0 or later required.])
-- fi
-- fi
--
-- dnl If pkg-config fails for some reason, revert to the old method
-- if test "$found_icu" = "no"; then
-- if test "$PHP_ICU_DIR" = "DEFAULT"; then
-- dnl Try to find icu-config
-- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
-- else
-- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
-- fi
--
-- dnl Trust icu-config to know better what the install prefix is..
-- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
-- if test "$?" != "0" || test -z "$icu_install_prefix"; then
-- AC_MSG_RESULT([not found])
-- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
-- else
-- AC_MSG_RESULT([$icu_install_prefix])
--
-- dnl Check ICU version
-- AC_MSG_CHECKING([for ICU 4.0 or greater])
-- icu_version_full=`$ICU_CONFIG --version`
-- ac_IFS=$IFS
-- IFS="."
-- set $icu_version_full
-- IFS=$ac_IFS
-- icu_version=`expr [$]1 \* 1000 + [$]2`
-- AC_MSG_RESULT([found $icu_version_full])
--
-- if test "$icu_version" -lt "4000"; then
-- AC_MSG_ERROR([ICU version 4.0 or later is required])
-- fi
--
-- ICU_VERSION=$icu_version
-- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
-- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
-- PHP_EVAL_INCLINE($ICU_INCS)
-- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
--
-- ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
-- if test "$icu_version" -ge "49000"; then
-- ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
-- ICU_CFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
-- fi
-- if test "$icu_version" -ge "60000"; then
-- ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
-- fi
-- fi
-+ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
-+ PHP_EVAL_INCLINE($ICU_CFLAGS)
-+ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
-+
-+ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
-+ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
-+
-+ if $PKG_CONFIG icu-io --atleast-version=60; then
-+ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
- fi
- ])
-
-diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
-index 4b9f469..fdae88a 100644
---- a/ext/intl/config.m4
-+++ b/ext/intl/config.m4
-@@ -9,15 +9,7 @@ if test "$PHP_INTL" != "no"; then
- PHP_SETUP_ICU(INTL_SHARED_LIBADD)
- PHP_SUBST(INTL_SHARED_LIBADD)
- PHP_REQUIRE_CXX()
-- INTL_COMMON_FLAGS="$ICU_INCS $ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
-- if test "$icu_version" -ge "4002"; then
-- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
-- spoofchecker/spoofchecker.c\
-- spoofchecker/spoofchecker_create.c\
-- spoofchecker/spoofchecker_main.c"
-- else
-- icu_spoof_src=""
-- fi
-+ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
- PHP_NEW_EXTENSION(intl, php_intl.c \
- intl_error.c \
- intl_convert.c \
-@@ -68,7 +60,11 @@ if test "$PHP_INTL" != "no"; then
- transliterator/transliterator_methods.c \
- uchar/uchar.c \
- idn/idn.c \
-- $icu_spoof_src, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
-+ spoofchecker/spoofchecker_class.c \
-+ spoofchecker/spoofchecker.c\
-+ spoofchecker/spoofchecker_create.c\
-+ spoofchecker/spoofchecker_main.c \
-+ , $ext_shared,,$INTL_COMMON_FLAGS,cxx)
-
- PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \
- common/common_enum.cpp \
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.11.bb
index 3d537e5b6..e7fb847fa 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.11.bb
@@ -3,6 +3,7 @@ HOMEPAGE = "http://www.php.net"
SECTION = "console/network"
LICENSE = "PHP-3.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fb07bfc51f6d5e0c30b65d9701233b2e"
BBCLASSEXTEND = "native"
DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
@@ -12,6 +13,11 @@ PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
+ file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
+ file://0048-Use-pkg-config-for-FreeType2-detection.patch \
+ file://0001-Use-pkg-config-for-libxml2-detection.patch \
+ file://debian-php-fixheader.patch \
+ file://CVE-2019-6978.patch \
"
SRC_URI_append_class-target = " \
@@ -22,8 +28,14 @@ SRC_URI_append_class-target = " \
file://php-fpm-apache.conf \
file://70_mod_php${PHP_MAJOR_VERSION}.conf \
file://php-fpm.service \
+ file://pear-makefile.patch \
+ file://phar-makefile.patch \
+ file://0001-opcache-config.m4-enable-opcache.patch \
+ file://xfail_two_bug_tests.patch \
"
S = "${WORKDIR}/php-${PV}"
+SRC_URI[md5sum] = "21b710b4126d4d54714de9693a6c7b0d"
+SRC_URI[sha256sum] = "92d1ff4b13c7093635f1ec338a5e6891ca99b10e65fbcadd527e5bb84d11b5e7"
inherit autotools pkgconfig pythonnative gettext
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.9.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.9.bb
deleted file mode 100644
index a5c7b9b6b..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.9.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fb07bfc51f6d5e0c30b65d9701233b2e"
-
-SRC_URI += "file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
- file://0048-Use-pkg-config-for-FreeType2-detection.patch \
- file://0049-ext-intl-Use-pkg-config-to-detect-icu.patch \
- file://0001-Use-pkg-config-for-libxml2-detection.patch \
- file://debian-php-fixheader.patch \
- file://CVE-2019-6978.patch \
- "
-SRC_URI_append_class-target = " \
- file://pear-makefile.patch \
- file://phar-makefile.patch \
- file://0001-opcache-config.m4-enable-opcache.patch \
- file://xfail_two_bug_tests.patch \
- "
-
-SRC_URI[md5sum] = "bcc37749815009c9201e4c126e1ab8ee"
-SRC_URI[sha256sum] = "a39c9709a8c9eb7ea8ac4933ef7a78b92f7e5735a405c8b8e42ee39541d963c4"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.0.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb
index 928454117..58526f131 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
DEPENDS = "zlib"
DEPENDS_append_class-target = " protobuf-native"
-SRCREV = "6d4e7fd7966c989e38024a8ea693db83758944f1"
+SRCREV = "d09d649aea36f02c03f8396ba39a8d4db8a607e4"
SRC_URI = "git://github.com/google/protobuf.git;branch=3.10.x \
file://run-ptest \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.9.bb b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb
index ad45f87ec..d48ad3751 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.9.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb
@@ -7,11 +7,11 @@ data-driven tree queries."
HOMPAGE = "https://pugixml.org/"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=1d569c2ed59c94ddd9586051f8c67da6"
+LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=d5ee91fb74cbb64223b3693fd64eb169"
SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[md5sum] = "7286ee2ed11376b6b780ced19fae0b64"
-SRC_URI[sha256sum] = "d156d35b83f680e40fd6412c4455fdd03544339779134617b9b28d19e11fdba6"
+SRC_URI[md5sum] = "f97237e9908201c6d8536210747b66af"
+SRC_URI[sha256sum] = "55f399fbb470942410d348584dc953bcaec926415d3462f471ef350f29b5870a"
inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.12.0.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.13.0.bb
index af26e83d6..af26e83d6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.13.0.bb
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc b/meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc
index 092531b32..d8e32a768 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc
@@ -5,9 +5,9 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
SRC_URI = "https://www.riverbankcomputing.com/static/Downloads/sip/${PV}/sip-${PV}.tar.gz \
- "
-SRC_URI[md5sum] = "7e854b0da395ddc8fb5da82d0321994d"
-SRC_URI[sha256sum] = "184c790d58e9527fc6bdac2bbf8638f3d1b41dea922cad8eb83172b4ba70c620"
+"
+SRC_URI[md5sum] = "98111479309dc472410f26080d6d4a88"
+SRC_URI[sha256sum] = "5436b61a78f48c7e8078e93a6b59453ad33780f80c644e5f3af39f94be1ede44"
S = "${WORKDIR}/sip-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.16.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.19.bb
index 010fa30fe..010fa30fe 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.16.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.19.bb
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.16.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.19.bb
index 3da15b842..3da15b842 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.16.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.19.bb
diff --git a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb
index 459ae8253..3d7767074 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb
@@ -35,7 +35,7 @@ S = "${WORKDIR}/${BPN}${PV}/unix"
VER = "${@os.path.splitext(d.getVar('PV'))[0]}"
LDFLAGS += "-Wl,-rpath,${libdir}/tcltk/${PV}/lib"
-inherit autotools distro_features_check
+inherit autotools features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
index b20d4c05c..dc4fbf7f5 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
@@ -1,5 +1,5 @@
SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"
-LICENSE = "BSD"
+LICENSE = "MIT"
HOMEPAGE = "http://www.tortall.net/projects/yasm/"
LIC_FILES_CHKSUM = "file://COPYING;md5=a12d8903508fb6bfd49d8d82c6170dd9"
diff --git a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb
index e505bb4c5..d472d3269 100644
--- a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb
@@ -37,7 +37,7 @@ SRC_URI = "git://github.com/BOINC/boinc;protocol=https;branch=${BRANCH} \
file://gtk-configure.patch \
"
-inherit gettext autotools pkgconfig distro_features_check systemd
+inherit gettext autotools pkgconfig features_check systemd
REQUIRED_DISTRO_FEATURES += "opengl"
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
index 3bc0db96e..c7830ed90 100644
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
@@ -10,16 +10,21 @@ Upstream-Status: Inappropriate [OE Specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+Update for 20190617.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+Update for 20191103.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
aclocal.m4 | 1 -
- configure | 140 -------------------------------------------------------------
- 2 files changed, 141 deletions(-)
+ configure | 259 -------------------------------------------------------------
+ 2 files changed, 260 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
-index 0d14f26..0cefa08 100644
+index b90cfe6..413ea9c 100644
--- a/aclocal.m4
+++ b/aclocal.m4
-@@ -1038,7 +1038,6 @@ CF_GCC_VERSION
+@@ -1232,7 +1232,6 @@ CF_GCC_VERSION
CF_ACVERSION_CHECK(2.52,
[AC_PROG_CC_STDC],
[CF_ANSI_CC_REQD])
@@ -28,21 +33,140 @@ index 0d14f26..0cefa08 100644
dnl ---------------------------------------------------------------------------
dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19
diff --git a/configure b/configure
-index d27ae31..077c648 100755
+index ec77bba..234f271 100755
--- a/configure
+++ b/configure
-@@ -1946,146 +1946,6 @@ esac
+@@ -2059,265 +2059,6 @@ esac
# This should have been defined by AC_PROG_CC
: ${CC:=cc}
--echo "$as_me:1949: checking \$CC variable" >&5
+-echo "$as_me:2062: checking \$CFLAGS variable" >&5
+-echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6
+-case "x$CFLAGS" in
+-(*-[IUD]*)
+- echo "$as_me:2066: result: broken" >&5
+-echo "${ECHO_T}broken" >&6
+- { echo "$as_me:2068: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
+-echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;}
+- cf_flags="$CFLAGS"
+- CFLAGS=
+- for cf_arg in $cf_flags
+- do
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_arg
+-do
+-case $cf_fix_cppflags in
+-(no)
+- case $cf_add_cflags in
+- (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
+- case $cf_add_cflags in
+- (-D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- (*$cf_add_cflags)
+- ;;
+- (*)
+- case $cf_add_cflags in
+- (-D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+-
+- test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags "
+- cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags"
+-
+- ;;
+- esac
+- ;;
+- (*)
+-
+- test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags "
+- cf_new_cflags="${cf_new_cflags}$cf_add_cflags"
+-
+- ;;
+- esac
+- ;;
+-(yes)
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- test -n "$CFLAGS" && CFLAGS="$CFLAGS "
+- CFLAGS="${CFLAGS}$cf_new_cflags"
+-
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
+- CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
+-
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
+- EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
+-
+-fi
+-
+- done
+- ;;
+-(*)
+- echo "$as_me:2176: result: ok" >&5
+-echo "${ECHO_T}ok" >&6
+- ;;
+-esac
+-
+-echo "$as_me:2181: checking \$CC variable" >&5
-echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
-case "$CC" in
-(*[\ \ ]-*)
-- echo "$as_me:1953: result: broken" >&5
+- echo "$as_me:2185: result: broken" >&5
-echo "${ECHO_T}broken" >&6
-- { echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
--echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
+- { echo "$as_me:2187: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
+-echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
- # humor him...
- cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'`
@@ -158,24 +282,24 @@ index d27ae31..077c648 100755
- done
- test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-
--echo "${as_me:-configure}:2072: testing resulting CC: '$CC' ..." 1>&5
+-echo "${as_me:-configure}:2304: testing resulting CC: '$CC' ..." 1>&5
-
- test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6
-
--echo "${as_me:-configure}:2076: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2308: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
-
- test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6
-
--echo "${as_me:-configure}:2080: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2312: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
-
- ;;
-(*)
-- echo "$as_me:2084: result: ok" >&5
+- echo "$as_me:2316: result: ok" >&5
-echo "${ECHO_T}ok" >&6
- ;;
-esac
-
- echo "$as_me:2089: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo "$as_me:2321: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
--
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20191103.bb
index f30c42640..eae4618e2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20191103.bb
@@ -4,9 +4,9 @@
# Setting to PD as this is what the upstream has it as.
LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=8b2933503c0443e041d3168dc0c65640"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=3eb7c635434fafe23ef30fc263e63b2f"
require byacc.inc
-SRC_URI[md5sum] = "97fdc0745e0ff0cef5c09d57d0c6752d"
-SRC_URI[sha256sum] = "d0940dbffbc7e9c9dd4985c25349c390beede84ae1d9fe86b71c0aa659a6d693"
+SRC_URI[md5sum] = "84ffe59166f67bbe147a6f502c7af309"
+SRC_URI[sha256sum] = "d291fb34816f45079067366b7f7300ffbf9f7e3f1aaf6d509b84442d065d11b9"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb b/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
index 987c09fe5..251c5d0f5 100644
--- a/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
@@ -1,7 +1,7 @@
SUMMARY = "Adapter to write and run CMPI-type CIM providers"
DESCRIPTION = "CMPI-compliant provider interface for various languages via SWIG"
HOMEPAGE = "http://github.com/kkaempf/cmpi-bindings"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=b19ee058d2d5f69af45da98051d91064"
SECTION = "Development/Libraries"
DEPENDS = "swig-native python3 sblim-cmpi-devel"
diff --git a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20190728.bb b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20190808.bb
index d414bc683..a1acfcd00 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20190728.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20190808.bb
@@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
"
-SRC_URI[md5sum] = "e9d7f8b5e7b17183b0fb9297c0f57840"
-SRC_URI[sha256sum] = "e5eb0eaaef9cae8c822887bd998e33c2c3b94ebadd37b4f6aba018c0194a2a87"
+SRC_URI[md5sum] = "f48b597251a26c522002736652e0300c"
+SRC_URI[sha256sum] = "886e12f2cf3df36cde65f32f6ae52bc598eb2599a611b1d8ce5dfdea599e47e2"
# hardcoded here for use in dialog-static recipe
S = "${WORKDIR}/dialog-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb b/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
index f9fd8ae88..898627bc1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
@@ -7,7 +7,7 @@ LICENSE = "gnuplot"
LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
DEPENDS = "${BPN}-native virtual/libx11 gd readline"
-inherit autotools distro_features_check
+inherit autotools features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.6.bb b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.6.bb
index 0189e19c0..e5b9bc947 100644
--- a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.6.bb
@@ -22,7 +22,7 @@ EXTRA_OECONF = "\
"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-init=service.redhat --enable-initdir=${systemd_system_unitdir}, --enable-init=sysv.redhat, systemd"
+PACKAGECONFIG[systemd] = "--enable-init=service.fedora --enable-initdir=${systemd_system_unitdir}, --enable-init=sysv.redhat, systemd"
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME = "haveged"
@@ -35,6 +35,12 @@ do_install_append() {
# The exit status is 143 when the service is stopped
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
sed -i '/ExecStart/a SuccessExitStatus=143' ${D}${systemd_system_unitdir}/haveged.service
+ # Hybrid systemd-sysvinit distros must install the initscript manually
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${INIT_D_DIR}
+ sed -e "s,@SBINDIR@,${sbindir},g" <${S}/init.d/sysv.redhat >${D}${INIT_D_DIR}/haveged
+ chmod 755 ${D}${INIT_D_DIR}/haveged
+ fi
fi
}
diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb
index 7231484fe..2b0dfe4ea 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \
architectures."
HOMEPAGE = "https://www.open-mpi.org/software/hwloc/"
SECTION = "base"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b"
SRC_URI = "https://www.open-mpi.org/software/${BPN}/v1.11/downloads/${BP}.tar.bz2"
diff --git a/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb b/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb
index 63fca1dd1..fe6de008f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb
@@ -8,7 +8,7 @@ SRC_URI = "https://github.com/ice-wm/${BPN}/releases/download/${PV}/${BPN}-${PV}
SRC_URI[md5sum] = "6eba94a7935a0531d2c14eeb1426aeef"
SRC_URI[sha256sum] = "f1c1344b20a9e8635143f70ee27930b55f813c15ca61f84d77584d311b6ac027"
-inherit autotools pkgconfig gettext perlnative distro_features_check qemu
+inherit autotools pkgconfig gettext perlnative features_check qemu
REQUIRED_DISTRO_FEATURES = "x11"
EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
diff --git a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb
index 3cc353ee7..f47fe5725 100644
--- a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb
@@ -11,3 +11,4 @@ SRC_URI[sha256sum] = "5f8dec765048efac5d919aded51b26a32a05397ea207aa769ff6b53c70
inherit autotools pkgconfig
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
deleted file mode 100644
index f65d26aae..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
+++ /dev/null
@@ -1,16 +0,0 @@
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -56,6 +56,7 @@ AM_CONDITIONAL([ENABLE_EXAMPLES], [test
- # Checks for programs.
- AC_PROG_CC
- AC_PROG_CC_C99
-+AM_PROG_AR
-
- # Enable automake silent build rules.
- m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
diff --git a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
index 6c4f4a072..b7c1958ee 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
@@ -8,11 +8,10 @@ DEPENDS = "libusb1"
inherit autotools pkgconfig
-PV = "0.4.2+gitr${SRCPV}"
+PV = "0.6.0"
-SRCREV = "5f765f91430f16932d96b3777404420aa2dd4c7c"
-SRC_URI = "git://git.libdivecomputer.org/libdivecomputer.git \
- file://fix-ar.patch \
+SRCREV = "1195abc2f4acc7b10175d570ec73549d0938c83e"
+SRC_URI = "git://github.com/libdivecomputer/libdivecomputer.git;protocol=https \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb b/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
index 7e4c330a1..8a2886b8c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
@@ -26,6 +26,6 @@ file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
EXTRA_OECONF = " --disable-static --disable-rebuilds --enable-compile-warnings=minimum"
DEPENDS += "gtk+ glib-2.0 glib-2.0-native ruby-native intltool-native gnome-common-native"
-inherit distro_features_check autotools pkgconfig gettext
+inherit features_check autotools pkgconfig gettext
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
index a6b297b59..a6b297b59 100644
--- a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
index de2c1e36d..10d88a3b5 100644
--- a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
@@ -8,7 +8,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14.orig.tar.gz \
${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14-1.debian.tar.bz2;name=1.14-1 \
file://configure.patch \
file://0001-Makefile.in-add-DESTDIR.patch \
- file://0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch \
+ file://0001-Makefile.in-install-nfslock-libs.patch \
file://liblockfile-fix-install-so-to-man-dir.patch \
"
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb b/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb
index bb5984519..5c1c15159 100644
--- a/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb
@@ -8,7 +8,7 @@ sophisticated "behind the scenes" with better support for multiple threads \
and flexibility for different log destinations (e.g. syslog and systemd \
journal)."
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=63fe03535d83726f5655072502bef1bc"
SRC_URI = "http://download.rsyslog.com/${BPN}/${BPN}-${PV}.tar.gz"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
index 3a0a87eea..c9d259b1a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
@@ -15,10 +15,9 @@ DEPENDS += "libtirpc libnsl2"
PV = "1.3+git${SRCPV}"
-SRCREV = "c6934373c7bac91499ff7bbe7d2439599325ca63"
+SRCREV = "116219e215858f4af9370171d3ead63baca8fdb4"
SRC_URI = "git://github.com/thkukuk/libnss_nisplus \
- file://0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch
deleted file mode 100644
index cf380ddf4..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-From 184bda40e05053cd2df61c28bec0baa7353697bb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 28 Aug 2019 09:49:10 -0700
-Subject: [PATCH] nisplus-hosts: Remove use of RES_USE_INET6
-
-Upstream glibc dropped it starting glibc 2.30
-see
-https://sourceware.org/git/?p=glibc.git;a=commit;h=3f8b44be0a658266adff5ece1e4bc3ce097a5dbe
-
-Upstream-Status: Submitted [https://github.com/thkukuk/libnss_nisplus/pull/2]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/Makefile.am | 3 +-
- src/mapv4v6addr.h | 69 ---------------------------------------------
- src/nisplus-hosts.c | 58 ++++++++-----------------------------
- 3 files changed, 13 insertions(+), 117 deletions(-)
- delete mode 100644 src/mapv4v6addr.h
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index e879d5c..37ef86c 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -15,8 +15,7 @@ AM_CPPFLAGS = -I$(srcdir) @TIRPC_CFLAGS@ @LIBNSL_CFLAGS@
-
- lib_LTLIBRARIES = libnss_nisplus.la
-
--noinst_HEADERS = libc-lock.h nss-nisplus.h netgroup.h nisplus-parser.h \
-- mapv4v6addr.h
-+noinst_HEADERS = libc-lock.h nss-nisplus.h netgroup.h nisplus-parser.h
- check_PROGRAMS = nss_loader-test
- nss_loader_test_LDADD = -ldl
-
-diff --git a/src/mapv4v6addr.h b/src/mapv4v6addr.h
-deleted file mode 100644
-index 7f85f7d..0000000
---- a/src/mapv4v6addr.h
-+++ /dev/null
-@@ -1,69 +0,0 @@
--/*
-- * ++Copyright++ 1985, 1988, 1993
-- * -
-- * Copyright (c) 1985, 1988, 1993
-- * The Regents of the University of California. All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- * 4. Neither the name of the University nor the names of its contributors
-- * may be used to endorse or promote products derived from this software
-- * without specific prior written permission.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-- * SUCH DAMAGE.
-- * -
-- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
-- *
-- * Permission to use, copy, modify, and distribute this software for any
-- * purpose with or without fee is hereby granted, provided that the above
-- * copyright notice and this permission notice appear in all copies, and that
-- * the name of Digital Equipment Corporation not be used in advertising or
-- * publicity pertaining to distribution of the document or software without
-- * specific, written prior permission.
-- *
-- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
-- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
-- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-- * SOFTWARE.
-- * -
-- * --Copyright--
-- */
--
--#include <string.h>
--#include <arpa/nameser.h>
--
--static void
--map_v4v6_address (const char *src, char *dst)
--{
-- u_char *p = (u_char *) dst;
-- int i;
--
-- /* Move the IPv4 part to the right position. */
-- memcpy (dst + 12, src, INADDRSZ);
--
-- /* Mark this ipv6 addr as a mapped ipv4. */
-- for (i = 0; i < 10; i++)
-- *p++ = 0x00;
-- *p++ = 0xff;
-- *p = 0xff;
--}
-diff --git a/src/nisplus-hosts.c b/src/nisplus-hosts.c
-index cc00aa2..d37b209 100644
---- a/src/nisplus-hosts.c
-+++ b/src/nisplus-hosts.c
-@@ -42,14 +42,9 @@ static u_long tablename_len;
- #define NISENTRYLEN(idx, col, res) \
- (NIS_RES_OBJECT (res)[idx].EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len)
-
--/* Get implementation for some internal functions. */
--#include "mapv4v6addr.h"
--
--
- static int
- _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
-- char *buffer, size_t buflen, int *errnop,
-- int flags)
-+ char *buffer, size_t buflen, int *errnop)
- {
- unsigned int i;
- char *first_unused = buffer;
-@@ -66,8 +61,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
-
- char *data = first_unused;
-
-- if (room_left < (af != AF_INET || (flags & AI_V4MAPPED) != 0
-- ? IN6ADDRSZ : INADDRSZ))
-+ if (room_left < INADDRSZ)
- {
- no_more_room:
- *errnop = ERANGE;
-@@ -78,18 +72,8 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
- if (af != AF_INET6
- && inet_pton (AF_INET, NISENTRYVAL (0, 2, result), data) > 0)
- {
-- assert ((flags & AI_V4MAPPED) == 0 || af != AF_UNSPEC);
-- if (flags & AI_V4MAPPED)
-- {
-- map_v4v6_address (data, data);
-- host->h_addrtype = AF_INET6;
-- host->h_length = IN6ADDRSZ;
-- }
-- else
-- {
-- host->h_addrtype = AF_INET;
-- host->h_length = INADDRSZ;
-- }
-+ host->h_addrtype = AF_INET;
-+ host->h_length = INADDRSZ;
- }
- else if (af != AF_INET
- && inet_pton (AF_INET6, NISENTRYVAL (0, 2, result), data) > 0)
-@@ -319,12 +303,8 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
- }
- }
-
-- if (_res.options & RES_USE_INET6)
-- parse_res = _nss_nisplus_parse_hostent (result, AF_INET6, host, buffer,
-- buflen, errnop, AI_V4MAPPED);
-- else
-- parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer,
-- buflen, errnop, 0);
-+ parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer,
-+ buflen, errnop);
-
- if (parse_res == -1)
- {
-@@ -379,7 +359,7 @@ get_tablename (int *herrnop)
- static enum nss_status
- internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
- char *buffer, size_t buflen, int *errnop,
-- int *herrnop, int flags)
-+ int *herrnop)
- {
- if (tablename_val == NULL)
- {
-@@ -454,7 +434,7 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
- }
-
- int parse_res = _nss_nisplus_parse_hostent (result, af, host, buffer,
-- buflen, errnop, flags);
-+ buflen, errnop);
-
- nis_freeresult (result);
-
-@@ -485,8 +465,7 @@ _nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host,
- }
-
- return internal_gethostbyname2_r (name, af, host, buffer, buflen, errnop,
-- herrnop,
-- ((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0));
-+ herrnop);
- }
-
-
-@@ -495,19 +474,8 @@ _nss_nisplus_gethostbyname_r (const char *name, struct hostent *host,
- char *buffer, size_t buflen, int *errnop,
- int *h_errnop)
- {
-- if (_res.options & RES_USE_INET6)
-- {
-- enum nss_status status;
--
-- status = internal_gethostbyname2_r (name, AF_INET6, host, buffer,
-- buflen, errnop, h_errnop,
-- AI_V4MAPPED);
-- if (status == NSS_STATUS_SUCCESS)
-- return status;
-- }
--
- return internal_gethostbyname2_r (name, AF_INET, host, buffer,
-- buflen, errnop, h_errnop, 0);
-+ buflen, errnop, h_errnop);
- }
-
-
-@@ -555,9 +523,7 @@ _nss_nisplus_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
- }
-
- parse_res = _nss_nisplus_parse_hostent (result, af, host,
-- buffer, buflen, errnop,
-- ((_res.options & RES_USE_INET6)
-- ? AI_V4MAPPED : 0));
-+ buffer, buflen, errnop);
- nis_freeresult (result);
-
- if (parse_res > 0)
-@@ -584,7 +550,7 @@ _nss_nisplus_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
-
- enum nss_status status = internal_gethostbyname2_r (name, AF_UNSPEC, &host,
- buffer, buflen,
-- errnop, herrnop, 0);
-+ errnop, herrnop);
- if (status == NSS_STATUS_SUCCESS)
- {
- if (*pat == NULL)
---
-2.23.0
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
index e50226e27..4276c4917 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
@@ -23,7 +23,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "systemd"
inherit gettext autotools python3native pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb b/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
index 2c31a21c0..401c2c4da 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
@@ -12,7 +12,7 @@ DEPENDS = "freetype libpng jpeg expat gtk+"
BBCLASSEXTEND = "native"
-inherit distro_features_check autotools pkgconfig
+inherit features_check autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
index 33142d6fe..41a79daf4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
@@ -31,7 +31,7 @@ SRC_URI[sha256sum] = "f51039c997415fd0f13f8e01966b4a8ff80cbf90deb8b14c18827104a3
inherit autotools pkgconfig perlnative pythonnative
-inherit distro_features_check
+inherit features_check
CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold"
DEPENDS += "nspr zlib python-six-native python-pytoml-native \
diff --git a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
index 17ca26273..6d42c6771 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -22,6 +22,8 @@ DEPENDS += "json-c"
EXTRA_OECMAKE_append = " -DINSTALLTOOLS:BOOL=ON -DFIRMATA=ON -DCMAKE_SKIP_RPATH=ON \
-DPYTHON3_PACKAGES_PATH:PATH=${baselib}/python${PYTHON_BASEVERSION}/site-packages \
+ -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \
+ -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \
"
# Prepend mraa-utils to make sure bindir ends up in there
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
index e5bb0765f..9d5a2307e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
@@ -12,11 +12,10 @@ SECTION = "Applications/System"
DEPENDS = "curl libxml2 openssl libpam"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
-# v2.6.9
-SRCREV = "5efb1545dbac7e6d1e0a992f3e84ca12cea1c18e"
+SRCREV = "d8eba6cb6682b59d84ca1da67a523520b879ade6"
SRC_URI = "git://github.com/Openwsman/openwsman.git \
file://libssl-is-required-if-eventint-supported.patch \
@@ -26,7 +25,7 @@ SRC_URI = "git://github.com/Openwsman/openwsman.git \
S = "${WORKDIR}/git"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
inherit systemd cmake pkgconfig python3native perlnative
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-Always-enable-trivial-httpd-for-tests.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-Always-enable-trivial-httpd-for-tests.patch
deleted file mode 100644
index c9e1306af..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-Always-enable-trivial-httpd-for-tests.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 44e0647230b22cd136ae2fb252ce90eed4751970 Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Wed, 4 Sep 2019 17:29:15 +0100
-Subject: [PATCH 1/2] Always enable trivial-httpd for tests
-
-When running tests we always need ostree-trivial-httpd, so enable it
-unconditionally
-
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-Upstream-Status: Submitted [https://github.com/ostreedev/ostree/pull/1912]
----
- Makefile.am | 1 +
- ci/build.sh | 5 +++++
- ci/travis-build.sh | 1 +
- 3 files changed, 7 insertions(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index cd04a055045a..673dbf88de55 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -39,6 +39,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS += \
- --enable-gtk-doc \
- --enable-man \
- --disable-maintainer-mode \
-+ --enable-trivial-httpd-cmdline \
- $(NULL)
-
- GITIGNOREFILES = aclocal.m4 build-aux/ buildutil/*.m4 config.h.in gtk-doc.make
-diff --git a/ci/build.sh b/ci/build.sh
-index 0901507498f2..806af050b780 100755
---- a/ci/build.sh
-+++ b/ci/build.sh
-@@ -22,6 +22,11 @@ case "${CONFIGOPTS:-}" in
- fi
- ;;
- esac
-+# unless libsoup is disabled, enable trivial-httpd for the tests
-+case "${CONFIGOPTS:-}" in
-+ *--without-soup*) ;;
-+ *) CONFIGOPTS="${CONFIGOPTS:-} --enable-trivial-httpd-cmdline" ;;
-+esac
-
- # always fail on warnings; https://github.com/ostreedev/ostree/pull/971
- # NB: this disables the default set of flags from configure.ac
-diff --git a/ci/travis-build.sh b/ci/travis-build.sh
-index 3fd969bdced6..7c85313a2d32 100755
---- a/ci/travis-build.sh
-+++ b/ci/travis-build.sh
-@@ -85,6 +85,7 @@ make="make -j${ci_parallel} V=1 VERBOSE=1"
-
- ../configure \
- --enable-always-build-tests \
-+ --enable-trivial-httpd-cmdline \
- ${ci_configopts}
- "$@"
-
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-build-create-tests-directory-for-split-builds.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-build-create-tests-directory-for-split-builds.patch
new file mode 100644
index 000000000..d94b3ded9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-build-create-tests-directory-for-split-builds.patch
@@ -0,0 +1,43 @@
+From 114fe5067b58a2434b44855eee48f865186fe0fa Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Tue, 5 Nov 2019 22:26:23 +0000
+Subject: [PATCH] build: create tests directory for split builds
+
+When `--disable-dependency-tracking` is in effect with separate build
+directory, the tests directory isn't created as a result of the
+dependency generation, which leads to a build race for the tests
+directory being created and failures:
+
+ Making all in .
+ make[2]: Entering directory 'TOPDIR/build/tmp/work/riscv64-yoe-linux-musl/ostree/2019.5-r0/build'
+ (echo '[Test]' > tests/test-local-pull-depth.sh.test.tmp; \
+ echo 'Type=session' >> tests/test-local-pull-depth.sh.test.tmp; \
+ echo 'Exec=env G_TEST_SRCDIR=/usr/libexec/installed-tests/libostree G_TEST_BUILDDIR=/usr/libexec/installed-tests/libostree /usr/libexec/installed-tests/libostree/test-local-pull-depth.sh' >> tests/test-local-pull-depth.sh.test.tmp; \
+ mv tests/test-local-pull-depth.sh.test.tmp tests/test-local-pull-depth.sh.test)
+ /bin/sh: tests/test-local-pull-depth.sh.test.tmp: No such file or directory
+ /bin/sh: line 1: tests/test-local-pull-depth.sh.test.tmp: No such file or directory
+ /bin/sh: line 2: tests/test-local-pull-depth.sh.test.tmp: No such file or directory
+ mv: cannot stat 'tests/test-local-pull-depth.sh.test.tmp': No such file or directory
+ make[2]: *** [Makefile:9282: tests/test-local-pull-depth.sh.test] Error 1
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Upstream-Status: Pending
+---
+ buildutil/glib-tap.mk | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/buildutil/glib-tap.mk b/buildutil/glib-tap.mk
+index 34b8f21ea26a..9a944a0acc88 100644
+--- a/buildutil/glib-tap.mk
++++ b/buildutil/glib-tap.mk
+@@ -116,6 +116,7 @@ installed_testcases = $(test_programs) $(installed_test_programs) \
+ installed_test_meta_DATA = $(installed_testcases:=.test)
+
+ %.test: %$(EXEEXT) Makefile
++ @$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN) (echo '[Test]' > $@.tmp; \
+ echo 'Type=session' >> $@.tmp; \
+ echo 'Exec=env G_TEST_SRCDIR=$(installed_testdir) G_TEST_BUILDDIR=$(installed_testdir) $(installed_testdir)/$(notdir $<)' >> $@.tmp; \
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-Handle-EPIPE-failures-when-head-terminates.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-Handle-EPIPE-failures-when-head-terminates.patch
new file mode 100644
index 000000000..fdb733ebe
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-Handle-EPIPE-failures-when-head-terminates.patch
@@ -0,0 +1,51 @@
+From fb519f0361565cad0d340095263a1e8866ec4f89 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 31 Oct 2019 11:30:00 +0000
+Subject: [PATCH 1/3] tests: Handle EPIPE failures when head terminates
+
+When using musl, it appears that the default is line buffered output, so
+when `head -1` reads from a pipe we have to handle the source end of the
+pipe getting EPIPE.
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Upstream-Status: Accepted [v2019.6]
+---
+ tests/pull-test.sh | 2 +-
+ tests/test-pull-mirrorlist.sh | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tests/pull-test.sh b/tests/pull-test.sh
+index 0a97a1195582..2cfd8e02f790 100644
+--- a/tests/pull-test.sh
++++ b/tests/pull-test.sh
+@@ -177,7 +177,7 @@ if ! skip_one_without_user_xattrs; then
+ ${CMD_PREFIX} ostree --repo=cacherepo pull-local ostree-srv/gnomerepo main
+ rev=$(ostree --repo=cacherepo rev-parse main)
+ ${CMD_PREFIX} ostree --repo=cacherepo ls -R -C main > ls.txt
+- regfile_hash=$(grep -E -e '^-0' ls.txt | head -1 | awk '{ print $5 }')
++ regfile_hash=$((grep -E -e '^-0' ls.txt || true) | head -1 | awk '{ print $5 }')
+ ${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false corruptrepo $(cat httpd-address)/ostree/corruptrepo
+ # Make this a loop so in the future we can add more object types like commit etc.
+ for object in ${regfile_hash}.file; do
+diff --git a/tests/test-pull-mirrorlist.sh b/tests/test-pull-mirrorlist.sh
+index 4e44852d3971..85ff66e99f8e 100755
+--- a/tests/test-pull-mirrorlist.sh
++++ b/tests/test-pull-mirrorlist.sh
+@@ -47,12 +47,12 @@ setup_mirror content_mirror3
+
+ # Let's delete a file from 1 so that it falls back on 2
+ cd ${test_tmpdir}/content_mirror1/ostree/gnomerepo
+-filez=$(find objects/ -name '*.filez' | head -n 1)
++filez=$((find objects/ -name '*.filez' || true) | head -n 1)
+ rm ${filez}
+
+ # Let's delete a file from 1 and 2 so that it falls back on 3
+ cd ${test_tmpdir}/content_mirror1/ostree/gnomerepo
+-filez=$(find objects/ -name '*.filez' | head -n 1)
++filez=$((find objects/ -name '*.filez' || true) | head -n 1)
+ rm ${filez}
+ cd ${test_tmpdir}/content_mirror2/ostree/gnomerepo
+ rm ${filez}
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-core-Fallback-to-en_US.UTF-8-locale.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-core-Fallback-to-en_US.UTF-8-locale.patch
new file mode 100644
index 000000000..dcafb0995
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-tests-core-Fallback-to-en_US.UTF-8-locale.patch
@@ -0,0 +1,42 @@
+From 4d17cd917fe4fb67d2f9e4881b6693ac7289f423 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 30 Oct 2019 07:55:41 +0000
+Subject: [PATCH 1/4] tests/core: Fallback to en_US.UTF-8 locale
+
+A number of tests expect explicit left/right single quotes in their
+messages, which will never happen in the C locale. Change so we pick a
+likely UTF-8 locale, or fail if we can't find one.
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Upstream-Status: Accepted [v2019.6]
+---
+ tests/libtest-core.sh | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/tests/libtest-core.sh b/tests/libtest-core.sh
+index f6f94288fc61..bc191332c916 100644
+--- a/tests/libtest-core.sh
++++ b/tests/libtest-core.sh
+@@ -35,15 +35,11 @@ assert_not_reached () {
+ }
+
+ # Some tests look for specific English strings. Use a UTF-8 version
+-# of the C (POSIX) locale if we have one, or fall back to POSIX
++# of the C (POSIX) locale if we have one, or fall back to en_US.UTF-8
+ # (https://sourceware.org/glibc/wiki/Proposals/C.UTF-8)
+-if locale -a | grep '^C.UTF-8$' >/dev/null; then
+- export LC_ALL=C.UTF-8
+-elif locale -a | grep '^C.utf8$' >/dev/null; then
+- export LC_ALL=C.utf8
+-else
+- export LC_ALL=C
+-fi
++export LC_ALL=$(locale -a | grep -Ee '\.(UTF-8|utf8)' | grep -iEe '^(C|en_US)' | head -1 || true)
++if [ -z "${LC_ALL}" ]; then fatal "Can't find suitable UTF-8 locale"; fi
++
+ # A GNU extension, used whenever LC_ALL is not C
+ unset LANGUAGE
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-Gate-ostree-trivial-httpd-on-BUILDOPT_TRIVIAL_HTTPD.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-Gate-ostree-trivial-httpd-on-BUILDOPT_TRIVIAL_HTTPD.patch
deleted file mode 100644
index 362b2f36a..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-Gate-ostree-trivial-httpd-on-BUILDOPT_TRIVIAL_HTTPD.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 2629328b39ae117876f4854409c2231220a30b9c Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Thu, 5 Sep 2019 13:22:15 +0100
-Subject: [PATCH 2/2] Gate ostree-trivial-httpd on BUILDOPT_TRIVIAL_HTTPD
-
-When building without --enable-trivial-httpd-cmdline, don't build or install
-the ostree-trivial-httpd binary.
-
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-Upstream-Status: Submitted [https://github.com/ostreedev/ostree/pull/1912]
----
- Makefile-ostree.am | 3 ++-
- configure.ac | 3 +++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile-ostree.am b/Makefile-ostree.am
-index 76f39cad4b74..7b53cb148960 100644
---- a/Makefile-ostree.am
-+++ b/Makefile-ostree.am
-@@ -143,12 +143,13 @@ ostree_SOURCES += src/ostree/ot-builtin-pull.c
- endif
-
- if USE_LIBSOUP
--# Eventually once we stop things from using this, we should support disabling this
-+if BUILDOPT_TRIVIAL_HTTPD
- ostree_SOURCES += src/ostree/ot-builtin-trivial-httpd.c
- pkglibexec_PROGRAMS += ostree-trivial-httpd
- ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c
- ostree_trivial_httpd_CFLAGS = $(ostree_bin_shared_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
- ostree_trivial_httpd_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS)
-+endif
-
- if !USE_CURL
- # This is necessary for the cookie jar bits
-diff --git a/configure.ac b/configure.ac
-index 069bab01752e..ffc67980d507 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -192,6 +192,9 @@ AC_ARG_ENABLE(trivial-httpd-cmdline,
- [Continue to support "ostree trivial-httpd" [default=no]])],,
- enable_trivial_httpd_cmdline=no)
- AM_CONDITIONAL(BUILDOPT_TRIVIAL_HTTPD, test x$enable_trivial_httpd_cmdline = xyes)
-+AS_IF([test x$with_soup = xno && test x$enable_trivial_httpd_cmdline = xyes], [
-+ AC_MSG_ERROR([trivial-httpd enabled, but libsoup is not; libsoup is needed for trivial-httpd])
-+])
- AM_COND_IF(BUILDOPT_TRIVIAL_HTTPD,
- [AC_DEFINE([BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE], 1, [Define if we are enabling ostree trivial-httpd entrypoint])]
- )
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-tests-core-Assume-C.UTF-8-if-locale-isn-t-found.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-tests-core-Assume-C.UTF-8-if-locale-isn-t-found.patch
new file mode 100644
index 000000000..5ab9c8f6d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0002-tests-core-Assume-C.UTF-8-if-locale-isn-t-found.patch
@@ -0,0 +1,40 @@
+From 3d48021fb0892721fab8359b49470e521aaed493 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 31 Oct 2019 11:28:07 +0000
+Subject: [PATCH 2/3] tests/core: Assume C.UTF-8 if locale isn't found
+
+When building with musl there's no locale command, also its default
+locale is C.UTF-8, so just get C.UTF-8 if we can't find locale.
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Upstream-Status: Accepted [v2019.6]
+---
+ tests/libtest-core.sh | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/tests/libtest-core.sh b/tests/libtest-core.sh
+index bc191332c916..46aafab03cc8 100644
+--- a/tests/libtest-core.sh
++++ b/tests/libtest-core.sh
+@@ -37,9 +37,15 @@ assert_not_reached () {
+ # Some tests look for specific English strings. Use a UTF-8 version
+ # of the C (POSIX) locale if we have one, or fall back to en_US.UTF-8
+ # (https://sourceware.org/glibc/wiki/Proposals/C.UTF-8)
+-export LC_ALL=$(locale -a | grep -Ee '\.(UTF-8|utf8)' | grep -iEe '^(C|en_US)' | head -1 || true)
+-if [ -z "${LC_ALL}" ]; then fatal "Can't find suitable UTF-8 locale"; fi
+-
++#
++# If we can't find the locale command assume we have support for C.UTF-8
++# (e.g. musl based systems)
++if type -p locale >/dev/null; then
++ export LC_ALL=$(locale -a | grep -Ee '\.(UTF-8|utf8)' | grep -iEe '^(C|en_US)' | head -1 || true)
++ if [ -z "${LC_ALL}" ]; then fatal "Can't find suitable UTF-8 locale"; fi
++else
++ export LC_ALL=C.UTF-8
++fi
+ # A GNU extension, used whenever LC_ALL is not C
+ unset LANGUAGE
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0003-tests-Avoid-musl-failure-with-cp-a.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0003-tests-Avoid-musl-failure-with-cp-a.patch
new file mode 100644
index 000000000..834617c12
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0003-tests-Avoid-musl-failure-with-cp-a.patch
@@ -0,0 +1,52 @@
+From abf1a7392b2fa1945286a39a35190d74fe141e52 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 31 Oct 2019 17:09:36 +0000
+Subject: [PATCH 3/3] tests: Avoid musl failure with `cp -a`
+
+When copying the tree, using musl and GNU coreutils, something gets confused
+when setting the ownership of symlinks and the copy fails with:
+
+ cp: failed to preserve ownership for osdata-devel/bin: Not supported
+
+Rework using tar to avoid the problem.
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Upstream-Status: Accepted [v2019.6]
+---
+ tests/libtest.sh | 4 +++-
+ tests/test-admin-gpg.sh | 4 +++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index ba00073a10a7..3f5fd931bc1e 100755
+--- a/tests/libtest.sh
++++ b/tests/libtest.sh
+@@ -440,7 +440,9 @@ EOF
+ ${CMD_PREFIX} ostree --repo=${test_tmpdir}/testos-repo commit --add-metadata-string version=1.0.10 -b testos/buildmaster/x86_64-runtime -s "Build"
+
+ cd ${test_tmpdir}
+- cp -a osdata osdata-devel
++ rm -rf osdata-devel
++ mkdir osdata-devel
++ tar -C osdata -cf - . | tar -C osdata-devel -xf -
+ cd osdata-devel
+ mkdir -p usr/include
+ echo "a development header" > usr/include/foo.h
+diff --git a/tests/test-admin-gpg.sh b/tests/test-admin-gpg.sh
+index 1f50c8a9a508..dc776743776c 100755
+--- a/tests/test-admin-gpg.sh
++++ b/tests/test-admin-gpg.sh
+@@ -90,7 +90,9 @@ EOF
+ ${CMD_PREFIX} ostree --repo=${test_tmpdir}/testos-repo commit --add-metadata-string version=1.0.10 -b testos/buildmaster/x86_64-runtime -s "Build" --gpg-sign=$keyid --gpg-homedir=${test_tmpdir}/gpghome
+
+ cd ${test_tmpdir}
+- cp -a osdata osdata-devel
++ rm -rf osdata-devel
++ mkdir osdata-devel
++ tar -C osdata -cf - . | tar -C osdata-devel -xf -
+ cd osdata-devel
+ mkdir -p usr/include
+ echo "a development header" > usr/include/foo.h
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/run-ptest b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/run-ptest
new file mode 100644
index 000000000..963d1f692
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/run-ptest
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+gnome-desktop-testing-runner libostree
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.4.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.5.bb
index 505c9fccc..b3b34a15e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.5.bb
@@ -25,18 +25,22 @@ PREMIRRORS = ""
SRC_URI = " \
gitsm://github.com/ostreedev/ostree \
file://0001-macros-Add-TEMP_FAILURE_RETRY-for-musl.patch \
- file://0001-Always-enable-trivial-httpd-for-tests.patch \
- file://0002-Gate-ostree-trivial-httpd-on-BUILDOPT_TRIVIAL_HTTPD.patch \
+ file://run-ptest \
+ file://0001-tests-core-Fallback-to-en_US.UTF-8-locale.patch \
+ file://0001-tests-Handle-EPIPE-failures-when-head-terminates.patch \
+ file://0002-tests-core-Assume-C.UTF-8-if-locale-isn-t-found.patch \
+ file://0003-tests-Avoid-musl-failure-with-cp-a.patch \
+ file://0001-build-create-tests-directory-for-split-builds.patch \
"
-SRCREV = "9d39e7d91e8497987cad69a3fbed5c5fc91eebdc"
+SRCREV = "980ca07b03b3aa7e0012729dd6c84b0878775d93"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+)"
S = "${WORKDIR}/git"
-inherit autotools bash-completion gobject-introspection gtk-doc pkgconfig systemd
+inherit autotools bash-completion gobject-introspection gtk-doc pkgconfig ptest-gnome systemd
-# package configuration - match ostree defaults, but without rofiles-fuse
+# Package configuration - match ostree defaults, but without rofiles-fuse
# otherwise we introduce a dependendency on meta-filesystems
PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
@@ -107,6 +111,7 @@ PACKAGES += " \
${PN}-grub \
${PN}-mkinitcpio \
${PN}-switchroot \
+ ${PN}-trivial-httpd \
"
FILES_${PN} = " \
@@ -118,7 +123,6 @@ FILES_${PN} = " \
${libdir}/girepository-1.0 \
${libdir}/lib*${SOLIBS} \
${libdir}/tmpfiles.d/ostree-tmpfiles.conf \
- ${libexecdir}/libostree/ostree-trivial-httpd \
${sysconfdir}/ostree/remotes.d \
${systemd_unitdir}/system-generators/ostree-system-generator \
${systemd_unitdir}/system/ostree-finalize-staged.path \
@@ -141,17 +145,48 @@ FILES_${PN}-switchroot = " \
${libdir}/ostree/ostree-prepare-root \
${systemd_unitdir}/system/ostree-prepare-root.service \
"
+FILES_${PN}-trivial-httpd = " \
+ ${libexecdir}/libostree/ostree-trivial-httpd \
+"
+RDEPENDS_${PN} = " \
+ ${@bb.utils.contains('PACKAGECONFIG', 'trivial-httpd-cmdline', '${PN}-trivial-httpd', '', d)} \
+"
RDEPENDS_${PN}-dracut = "bash"
RDEPENDS_${PN}-mkinitcpio = "bash"
RDEPENDS_${PN}_class-target = " \
gnupg \
${PN}-switchroot \
"
+RDEPENDS_${PN}-ptest += " \
+ attr \
+ bash \
+ coreutils \
+ cpio \
+ diffutils \
+ findutils \
+ grep \
+ python3-core \
+ python3-multiprocessing \
+ python3-pyyaml \
+ ${PN}-trivial-httpd \
+"
+RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils glibc-localedata-en-us"
RRECOMMENDS_${PN} += "kernel-module-overlay"
+RRECOMMENDS_${PN}-ptest += "strace"
SYSTEMD_SERVICE_${PN} = "ostree-remount.service ostree-finalize-staged.path"
SYSTEMD_SERVICE_${PN}-switchroot = "ostree-prepare-root.service"
BBCLASSEXTEND = "native"
+
+python __anonymous() {
+ if not bb.data.inherits_class('native', d) and bb.utils.contains('PTEST_ENABLED', '1', 'True', 'False', d):
+ if not bb.utils.contains_any('BBFILE_COLLECTIONS', 'meta-python', 'True', 'False', d):
+ raise bb.parse.SkipRecipe('ptest requires meta-python to be present.')
+ elif not bb.utils.contains_any('PACKAGECONFIG', 'soup curl', 'True', 'False', d):
+ raise bb.parse.SkipRecipe('ptest requires soup enabled in PACKAGECONFIG.')
+ elif not oe.utils.any_distro_features(d, "xattr"):
+ raise bb.parse.SkipRecipe('ptest requires xattr enabled in DISTRO_FEATURES.')
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
index 95d879dc6..9838e75ef 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "libpam openssl db"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
SRCREV = "e2145df09469bf84878e4729b4ecd814efb797d1"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
index 2fdadcbc9..6864cc317 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=41ab94182d94be9bb35e2a8b933f1e7d"
DEPENDS = "libpam openldap"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
SRCREV = "84d7b260f1ae6857ae36e014c9a5968e8aa1cbe8"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
index ac7fa4bbf..41b4d0d30 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "3c53d358d6eaed1b211239df017c27c6f9970995d14102ae67bae16d4f
DEPENDS += "libpam openssl"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
# This gets us ssh-agent, which we are almost certain to want.
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl/0001-Fix-clang-warning-about-non-virtual-dtor.patch b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl/0001-Fix-clang-warning-about-non-virtual-dtor.patch
deleted file mode 100644
index 0c79c4c09..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl/0001-Fix-clang-warning-about-non-virtual-dtor.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 340110292b35d367205953a59e7eab28e1f4a0bb Mon Sep 17 00:00:00 2001
-From: Daniel Frey <d.frey@gmx.de>
-Date: Sat, 7 Apr 2018 09:13:51 +0200
-Subject: [PATCH] Fix clang-warning about non-virtual dtor
-
-Upstream-Status: Backport [https://github.com/taocpp/PEGTL/commit/340110292b35d367205953a59e7eab28e1f4a0bb]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/example/pegtl/json_classes.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/example/pegtl/json_classes.hpp
-+++ b/src/example/pegtl/json_classes.hpp
-@@ -34,10 +34,7 @@ namespace examples
- : type( in_type )
- {
- }
--
-- ~json_base()
-- {
-- }
-+ virtual ~json_base() = default;
- };
-
- inline std::ostream& operator<<( std::ostream& o, const json_base& j )
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.1.4.bb b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.1.4.bb
deleted file mode 100644
index 344a80524..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.1.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION="header-only library for creating parsers according to Parsing Expression Grammar"
-HOMEPAGE="https://github.com/taocpp/PEGTL"
-LICENSE="MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=80cb066ab204c7fe022f1cfe0c2c6818"
-
-SRCREV = "776fa4a1e8bda860008524f6dd9473967c8375b1"
-SRC_URI = "git://git@github.com/taocpp/PEGTL.git;protocol=https;branch=master \
- file://0001-Fix-clang-warning-about-non-virtual-dtor.patch \
- "
-
-inherit cmake
-
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb
new file mode 100644
index 000000000..7333363ec
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb
@@ -0,0 +1,12 @@
+DESCRIPTION="header-only library for creating parsers according to Parsing Expression Grammar"
+HOMEPAGE="https://github.com/taocpp/PEGTL"
+LICENSE="MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae77b0d903a788cb48f4f0926ffc468b"
+
+SRCREV = "7aff80da2ca4fcb0b47f32ba684ff2e1cd48c579"
+SRC_URI = "git://github.com/taocpp/PEGTL.git;protocol=https;branch=2.x \
+ "
+
+inherit cmake
+
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb
index 96da266e6..f5066da0d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb
@@ -2,7 +2,7 @@ SUMMARY = "Persistent Memory Development Kit"
DESCRIPTION = "Persistent Memory Development Kit"
HOMEPAGE = "http://pmem.io"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7db1106255a1baa80391fd2e21eebab7"
DEPENDS = "ndctl"
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
index 8ced8abe5..e38e344c1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
@@ -1,7 +1,7 @@
# polkit must prepare polkitd group
DEPENDS += "polkit"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "polkit"
inherit useradd
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.116.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.116.bb
index 8754383ef..ad1973b13 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.116.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.116.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
DEPENDS = "expat glib-2.0 intltool-native mozjs"
-inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection distro_features_check
+inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection features_check
REQUIRED_DISTRO_FEATURES = "polkit"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb
index 45ea29b70..7dc6f9711 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb
@@ -2,7 +2,7 @@ SUMMARY = "Redis key-value store"
DESCRIPTION = "Redis is an open source, advanced key-value store."
HOMEPAGE = "http://redis.io"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=3c01b49fed4df1a79843688fa3f7b9d6"
DEPENDS = "readline lua ncurses"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Out-of-bounds-issue.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Out-of-bounds-issue.patch
deleted file mode 100644
index b494ca687..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Out-of-bounds-issue.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b0894088b680666035a3418326e13bc99d4fed49 Mon Sep 17 00:00:00 2001
-From: Philippe Duveau <pduveau@users.noreply.github.com>
-Date: Tue, 24 Sep 2019 20:45:25 +0200
-Subject: [PATCH] Out of bounds issue
-
-Add a new sanity check after determining the level len.
----
- contrib/pmdb2diag/pmdb2diag.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Upstream-Status: Backport [https://github.com/rsyslog/rsyslog/commit/b0894088b6]
-CVE: CVE-2019-17040
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-diff --git a/contrib/pmdb2diag/pmdb2diag.c b/contrib/pmdb2diag/pmdb2diag.c
-index 2b5916301..5810eb4df 100644
---- a/contrib/pmdb2diag/pmdb2diag.c
-+++ b/contrib/pmdb2diag/pmdb2diag.c
-@@ -134,6 +134,10 @@ CODESTARTparse2
- ABORT_FINALIZE(0);
- }
-
-+ /* let recheck with the real level len */
-+ if(pMsg->iLenRawMsg - (int)pMsg->offAfterPRI < pInst->levelpos+lvl_len)
-+ ABORT_FINALIZE(RS_RET_COULD_NOT_PARSE);
-+
- DBGPRINTF("db2parse Level %d\n", pMsg->iSeverity);
-
- end = (char*)pMsg->pszRawMsg + pMsg->iLenRawMsg ;
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-pmaixforwardedfrom-bugfix-potential-misadressing.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-pmaixforwardedfrom-bugfix-potential-misadressing.patch
deleted file mode 100644
index 0b32766a5..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-pmaixforwardedfrom-bugfix-potential-misadressing.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 10549ba915556c557b22b3dac7e4cb73ad22d3d8 Mon Sep 17 00:00:00 2001
-From: Rainer Gerhards <rgerhards@adiscon.com>
-Date: Fri, 27 Sep 2019 13:36:02 +0200
-Subject: [PATCH] pmaixforwardedfrom bugfix: potential misadressing
-
----
- contrib/pmaixforwardedfrom/pmaixforwardedfrom.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-Upstream-Status: Backport [https://github.com/rsyslog/rsyslog/pull/3884]
-CVE: CVE-2019-17041
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
-diff --git a/contrib/pmaixforwardedfrom/pmaixforwardedfrom.c b/contrib/pmaixforwardedfrom/pmaixforwardedfrom.c
-index 37157c7d4..ebf12ebbe 100644
---- a/contrib/pmaixforwardedfrom/pmaixforwardedfrom.c
-+++ b/contrib/pmaixforwardedfrom/pmaixforwardedfrom.c
-@@ -109,6 +109,10 @@ CODESTARTparse
- /* bump the message portion up by skipLen(23 or 5) characters to overwrite the "Message forwarded from
- " or "From " with the hostname */
- lenMsg -=skipLen;
-+ if(lenMsg < 2) {
-+ dbgprintf("not a AIX message forwarded from message has nothing after header\n");
-+ ABORT_FINALIZE(RS_RET_COULD_NOT_PARSE);
-+ }
- memmove(p2parse, p2parse + skipLen, lenMsg);
- *(p2parse + lenMsg) = '\n';
- *(p2parse + lenMsg + 1) = '\0';
-@@ -120,6 +124,11 @@ really an AIX log, but has a similar preamble */
- --lenMsg;
- ++p2parse;
- }
-+ if (lenMsg < 1) {
-+ dbgprintf("not a AIX message forwarded from message has nothing after colon "
-+ "or no colon at all\n");
-+ ABORT_FINALIZE(RS_RET_COULD_NOT_PARSE);
-+ }
- if (lenMsg && *p2parse != ':') {
- DBGPRINTF("not a AIX message forwarded from mangled log but similar enough that the preamble has "
- "been removed\n");
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1908.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1910.0.bb
index f9e44421d..8287d2b7f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1908.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1910.0.bb
@@ -23,16 +23,14 @@ SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.t
file://rsyslog.logrotate \
file://use-pkgconfig-to-check-libgcrypt.patch \
file://run-ptest \
- file://0001-Out-of-bounds-issue.patch \
- file://0001-pmaixforwardedfrom-bugfix-potential-misadressing.patch \
"
SRC_URI_append_libc-musl = " \
file://0001-Include-sys-time-h.patch \
"
-SRC_URI[md5sum] = "6e9aa4ef4cad8ae49affa0a786cc9e2f"
-SRC_URI[sha256sum] = "f8c8e53b651e03a011667c60bd2d4dba7a7cb6ec04b247c8ea8514115527863b"
+SRC_URI[md5sum] = "6d4d94359d083f449f089b8dbb93c423"
+SRC_URI[sha256sum] = "0219ee692f31a39743acb62aaf4196b644ce94edf386df4605fd6a11a4fe0c93"
UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -41,6 +39,7 @@ inherit autotools pkgconfig systemd update-rc.d ptest
EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes"
EXTRA_OECONF += "--enable-imfile-tests"
+EXTRA_OECONF_remove_mipsarch = "ap_cv_atomic_builtins=yes"
# first line is default yes in configure
PACKAGECONFIG ??= " \
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch
new file mode 100644
index 000000000..a0b721c46
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch
@@ -0,0 +1,51 @@
+From 78a9cffb1c760466933bbbcbae7ecb9b30a3e6a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Nov 2019 13:47:42 -0800
+Subject: [PATCH] sanlock: Replace "cp -a" with "cp -R --no-dereference
+ --preserve=mode, links"
+
+Using "cp -a" leaks UID of user running the builds
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile | 8 ++++----
+ wdmd/Makefile | 4 ++--
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 533dd79..2fc9ba5 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -127,9 +127,9 @@ install: all
+ $(INSTALL) -c -m 755 $(LIBSO_CLIENT_TARGET) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -c -m 644 $(LIBPC_ENTIRE_TARGET) $(DESTDIR)/$(LIBDIR)/pkgconfig
+ $(INSTALL) -c -m 644 $(LIBPC_CLIENT_TARGET) $(DESTDIR)/$(LIBDIR)/pkgconfig
+- cp -a $(LIB_ENTIRE_TARGET).so $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_CLIENT_TARGET).so $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_ENTIRE_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_CLIENT_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_ENTIRE_TARGET).so $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_CLIENT_TARGET).so $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_ENTIRE_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_CLIENT_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -c -m 644 $(HEADER_TARGET) $(DESTDIR)/$(HEADIR)
+ $(INSTALL) -m 644 $(MAN_TARGET) $(DESTDIR)/$(MANDIR)/man8/
+diff --git a/wdmd/Makefile b/wdmd/Makefile
+index 5849efc..4894517 100644
+--- a/wdmd/Makefile
++++ b/wdmd/Makefile
+@@ -68,7 +68,7 @@ install: all
+ $(INSTALL) -d $(DESTDIR)/$(MANDIR)/man8
+ $(INSTALL) -c -m 755 $(CMD_TARGET) $(DESTDIR)/$(BINDIR)
+ $(INSTALL) -c -m 755 $(SHLIB_TARGET) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_TARGET).so $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_TARGET).so $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -c -m 644 $(HEADER_TARGET) $(DESTDIR)/$(HEADIR)
+ $(INSTALL) -m 644 $(MAN_TARGET) $(DESTDIR)/$(MANDIR)/man8
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.0.bb b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.0.bb
index 9f7ce9c57..bf7eaf411 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.0.bb
@@ -11,13 +11,15 @@ SECTION = "utils"
LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
LIC_FILES_CHKSUM = "file://README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
-SRC_URI = "git://pagure.io/sanlock.git;protocol=http"
+SRC_URI = "git://pagure.io/sanlock.git;protocol=http \
+ file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch \
+ "
SRCREV = "7afe0e66f5c7f24894896fad20ffa6f39733d80f"
S = "${WORKDIR}/git"
DEPENDS = "libaio util-linux"
-inherit distutils
+inherit distutils3 useradd
do_configure[noexec] = "1"
@@ -32,3 +34,11 @@ do_install_prepend () {
oe_runmake -C src DESTDIR=${D} LIBDIR=${libdir} install
cd ${S}/python
}
+
+SANLOCKGROUP ?= "sanlock"
+SANLOCKUSER ?= "sanlock"
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system ${SANLOCKGROUP}"
+USERADD_PARAM_${PN} = "--system -g ${SANLOCKGROUP} -G disk \
+ --home-dir /run/${SANLOCKUSER} --no-create-home \
+ --shell /sbin/nologin ${SANLOCKUSER}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index 91c50027d..a527f773a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -11,7 +11,7 @@ LICENSE = "EPL-1.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=f300afd598546add034364cd0a533261"
DEPENDS = "curl libpam openssl sblim-sfc-common unzip-native"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
SRC_URI = "http://downloads.sourceforge.net/sblim/${BP}.tar.bz2 \
diff --git a/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb b/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
index b922bb1f1..2b7571e23 100644
--- a/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
@@ -5,7 +5,7 @@ DESCRIPTION = "scsirastools were designed to add to the Serviceability of \
maintenance or service functions. It handles SCSI, \
Linux SW RAID, SAS, SATA, and USB devices via SCSI emulation."
HOMEPAGE = "http://scsirastools.sourceforge.net/"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=687ea108478d26152ae46eb29d9d1545"
DEPENDS += "groff-native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch
new file mode 100644
index 000000000..c16b8dbc5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch
@@ -0,0 +1,27 @@
+From 996d37fc0b7177ee57788399b9140032d5de2765 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 18 Nov 2019 15:50:02 -0800
+Subject: [PATCH] nmea_gps: Link with latomic
+
+clang/x86 ends up with missing symbols for atomics due to atomic<double>
+with libstdc++, it works ok with libc++
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nmea_gps/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/nmea_gps/CMakeLists.txt b/src/nmea_gps/CMakeLists.txt
+index b3fb6591..5280bfed 100644
+--- a/src/nmea_gps/CMakeLists.txt
++++ b/src/nmea_gps/CMakeLists.txt
+@@ -6,4 +6,4 @@ upm_mixed_module_init (NAME nmea_gps
+ CPP_SRC nmea_gps.cxx
+ FTI_SRC nmea_gps_fti.c
+ CPP_WRAPS_C
+- REQUIRES mraa utilities-c ${CMAKE_THREAD_LIBS_INIT})
++ REQUIRES mraa utilities-c atomic ${CMAKE_THREAD_LIBS_INIT})
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
index a6b379ec3..dbe97370d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
@@ -15,6 +15,8 @@ SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
file://0001-Use-stdint-types.patch \
"
+SRC_URI_append_toolchain-clang_x86 = " file://0001-nmea_gps-Link-with-latomic.patch "
+
S = "${WORKDIR}/git"
# Depends on mraa which only supports x86 and ARM for now
@@ -36,7 +38,7 @@ BINDINGS_armv5 ??= "python"
PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
-PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN},"
+PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN},"
PACKAGECONFIG[nodejs] = "-DBUILDSWIGNODE=ON, -DBUILDSWIGNODE=OFF, swig-native nodejs-native,"
FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/zstd/zstd_1.4.3.bb b/meta-openembedded/meta-oe/recipes-extended/zstd/zstd_1.4.3.bb
deleted file mode 100644
index e97b4efb2..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/zstd/zstd_1.4.3.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Zstandard - Fast real-time compression algorithm"
-DESCRIPTION = "Zstandard is a fast lossless compression algorithm, targeting \
-real-time compression scenarios at zlib-level and better compression ratios. \
-It's backed by a very fast entropy stage, provided by Huff0 and FSE library."
-HOMEPAGE = "http://www.zstd.net/"
-SECTION = "console/utils"
-
-LICENSE = "BSD-3-Clause & GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c7f0b161edbe52f5f345a3d1311d0b32 \
- file://COPYING;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
-
-SRC_URI = "git://github.com/facebook/zstd.git;nobranch=1"
-
-SRCREV = "a3d655d2255481333e09ecca9855f1b37f757c52"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lz4] = "HAVE_LZ4=1,HAVE_LZ4=0,lz4"
-PACKAGECONFIG[lzma] = "HAVE_LZMA=1,HAVE_LZMA=0,xz"
-PACKAGECONFIG[zlib] = "HAVE_ZLIB=1,HAVE_ZLIB=0,zlib"
-
-# See programs/README.md for how to use this
-ZSTD_LEGACY_SUPPORT ??= "4"
-
-do_compile () {
- oe_runmake ${PACKAGECONFIG_CONFARGS} ZSTD_LEGACY_SUPPORT=${ZSTD_LEGACY_SUPPORT}
-}
-
-do_install () {
- oe_runmake install 'DESTDIR=${D}'
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.28.0.bb b/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.28.0.bb
index e587e2a10..0e09c3a64 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.28.0.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.28.0.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
DEPENDS = "atk glibmm"
-inherit distro_features_check gnomebase autotools pkgconfig
+inherit features_check gnomebase autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/gmime/iconv-detect.h b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/iconv-detect.h
index 714cb5aa9..714cb5aa9 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/gmime/iconv-detect.h
+++ b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/iconv-detect.h
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/gmime/nodolt.patch b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch
index 1f9bdd304..1f9bdd304 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/gmime/nodolt.patch
+++ b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/gmime_3.2.3.bb b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb
index bce89bec8..568083bf3 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/gmime_3.2.3.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb
@@ -4,20 +4,13 @@ DESCRIPTION = "Runtime libraries for parsing and creating MIME mail"
SECTION = "libs"
DEPENDS = "glib-2.0 zlib"
-inherit gnomebase autotools gobject-introspection
+inherit gnomebase gobject-introspection
SRC_URI += "file://iconv-detect.h \
file://nodolt.patch"
-SRC_URI[archive.md5sum] = "69ae21a0b1df966a7d39a9431856ac81"
-SRC_URI[archive.sha256sum] = "6a0875eeb552ab447dd54853a68ced62217d863631048737dd97eaa2713e7311"
-
-EXTRA_OECONF_remove = "--disable-schemas-install"
+SRC_URI[archive.md5sum] = "98970e3995e67ac3f23827ff52308f9e"
+SRC_URI[archive.sha256sum] = "fb7556501f85c3bf3e65fdd82697cbc4fa4b55dccd33ad14239ce0197e78ba59"
export ac_cv_have_iconv_detect_h="yes"
do_configure_append = "cp ${WORKDIR}/iconv-detect.h ${S}"
-
-# we do not need GNOME 1 gnome-config support
-do_install_append () {
- rm -f ${D}${libdir}/gmimeConf.sh
-}
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-standard_3.28.bb b/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-standard_3.28.bb
index 53eb32be9..2fa754e79 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-standard_3.28.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/gnome-themes-standard_3.28.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
# Upstream renamed this package to gnome-themes-extra at some point
BPN = "gnome-themes-extra"
-inherit gnomebase gettext gtk-icon-cache upstream-version-is-even distro_features_check
+inherit gnomebase gettext gtk-icon-cache upstream-version-is-even features_check
ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+.inc b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+.inc
index d6d14a79d..ccbcfc8da 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+.inc
+++ b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtk+.inc
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
SECTION = "libs"
-inherit distro_features_check
+inherit features_check
ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
# This picks stable releases in the 2.x series (but not 2.90 onwards,
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.1.bb b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.2.bb
index 6dd051337..adc38d8cf 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.1.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.2.bb
@@ -10,12 +10,12 @@ DEPENDS = "atkmm pangomm glibmm gtk+3 cairomm"
BPN = "gtkmm"
-inherit gnomebase distro_features_check
+inherit gnomebase features_check
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI[archive.md5sum] = "9524ed4e5c821d13eeda49ba2a78f024"
-SRC_URI[archive.sha256sum] = "ddfe42ed2458a20a34de252854bcf4b52d3f0c671c045f56b42aa27c7542d2fd"
+SRC_URI[archive.md5sum] = "e311db484ca9c53f1689d35f5f58a06b"
+SRC_URI[archive.sha256sum] = "6d71091bcd1863133460d4188d04102810e9123de19706fb656b7bb915b4adc3"
SRC_URI += "file://0001-do-not-build-demos.patch"
EXTRA_OECONF = " --disable-documentation "
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
index b780d09bc..bb179447b 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
DEPENDS = "atkmm pangomm glibmm gtk+ cairomm"
-inherit gnomebase distro_features_check
+inherit gnomebase features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb
deleted file mode 100644
index dd1b53e39..000000000
--- a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "libpeas is a gobject-based plugins engine"
-HOMEPAGE = "https://wiki.gnome.org/Projects/Libpeas"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4b54a1fd55a448865a0b32d41598759d"
-
-DEPENDS = "gnome-common gtk+3 intltool-native"
-
-inherit gnomebase gobject-introspection gtk-doc gtk-icon-cache distro_features_check
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection"
-
-SRC_URI[archive.md5sum] = "a20dc55c3f88ad06da9491cfd7de7558"
-SRC_URI[archive.sha256sum] = "5b2fc0f53962b25bca131a5ec0139e6fef8e254481b6e777975f7a1d2702a962"
-
-PACKAGECONFIG[python3] = "--enable-python3,--disable-python3,python3-pygobject"
-
-export GIR_EXTRA_LIBS_PATH = "${B}/libpeas/.libs"
-
-PACKAGES =+ "${PN}-demo ${PN}-python3"
-FILES_${PN}-demo = " \
- ${bindir}/peas-demo \
- ${libdir}/peas-demo \
-"
-
-RDEPENDS_${PN}-python3 = "python3-pygobject"
-FILES_${PN}-python3 = "${libdir}/libpeas-1.0/loaders/libpython3loader.so"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb
new file mode 100644
index 000000000..6c8e0e0bf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "libpeas is a gobject-based plugins engine"
+HOMEPAGE = "https://wiki.gnome.org/Projects/Libpeas"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b54a1fd55a448865a0b32d41598759d"
+
+DEPENDS = "gtk+3"
+
+GNOMEBASEBUILDCLASS = "meson"
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit gnomebase gobject-introspection gtk-doc gtk-icon-cache
+
+SRC_URI[archive.md5sum] = "bbecf334a7333d0a5d4d655ba38be9b4"
+SRC_URI[archive.sha256sum] = "9c3acf7a567cbb4f8bf62b096e013f12c3911cc850c3fa9900cbd5aa4f6ec284"
+
+PACKAGECONFIG[python3] = "-Dpython3=true,-Dpython3=false,python3-pygobject"
+
+PACKAGES =+ "${PN}-demo ${PN}-python3"
+FILES_${PN}-demo = " \
+ ${bindir}/peas-demo \
+ ${libdir}/peas-demo \
+"
+
+RDEPENDS_${PN}-python3 = "python3-pygobject"
+FILES_${PN}-python3 = "${libdir}/libpeas-1.0/loaders/libpython3loader.so"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/vte9/vte9.inc b/meta-openembedded/meta-oe/recipes-gnome/vte9/vte9.inc
index d860d44e2..14d194004 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/vte9/vte9.inc
+++ b/meta-openembedded/meta-oe/recipes-gnome/vte9/vte9.inc
@@ -8,7 +8,7 @@ RDEPENDS_libvte = "vte-termcap"
GNOMEBN = "vte"
S = "${WORKDIR}/vte-${PV}"
-inherit gnomebase gtk-doc distro_features_check upstream-version-is-even gobject-introspection
+inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-introspection
ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
EXTRA_OECONF = "--disable-python"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
index 25c2ce81f..99c108da1 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = " \
DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash gettext-native"
DEPENDS_append_class-target = " libxi"
-inherit autotools pkgconfig pythonnative distro_features_check gettext gtk-icon-cache mime
+inherit autotools pkgconfig pythonnative features_check gettext gtk-icon-cache mime
REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb b/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb
index d54fafc8d..3b540bb78 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb
@@ -7,7 +7,7 @@ SRC_URI = "https://sourceforge.net/projects/${BPN}/files/${BPN}/${PV}/${BPN}-${P
SRC_URI[md5sum] = "90c3ca4dd9d51cf32276bc5344ec9754"
SRC_URI[sha256sum] = "2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2"
-inherit cmake distro_features_check
+inherit cmake features_check
# depends on virtual/libx11, virtual/libgl
REQUIRED_DISTRO_FEATURES = "x11 opengl"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb
index 343c983c3..65f72747c 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://sourceforge.net/projects/ftgl/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=527a83e92c7bf363025380eec05df6e4"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.8.bb b/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.8.bb
index e1c3158bb..b3cb01aaa 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.8.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.8.bb
@@ -42,7 +42,7 @@ SRCREV = "dc6a396bfe5cd6c53eb1df103c3af505d0899f90"
S = "${WORKDIR}/git"
-inherit autotools gettext update-alternatives pkgconfig pythonnative perlnative distro_features_check
+inherit autotools gettext update-alternatives pkgconfig pythonnative perlnative features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb b/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
index 0053c0c68..0db0f793d 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
@@ -5,7 +5,7 @@ DEPENDS = "babl librsvg glib-2.0 gtk+ pango cairo expat zlib libpng jpeg virtual
EXTRA_OECONF = "--disable-docs"
-inherit distro_features_check gnomebase vala gobject-introspection
+inherit features_check gnomebase vala gobject-introspection
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb b/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
index 1d64910fd..024534508 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
@@ -25,7 +25,7 @@ DEPENDS = " \
"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)}"
-inherit distro_features_check gnomebase gtk-icon-cache gtk-doc
+inherit features_check gnomebase gtk-icon-cache gtk-doc
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi
deleted file mode 100644
index 3977064fe..000000000
--- a/meta-openembedded/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-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi
deleted file mode 100644
index 00427e7d9..000000000
--- a/meta-openembedded/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&amp;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&amp;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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb
index 91c5ed211..623037bc3 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb
@@ -10,8 +10,6 @@ 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 \
"
@@ -35,9 +33,6 @@ do_configure_append() {
}
do_install_append() {
- install -d ${D}${datadir}/hal/fdi/information/20thirdparty
- install -m 0644 ${WORKDIR}/*.fdi ${D}${datadir}/hal/fdi/information/20thirdparty/
-
install -d ${D}${sysconfdir}/udev/rules.d/
install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
}
@@ -48,7 +43,7 @@ RRECOMMENDS_${PN} = "libgphoto2-camlibs"
FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*"
-FILES_${PN} += "${nonarch_base_libdir}/udev/* ${datadir}/hal"
+FILES_${PN} += "${nonarch_base_libdir}/udev/*"
FILES_${PN}-dbg += "${libdir}/*/*/.debug"
FILES_${PN}-dev += "${libdir}/*/*/*.la"
FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb b/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
index 4094513b2..6fe258271 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
@@ -16,7 +16,7 @@ DEPENDS = "gtk+"
S = "${WORKDIR}/${BPN}"
-inherit distro_features_check autotools binconfig pkgconfig gettext
+inherit features_check autotools binconfig pkgconfig gettext
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.102.bb
index 310c41067..cd3b6629e 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.102.bb
@@ -7,17 +7,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
SRC_URI = "http://gtkwave.sourceforge.net/${BP}.tar.gz"
-SRC_URI[md5sum] = "eac3073ef381e0c09da33590296ca37f"
-SRC_URI[sha256sum] = "efa6bbbeb3bd54104425a69a2aa0d079bb5c3ecc1c420ba57dcaa1c97c5a22f6"
+SRC_URI[md5sum] = "13da7d4235d4031fde52971830458850"
+SRC_URI[sha256sum] = "80bb7cb92db45872209f4ca48fc95a0460e0d89b0fe0c310c836d9b04c77fec7"
inherit pkgconfig autotools gettext texinfo
DEPENDS = "tcl tk gperf-native bzip2 xz pango zlib gtk+ gdk-pixbuf glib-2.0"
RDEPENDS_${PN} = "tk-lib"
# depends on gtk+ which has this restriction
-inherit distro_features_check
+inherit features_check
ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-EXTRA_OECONF = "--with-tcl=${STAGING_BINDIR_CROSS} --with-tk=${STAGING_BINDIR_CROSS}"
+EXTRA_OECONF = "--with-tcl=${STAGING_BINDIR_CROSS} --with-tk=${STAGING_BINDIR_CROSS} --with-tirpc"
FILES_${PN} = "${bindir} ${datadir}"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb b/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb
index 5d3318590..999d53d4a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb
@@ -14,7 +14,7 @@ SRC_URI = "http://download.savannah.nongnu.org/releases/xforms/xforms-${PV}.tar.
SRC_URI[md5sum] = "235720a758a8b8d9e6e452dc67190e9b"
SRC_URI[sha256sum] = "7989b39598c769820ad451ad91e5cb0de29946940c8240aac94ca8238c2def61"
-inherit autotools distro_features_check
+inherit autotools features_check
REQUIRED_DISTRO_FEATURES = "opengl x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb
index 4601593ad..6224ad3e7 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb
@@ -14,7 +14,7 @@ SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62f
S = "${WORKDIR}/SDL2_ttf-${PV}"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# links to libGL.so
REQUIRED_DISTRO_FEATURES += "x11 opengl"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb b/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
index 701266bcc..db4767bb3 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
@@ -22,7 +22,7 @@ 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"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb b/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
index 08d7f5b52..ac2634d8e 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
@@ -10,7 +10,7 @@ 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"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
index 9af3798aa..33f34e428 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
@@ -12,7 +12,7 @@ SRC_URI = " \
SRC_URI[md5sum] = "b72794996c6a3ad94634727b95f9d204"
SRC_URI[sha256sum] = "8b4ac0760018c77c0044fab06a4f0c510ba87eae934d9983b10878483bde7ef7"
-inherit autotools gettext update-alternatives pkgconfig distro_features_check
+inherit autotools gettext update-alternatives pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb b/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb
index 8a85db475..35e71ab42 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb
@@ -12,7 +12,7 @@ SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pangomm/${SHRT_VER}/pangomm-${
SRC_URI[md5sum] = "6cffedf2225c4e72645a7d757fb5b832"
SRC_URI[sha256sum] = "ca6da067ff93a6445780c0b4b226eb84f484ab104b8391fb744a45cbc7edbf56"
-inherit distro_features_check autotools pkgconfig
+inherit features_check autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb
index c7e872409..784f6fbb8 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb
@@ -14,9 +14,9 @@ DEPENDS += "virtual/libx11 virtual/libgl libxcb xcb-util-keysyms vim-native"
RDEPENDS_${PN} = "libxcb xcb-util-keysyms"
-inherit cmake python3native distro_features_check
+inherit cmake python3native features_check
-REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
python __anonymous () {
# only works on glibc systems
diff --git a/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch b/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch
new file mode 100644
index 000000000..fb90432ea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch
@@ -0,0 +1,41 @@
+From e97bb73851f5bbd94260da553a222526485cdfb1 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Fri, 15 Nov 2019 18:24:42 +0000
+Subject: [PATCH] config.mk: Fix compiler and linker
+
+Do not set explicitly compiler and linker.
+
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ config.mk | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/config.mk b/config.mk
+index df6e812..5deb991 100644
+--- a/config.mk
++++ b/config.mk
+@@ -15,17 +15,17 @@ GTKINC = `pkg-config --cflags gtk+-3.0 webkit2gtk-4.0`
+ GTKLIB = `pkg-config --libs gtk+-3.0 webkit2gtk-4.0`
+
+ # includes and libs
+-INCS = -I. -I/usr/include -I${X11INC} ${GTKINC}
+-LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0
++INCS = ${GTKINC}
++LIBS = -lc -lX11 ${GTKLIB} -lgthread-2.0
+
+ # flags
+ CPPFLAGS = -DVERSION=\"${VERSION}\" -DWEBEXTDIR=\"${LIBPREFIX}\" -D_DEFAULT_SOURCE
+ CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
+-LDFLAGS = -s ${LIBS}
++LDFLAGS = ${LIBS}
+
+ # Solaris
+ #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
+ #LDFLAGS = ${LIBS}
+
+ # compiler and linker
+-CC = cc
++CC ?= cc
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.0.bb b/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.0.bb
new file mode 100644
index 000000000..9932d0a1c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.0.bb
@@ -0,0 +1,25 @@
+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=b57e7f7720307a02d5a6598b00fe3afa"
+
+DEPENDS = "webkitgtk gtk+3 glib-2.0"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "git://git.suckless.org/surf;branch=surf-webkit2 \
+ file://0001-config.mk-Fix-compiler-and-linker.patch \
+"
+SRCREV = "b814567e2bf8bda07cea8de1c7a062f4aa437b65"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig features_check
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+ install -D -m 0755 ${S}/surf ${D}${bindir}/surf
+}
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb
index f3dc89972..d0ee2a50e 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
S = "${WORKDIR}/git"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
inherit autotools cmake
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb
index 8d23bd5eb..2bc40d939 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb
@@ -17,8 +17,8 @@ SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.
file://ts.conf \
file://tslib.sh \
"
-SRC_URI[md5sum] = "254a022fc8aa89d164840fe8869c2441"
-SRC_URI[sha256sum] = "c9a54651337a701a66b074c603c313225579995a7910e519bbc7b1dcdab9a755"
+SRC_URI[md5sum] = "b2b20d3ed520128513f8d3135b42e142"
+SRC_URI[sha256sum] = "d2a57b823ea59e53a3b130eef05dfed1190b857854f886eec764e1ca1957cf56"
UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
@@ -79,4 +79,4 @@ 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_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev ${bindir}/ts_conf"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb
new file mode 100644
index 000000000..521caff74
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb
@@ -0,0 +1,14 @@
+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}"
+
+FILES_${PN} = "${datadir}/fonts/truetype/*.ttf"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb b/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb
index a566bc18a..7e22038f2 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.5.bb
@@ -9,7 +9,7 @@ SRC_URI = "git://github.com/Airblader/unclutter-xfixes.git \
file://0001-build-use-autotools.patch"
SRCREV = "10fd337bb77e4e93c3380f630a0555372778a948"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb b/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb
index d96b50186..240949f55 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_1.3.bb
@@ -10,7 +10,7 @@ SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau"
S = "${WORKDIR}/git"
-inherit distro_features_check meson
+inherit features_check meson
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
index e4a032135..d0c9f774f 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
@@ -23,7 +23,7 @@ DEPENDS = "\
zlib \
"
-inherit pkgconfig autotools distro_features_check
+inherit pkgconfig autotools features_check
ANY_OF_DISTRO_FEATURES = "x11 fbdev"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb b/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb
index 3f4bfaaf1..936d71b10 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb
@@ -7,7 +7,7 @@ SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.b
SRC_URI[md5sum] = "25cc7ca1ce5dcbb61c2b471c55e686b5"
SRC_URI[sha256sum] = "35b6f844b24f1776e9006c880a745728800764dbe3b327a128772b4610d8eb3d"
-inherit distro_features_check autotools pkgconfig
+inherit features_check autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb b/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
index b68e994ab..aeae071dc 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
@@ -7,7 +7,7 @@ DEPENDS = "virtual/libx11 libxtst"
PR = "r1"
-inherit distro_features_check pkgconfig
+inherit features_check pkgconfig
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb
index 26977bea5..7b6ef9682 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb
@@ -9,5 +9,5 @@ DEPENDS += "libxkbfile"
BBCLASSEXTEND = "native"
-SRC_URI[md5sum] = "3c25b40de530112c08bf7d229c5c6a28"
-SRC_URI[sha256sum] = "0b3faab8fefad03dfb7e866f634cf859822801de6b5fc6cf5e0a62857ed93e12"
+SRC_URI[md5sum] = "9c34da77363dc3d0f616980da87244bf"
+SRC_URI[sha256sum] = "5b58fe834f0822f06d63d283fac404098c6d3f6acce61888b81016f1c41023fa"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_349.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_350.bb
index 137a1655e..d98ce4751 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_349.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_350.bb
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=c7faceb872d90115e7
SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz"
-SRC_URI[md5sum] = "194012229738f74bc44e7c0f5f6bf0c8"
-SRC_URI[sha256sum] = "39a6a3d3724f9a0a068f8cc353ab0c82831f0a43abb24470d933af299658475f"
+SRC_URI[md5sum] = "189b593841189da66bc1cea92df602a5"
+SRC_URI[sha256sum] = "aefb59eefd310268080d1a90a447368fb97a9a6737bfecfc3800bf6cc304104d"
PACKAGECONFIG ?= ""
PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc b/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
index cb6b5ac77..958fecc11 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
@@ -7,6 +7,6 @@ XORG_PN = "${BPN}"
SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
-inherit distro_features_check autotools pkgconfig
+inherit features_check autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
deleted file mode 100644
index 906043947..000000000
--- a/meta-openembedded/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-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
deleted file mode 100644
index 07754731d..000000000
--- a/meta-openembedded/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-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch
deleted file mode 100644
index d16b4a53c..000000000
--- a/meta-openembedded/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-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch
deleted file mode 100644
index 6a6d5b92c..000000000
--- a/meta-openembedded/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-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
deleted file mode 100644
index a1f6ba8f9..000000000
--- a/meta-openembedded/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-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
deleted file mode 100644
index 6a3689a2e..000000000
--- a/meta-openembedded/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-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.7.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.7.bb
new file mode 100644
index 000000000..1f63047c7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.7.bb
@@ -0,0 +1,20 @@
+require recipes-graphics/xorg-driver/xorg-driver-input.inc
+SUMMARY = "X.Org X server -- tslib input driver"
+DEPENDS += "tslib"
+RRECOMMENDS_${PN} += "tslib-calibrate"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=f1524518264f7776a9707c19c8affbbf"
+
+SRC_URI = "https://github.com/merge/xf86-input-tslib/releases/download/${PV}/xf86-input-tslib-${PV}.tar.xz \
+ file://99-xf86-input-tslib.rules \
+"
+
+SRC_URI[md5sum] = "c5ffb03bccccfa1c4ba11079fef0036e"
+SRC_URI[sha256sum] = "1439a9efa50eb481e6a0ab5319ab0765d457732e7da64e3c15f3c0cd13b44297"
+
+do_install_append() {
+ 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} += "${nonarch_base_libdir}/udev"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb
index 971de731a..4042150b1 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_19.0.1.bb
@@ -9,7 +9,7 @@ DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
DEPENDS += "virtual/libx11 libxvmc drm \
virtual/libgl xorgproto libpciaccess"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES += "opengl"
SRC_URI[md5sum] = "47eccf71823206ade9629cba69de7ef6"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb
index 3966867ee..5c9061a05 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.16.bb
@@ -10,7 +10,7 @@ DEPENDS += "virtual/libx11 libxvmc drm xorgproto \
virtual/libgl libpciaccess"
RDEPENDS_${PN} += "xserver-xorg-module-exa"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES += "opengl"
COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
index 29229bb51..d7dd10932 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
@@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util"
RDEPENDS_${PN} = "encodings font-util"
RDEPENDS_${PN}_class-native = "font-util-native"
-inherit distro_features_check
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
index 898850bbc..5c00b4b6a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
@@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util"
RDEPENDS_${PN} = "encodings font-util"
RDEPENDS_${PN}_class-native = "font-util-native"
-inherit distro_features_check
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
index 4976e527f..f9bdaf366 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
@@ -10,7 +10,7 @@ DEPENDS += "util-macros-native font-util-native bdftopcf-native font-util"
RDEPENDS_${PN} = "encodings font-util"
RDEPENDS_${PN}_class-native = "font-util-native"
-inherit distro_features_check
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
index 6e0b33ca3..872ef4d01 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
@@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util"
RDEPENDS_${PN} = "encodings font-util"
RDEPENDS_${PN}_class-native = "font-util-native"
-inherit distro_features_check
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
index e8cfb615a..a4ae91a38 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
@@ -10,7 +10,7 @@ DEPENDS = "util-macros-native font-util-native bdftopcf-native"
RDEPENDS_${PN} = "encodings font-util"
RDEPENDS_${PN}_class-native = "font-util-native"
-inherit distro_features_check
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
index d425ce515..ee8cb360a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8b32ccac3ad25e75e68478deb7780265"
DEPENDS = "util-macros-native font-util-native bdftopcf-native"
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-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
index e4cd90a7a..355fb528f 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=200c507f595ee97008c7c5c3e94ab9a8"
DEPENDS = "util-macros-native font-util-native bdftopcf-native 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-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
index ae9704050..06778b3e8 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
@@ -1,7 +1,7 @@
SUMMARY = "Xorg 100 DPI font set"
LICENSE = "MIT"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on font recipes with this restriction
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb
index 62f00563c..b8c1881d9 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb
@@ -17,7 +17,7 @@ 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} += "liberation-fonts"
-inherit systemd perlnative pkgconfig gettext autotools-brokensep distro_features_check
+inherit systemd perlnative pkgconfig gettext autotools-brokensep features_check
EXTRA_OECONF += "--with-x-app-defaults=${datadir}/X11/app-defaults"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb b/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
index a5ed21d45..2c09a4853 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
@@ -5,7 +5,7 @@ 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"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch
index 5bfce4d90..70723f2d0 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch
@@ -7,37 +7,77 @@ Subject: [PATCH 4/4] Remove clang unsupported compiler flags
configure.ac | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 4fcd48b..40302db 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -140,20 +140,20 @@ then
- case "$optimize" in
- -O|"-O "*)
- optimize="-O"
+@@ -124,70 +124,7 @@ done
+
+ if test "$GCC" = yes
+ then
+- if test -z "$arch"
+- then
+- case "$host" in
+- i386-*) ;;
+- i?86-*) arch="-march=i486" ;;
+- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
+- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
+- powerpc-*) ;;
+- mips*-agenda-*) arch="-mcpu=vr4100" ;;
+- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
+- esac
+- fi
+-
+- case "$optimize" in
+- -O|"-O "*)
+- optimize="-O"
- optimize="$optimize -fforce-addr"
-+ : #optimize="$optimize -fforce-addr"
- : #x optimize="$optimize -finline-functions"
- : #- optimize="$optimize -fstrength-reduce"
+- : #x optimize="$optimize -finline-functions"
+- : #- optimize="$optimize -fstrength-reduce"
- optimize="$optimize -fthread-jumps"
- optimize="$optimize -fcse-follow-jumps"
- optimize="$optimize -fcse-skip-blocks"
-+ : #optimize="$optimize -fthread-jumps"
-+ : #optimize="$optimize -fcse-follow-jumps"
-+ : #optimize="$optimize -fcse-skip-blocks"
- : #x optimize="$optimize -frerun-cse-after-loop"
- : #x optimize="$optimize -frerun-loop-opt"
- : #x optimize="$optimize -fgcse"
- optimize="$optimize -fexpensive-optimizations"
+- : #x optimize="$optimize -frerun-cse-after-loop"
+- : #x optimize="$optimize -frerun-loop-opt"
+- : #x optimize="$optimize -fgcse"
+- optimize="$optimize -fexpensive-optimizations"
- optimize="$optimize -fregmove"
-+ : #optimize="$optimize -fregmove"
- : #* optimize="$optimize -fdelayed-branch"
- : #x optimize="$optimize -fschedule-insns"
+- : #* optimize="$optimize -fdelayed-branch"
+- : #x optimize="$optimize -fschedule-insns"
- optimize="$optimize -fschedule-insns2"
-+ : #optimize="$optimize -fschedule-insns2"
- : #? optimize="$optimize -ffunction-sections"
- : #? optimize="$optimize -fcaller-saves"
- : #> optimize="$optimize -funroll-loops"
---
-2.1.0
-
+- : #? optimize="$optimize -ffunction-sections"
+- : #? optimize="$optimize -fcaller-saves"
+- : #> optimize="$optimize -funroll-loops"
+- : #> optimize="$optimize -funroll-all-loops"
+- : #x optimize="$optimize -fmove-all-movables"
+- : #x optimize="$optimize -freduce-all-givs"
+- : #? optimize="$optimize -fstrict-aliasing"
+- : #* optimize="$optimize -fstructure-noalias"
+-
+- case "$host" in
+- arm*-*)
+- optimize="$optimize -fstrength-reduce"
+- ;;
+- mips*-*)
+- optimize="$optimize -fstrength-reduce"
+- optimize="$optimize -finline-functions"
+- ;;
+- i?86-*)
+- optimize="$optimize -fstrength-reduce"
+- ;;
+- powerpc-apple-*)
+- # this triggers an internal compiler error with gcc2
+- : #optimize="$optimize -fstrength-reduce"
+-
+- # this is really only beneficial with gcc3
+- : #optimize="$optimize -finline-functions"
+- ;;
+- *)
+- # this sometimes provokes bugs in gcc 2.95.2
+- : #optimize="$optimize -fstrength-reduce"
+- ;;
+- esac
+- ;;
+- esac
++ optimize="-O2"
+ fi
+
+ case "$host" in
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
index 01c7aa3c8..5bc91f355 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
@@ -11,15 +11,13 @@ Upstream-Status: Pending
2010/07/29
Nitin A Kamble <nitin.a.kamble@intel.com>
-Index: libmad-0.15.1b/fixed.h
-===================================================================
---- libmad-0.15.1b.orig/fixed.h
-+++ libmad-0.15.1b/fixed.h
+--- a/fixed.h
++++ b/fixed.h
@@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t
/* --- MIPS ---------------------------------------------------------------- */
-+# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
++# elif defined(FPM_MIPS) && (defined(__clang__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
+# define MAD_F_MLX(hi, lo, x, y) \
+ do { \
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb
index 19ec12c88..29ef2fa44 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb
@@ -5,7 +5,7 @@ designed by the IETF Codec Working Group and incorporates \
technology from Skype's SILK codec and Xiph.Org's CELT codec."
HOMEPAGE = "http://www.opus-codec.org/"
SECTION = "libs/multimedia"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3"
SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
index cf4dc7f4f..e08d11b0c 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
+++ b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
@@ -49,8 +49,8 @@ do_install() {
install -m 0755 ${S}/mediaServer/live555MediaServer ${D}${bindir}/
}
-PACKAGES =+ " live555-openrtsp live555-playsip live555-mediaserver"
-FILES_${PN} = "${bindir}/sapWatch ${bindir}/testMPEG1or2ProgramToTransportStream ${bindir}/testMPEG1or2Splitter ${bindir}/testMPEG1or2VideoReceiver ${bindir}/testMPEG2TransportStreamTrickPlay ${bindir}/testOnDemandRTSPServer ${bindir}/testRelay ${bindir}/testAMRAudioStreamer ${bindir}/testDVVideoStreamer ${bindir}/testMP3Receiver ${bindir}/testMP3Streamer ${bindir}/testMPEG1or2AudioVideoStreamer ${bindir}/testMPEG1or2VideoStreamer ${bindir}/testMPEG2TransportStreamer ${bindir}/testMPEG4VideoStreamer ${bindir}/testWAVAudioStreamer ${bindir}/vobStreamer ${bindir}/MPEG2TransportStreamIndexer"
+PACKAGES =+ "live555-openrtsp live555-playsip live555-mediaserver live555-examples"
FILES_live555-openrtsp = "${bindir}/openRTSP"
FILES_live555-playsip = "${bindir}/playSIP"
FILES_live555-mediaserver = "${bindir}/live555MediaServer"
+FILES_live555-examples = "${bindir}/*"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
index d334956a8..1ba9f0f6c 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
@@ -24,7 +24,7 @@ SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f2
S = "${WORKDIR}/git"
-inherit waf pkgconfig pythonnative distro_features_check
+inherit waf pkgconfig pythonnative features_check
LUA ?= "lua"
LUA_mips64 = ""
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb b/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb
index ff6311147..a84f2bf07 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb
@@ -1,7 +1,7 @@
SUMMARY = "Opus Audio Tools"
HOMEPAGE = "http://www.opus-codec.org/"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=843a066da9f1facfcc6ea6f616ffecb1"
SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch
deleted file mode 100644
index 97ec37d4c..000000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch
+++ /dev/null
@@ -1,624 +0,0 @@
-From ccb3eb7b4ff65414a56e2294080885b8966da52b Mon Sep 17 00:00:00 2001
-From: Arun Raghavan <git@arunraghavan.net>
-Date: Tue, 2 Feb 2016 17:01:47 +0530
-Subject: [PATCH 2/2] build-sys: Add m4 file for AX_CXX_COMPILE_STDCXX_11
-
----
- m4/ax_cxx_compile_stdcxx.m4 | 558 +++++++++++++++++++++++++++++++++++++++++
- m4/ax_cxx_compile_stdcxx_11.m4 | 39 +++
- 2 files changed, 597 insertions(+)
- create mode 100644 m4/ax_cxx_compile_stdcxx.m4
- create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4
-
-diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
-new file mode 100644
-index 0000000..079e17d
---- /dev/null
-+++ b/m4/ax_cxx_compile_stdcxx.m4
-@@ -0,0 +1,558 @@
-+# ===========================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
-+#
-+# DESCRIPTION
-+#
-+# Check for baseline language coverage in the compiler for the specified
-+# version of the C++ standard. If necessary, add switches to CXXFLAGS to
-+# enable support. VERSION may be '11' (for the C++11 standard) or '14'
-+# (for the C++14 standard).
-+#
-+# The second argument, if specified, indicates whether you insist on an
-+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
-+# -std=c++11). If neither is specified, you get whatever works, with
-+# preference for an extended mode.
-+#
-+# The third argument, if specified 'mandatory' or if left unspecified,
-+# indicates that baseline support for the specified C++ standard is
-+# required and that the macro should error out if no mode with that
-+# support is found. If specified 'optional', then configuration proceeds
-+# regardless, after defining HAVE_CXX${VERSION} if and only if a
-+# supporting mode is found.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
-+# Copyright (c) 2015 Paul Norman <penorman@mac.com>
-+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-+#
-+# Copying and distribution of this file, with or without modification, are
-+# permitted in any medium without royalty provided the copyright notice
-+# and this notice are preserved. This file is offered as-is, without any
-+# warranty.
-+
-+#serial 1
-+
-+dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
-+dnl (serial version number 13).
-+
-+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
-+ m4_if([$1], [11], [],
-+ [$1], [14], [],
-+ [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
-+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
-+ m4_if([$2], [], [],
-+ [$2], [ext], [],
-+ [$2], [noext], [],
-+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
-+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
-+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
-+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
-+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
-+ AC_LANG_PUSH([C++])dnl
-+ ac_success=no
-+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
-+ ax_cv_cxx_compile_cxx$1,
-+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-+ [ax_cv_cxx_compile_cxx$1=yes],
-+ [ax_cv_cxx_compile_cxx$1=no])])
-+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
-+ ac_success=yes
-+ fi
-+
-+ m4_if([$2], [noext], [], [dnl
-+ if test x$ac_success = xno; then
-+ for switch in -std=gnu++$1 -std=gnu++0x; do
-+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-+ $cachevar,
-+ [ac_save_CXXFLAGS="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-+ [eval $cachevar=yes],
-+ [eval $cachevar=no])
-+ CXXFLAGS="$ac_save_CXXFLAGS"])
-+ if eval test x\$$cachevar = xyes; then
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ ac_success=yes
-+ break
-+ fi
-+ done
-+ fi])
-+
-+ m4_if([$2], [ext], [], [dnl
-+ if test x$ac_success = xno; then
-+ dnl HP's aCC needs +std=c++11 according to:
-+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
-+ dnl Cray's crayCC needs "-h std=c++11"
-+ for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
-+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-+ $cachevar,
-+ [ac_save_CXXFLAGS="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-+ [eval $cachevar=yes],
-+ [eval $cachevar=no])
-+ CXXFLAGS="$ac_save_CXXFLAGS"])
-+ if eval test x\$$cachevar = xyes; then
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ ac_success=yes
-+ break
-+ fi
-+ done
-+ fi])
-+ AC_LANG_POP([C++])
-+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then
-+ if test x$ac_success = xno; then
-+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
-+ fi
-+ else
-+ if test x$ac_success = xno; then
-+ HAVE_CXX$1=0
-+ AC_MSG_NOTICE([No compiler with C++$1 support was found])
-+ else
-+ HAVE_CXX$1=1
-+ AC_DEFINE(HAVE_CXX$1,1,
-+ [define if the compiler supports basic C++$1 syntax])
-+ fi
-+
-+ AC_SUBST(HAVE_CXX$1)
-+ fi
-+])
-+
-+
-+dnl Test body for checking C++11 support
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
-+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-+)
-+
-+
-+dnl Test body for checking C++14 support
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
-+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
-+)
-+
-+
-+dnl Tests for new features in C++11
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
-+
-+// If the compiler admits that it is not ready for C++11, why torture it?
-+// Hopefully, this will speed up the test.
-+
-+#ifndef __cplusplus
-+
-+#error "This is not a C++ compiler"
-+
-+#elif __cplusplus < 201103L
-+
-+#error "This is not a C++11 compiler"
-+
-+#else
-+
-+namespace cxx11
-+{
-+
-+ namespace test_static_assert
-+ {
-+
-+ template <typename T>
-+ struct check
-+ {
-+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
-+ };
-+
-+ }
-+
-+ namespace test_final_override
-+ {
-+
-+ struct Base
-+ {
-+ virtual void f() {}
-+ };
-+
-+ struct Derived : public Base
-+ {
-+ virtual void f() override {}
-+ };
-+
-+ }
-+
-+ namespace test_double_right_angle_brackets
-+ {
-+
-+ template < typename T >
-+ struct check {};
-+
-+ typedef check<void> single_type;
-+ typedef check<check<void>> double_type;
-+ typedef check<check<check<void>>> triple_type;
-+ typedef check<check<check<check<void>>>> quadruple_type;
-+
-+ }
-+
-+ namespace test_decltype
-+ {
-+
-+ int
-+ f()
-+ {
-+ int a = 1;
-+ decltype(a) b = 2;
-+ return a + b;
-+ }
-+
-+ }
-+
-+ namespace test_type_deduction
-+ {
-+
-+ template < typename T1, typename T2 >
-+ struct is_same
-+ {
-+ static const bool value = false;
-+ };
-+
-+ template < typename T >
-+ struct is_same<T, T>
-+ {
-+ static const bool value = true;
-+ };
-+
-+ template < typename T1, typename T2 >
-+ auto
-+ add(T1 a1, T2 a2) -> decltype(a1 + a2)
-+ {
-+ return a1 + a2;
-+ }
-+
-+ int
-+ test(const int c, volatile int v)
-+ {
-+ static_assert(is_same<int, decltype(0)>::value == true, "");
-+ static_assert(is_same<int, decltype(c)>::value == false, "");
-+ static_assert(is_same<int, decltype(v)>::value == false, "");
-+ auto ac = c;
-+ auto av = v;
-+ auto sumi = ac + av + 'x';
-+ auto sumf = ac + av + 1.0;
-+ static_assert(is_same<int, decltype(ac)>::value == true, "");
-+ static_assert(is_same<int, decltype(av)>::value == true, "");
-+ static_assert(is_same<int, decltype(sumi)>::value == true, "");
-+ static_assert(is_same<int, decltype(sumf)>::value == false, "");
-+ static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
-+ return (sumf > 0.0) ? sumi : add(c, v);
-+ }
-+
-+ }
-+
-+ namespace test_noexcept
-+ {
-+
-+ int f() { return 0; }
-+ int g() noexcept { return 0; }
-+
-+ static_assert(noexcept(f()) == false, "");
-+ static_assert(noexcept(g()) == true, "");
-+
-+ }
-+
-+ namespace test_constexpr
-+ {
-+
-+ template < typename CharT >
-+ unsigned long constexpr
-+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
-+ {
-+ return *s ? strlen_c_r(s + 1, acc + 1) : acc;
-+ }
-+
-+ template < typename CharT >
-+ unsigned long constexpr
-+ strlen_c(const CharT *const s) noexcept
-+ {
-+ return strlen_c_r(s, 0UL);
-+ }
-+
-+ static_assert(strlen_c("") == 0UL, "");
-+ static_assert(strlen_c("1") == 1UL, "");
-+ static_assert(strlen_c("example") == 7UL, "");
-+ static_assert(strlen_c("another\0example") == 7UL, "");
-+
-+ }
-+
-+ namespace test_rvalue_references
-+ {
-+
-+ template < int N >
-+ struct answer
-+ {
-+ static constexpr int value = N;
-+ };
-+
-+ answer<1> f(int&) { return answer<1>(); }
-+ answer<2> f(const int&) { return answer<2>(); }
-+ answer<3> f(int&&) { return answer<3>(); }
-+
-+ void
-+ test()
-+ {
-+ int i = 0;
-+ const int c = 0;
-+ static_assert(decltype(f(i))::value == 1, "");
-+ static_assert(decltype(f(c))::value == 2, "");
-+ static_assert(decltype(f(0))::value == 3, "");
-+ }
-+
-+ }
-+
-+ namespace test_uniform_initialization
-+ {
-+
-+ struct test
-+ {
-+ static const int zero {};
-+ static const int one {1};
-+ };
-+
-+ static_assert(test::zero == 0, "");
-+ static_assert(test::one == 1, "");
-+
-+ }
-+
-+ namespace test_lambdas
-+ {
-+
-+ void
-+ test1()
-+ {
-+ auto lambda1 = [](){};
-+ auto lambda2 = lambda1;
-+ lambda1();
-+ lambda2();
-+ }
-+
-+ int
-+ test2()
-+ {
-+ auto a = [](int i, int j){ return i + j; }(1, 2);
-+ auto b = []() -> int { return '0'; }();
-+ auto c = [=](){ return a + b; }();
-+ auto d = [&](){ return c; }();
-+ auto e = [a, &b](int x) mutable {
-+ const auto identity = [](int y){ return y; };
-+ for (auto i = 0; i < a; ++i)
-+ a += b--;
-+ return x + identity(a + b);
-+ }(0);
-+ return a + b + c + d + e;
-+ }
-+
-+ int
-+ test3()
-+ {
-+ const auto nullary = [](){ return 0; };
-+ const auto unary = [](int x){ return x; };
-+ using nullary_t = decltype(nullary);
-+ using unary_t = decltype(unary);
-+ const auto higher1st = [](nullary_t f){ return f(); };
-+ const auto higher2nd = [unary](nullary_t f1){
-+ return [unary, f1](unary_t f2){ return f2(unary(f1())); };
-+ };
-+ return higher1st(nullary) + higher2nd(nullary)(unary);
-+ }
-+
-+ }
-+
-+ namespace test_variadic_templates
-+ {
-+
-+ template <int...>
-+ struct sum;
-+
-+ template <int N0, int... N1toN>
-+ struct sum<N0, N1toN...>
-+ {
-+ static constexpr auto value = N0 + sum<N1toN...>::value;
-+ };
-+
-+ template <>
-+ struct sum<>
-+ {
-+ static constexpr auto value = 0;
-+ };
-+
-+ static_assert(sum<>::value == 0, "");
-+ static_assert(sum<1>::value == 1, "");
-+ static_assert(sum<23>::value == 23, "");
-+ static_assert(sum<1, 2>::value == 3, "");
-+ static_assert(sum<5, 5, 11>::value == 21, "");
-+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-+
-+ }
-+
-+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
-+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
-+ // because of this.
-+ namespace test_template_alias_sfinae
-+ {
-+
-+ struct foo {};
-+
-+ template<typename T>
-+ using member = typename T::member_type;
-+
-+ template<typename T>
-+ void func(...) {}
-+
-+ template<typename T>
-+ void func(member<T>*) {}
-+
-+ void test();
-+
-+ void test() { func<foo>(0); }
-+
-+ }
-+
-+} // namespace cxx11
-+
-+#endif // __cplusplus >= 201103L
-+
-+]])
-+
-+
-+dnl Tests for new features in C++14
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
-+
-+// If the compiler admits that it is not ready for C++14, why torture it?
-+// Hopefully, this will speed up the test.
-+
-+#ifndef __cplusplus
-+
-+#error "This is not a C++ compiler"
-+
-+#elif __cplusplus < 201402L
-+
-+#error "This is not a C++14 compiler"
-+
-+#else
-+
-+namespace cxx14
-+{
-+
-+ namespace test_polymorphic_lambdas
-+ {
-+
-+ int
-+ test()
-+ {
-+ const auto lambda = [](auto&&... args){
-+ const auto istiny = [](auto x){
-+ return (sizeof(x) == 1UL) ? 1 : 0;
-+ };
-+ const int aretiny[] = { istiny(args)... };
-+ return aretiny[0];
-+ };
-+ return lambda(1, 1L, 1.0f, '1');
-+ }
-+
-+ }
-+
-+ namespace test_binary_literals
-+ {
-+
-+ constexpr auto ivii = 0b0000000000101010;
-+ static_assert(ivii == 42, "wrong value");
-+
-+ }
-+
-+ namespace test_generalized_constexpr
-+ {
-+
-+ template < typename CharT >
-+ constexpr unsigned long
-+ strlen_c(const CharT *const s) noexcept
-+ {
-+ auto length = 0UL;
-+ for (auto p = s; *p; ++p)
-+ ++length;
-+ return length;
-+ }
-+
-+ static_assert(strlen_c("") == 0UL, "");
-+ static_assert(strlen_c("x") == 1UL, "");
-+ static_assert(strlen_c("test") == 4UL, "");
-+ static_assert(strlen_c("another\0test") == 7UL, "");
-+
-+ }
-+
-+ namespace test_lambda_init_capture
-+ {
-+
-+ int
-+ test()
-+ {
-+ auto x = 0;
-+ const auto lambda1 = [a = x](int b){ return a + b; };
-+ const auto lambda2 = [a = lambda1(x)](){ return a; };
-+ return lambda2();
-+ }
-+
-+ }
-+
-+ namespace test_digit_seperators
-+ {
-+
-+ constexpr auto ten_million = 100'000'000;
-+ static_assert(ten_million == 100000000, "");
-+
-+ }
-+
-+ namespace test_return_type_deduction
-+ {
-+
-+ auto f(int& x) { return x; }
-+ decltype(auto) g(int& x) { return x; }
-+
-+ template < typename T1, typename T2 >
-+ struct is_same
-+ {
-+ static constexpr auto value = false;
-+ };
-+
-+ template < typename T >
-+ struct is_same<T, T>
-+ {
-+ static constexpr auto value = true;
-+ };
-+
-+ int
-+ test()
-+ {
-+ auto x = 0;
-+ static_assert(is_same<int, decltype(f(x))>::value, "");
-+ static_assert(is_same<int&, decltype(g(x))>::value, "");
-+ return x;
-+ }
-+
-+ }
-+
-+} // namespace cxx14
-+
-+#endif // __cplusplus >= 201402L
-+
-+]])
-diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4
-new file mode 100644
-index 0000000..09db383
---- /dev/null
-+++ b/m4/ax_cxx_compile_stdcxx_11.m4
-@@ -0,0 +1,39 @@
-+# ============================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
-+# ============================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional])
-+#
-+# DESCRIPTION
-+#
-+# Check for baseline language coverage in the compiler for the C++11
-+# standard; if necessary, add switches to CXXFLAGS to enable support.
-+#
-+# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX
-+# macro with the version set to C++11. The two optional arguments are
-+# forwarded literally as the second and third argument respectively.
-+# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for
-+# more information. If you want to use this macro, you also need to
-+# download the ax_cxx_compile_stdcxx.m4 file.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
-+# Copyright (c) 2015 Paul Norman <penorman@mac.com>
-+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-+#
-+# Copying and distribution of this file, with or without modification, are
-+# permitted in any medium without royalty provided the copyright notice
-+# and this notice are preserved. This file is offered as-is, without any
-+# warranty.
-+
-+#serial 14
-+
-+include([ax_cxx_compile_stdcxx.m4])
-+
-+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])])
---
-2.12.1
-
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb
index 421ea9d5c..51d7e2a2e 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb
@@ -1,10 +1,16 @@
DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server."
-LICENSE = "GPLv2"
+HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/"
+SECTION = "x11/multimedia"
+LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "intltool-native gtk+3-native gtkmm3 libcanberra pulseaudio"
+# glib-2.0-native is required for glib-gettextize, which is used by the
+# AM_GLIB_GNU_GETTEXT macro in configure.ac. That macro is deprecated, so the
+# glib-2.0-native dependency may go away at some point (something to keep in
+# mind when doing version upgrades).
+DEPENDS = "intltool-native glib-2.0-native gtkmm3 libcanberra pulseaudio"
-inherit gnomebase distro_features_check
+inherit autotools features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb
index cc5b84489..021496bd4 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://license.txt;md5=f596650807588c61fcab60bec8242df8"
SRC_URI = "http://wavpack.com/wavpack-${PV}.tar.bz2"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb
index 70278ecca..006e73af4 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and
HOMEPAGE = "http://www.webmproject.org/code/"
BUGTRACKER = "http://code.google.com/p/webm/issues/list"
SECTION = "libs/multimedia"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb b/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
index 526659e45..b6aafdee1 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
@@ -9,7 +9,7 @@ SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/${BPN}/${BPN}_${
file://auxdir.patch;striplevel=0"
S = "${WORKDIR}/xpext-1.0"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb b/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
index c7a068df3..c611da48c 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
@@ -7,7 +7,7 @@ SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/xsp/${BPN}_${PV}
file://xsp-fix-pc.patch"
S = "${WORKDIR}/Xsp"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
new file mode 100644
index 000000000..9b3801580
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
@@ -0,0 +1,37 @@
+From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001
+From: Adrian Bunk <bunk@stusta.de>
+Date: Mon, 21 Oct 2019 13:53:25 +0300
+Subject: gps_shm_close: Free privdata
+
+Previously every open/close cycle leaked privdata.
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Signed-off-by: Gary E. Miller <gem@rellim.com>
+
+Upstream-Status: Backport
+---
+ libgps_shm.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/libgps_shm.c b/libgps_shm.c
+index d93972bba..12bb3760b 100644
+--- a/libgps_shm.c
++++ b/libgps_shm.c
+@@ -163,8 +163,12 @@ int gps_shm_read(struct gps_data_t *gpsdata)
+
+ void gps_shm_close(struct gps_data_t *gpsdata)
+ {
+- if (PRIVATE(gpsdata) && PRIVATE(gpsdata)->shmseg != NULL)
+- (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
++ if (PRIVATE(gpsdata)) {
++ if (PRIVATE(gpsdata)->shmseg != NULL)
++ (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
++ free(PRIVATE(gpsdata));
++ gpsdata->privdata = NULL;
++ }
+ }
+
+ int gps_shm_mainloop(struct gps_data_t *gpsdata, int timeout,
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
index a28d59dce..6834bd45a 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
@@ -2,13 +2,12 @@ SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
SECTION = "console/network"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=01764c35ae34d9521944bb6ab312af53"
-DEPENDS = "dbus ncurses python python3 libusb1 chrpath-replacement-native pps-tools"
+DEPENDS = "dbus ncurses python python3 libusb1 pps-tools"
PROVIDES = "virtual/gpsd"
-EXTRANATIVEPATH += "chrpath-native"
-
SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
+ file://0001-gps_shm_close-Free-privdata.patch \
"
SRC_URI[md5sum] = "b3bf88706794eb8e5f2c2543bf7ba87b"
SRC_URI[sha256sum] = "27dd24d45b2ac69baab7933da2bf6ae5fb0be90130f67e753c110a3477155f39"
@@ -32,7 +31,6 @@ EXTRA_OESCONS = " \
libQgpsmm='false' \
debug='false' \
nostrip='true' \
- chrpath='yes' \
systemd='${SYSTEMD_OESCONS}' \
libdir='${libdir}' \
manbuild='false' \
diff --git a/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb b/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
index 010f65fb9..589fc5f7c 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
@@ -5,7 +5,7 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://orrery.c;endline=25;md5=d792bdf2b591972da175aecc38d88cfe"
DEPENDS = "gtk+"
-inherit distro_features_check autotools-brokensep pkgconfig
+inherit features_check autotools-brokensep pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
index 8fc0b3591..504ac1537 100644
--- a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
@@ -21,10 +21,10 @@ SECTION = "System Environment/Base"
DEPENDS += "libpam"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
-LICENSE = "BSD"
+LICENSE = "BSD-1-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d"
SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \
diff --git a/meta-openembedded/meta-oe/recipes-security/softhsm/softhsm_git.bb b/meta-openembedded/meta-oe/recipes-security/softhsm/softhsm_git.bb
new file mode 100644
index 000000000..3236cb9a6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-security/softhsm/softhsm_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "PKCS#11 HSM/Token Emulator"
+HOMEPAGE = "https://www.opendnssec.org/softhsm/"
+LICENSE = "BSD-2-Clause & ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ef3f77a3507c3d91e75b9f2bdaee4210"
+DEPENDS = "openssl"
+PV = "2.5.0"
+
+SRC_URI = "git://github.com/opendnssec/SoftHSMv2.git;branch=master"
+SRCREV = "369df0383d101bc8952692c2a368ac8bc887d1b4"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+# EdDSA requires OpenSSL >= 1.1.1
+EXTRA_OECONF = "--enable-eddsa --disable-gost"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
index 30d41a16e..9362a5c11 100644
--- a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
@@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = " \
file://COPYING.GPL;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
"
-inherit autotools pkgconfig python3native lib_package distro_features_check
+inherit autotools pkgconfig python3native lib_package features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch b/meta-openembedded/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch
new file mode 100644
index 000000000..586ff18c3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch
@@ -0,0 +1,22 @@
+Subject: [PATCH] Add build rule for README.
+
+fix do_configure error:
+Makefile.am: required file `./README' not found
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 49574a3..a5a7c2a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -26,3 +26,4 @@ libtool: $(LIBTOOL_DEPS)
+ ChangeLog:
+ git log --stat --decorate=short > $@
+
++README: README.md
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.30.bb b/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.31.bb
index 95a41d2f7..de07bfd23 100644
--- a/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.30.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.31.bb
@@ -8,10 +8,11 @@ RDEPENDS_${PN} = "pcsc-lite"
SRC_URI = "https://ccid.apdu.fr/files/ccid-${PV}.tar.bz2 \
file://no-dep-on-libfl.patch \
+ file://0001-Add-build-rule-for-README.patch \
"
-SRC_URI[md5sum] = "817abceef715e02cb47617621fe192e0"
-SRC_URI[sha256sum] = "ac17087be08880a0cdf99a8a2799a4ef004dc6ffa08b4d9b0ad995f39a53ff7c"
+SRC_URI[md5sum] = "e4690f3362f95adb2332fd47a2b08212"
+SRC_URI[sha256sum] = "6b48d7b6e4390e038d25630f8664fe81618ab00f232d6efbe0e3cc6df28ce8f7"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord-native.bb b/meta-openembedded/meta-oe/recipes-support/colord/colord-native.bb
new file mode 100644
index 000000000..845041cc4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord-native.bb
@@ -0,0 +1,64 @@
+require ${BPN}.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}-native:"
+
+inherit meson native
+
+DEPENDS += " \
+ meson-native \
+ glib-2.0-native \
+ lcms-native \
+"
+
+SRC_URI += " \
+ file://0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch \
+ file://Makefile;subdir=${BPN}-${PV} \
+"
+
+do_configure() {
+ # we expect meson to fail - but before it extracts project's version in log file
+ meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON} > /dev/null 2>&1 || true
+
+ # extract and split version
+ version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
+ major=`echo $version | cut -d. -f1`
+ minor=`echo $version | cut -d. -f2`
+ micro=`echo $version | cut -d. -f3`
+ echo "Project version: $major.$minor.$micro"
+
+ # extract project name
+ proj_name=`grep 'Project name:' ${B}/meson-logs/meson-log.txt | sed 's|Project name: ||'`
+
+ # create cd-version.h
+ mkdir -p ${B}/colord
+ sed ${S}/lib/colord/cd-version.h.in \
+ -e 's:@CD_MAJOR_VERSION_PRIVATE@:1:g' \
+ -e 's:@CD_MINOR_VERSION_PRIVATE@:4:g' \
+ -e 's:@CD_MICRO_VERSION_PRIVATE@:4:g' \
+ > ${B}/colord/cd-version.h
+
+ # create config.h based on target build and add what's necessary only
+ localedir=`echo ${datadir}/locale | sed 's:${prefix}/::g'`
+ echo "#define LOCALEDIR \"$localedir\"" >> ${B}/config.h
+ echo "#define GETTEXT_PACKAGE \"colord\"" >> ${B}/config.h
+ echo "#define PACKAGE_NAME \"$proj_name\"" >> ${B}/config.h
+ echo "#define PACKAGE_VERSION \"$version\"" >> ${B}/config.h
+}
+
+do_compile() {
+ oe_runmake -C${S} DESTDIR=${B}
+}
+
+do_install() {
+ version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
+ major=`echo $version | cut -d. -f1`
+
+ install -d ${D}${libdir}
+ install -m 755 ${B}/libcolord.so ${D}${libdir}/libcolord.so.$version
+ ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so"
+ ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so.$major"
+
+ install -d ${D}${bindir}
+ install -m 755 ${B}/cd_create_profile ${D}${bindir}/
+ install -m 755 ${B}/cd_idt8 ${D}${bindir}/
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch b/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch
new file mode 100644
index 000000000..278b90e07
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch
@@ -0,0 +1,166 @@
+From cbb8f5c05fce1d56ae2e5fa9f57fc49c47bed5ab Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 12 May 2019 21:58:02 +0200
+Subject: [PATCH] Move the function cd_icc_create_from_edid to avoid udev
+ dependeny
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We do not have udev-native so it is a dependeny we cannot satisfy
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ lib/colord/cd-edid.c | 63 ++++++++++++++++++++++++++++++++++++++++++++
+ lib/colord/cd-icc.c | 62 -------------------------------------------
+ 2 files changed, 63 insertions(+), 62 deletions(-)
+
+diff --git a/lib/colord/cd-edid.c b/lib/colord/cd-edid.c
+index a5e2328..dec509a 100644
+--- a/lib/colord/cd-edid.c
++++ b/lib/colord/cd-edid.c
+@@ -687,3 +687,66 @@ cd_edid_new (void)
+ edid = g_object_new (CD_TYPE_EDID, NULL);
+ return CD_EDID (edid);
+ }
++
++/**
++ * cd_icc_create_from_edid_data:
++ * @icc: A valid #CdIcc
++ * @edid: EDID data
++ * @error: A #GError, or %NULL
++ *
++ * Creates an ICC profile from EDID data.
++ *
++ * Return value: %TRUE for success
++ *
++ * Since: 1.1.2
++ **/
++gboolean
++cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
++{
++ CdIccPrivate *priv = GET_PRIVATE (icc);
++ const gchar *data;
++
++ /* not loaded */
++ if (priv->lcms_profile != NULL) {
++ g_set_error_literal (error,
++ CD_ICC_ERROR,
++ CD_ICC_ERROR_FAILED_TO_CREATE,
++ "already loaded or generated");
++ return FALSE;
++ }
++
++ /* create from parsed object */
++ if (!cd_icc_create_from_edid (icc,
++ cd_edid_get_gamma (edid),
++ cd_edid_get_red (edid),
++ cd_edid_get_green (edid),
++ cd_edid_get_blue (edid),
++ cd_edid_get_white (edid),
++ error)) {
++ return FALSE;
++ }
++
++ /* set copyright */
++ cd_icc_set_copyright (icc, NULL,
++ /* deliberately not translated */
++ "This profile is free of known copyright restrictions.");
++
++ /* set 'ICC meta Tag for Monitor Profiles' data */
++ data = cd_edid_get_checksum (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
++ data = cd_edid_get_monitor_name (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
++ data = cd_edid_get_serial_number (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
++ data = cd_edid_get_pnp_id (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
++ data = cd_edid_get_vendor_name (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
++ return TRUE;
++}
++
+diff --git a/lib/colord/cd-icc.c b/lib/colord/cd-icc.c
+index f231814..2c8fe77 100644
+--- a/lib/colord/cd-icc.c
++++ b/lib/colord/cd-icc.c
+@@ -3094,68 +3094,6 @@ out:
+ return ret;
+ }
+
+-/**
+- * cd_icc_create_from_edid_data:
+- * @icc: A valid #CdIcc
+- * @edid: EDID data
+- * @error: A #GError, or %NULL
+- *
+- * Creates an ICC profile from EDID data.
+- *
+- * Return value: %TRUE for success
+- *
+- * Since: 1.1.2
+- **/
+-gboolean
+-cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
+-{
+- CdIccPrivate *priv = GET_PRIVATE (icc);
+- const gchar *data;
+-
+- /* not loaded */
+- if (priv->lcms_profile != NULL) {
+- g_set_error_literal (error,
+- CD_ICC_ERROR,
+- CD_ICC_ERROR_FAILED_TO_CREATE,
+- "already loaded or generated");
+- return FALSE;
+- }
+-
+- /* create from parsed object */
+- if (!cd_icc_create_from_edid (icc,
+- cd_edid_get_gamma (edid),
+- cd_edid_get_red (edid),
+- cd_edid_get_green (edid),
+- cd_edid_get_blue (edid),
+- cd_edid_get_white (edid),
+- error)) {
+- return FALSE;
+- }
+-
+- /* set copyright */
+- cd_icc_set_copyright (icc, NULL,
+- /* deliberately not translated */
+- "This profile is free of known copyright restrictions.");
+-
+- /* set 'ICC meta Tag for Monitor Profiles' data */
+- data = cd_edid_get_checksum (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
+- data = cd_edid_get_monitor_name (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
+- data = cd_edid_get_serial_number (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
+- data = cd_edid_get_pnp_id (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
+- data = cd_edid_get_vendor_name (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
+- return TRUE;
+-}
+-
+ /**
+ * cd_icc_create_from_edid:
+ * @icc: A valid #CdIcc
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile b/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile
new file mode 100644
index 000000000..1e29e4f67
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile
@@ -0,0 +1,48 @@
+# For native build cd_idt8, cd_create_profile and a tiny version of libcolord.so
+# only. By reducing the library to what's necessary, we avoid dependencies on
+# naitve udev and libgudev
+
+CFLAGS+=$(shell pkg-config-native --cflags gio-2.0)
+CFLAGS+=$(shell pkg-config-native --cflags lcms2)
+CFLAGS+=-std=c99 -I./lib -I./lib/colord -I$(DESTDIR) -DCD_COMPILATION
+
+LDFLAGS+=$(shell pkg-config-native --libs gio-2.0)
+LDFLAGS+=$(shell pkg-config-native --libs lcms2)
+LDFLAGS+=-lm
+
+all: cd_idt8 cd_create_profile
+
+LIBSOURCES = \
+ lib/colord/cd-it8.c \
+ lib/colord/cd-color.c \
+ lib/colord/cd-spectrum.c \
+ lib/colord/cd-math.c \
+ lib/colord/cd-interp-akima.c \
+ lib/colord/cd-context-lcms.c \
+ lib/colord/cd-interp.c \
+ lib/colord/cd-interp-linear.c \
+ lib/colord/cd-it8-utils.c \
+ lib/colord/cd-enum.c \
+ lib/colord/cd-icc.c \
+ lib/colord/cd-icc-utils.c \
+ lib/colord/cd-dom.c
+
+libcolord.so: $(LIBSOURCES)
+ $(CC) $(CFLAGS) -L$(DESTDIR) -fPIC -shared -Wl,-soname,$@ $^ -o $(DESTDIR)/$@ $(LDFLAGS)
+
+cd_idt8.o: client/cd-it8.c
+ $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
+
+cd_idt8: libcolord.so cd_idt8.o
+ $(CC) $(DESTDIR)/cd_idt8.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
+
+cd_create_profile.o: client/cd-create-profile.c
+ $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
+
+cd_create_profile: libcolord.so cd_create_profile.o
+ $(CC) $(DESTDIR)/cd_create_profile.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
+
+.PHONY: clean
+
+clean:
+ rm -f $(DESTDIR)/libcolord.so $(DESTDIR)/*.o $(DESTDIR)/cd_idt8 $(DESTDIR)/cd_create_profile
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord.bb b/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
new file mode 100644
index 000000000..df86708e2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
@@ -0,0 +1,45 @@
+require ${BPN}.inc
+
+inherit meson gobject-introspection gsettings gettext bash-completion systemd features_check useradd
+
+# polkit and gobject-introspection are mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
+
+DEPENDS += " \
+ ${BPN}-native \
+ glib-2.0 \
+ lcms \
+ sqlite3 \
+ libgusb \
+ libgudev \
+ polkit \
+"
+
+SRC_URI += " \
+ file://0001-Run-native-cd_idt8-cd_create_profile.patch \
+"
+
+EXTRA_OEMESON = " \
+ -Dman=false \
+ -Ddocs=false \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
+
+SYSTEMD_SERVICE_${PN} = "colord.service"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/polkit-1 \
+ ${datadir}/glib-2.0 \
+ ${datadir}/color \
+ ${systemd_user_unitdir} \
+ ${libdir}/tmpfiles.d \
+ ${libdir}/colord-plugins \
+ ${libdir}/colord-sensors \
+"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --user-group -d /var/lib/colord -s /bin/false colord"
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord.inc b/meta-openembedded/meta-oe/recipes-support/colord/colord.inc
new file mode 100644
index 000000000..7497fed51
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord.inc
@@ -0,0 +1,13 @@
+SUMMARY = "Making color management just work"
+HOMEPAGE = "https://www.freedesktop.org/software/colord/"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://meson.build;beginline=3;endline=3;md5=f42198707d793be58b274d34fd5238c3 \
+"
+
+PV = "1.4.4"
+SRC_URI = "https://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "32c2709a6002d9ee750483aaed6379c8"
+SRC_URI[sha256sum] = "9a0fe80160bf88efddb582a9fc0169f56065276dc3882c47dddb9eecd048c0a5"
+
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch b/meta-openembedded/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch
new file mode 100644
index 000000000..4b52aa337
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch
@@ -0,0 +1,59 @@
+From 5aad8831c0fb71940d6c4f982b0b30ffb6ae33b3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 12 May 2019 22:47:05 +0200
+Subject: [PATCH] Run native cd_idt8/cd_create_profile
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ data/cmf/meson.build | 2 +-
+ data/illuminant/meson.build | 2 +-
+ data/profiles/meson.build | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/data/cmf/meson.build b/data/cmf/meson.build
+index a693cd7..1ae3613 100644
+--- a/data/cmf/meson.build
++++ b/data/cmf/meson.build
+@@ -2,7 +2,7 @@ foreach arg: [ 'CIE1964-10deg-XYZ', 'CIE1931-2deg-XYZ' ]
+ custom_target(arg,
+ input: arg + '.csv',
+ output: arg + '.cmf',
+- command: [ cd_idt8, 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
++ command: [ 'cd_idt8', 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
+ install: true,
+ install_dir: join_paths(datadir, 'colord', 'cmf')
+ )
+diff --git a/data/illuminant/meson.build b/data/illuminant/meson.build
+index f8dfa07..ad7dced 100644
+--- a/data/illuminant/meson.build
++++ b/data/illuminant/meson.build
+@@ -24,7 +24,7 @@ foreach arg: generated_spectra
+ custom_target(arg,
+ input: arg + '.csv',
+ output: arg + '.sp',
+- command: [ cd_idt8, 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
++ command: [ 'cd_idt8', 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
+ install: true,
+ install_dir: join_paths(datadir, 'colord', 'illuminant')
+ )
+diff --git a/data/profiles/meson.build b/data/profiles/meson.build
+index 591b97d..2cef011 100644
+--- a/data/profiles/meson.build
++++ b/data/profiles/meson.build
+@@ -59,7 +59,7 @@ foreach arg: icc_profiles
+ generated_icc = custom_target(arg + '.icc',
+ input: xml_i18n,
+ output: arg + '.icc',
+- command: [ cd_create_profile, '--output=@OUTPUT@', '@INPUT@' ],
++ command: [ 'cd_create_profile', '--output=@OUTPUT@', '@INPUT@' ],
+ install: true,
+ install_dir: join_paths(datadir, 'color', 'icc', 'colord'),
+ )
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
index ec9e04bed..7ad4ac70a 100644
--- a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
@@ -2,7 +2,7 @@ require ${BPN}.inc
DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
-inherit distro_features_check binconfig lib_package gtk-icon-cache mime
+inherit features_check binconfig lib_package gtk-icon-cache mime
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI += "file://0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
index fdb82519b..731c83516 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
@@ -2,7 +2,6 @@ SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
HOMEPAGE = "https://github.com/gperftools/gperftools"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
-DEPENDS += "libunwind"
SRCREV = "9608fa3bcf8020d35f59fbf70cd3cbe4b015b972"
SRC_URI = "git://github.com/gperftools/gperftools \
@@ -20,7 +19,7 @@ S = "${WORKDIR}/git"
# On mips, we have the following error.
# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
# Segmentation fault (core dumped)
-COMPATIBLE_HOST_mipsarch_libc-glibc = "null"
+COMPATIBLE_HOST_mipsarch = "null"
# Disable thumb1
# {standard input}: Assembler messages:
# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
@@ -28,9 +27,11 @@ COMPATIBLE_HOST_mipsarch_libc-glibc = "null"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_toolchain-clang_arm = "arm"
-# Ensure static libs are always enabled, as they seem to be not produced by
-# default at least on ARM.
-EXTRA_OECONF_append += " --enable-static"
+PACKAGECONFIG ?= "libunwind static"
+PACKAGECONFIG_remove_arm_libc-musl = "libunwind"
+
+PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
+PACKAGECONFIG[static] = "--enable-static,--disable-static,"
PACKAGE_BEFORE_PN += "libtcmalloc-minimal"
FILES_libtcmalloc-minimal = "${libdir}/libtcmalloc_minimal*${SOLIBS} ${libdir}/libtcmalloc_minimal_debug*${SOLIBS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
index e66102064..a8479466a 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
@@ -5,8 +5,8 @@ SECTION = "System/Base"
LICENSE = "GPL-2.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
-PV = "0.327"
-SRCREV = "874f7831c64de7ea2203cfcd1b3fc336bc27e468"
+PV = "0.329"
+SRCREV = "3b93b226177b6a8d219fa5edee2a417758cf74db"
SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
new file mode 100644
index 000000000..19a858bd7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
@@ -0,0 +1,35 @@
+From 335ef14fc801c9dfbe7e5692dc71cfbe72049d2b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 27 Oct 2019 16:38:52 +0100
+Subject: [PATCH] Native: Don't use build time hardcoded python binary path.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is same patch as used for target build except that we do not use the
+'-S' and '-s' option because '-S' is relatively young [1] and elder build-host
+don't support it [2]
+
+[1] https://github.com/coreutils/coreutils/commit/668306ed86c8c79b0af0db8b9c882654ebb66db2#diff-83d9d52b1f12ac589739ab1334ae4f30
+[2] https://errors.yoctoproject.org/Errors/Details/274743/
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ itstool.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/itstool.in b/itstool.in
+index e64cd34..05d264f 100755
+--- a/itstool.in
++++ b/itstool.in
+@@ -1,4 +1,4 @@
+-#!@PYTHON@ -s
++#!/usr/bin/env python3
+ #
+ # Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
+ #
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Don-t-use-build-time-hardcoded-python-binary-path.patch b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
index b91105330..b91105330 100644
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Don-t-use-build-time-hardcoded-python-binary-path.patch
+++ b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb b/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb
index b4b37aa01..8290c5e58 100644
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb
@@ -7,8 +7,10 @@ inherit autotools python3native
DEPENDS = "libxml2-native"
-SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://0001-Don-t-use-build-time-hardcoded-python-binary-path.patch"
+SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2"
+SRC_URI_append_class-native = " file://0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch"
+SRC_URI_append_class-target = " file://0002-Don-t-use-build-time-hardcoded-python-binary-path.patch"
+
SRC_URI[md5sum] = "4306eeba4f4aee6b393d14f9c3c57ca1"
SRC_URI[sha256sum] = "6233cc22726a9a5a83664bf67d1af79549a298c23185d926c3677afa917b92a9"
diff --git a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
index 4fc6eb090..c33c79111 100644
--- a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM= "\
file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
"
-DEPENDS = "libusb1"
+DEPENDS = "libusb1 python3"
SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2"
@@ -17,11 +17,17 @@ SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681c
S = "${WORKDIR}/${BPN}1-${PV}"
-inherit cmake binconfig pkgconfig
+inherit cmake binconfig pkgconfig python3native
PACKAGECONFIG ??= ""
PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost"
-EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \
+ -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
BBCLASSEXTEND = "native nativesdk"
+
+PACKAGES += "${PN}-python"
+
+FILES_${PN}-python = "${libdir}/${PYTHON_DIR}/site-packages/"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
index 89679cb91..07ce35a7f 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -8,11 +8,9 @@ SRC_URI = "https://www.kernel.org/pub/software/libs/libgpiod/${BP}.tar.xz"
inherit autotools pkgconfig
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
-PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,"
+
+EXTRA_OECONF = "--enable-tools"
PACKAGES =+ " ${PN}-tools"
FILES_${PN}-tools = "${bindir}/*"
-
-RRECOMMENDS_TOOLS = "${@bb.utils.contains('PACKAGECONFIG', 'tools', '${PN}-tools', '',d)}"
-RRECOMMENDS_${PN} += "${RRECOMMENDS_TOOLS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
index 3ecfffdd6..c4d2bddf4 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
@@ -1,7 +1,6 @@
require libgpiod.inc
-# enable tools
-PACKAGECONFIG ?= "tools"
+PACKAGECONFIG ?= ""
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb
index d55902898..0391deb86 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb
@@ -5,8 +5,8 @@ DEPENDS += "autoconf-archive-native"
SRC_URI[md5sum] = "585b4bb431f99c4ba9b3ee58b9d494c1"
SRC_URI[sha256sum] = "21ae8fd1f8dafc2eb2ba50e652390cf533d21351419a7426255895cb52e21b1c"
-# enable tools and cxx bindings
-PACKAGECONFIG ?= "cxx tools"
+# enable cxx bindings
+PACKAGECONFIG ?= "cxx"
PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb
new file mode 100644
index 000000000..e3c0bdd15
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb
@@ -0,0 +1,12 @@
+SUMMARY = "GUsb is a GObject wrapper for libusb1"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "glib-2.0 libusb"
+
+inherit meson gobject-introspection gtk-doc gettext vala
+
+SRC_URI = "git://github.com/hughsie/libgusb.git"
+SRCREV = "636efc0624aa2a88174220fcabc9764c13d7febf"
+PV = "0.3.0+git${SRCPV}"
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index 4e57d5b77..b53ba4647 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -25,10 +25,13 @@ EXTRA_OECMAKE = " \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
"
-PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND"
+PACKAGECONFIG ??= "usb_backend network_backend"
-PACKAGECONFIG[USB_BACKEND] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2"
-PACKAGECONFIG[NETWORK_BACKEND] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+PACKAGECONFIG[usb_backend] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2"
+PACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+PACKAGECONFIG[libiio-python3] = "-DPYTHON_BINDINGS=ON,-DPYTHON_BINDINGS=OFF"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'distutils3-base', '', d)}
PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-${PYTHON_PN}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/fix-build-with-older-gnutls.patch b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/fix-build-with-older-gnutls.patch
deleted file mode 100644
index 61a7ac0a6..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/fix-build-with-older-gnutls.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b84ee1fa41c53c43aa7ed1583c36af5cb7c77a0f Mon Sep 17 00:00:00 2001
-From: Christian Grothoff <christian@grothoff.org>
-Date: Fri, 2 Aug 2019 15:43:44 +0200
-Subject: trying to fix #5806
-
-Upstream-Status: Backport from 0.9.67 [https://git.gnunet.org/libmicrohttpd.git/commit/?id=b84ee1fa41c53c43aa7ed1583c36af5cb7c77a0f]
-
----
- src/microhttpd/daemon.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
-index bf01ba9b..a8fc98c6 100644
---- a/src/microhttpd/daemon.c
-+++ b/src/microhttpd/daemon.c
-@@ -2536,7 +2536,12 @@ internal_add_connection (struct MHD_Daemon *daemon,
- else
- {
- #ifdef HTTPS_SUPPORT
-- gnutls_init_flags_t flags;
-+#if (GNUTLS_VERSION_NUMBER+0 >= 0x030500)
-+ gnutls_init_flags_t
-+#else
-+ unsigned int
-+#endif
-+ flags;
-
- flags = GNUTLS_SERVER;
- #if (GNUTLS_VERSION_NUMBER+0 >= 0x030402)
---
-cgit v1.2.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.66.bb b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.67.bb
index 6b5417004..c400462e0 100644
--- a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.66.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.67.bb
@@ -7,10 +7,9 @@ SECTION = "net"
DEPENDS = "file"
SRC_URI = "${GNU_MIRROR}/libmicrohttpd/${BPN}-${PV}.tar.gz \
- file://fix-build-with-older-gnutls.patch \
"
-SRC_URI[md5sum] = "ce4050e75cc40d68506e2b403e1a76f9"
-SRC_URI[sha256sum] = "4e66d4db1574f4912fbd2690d10d227cc9cc56df6a10aa8f4fc2da75cea7ab1b"
+SRC_URI[md5sum] = "e28e04e3d3eca62f5754efb844d17812"
+SRC_URI[sha256sum] = "7e1f852723d099d4827d7ebde4d02dd00fd8da62149526fdb9fae058c5a60495"
inherit autotools lib_package pkgconfig gettext
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
index b40223e8a..655db4907 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
@@ -24,3 +24,5 @@ do_install_append () {
FILES_${PN} += "${libdir}/engines*/pkcs11.so"
FILES_${PN}-dev += "${libdir}/engines*/libpkcs11${SOLIBSDEV}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb b/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.9.0.bb
index 6428958f9..25e0af3ff 100644
--- a/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.9.0.bb
@@ -9,8 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca"
SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "616efd99af3d9ef731a26bed6cee9593"
-SRC_URI[sha256sum] = "088307d9f6b6c4b8c13f34602e8ff65d21c2dc4d55284dfe15d502c4ee190d67"
+SRC_URI[md5sum] = "1beefafe8963982adc84b408b2959927"
+SRC_URI[sha256sum] = "d5fb8bd563305fd1074dda90bd053fb2d29fc4bce048d182f96eaa466dfadafd"
inherit autotools pkgconfig
@@ -21,7 +21,7 @@ EXTRA_OECONF += "\
# only one of openssl and gcrypt could be set
PACKAGECONFIG ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-openssl --with-libssl-prefix=${STAGING_LIBDIR},--without-openssl,openssl"
-PACKAGECONFIG[gcrypt] = "--with-libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR},--without-libgcrypt,libgcrypt"
+PACKAGECONFIG[openssl] = "--with-crypto=openssl --with-libssl-prefix=${STAGING_LIBDIR}, , openssl"
+PACKAGECONFIG[gcrypt] = "--with-crypto=libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR}, , libgcrypt"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb
index f55a6fc7b..90fa20084 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb
+++ b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb
@@ -25,7 +25,7 @@ require links.inc
DEPENDS += "virtual/libx11"
RCONFLICTS_${PN} = "links"
-inherit distro_features_check
+inherit features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch
deleted file mode 100644
index 07cb88ffb..000000000
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 4a3e707402032788e09282e0f54fdf82c8a0f8fc Mon Sep 17 00:00:00 2001
-From: Marian Csontos <mcsontos@redhat.com>
-Date: Mon, 19 Aug 2019 14:54:43 +0200
-Subject: [PATCH] configure: Fix setting of CLDFLAGS default
-
----
- configure | 6 +++---
- configure.ac | 6 +++---
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=lvm2.git;a=commit;h=4a3e707402032788e09282e0f54fdf82c8a0f8fc]
-Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
-
-diff --git a/configure b/configure
-index ff3a59b6b..4c8476502 100755
---- a/configure
-+++ b/configure
-@@ -3077,7 +3077,7 @@ if test -z "$CFLAGS"; then :
- fi
- case "$host_os" in
- linux*)
-- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version-script,.export.sym"
-+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym"
- # equivalent to -rdynamic
- ELDFLAGS="-Wl,--export-dynamic"
- # FIXME Generate list and use --dynamic-list=.dlopen.sym
-@@ -3098,7 +3098,7 @@ case "$host_os" in
- ;;
- darwin*)
- CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
-- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}"
-+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}"
- ELDFLAGS=
- CLDWHOLEARCHIVE="-all_load"
- CLDNOWHOLEARCHIVE=
-@@ -3111,7 +3111,7 @@ case "$host_os" in
- BLKDEACTIVATE=no
- ;;
- *)
-- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}"
-+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}"
- ;;
- esac
-
-diff --git a/configure.ac b/configure.ac
-index 5da694631..830edb8da 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -30,7 +30,7 @@ AC_CANONICAL_TARGET([])
- AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"])
- case "$host_os" in
- linux*)
-- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version-script,.export.sym"
-+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym"
- # equivalent to -rdynamic
- ELDFLAGS="-Wl,--export-dynamic"
- # FIXME Generate list and use --dynamic-list=.dlopen.sym
-@@ -51,7 +51,7 @@ case "$host_os" in
- ;;
- darwin*)
- CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
-- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}"
-+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}"
- ELDFLAGS=
- CLDWHOLEARCHIVE="-all_load"
- CLDNOWHOLEARCHIVE=
-@@ -64,7 +64,7 @@ case "$host_os" in
- BLKDEACTIVATE=no
- ;;
- *)
-- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}"
-+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}"
- ;;
- esac
-
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.05.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.06.bb
index be558ce1d..be558ce1d 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.05.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.06.bb
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
index 41bf78a3f..01c9df45c 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -15,9 +15,8 @@ SRC_URI = "git://sourceware.org/git/lvm2.git \
file://0001-Avoid-bashisms-in-init-scripts.patch \
file://0005-do-not-build-manual.patch \
file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
- file://0001-configure-Fix-setting-of-CLDFLAGS-default.patch \
"
-SRCREV = "60bd9e8406ac28a04aa5e8165149f7a5d4f3265a"
+SRCREV = "b9391b1b9f0b73303fa21f8f92574d17ce4c2b02"
S = "${WORKDIR}/git"
inherit autotools-brokensep pkgconfig systemd license
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch
deleted file mode 100644
index a864f1e21..000000000
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From f8466749dd73f5b0ccf4fc86c8a7585c4140b3f9 Mon Sep 17 00:00:00 2001
-From: Zdenek Kabelac <zkabelac@redhat.com>
-Date: Fri, 16 Aug 2019 23:49:59 +0200
-Subject: [PATCH 1/3] activation: add synchronization point
-
-Resuming of 'error' table entry followed with it's dirrect removal
-is now troublesame with latest udev as it may skip processing of
-udev rules for already 'dropped' device nodes.
-
-As we cannot 'synchronize' with udev while we know we have devices
-in suspended state - rework 'cleanup' so it collects nodes
-for removal into pending_delete list and process the list with
-synchronization once we are without any suspended nodes.
-
-Upstream-Status: Backport
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- WHATS_NEW | 9 +++++++++
- lib/activate/dev_manager.c | 20 ++++++++++++--------
- 2 files changed, 21 insertions(+), 8 deletions(-)
-
-diff --git a/WHATS_NEW b/WHATS_NEW
-index 3a58de5f9..0b48e032b 100644
---- a/WHATS_NEW
-+++ b/WHATS_NEW
-@@ -1,3 +1,12 @@
-+Version 2.03.06 -
-+================================
-+ Synchronize with udev when dropping snapshot.
-+ Add missing device synchronization point before removing pvmove node.
-+ Correctly set read_ahead for LVs when pvmove is finished.
-+ Remove unsupported OPTIONS+="event_timeout" udev rule from 11-dm-lvm.rules.
-+ Prevent creating VGs with PVs with different logical block sizes.
-+ Fix metadata writes from corrupting with large physical block size.
-+
- Version 2.03.05 - 15th June 2019
- ================================
- Fix command definition for pvchange -a.
-diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
-index 981f4674a..7101ffa12 100644
---- a/lib/activate/dev_manager.c
-+++ b/lib/activate/dev_manager.c
-@@ -3558,13 +3558,6 @@ static int _clean_tree(struct dev_manager *dm, struct dm_tree_node *root, const
- const char *name, *uuid;
- struct dm_str_list *dl;
-
-- /* Deactivate any tracked pending delete nodes */
-- dm_list_iterate_items(dl, &dm->pending_delete) {
-- log_debug_activation("Deleting tracked UUID %s.", dl->str);
-- if (!dm_tree_deactivate_children(root, dl->str, strlen(dl->str)))
-- return_0;
-- }
--
- while ((child = dm_tree_next_child(&handle, root, 0))) {
- if (!(name = dm_tree_node_get_name(child)))
- continue;
-@@ -3585,10 +3578,21 @@ static int _clean_tree(struct dev_manager *dm, struct dm_tree_node *root, const
- if (non_toplevel_tree_dlid && !strcmp(non_toplevel_tree_dlid, uuid))
- continue;
-
-- if (!dm_tree_deactivate_children(root, uuid, strlen(uuid)))
-+ if (!str_list_add(dm->mem, &dm->pending_delete, uuid))
- return_0;
- }
-
-+ /* Deactivate any tracked pending delete nodes */
-+ if (!dm_list_empty(&dm->pending_delete) && !dm_get_suspended_counter()) {
-+ fs_unlock();
-+ dm_tree_set_cookie(root, fs_get_cookie());
-+ dm_list_iterate_items(dl, &dm->pending_delete) {
-+ log_debug_activation("Deleting tracked UUID %s.", dl->str);
-+ if (!dm_tree_deactivate_children(root, dl->str, strlen(dl->str)))
-+ return_0;
-+ }
-+ }
-+
- return 1;
- }
-
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-udev-remove-unsupported-OPTIONS-event_timeout-rule.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-udev-remove-unsupported-OPTIONS-event_timeout-rule.patch
deleted file mode 100644
index 5a6db4b88..000000000
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-udev-remove-unsupported-OPTIONS-event_timeout-rule.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e48f8328f9d35f23a24e5b27237e8ebf1dbfa269 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 10 Oct 2019 22:38:00 -0400
-Subject: [PATCH] udev: remove unsupported OPTIONS+="event_timeout" rule
-
-The OPTIONS+="event_timeout" is Unsupported since systemd/udev version 216,
-that is ~5 years ago.
-
-Since systemd/udev version 243, there's a new message printed if unsupported
-OPTIONS value is used:
-
- Invalid value for OPTIONS key, ignoring: 'event_timeout=180'
-
-Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1740666
-
-Signed-off-by: Peter Rajnoha <prajnoha@redhat.com>
-
-Upstream-Status: Backport [https://github.com/lvmteam/lvm2/commit/125f27ac37bc9b93cc96f64052b9681b3d479ee1]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- udev/11-dm-lvm.rules.in | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/udev/11-dm-lvm.rules.in b/udev/11-dm-lvm.rules.in
-index 91cb991..7c58994 100644
---- a/udev/11-dm-lvm.rules.in
-+++ b/udev/11-dm-lvm.rules.in
-@@ -37,8 +37,6 @@ ENV{DM_SUBSYSTEM_UDEV_FLAG0}!="1", ENV{DM_NOSCAN}=="1", ENV{DM_UDEV_DISABLE_OTHE
-
- ENV{DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG}=="1", GOTO="lvm_end"
-
--OPTIONS+="event_timeout=180"
--
- # Do not create symlinks for inappropriate subdevices.
- ENV{DM_LV_NAME}=="pvmove?*|?*_vorigin", GOTO="lvm_disable"
- ENV{DM_LV_LAYER}=="?*", GOTO="lvm_disable"
---
-2.23.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-activation-extend-handling-of-pending_delete.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-activation-extend-handling-of-pending_delete.patch
deleted file mode 100644
index e30731593..000000000
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-activation-extend-handling-of-pending_delete.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From d06ad77b47f4dfd25bc3da88c0621ac073ad8ce5 Mon Sep 17 00:00:00 2001
-From: Zdenek Kabelac <zkabelac@redhat.com>
-Date: Fri, 23 Aug 2019 13:08:34 +0200
-Subject: [PATCH 2/3] activation: extend handling of pending_delete
-
-With previous patch 30a98e4d6710a543692d40d11428ae4baea11b7b we
-started to put devices one pending_delete list instead
-of directly scheduling their removal.
-
-However we have operations like 'snapshot merge' where we are
-resuming device tree in 2 subsequent activation calls - so
-1st such call will still have suspened devices and no chance
-to push 'remove' ioctl.
-
-Since we curently cannot easily solve this by doing just single
-activation call (which would be preferred solution) - we introduce
-a preservation of pending_delete via command structure and
-then restore it on next activation call.
-
-This way we keep to remove devices later - although it might be
-not the best moment - this may need futher tunning.
-
-Also we don't keep the list of operation in 1 trasaction
-(unless we do verify udev symlinks) - this could probably
-also make it more correct in terms of which 'remove' can
-be combined we already running 'resume'.
-
-Upstream-Status: Backport
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- lib/activate/dev_manager.c | 24 +++++++++++-------------
- lib/commands/toolcontext.c | 8 ++++++++
- lib/commands/toolcontext.h | 1 +
- 3 files changed, 20 insertions(+), 13 deletions(-)
-
-diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
-index 7101ffa12..7a7689291 100644
---- a/lib/activate/dev_manager.c
-+++ b/lib/activate/dev_manager.c
-@@ -3591,6 +3591,7 @@ static int _clean_tree(struct dev_manager *dm, struct dm_tree_node *root, const
- if (!dm_tree_deactivate_children(root, dl->str, strlen(dl->str)))
- return_0;
- }
-+ dm_list_init(&dm->pending_delete);
- }
-
- return 1;
-@@ -3717,25 +3718,22 @@ out_no_root:
- int dev_manager_activate(struct dev_manager *dm, const struct logical_volume *lv,
- struct lv_activate_opts *laopts)
- {
-+ dm_list_splice(&dm->pending_delete, &lv->vg->cmd->pending_delete);
-+
- if (!_tree_action(dm, lv, laopts, ACTIVATE))
- return_0;
-
-- /*
-- * When lvm2 resumes a device and shortly after that it removes it,
-- * udevd rule will try to blindly call 'dmsetup info' on already removed
-- * device leaving the trace inside syslog about failing operation.
-- *
-- * TODO: It's not completely clear this call here is the best fix.
-- * Maybe there can be a better sequence, but ATM we do usually resume
-- * error device i.e. on cache deletion and remove it.
-- * TODO2: there could be more similar cases!
-- */
-- if (!dm_list_empty(&dm->pending_delete))
-- fs_unlock();
--
- if (!_tree_action(dm, lv, laopts, CLEAN))
- return_0;
-
-+ if (!dm_list_empty(&dm->pending_delete)) {
-+ log_debug("Preserving %d device(s) for removal while being suspended.",
-+ dm_list_size(&dm->pending_delete));
-+ if (!(str_list_dup(lv->vg->cmd->mem, &lv->vg->cmd->pending_delete,
-+ &dm->pending_delete)))
-+ return_0;
-+ }
-+
- return 1;
- }
-
-diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
-index 1e03ea235..0a9355361 100644
---- a/lib/commands/toolcontext.c
-+++ b/lib/commands/toolcontext.c
-@@ -1734,6 +1734,8 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
- cmd->current_settings = cmd->default_settings;
-
- cmd->initialized.config = 1;
-+
-+ dm_list_init(&cmd->pending_delete);
- out:
- if (!cmd->initialized.config) {
- destroy_toolcontext(cmd);
-@@ -1922,6 +1924,12 @@ int refresh_toolcontext(struct cmd_context *cmd)
-
- cmd->initialized.config = 1;
-
-+ if (!dm_list_empty(&cmd->pending_delete)) {
-+ log_debug(INTERNAL_ERROR "Unprocessed pending delete for %d devices.",
-+ dm_list_size(&cmd->pending_delete));
-+ dm_list_init(&cmd->pending_delete);
-+ }
-+
- if (cmd->initialized.connections && !init_connections(cmd))
- return_0;
-
-diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h
-index 6e4530c8a..54ddec320 100644
---- a/lib/commands/toolcontext.h
-+++ b/lib/commands/toolcontext.h
-@@ -237,6 +237,7 @@ struct cmd_context {
- const char *report_list_item_separator;
- const char *time_format;
- unsigned rand_seed;
-+ struct dm_list pending_delete; /* list of LVs for removal */
- };
-
- /*
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-snapshot-always-activate.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-snapshot-always-activate.patch
deleted file mode 100644
index 953e4ad65..000000000
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-snapshot-always-activate.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 9143445478871b47ba28b41f5e88d4c415f8205b Mon Sep 17 00:00:00 2001
-From: Zdenek Kabelac <zkabelac@redhat.com>
-Date: Mon, 26 Aug 2019 15:13:55 +0200
-Subject: [PATCH 3/3] snapshot: always activate
-
-Drop the 'cluster-only' optimization so we do resume ALL device
-before we try to wait on cookie before 'removal' operation.
-
-It's more correct order of operation - alhtough possibly slightly
-less efficient - but until we have correct list of operations
-'in-progress' we can't do anything better.
-
-Upstream-Status: Backport
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- lib/metadata/snapshot_manip.c | 8 +-------
- 1 file changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/lib/metadata/snapshot_manip.c b/lib/metadata/snapshot_manip.c
-index 5ccf251c7..65d8dbd13 100644
---- a/lib/metadata/snapshot_manip.c
-+++ b/lib/metadata/snapshot_manip.c
-@@ -361,13 +361,7 @@ int vg_remove_snapshot(struct logical_volume *cow)
- return 0;
- }
-
-- /*
-- * For merged snapshot and clustered VG activate cow LV so
-- * the following call to deactivate_lv() can clean-up table
-- * entries. For this clustered lock need to be held.
-- */
-- if (vg_is_clustered(cow->vg) &&
-- merging_snapshot && !activate_lv(cow->vg->cmd, cow)) {
-+ if (merging_snapshot && !activate_lv(cow->vg->cmd, cow)) {
- log_error("Failed to activate %s.", cow->name);
- return 0;
- }
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.05.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.06.bb
index b80f1fd4b..e2b551bbc 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.05.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.06.bb
@@ -3,10 +3,6 @@ require lvm2.inc
SRC_URI += " \
file://0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch \
file://0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch \
- file://0001-udev-remove-unsupported-OPTIONS-event_timeout-rule.patch \
- file://0001-activation-add-synchronization-point.patch \
- file://0002-activation-extend-handling-of-pending_delete.patch \
- file://0003-snapshot-always-activate.patch \
"
DEPENDS += "autoconf-archive-native"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
index 888c729b3..007b3944a 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
@@ -13,8 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git \
file://makefile-remove-ldflags.patch \
"
-SRCREV = "74bffd8b0aa27051aeaa1983a7b23975ca8d8726"
-PV = "20171030+git${SRCPV}"
+SRCREV = "7643baf6c3919b3d727e6ba6c2e545dc6a653307"
+PV = "20190917+git${SRCPV}"
RDEPENDS_${PN} = "mcelog mce-inject dialog bash"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_164.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb
index af309d1c6..3b4ea1f67 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_164.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb
@@ -9,7 +9,7 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http;
file://run-ptest \
"
-SRCREV = "e53631f84a181be371c08e0b961180bff77fd2ab"
+SRCREV = "ee90ff20ce6a4d5e016aa249ce8b37f359f9fda4"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6"
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb
index 06e78c78c..358f0cb60 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb
@@ -47,7 +47,7 @@ SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-SRCREV = "8a7e9b6648898f2c2d2bbd2d22871f79612e716e"
+SRCREV = "6c3bd369b23e959700527e0e2e6d5b2a1bd36294"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch
new file mode 100644
index 000000000..6cb5dfccc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch
@@ -0,0 +1,94 @@
+From 6fb28085e867d7c3ef46577d9ff193a185693bcb Mon Sep 17 00:00:00 2001
+From: Oliver Kurth <okurth@vmware.com>
+Date: Mon, 30 Sep 2019 16:24:27 -0700
+Subject: [PATCH] GitHub Issue #367. Remove references to deprecated G_INLINE_FUNC.
+
+G_INLINE_FUNC was a work-around for compilers that didn't support
+static inline. Change uses of it to static inline.
+
+Upstream-Status: Backport
+[https://github.com/vmware/open-vm-tools/commit/89c0d444567eb525e8d083fb564c46d68e96660c]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/include/vmware/tools/plugin.h | 2 +-
+ open-vm-tools/lib/include/vmware/tools/threadPool.h | 8 ++++----
+ open-vm-tools/lib/include/vmware/tools/utils.h | 9 ---------
+ 3 files changed, 5 insertions(+), 14 deletions(-)
+
+diff --git a/open-vm-tools/lib/include/vmware/tools/plugin.h b/open-vm-tools/lib/include/vmware/tools/plugin.h
+index f9acc6a2..deefd1f3 100644
+--- a/open-vm-tools/lib/include/vmware/tools/plugin.h
++++ b/open-vm-tools/lib/include/vmware/tools/plugin.h
+@@ -290,7 +290,7 @@ typedef struct ToolsAppCtx {
+ *
+ * @return TRUE if COM is initialized when the function returns.
+ */
+-G_INLINE_FUNC gboolean
++static inline gboolean
+ ToolsCore_InitializeCOM(ToolsAppCtx *ctx)
+ {
+ if (!ctx->comInitialized) {
+diff --git a/open-vm-tools/lib/include/vmware/tools/threadPool.h b/open-vm-tools/lib/include/vmware/tools/threadPool.h
+index 3f2082b3..5880fbcf 100644
+--- a/open-vm-tools/lib/include/vmware/tools/threadPool.h
++++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h
+@@ -91,7 +91,7 @@ typedef struct ToolsCorePool {
+ *******************************************************************************
+ */
+
+-G_INLINE_FUNC ToolsCorePool *
++static inline ToolsCorePool *
+ ToolsCorePool_GetPool(ToolsAppCtx *ctx)
+ {
+ ToolsCorePool *pool = NULL;
+@@ -123,7 +123,7 @@ ToolsCorePool_GetPool(ToolsAppCtx *ctx)
+ *******************************************************************************
+ */
+
+-G_INLINE_FUNC guint
++static inline guint
+ ToolsCorePool_SubmitTask(ToolsAppCtx *ctx,
+ ToolsCorePoolCb cb,
+ gpointer data,
+@@ -153,7 +153,7 @@ ToolsCorePool_SubmitTask(ToolsAppCtx *ctx,
+ *******************************************************************************
+ */
+
+-G_INLINE_FUNC void
++static inline void
+ ToolsCorePool_CancelTask(ToolsAppCtx *ctx,
+ guint taskId)
+ {
+@@ -197,7 +197,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ctx,
+ *******************************************************************************
+ */
+
+-G_INLINE_FUNC gboolean
++static inline gboolean
+ ToolsCorePool_StartThread(ToolsAppCtx *ctx,
+ const gchar *threadName,
+ ToolsCorePoolCb cb,
+diff --git a/open-vm-tools/lib/include/vmware/tools/utils.h b/open-vm-tools/lib/include/vmware/tools/utils.h
+index f6574590..a3292d5c 100644
+--- a/open-vm-tools/lib/include/vmware/tools/utils.h
++++ b/open-vm-tools/lib/include/vmware/tools/utils.h
+@@ -51,15 +51,6 @@
+ # include <sys/time.h>
+ #endif
+
+-
+-/* Work around a glib limitation: it doesn't set G_INLINE_FUNC on Win32. */
+-#if defined(G_PLATFORM_WIN32)
+-# if defined(G_INLINE_FUNC)
+-# undef G_INLINE_FUNC
+-# endif
+-# define G_INLINE_FUNC static __inline
+-#endif
+-
+ #ifndef ABS
+ # define ABS(x) (((x) >= 0) ? (x) : -(x))
+ #endif
+--
+2.23.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch
new file mode 100644
index 000000000..61a681f17
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch
@@ -0,0 +1,78 @@
+From caf80e220b055dbce259078be96e899dc78ec1d2 Mon Sep 17 00:00:00 2001
+From: Bartosz Brachaczek <b.brachaczek@gmail.com>
+Date: Tue, 12 Nov 2019 14:31:08 +0100
+Subject: [PATCH] Make HgfsConvertFromNtTimeNsec aware of 64-bit time_t on i386
+
+I verified that this function behaves as expected on x86_64, i386 with
+32-bit time_t, and i386 with 64-bit time_t for the following values of
+ntTtime:
+
+UNIX_EPOCH-1, UNIX_EPOCH, UNIX_EPOCH+1, UNIX_S32_MAX-1, UNIX_S32_MAX,
+UNIX_S32_MAX+1, UNIX_S32_MAX*2+1
+
+I did not verify whether the use of Div643264 is optimal, performance
+wise.
+
+Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/387]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/hgfs/hgfsUtil.c | 34 +++++++++++++++++--------------
+ 1 file changed, 19 insertions(+), 15 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfs/hgfsUtil.c b/open-vm-tools/lib/hgfs/hgfsUtil.c
+index cc580ab8..49b10040 100644
+--- a/open-vm-tools/lib/hgfs/hgfsUtil.c
++++ b/open-vm-tools/lib/hgfs/hgfsUtil.c
+@@ -110,23 +110,21 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format
+ uint64 ntTime) // IN: Time in Windows NT format
+ {
+ #ifdef __i386__
+- uint32 sec;
+- uint32 nsec;
++ uint64 sec64;
++ uint32 sec32, nsec;
++#endif
+
+ ASSERT(unixTime);
+- /* We assume that time_t is 32bit */
+- ASSERT_ON_COMPILE(sizeof (unixTime->tv_sec) == 4);
+
+- /* Cap NT time values that are outside of Unix time's range */
++ if (sizeof (unixTime->tv_sec) == 4) {
++ /* Cap NT time values that are outside of Unix time's range */
+
+- if (ntTime >= UNIX_S32_MAX) {
+- unixTime->tv_sec = 0x7FFFFFFF;
+- unixTime->tv_nsec = 0;
+- return 1;
++ if (ntTime >= UNIX_S32_MAX) {
++ unixTime->tv_sec = 0x7FFFFFFF;
++ unixTime->tv_nsec = 0;
++ return 1;
++ }
+ }
+-#else
+- ASSERT(unixTime);
+-#endif
+
+ if (ntTime < UNIX_EPOCH) {
+ unixTime->tv_sec = 0;
+@@ -135,9 +133,15 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format
+ }
+
+ #ifdef __i386__
+- Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec);
+- unixTime->tv_sec = sec;
+- unixTime->tv_nsec = nsec * 100;
++ if (sizeof (unixTime->tv_sec) == 4) {
++ Div643232(ntTime - UNIX_EPOCH, 10000000, &sec32, &nsec);
++ unixTime->tv_sec = sec32;
++ unixTime->tv_nsec = nsec * 100;
++ } else {
++ Div643264(ntTime - UNIX_EPOCH, 10000000, &sec64, &nsec);
++ unixTime->tv_sec = sec64;
++ unixTime->tv_nsec = nsec * 100;
++ }
+ #else
+ unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000;
+ unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100;
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
index 0736572b3..a711f5e5d 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -14,11 +14,9 @@ Signed-off-by: Martin Kelly <mkelly@xevo.com>
open-vm-tools/configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
-index 325a39f5..713ea683 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
-@@ -949,7 +949,7 @@ if test "$with_dnet" = "yes"; then
+@@ -937,7 +937,7 @@ if test "$with_dnet" = "yes"; then
AC_VMW_CHECK_LIB([dnet],
[DNET],
[],
@@ -27,11 +25,11 @@ index 325a39f5..713ea683 100644
[],
[dnet.h],
[intf_open],
-@@ -959,7 +959,7 @@ if test "$with_dnet" = "yes"; then
+@@ -947,7 +947,7 @@ if test "$with_dnet" = "yes"; then
if test $have_dnet = "no"; then
AC_MSG_ERROR(
-- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
+- [dnet-config was not found on your PATH. Please configure without dnet or install dnet - http://libdnet.sourceforge.net])
+ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
fi
fi
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
new file mode 100644
index 000000000..0f64eabc9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
@@ -0,0 +1,41 @@
+From fe56b67a2915a8632ea30604c14241f335dd3c15 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Nov 2019 10:49:46 -0800
+Subject: [PATCH] hgfsServerLinux: Consider 64bit time_t possibility
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../lib/hgfsServer/hgfsServerLinux.c | 19 +++++--------------
+ 1 file changed, 5 insertions(+), 14 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index 03175623..554da67f 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -2561,20 +2561,11 @@ HgfsStatToFileAttr(struct stat *stats, // IN: stat information
+ LOG(4, ("%s: done, permissions %o%o%o%o, size %"FMT64"u\n", __FUNCTION__,
+ attr->specialPerms, attr->ownerPerms, attr->groupPerms,
+ attr->otherPerms, attr->size));
+-#ifdef __FreeBSD__
+-# if !defined(VM_X86_64) && __FreeBSD_version >= 500043
+-# define FMTTIMET ""
+-# else
+-# define FMTTIMET "l"
+-# endif
+-#else
+-# define FMTTIMET "l"
+-#endif
+- LOG(4, ("access: %"FMTTIMET"d/%"FMT64"u \nwrite: %"FMTTIMET"d/%"FMT64"u \n"
+- "attr: %"FMTTIMET"d/%"FMT64"u\n",
+- stats->st_atime, attr->accessTime, stats->st_mtime, attr->writeTime,
+- stats->st_ctime, attr->attrChangeTime));
+-#undef FMTTIMET
++ LOG(4, ("access: %jd/%"FMT64"u \nwrite: %jd/%"FMT64"u \n"
++ "attr: %jd/%"FMT64"u\n",
++ (intmax_t)stats->st_atime, attr->accessTime,
++ (intmax_t)stats->st_mtime, attr->writeTime,
++ (intmax_t)stats->st_ctime, attr->attrChangeTime));
+
+ attr->userId = stats->st_uid;
+ attr->groupId = stats->st_gid;
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
index 5c1aa7c40..9cf54f6f4 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
@@ -19,8 +19,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
7 files changed, 7 insertions(+), 7 deletions(-)
rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
-diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
-index b41aa29d..8691309d 100644
--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
+++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
@@ -86,7 +86,7 @@
@@ -32,8 +30,6 @@ index b41aa29d..8691309d 100644
#include "log.h"
#include "err.h"
#include "hostinfo.h"
-diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
-index 7ea3b7f4..740c4fed 100644
--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
@@ -48,7 +48,7 @@
@@ -45,8 +41,6 @@ index 7ea3b7f4..740c4fed 100644
#include "mutexRankLib.h"
#include "vm_basic_asm.h"
#include "unicodeOperations.h"
-diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h
-index ec9b45aa..dc91e738 100644
--- a/open-vm-tools/lib/include/asyncsocket.h
+++ b/open-vm-tools/lib/include/asyncsocket.h
@@ -164,7 +164,7 @@ typedef struct AsyncSocket AsyncSocket;
@@ -58,8 +52,6 @@ index ec9b45aa..dc91e738 100644
struct IVmdbPoll;
typedef struct AsyncSocketPollParams {
int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
-diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h
-index 46442e55..8bc66997 100644
--- a/open-vm-tools/lib/include/pollImpl.h
+++ b/open-vm-tools/lib/include/pollImpl.h
@@ -44,7 +44,7 @@
@@ -71,24 +63,672 @@ index 46442e55..8bc66997 100644
#include "vm_basic_asm.h"
#if defined(__cplusplus)
-diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h
-similarity index 99%
-rename from open-vm-tools/lib/include/poll.h
-rename to open-vm-tools/lib/include/vm_poll.h
-index 6acd4f35..fbc88494 100644
--- a/open-vm-tools/lib/include/poll.h
-+++ b/open-vm-tools/lib/include/vm_poll.h
-@@ -60,7 +60,7 @@ extern "C" {
- #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
- #include <sys/kernel.h>
- #endif
++++ /dev/null
+@@ -1,330 +0,0 @@
+-/*********************************************************
+- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
+- *
+- * This program is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU Lesser General Public License as published
+- * by the Free Software Foundation version 2.1 and no later version.
+- *
+- * This program is distributed in the hope that it will be useful, but
+- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+- * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
+- * License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public License
+- * along with this program; if not, write to the Free Software Foundation, Inc.,
+- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- *********************************************************/
+-
+-/*********************************************************
+- * The contents of this file are subject to the terms of the Common
+- * Development and Distribution License (the "License") version 1.0
+- * and no later version. You may not use this file except in
+- * compliance with the License.
+- *
+- * You can obtain a copy of the License at
+- * http://www.opensource.org/licenses/cddl1.php
+- *
+- * See the License for the specific language governing permissions
+- * and limitations under the License.
+- *
+- *********************************************************/
+-
+-
+-#ifndef _POLL_H_
+-#define _POLL_H_
+-
+-#define INCLUDE_ALLOW_USERLEVEL
+-#define INCLUDE_ALLOW_VMCORE
+-#include "includeCheck.h"
+-
+-#include "vm_basic_types.h"
+-#include "vm_basic_defs.h"
+-#include "vmware.h"
+-#include "userlock.h"
+-
+-#if defined(__cplusplus)
+-extern "C" {
+-#endif
+-
+-#ifdef _WIN32
+-#define HZ 100
+-#elif defined linux
+-#include <asm/param.h>
+-#elif __APPLE__
+-#include <TargetConditionals.h>
+-/*
+- * Old SDKs don't define TARGET_OS_IPHONE at all.
+- * New ones define it to 0 on Mac OS X, 1 on iOS.
+- */
+-#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
+-#include <sys/kernel.h>
+-#endif
-#include <sys/poll.h>
+-#define HZ 100
+-#endif
+-#ifdef __ANDROID__
+-/*
+- * <poll.h> of android should be included, but its name is same
+- * with this file. So its content is put here to avoid conflict.
+- */
+-#include <asm/poll.h>
+-#define HZ 100
+-typedef unsigned int nfds_t;
+-int poll(struct pollfd *, nfds_t, long);
+-#endif
+-
+-
+-/*
+- * Poll event types: each type has a different reason for firing,
+- * or condition that must be met before firing.
+- */
+-
+-typedef enum {
+- /*
+- * Actual Poll queue types against which you can register callbacks.
+- */
+- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
+- POLL_VTIME = 0,
+- POLL_REALTIME,
+- POLL_DEVICE,
+- POLL_MAIN_LOOP,
+- POLL_NUM_QUEUES
+-} PollEventType;
+-
+-
+-/*
+- * Classes of events
+- *
+- * These are the predefined classes. More can be declared
+- * with Poll_AllocClass().
+- */
+-
+-typedef enum PollClass {
+- POLL_CLASS_MAIN,
+- POLL_CLASS_PAUSE,
+- POLL_CLASS_IPC,
+- POLL_CLASS_CPT,
+- POLL_CLASS_MKS,
+- POLL_FIXED_CLASSES,
+- POLL_DEFAULT_FIXED_CLASSES,
+- /* Size enum to maximum */
+- POLL_MAX_CLASSES = 31,
+-} PollClass;
+-
+-/*
+- * Do not use; Special pseudo private poll class supported by
+- * PollDefault only
+- */
+-#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES
+-#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET)
+-
+-/*
+- * Each callback is registered in a set of classes
+- */
+-
+-typedef struct PollClassSet {
+- uintptr_t bits;
+-} PollClassSet;
+-
+-/* An empty PollClassSet. */
+-static INLINE PollClassSet
+-PollClassSet_Empty(void)
+-{
+- PollClassSet set = { 0 };
+- return set;
+-}
+-
+-/* A PollClassSet with the single member. */
+-static INLINE PollClassSet
+-PollClassSet_Singleton(PollClass c)
+-{
+- PollClassSet s = PollClassSet_Empty();
+-
+- ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8);
+- ASSERT(c < POLL_MAX_CLASSES);
+-
+- s.bits = CONST3264U(1) << c;
+- return s;
+-}
+-
+-/* Combine two PollClassSets. */
+-static INLINE PollClassSet
+-PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
+-{
+- PollClassSet set;
+- set.bits = lhs.bits | rhs.bits;
+- return set;
+-}
+-
+-/* Add single class to PollClassSet. */
+-static INLINE PollClassSet
+-PollClassSet_Include(PollClassSet set, PollClass c)
+-{
+- return PollClassSet_Union(set, PollClassSet_Singleton(c));
+-}
+-
+-
+-#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
+-#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
+- PollClassSet_Singleton(POLL_CLASS_PAUSE))
+-#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
+- PollClassSet_Singleton(POLL_CLASS_CPT))
+-#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
+- PollClassSet_Singleton(POLL_CLASS_IPC))
+-#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
+-#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
+-/*
+- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
+- */
+-#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
+-
+-/*
+- * Poll class-set taxonomy:
+- * POLL_CS_MAIN
+- * - Unless you NEED another class, use POLL_CS_MAIN.
+- * POLL_CS_PAUSE
+- * - For callbacks that must occur even if the guest is paused.
+- * Most VMDB or Foundry commands are in this category.
+- * POLL_CS_CPT
+- * - Only for callbacks which can trigger intermediate Checkpoint
+- * transitions.
+- * The ONLY such callback is Migrate.
+- * POLL_CS_IPC
+- * - Only for callbacks which can contain Msg_(Post|Hint|Question)
+- * responses, and for signal handlers (why)?
+- * Vigor, VMDB, and Foundry can contain Msg_* responses.
+- * POLL_CS_MKS
+- * - Callback runs in MKS thread.
+- * POLL_CS_ALWAYS
+- * - Only for events that must be processed immediately.
+- * The ONLY such callback is OvhdMemVmxSizeCheck.
+- */
+-
+-
+-/*
+- * Poll_Callback flags
+- */
+-
+-#define POLL_FLAG_PERIODIC 0x01 // keep after firing
+-#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
+-#define POLL_FLAG_READ 0x04 // device is ready for reading
+-#define POLL_FLAG_WRITE 0x08 // device is ready for writing
+-#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
+-#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
+-#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
+-#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
+-#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
+-#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
+-
+-
+-typedef void (*PollerFunction)(void *clientData);
+-typedef void (*PollerFireWrapper)(PollerFunction func,
+- void *funcData,
+- void *wrapperData);
+-typedef Bool (*PollerErrorFn)(const char *errorStr);
+-
+-/*
+- * Initialisers:
+- *
+- * For the sake of convenience, we declare the initialisers
+- * for custom implmentations here, even though the actual
+- * implementations are distinct from the core poll code.
+- */
+-
+-typedef struct PollOptions {
+- Bool locked; // Use internal MXUser for locking
+- Bool allowFullQueue; // Don't assert when device event queue is full.
+- VThreadID windowsMsgThread; // thread that processes Windows messages
+- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
+- void *fireWrapperData; // optional
+- PollerErrorFn errorFn; // optional; called upon unrecoverable error
+-} PollOptions;
+-
+-
+-void Poll_InitDefault(void);
+-void Poll_InitDefaultEx(const PollOptions *opts);
+-void Poll_InitGtk(void); // On top of glib for Linux
+-void Poll_InitCF(void); // On top of CoreFoundation for OSX
+-
+-
+-/*
+- * Functions
+- */
+-int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
+-void Poll_Loop(Bool loop, Bool *exit, PollClass c);
+-void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
+-Bool Poll_LockingEnabled(void);
+-void Poll_Exit(void);
+-
+-
+-/*
+- * Poll_Callback adds a callback regardless of whether an identical one exists.
+- * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of
+- * one read and one write callback per fd.
+- *
+- * Poll_CallbackRemove removes one callback. If there are multiple identical
+- * callbacks, which one is removed is an implementation detail. Note that in
+- * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to
+- * create the callback is not specified when removing, so all callbacks
+- * of those types with the same flags, function, and clientData are considered
+- * "identical" even if their fd/delay differed.
+- */
+-
+-VMwareStatus Poll_Callback(PollClassSet classSet,
+- int flags,
+- PollerFunction f,
+- void *clientData,
+- PollEventType type,
+- PollDevHandle info, // fd/microsec delay
+- MXUserRecLock *lck);
+-Bool Poll_CallbackRemove(PollClassSet classSet,
+- int flags,
+- PollerFunction f,
+- void *clientData,
+- PollEventType type);
+-Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
+- int flags,
+- PollerFunction f,
+- PollEventType type,
+- void **clientData);
+-
+-void Poll_NotifyChange(PollClassSet classSet);
+-
+-/*
+- * Wrappers for Poll_Callback and Poll_CallbackRemove that present
+- * simpler subsets of those interfaces.
+- */
+-
+-VMwareStatus Poll_CB_Device(PollerFunction f,
+- void *clientData,
+- PollDevHandle device,
+- Bool periodic);
+-
+-Bool Poll_CB_DeviceRemove(PollerFunction f,
+- void *clientData,
+- Bool periodic);
+-
+-
+-VMwareStatus Poll_CB_RTime(PollerFunction f,
+- void *clientData,
+- int64 delay, // microseconds
+- Bool periodic,
+- MXUserRecLock *lock);
+-
+-Bool Poll_CB_RTimeRemove(PollerFunction f,
+- void *clientData,
+- Bool periodic);
+-
+-
+-#ifdef _WIN32
+-void Poll_SetPumpsWindowsMessages(Bool pumps);
+-void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
+-Bool Poll_FireWndCallback(void *lparam);
+-#endif
+-
+-#if defined(__cplusplus)
+-} // extern "C"
+-#endif
+-
+-#endif // _POLL_H_
+--- /dev/null
++++ b/open-vm-tools/lib/include/vm_poll.h
+@@ -0,0 +1,330 @@
++/*********************************************************
++ * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU Lesser General Public License as published
++ * by the Free Software Foundation version 2.1 and no later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
++ * License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ *********************************************************/
++
++/*********************************************************
++ * The contents of this file are subject to the terms of the Common
++ * Development and Distribution License (the "License") version 1.0
++ * and no later version. You may not use this file except in
++ * compliance with the License.
++ *
++ * You can obtain a copy of the License at
++ * http://www.opensource.org/licenses/cddl1.php
++ *
++ * See the License for the specific language governing permissions
++ * and limitations under the License.
++ *
++ *********************************************************/
++
++
++#ifndef _POLL_H_
++#define _POLL_H_
++
++#define INCLUDE_ALLOW_USERLEVEL
++#define INCLUDE_ALLOW_VMCORE
++#include "includeCheck.h"
++
++#include "vm_basic_types.h"
++#include "vm_basic_defs.h"
++#include "vmware.h"
++#include "userlock.h"
++
++#if defined(__cplusplus)
++extern "C" {
++#endif
++
++#ifdef _WIN32
++#define HZ 100
++#elif defined linux
++#include <asm/param.h>
++#elif __APPLE__
++#include <TargetConditionals.h>
++/*
++ * Old SDKs don't define TARGET_OS_IPHONE at all.
++ * New ones define it to 0 on Mac OS X, 1 on iOS.
++ */
++#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
++#include <sys/kernel.h>
++#endif
+#include <poll.h>
- #define HZ 100
- #endif
- #ifdef __ANDROID__
-diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
-index 8eea7d86..c48f5be2 100644
++#define HZ 100
++#endif
++#ifdef __ANDROID__
++/*
++ * <poll.h> of android should be included, but its name is same
++ * with this file. So its content is put here to avoid conflict.
++ */
++#include <asm/poll.h>
++#define HZ 100
++typedef unsigned int nfds_t;
++int poll(struct pollfd *, nfds_t, long);
++#endif
++
++
++/*
++ * Poll event types: each type has a different reason for firing,
++ * or condition that must be met before firing.
++ */
++
++typedef enum {
++ /*
++ * Actual Poll queue types against which you can register callbacks.
++ */
++ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
++ POLL_VTIME = 0,
++ POLL_REALTIME,
++ POLL_DEVICE,
++ POLL_MAIN_LOOP,
++ POLL_NUM_QUEUES
++} PollEventType;
++
++
++/*
++ * Classes of events
++ *
++ * These are the predefined classes. More can be declared
++ * with Poll_AllocClass().
++ */
++
++typedef enum PollClass {
++ POLL_CLASS_MAIN,
++ POLL_CLASS_PAUSE,
++ POLL_CLASS_IPC,
++ POLL_CLASS_CPT,
++ POLL_CLASS_MKS,
++ POLL_FIXED_CLASSES,
++ POLL_DEFAULT_FIXED_CLASSES,
++ /* Size enum to maximum */
++ POLL_MAX_CLASSES = 31,
++} PollClass;
++
++/*
++ * Do not use; Special pseudo private poll class supported by
++ * PollDefault only
++ */
++#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES
++#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET)
++
++/*
++ * Each callback is registered in a set of classes
++ */
++
++typedef struct PollClassSet {
++ uintptr_t bits;
++} PollClassSet;
++
++/* An empty PollClassSet. */
++static INLINE PollClassSet
++PollClassSet_Empty(void)
++{
++ PollClassSet set = { 0 };
++ return set;
++}
++
++/* A PollClassSet with the single member. */
++static INLINE PollClassSet
++PollClassSet_Singleton(PollClass c)
++{
++ PollClassSet s = PollClassSet_Empty();
++
++ ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8);
++ ASSERT(c < POLL_MAX_CLASSES);
++
++ s.bits = CONST3264U(1) << c;
++ return s;
++}
++
++/* Combine two PollClassSets. */
++static INLINE PollClassSet
++PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
++{
++ PollClassSet set;
++ set.bits = lhs.bits | rhs.bits;
++ return set;
++}
++
++/* Add single class to PollClassSet. */
++static INLINE PollClassSet
++PollClassSet_Include(PollClassSet set, PollClass c)
++{
++ return PollClassSet_Union(set, PollClassSet_Singleton(c));
++}
++
++
++#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
++#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
++ PollClassSet_Singleton(POLL_CLASS_PAUSE))
++#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
++ PollClassSet_Singleton(POLL_CLASS_CPT))
++#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
++ PollClassSet_Singleton(POLL_CLASS_IPC))
++#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
++#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
++/*
++ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
++ */
++#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
++
++/*
++ * Poll class-set taxonomy:
++ * POLL_CS_MAIN
++ * - Unless you NEED another class, use POLL_CS_MAIN.
++ * POLL_CS_PAUSE
++ * - For callbacks that must occur even if the guest is paused.
++ * Most VMDB or Foundry commands are in this category.
++ * POLL_CS_CPT
++ * - Only for callbacks which can trigger intermediate Checkpoint
++ * transitions.
++ * The ONLY such callback is Migrate.
++ * POLL_CS_IPC
++ * - Only for callbacks which can contain Msg_(Post|Hint|Question)
++ * responses, and for signal handlers (why)?
++ * Vigor, VMDB, and Foundry can contain Msg_* responses.
++ * POLL_CS_MKS
++ * - Callback runs in MKS thread.
++ * POLL_CS_ALWAYS
++ * - Only for events that must be processed immediately.
++ * The ONLY such callback is OvhdMemVmxSizeCheck.
++ */
++
++
++/*
++ * Poll_Callback flags
++ */
++
++#define POLL_FLAG_PERIODIC 0x01 // keep after firing
++#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
++#define POLL_FLAG_READ 0x04 // device is ready for reading
++#define POLL_FLAG_WRITE 0x08 // device is ready for writing
++#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
++#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
++#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
++#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
++#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
++#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
++
++
++typedef void (*PollerFunction)(void *clientData);
++typedef void (*PollerFireWrapper)(PollerFunction func,
++ void *funcData,
++ void *wrapperData);
++typedef Bool (*PollerErrorFn)(const char *errorStr);
++
++/*
++ * Initialisers:
++ *
++ * For the sake of convenience, we declare the initialisers
++ * for custom implmentations here, even though the actual
++ * implementations are distinct from the core poll code.
++ */
++
++typedef struct PollOptions {
++ Bool locked; // Use internal MXUser for locking
++ Bool allowFullQueue; // Don't assert when device event queue is full.
++ VThreadID windowsMsgThread; // thread that processes Windows messages
++ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
++ void *fireWrapperData; // optional
++ PollerErrorFn errorFn; // optional; called upon unrecoverable error
++} PollOptions;
++
++
++void Poll_InitDefault(void);
++void Poll_InitDefaultEx(const PollOptions *opts);
++void Poll_InitGtk(void); // On top of glib for Linux
++void Poll_InitCF(void); // On top of CoreFoundation for OSX
++
++
++/*
++ * Functions
++ */
++int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
++void Poll_Loop(Bool loop, Bool *exit, PollClass c);
++void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
++Bool Poll_LockingEnabled(void);
++void Poll_Exit(void);
++
++
++/*
++ * Poll_Callback adds a callback regardless of whether an identical one exists.
++ * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of
++ * one read and one write callback per fd.
++ *
++ * Poll_CallbackRemove removes one callback. If there are multiple identical
++ * callbacks, which one is removed is an implementation detail. Note that in
++ * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to
++ * create the callback is not specified when removing, so all callbacks
++ * of those types with the same flags, function, and clientData are considered
++ * "identical" even if their fd/delay differed.
++ */
++
++VMwareStatus Poll_Callback(PollClassSet classSet,
++ int flags,
++ PollerFunction f,
++ void *clientData,
++ PollEventType type,
++ PollDevHandle info, // fd/microsec delay
++ MXUserRecLock *lck);
++Bool Poll_CallbackRemove(PollClassSet classSet,
++ int flags,
++ PollerFunction f,
++ void *clientData,
++ PollEventType type);
++Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
++ int flags,
++ PollerFunction f,
++ PollEventType type,
++ void **clientData);
++
++void Poll_NotifyChange(PollClassSet classSet);
++
++/*
++ * Wrappers for Poll_Callback and Poll_CallbackRemove that present
++ * simpler subsets of those interfaces.
++ */
++
++VMwareStatus Poll_CB_Device(PollerFunction f,
++ void *clientData,
++ PollDevHandle device,
++ Bool periodic);
++
++Bool Poll_CB_DeviceRemove(PollerFunction f,
++ void *clientData,
++ Bool periodic);
++
++
++VMwareStatus Poll_CB_RTime(PollerFunction f,
++ void *clientData,
++ int64 delay, // microseconds
++ Bool periodic,
++ MXUserRecLock *lock);
++
++Bool Poll_CB_RTimeRemove(PollerFunction f,
++ void *clientData,
++ Bool periodic);
++
++
++#ifdef _WIN32
++void Poll_SetPumpsWindowsMessages(Bool pumps);
++void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
++Bool Poll_FireWndCallback(void *lparam);
++#endif
++
++#if defined(__cplusplus)
++} // extern "C"
++#endif
++
++#endif // _POLL_H_
--- a/open-vm-tools/lib/rpcIn/rpcin.c
+++ b/open-vm-tools/lib/rpcIn/rpcin.c
@@ -57,7 +57,7 @@
@@ -100,16 +740,3 @@ index 8eea7d86..c48f5be2 100644
# include "asyncsocket.h"
# include "vmci_defs.h"
#include "dataMap.h"
-diff --git a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-index 03700937..f0b49ad7 100644
---- a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-+++ b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-@@ -48,7 +48,7 @@
- #include "rpcout.h"
- #include "rabbitmqProxyConst.h"
- #include "vm_basic_types.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #ifdef OPEN_VM_TOOLS
- #include "vmci_sockets.h"
- #include "sslDirect.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
index 88f4f694c..3e4753b2a 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
@@ -14,18 +14,14 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
open-vm-tools/lib/misc/util_misc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/open-vm-tools/lib/misc/util_misc.c b/open-vm-tools/lib/misc/util_misc.c
-index 198c23d2..0ac0a335 100644
--- a/open-vm-tools/lib/misc/util_misc.c
+++ b/open-vm-tools/lib/misc/util_misc.c
-@@ -719,8 +719,8 @@ Util_ExpandString(const char *fileName) // IN file path to expand
+@@ -719,7 +719,7 @@ Util_ExpandString(const char *fileName)
ASSERT(!freeChunk[i]);
chunks[i] = expand;
if (chunks[i] == NULL) {
-- Log("%s: Cannot allocate memory to expand \"%s\" in \"%s\".\n",
-- __FUNCTION__, expand, fileName);
+- Log("%s: Cannot allocate memory to expand $ in \"%s\".\n",
+ Log("%s: Cannot allocate memory to expand in \"%s\".\n",
-+ __FUNCTION__, fileName);
+ __FUNCTION__, fileName);
goto out;
}
- chunkSize[i] = strlen(expand);
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch
deleted file mode 100644
index b5ccffd14..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch
+++ /dev/null
@@ -1,1281 +0,0 @@
-From af9eca8689c97ea8e792902b458a31608286655e Mon Sep 17 00:00:00 2001
-From: Martin Jansa <martin.jansa@lge.com>
-Date: Thu, 13 Jun 2019 16:01:03 +0000
-Subject: [PATCH] Fix new warnings from gcc9
-
-Imported from Fedora:
-https://src.fedoraproject.org/rpms/open-vm-tools/raw/master/f/gcc9-warnings.patch
-
-Upstream bug:
-https://github.com/vmware/open-vm-tools/issues/330
-
-Upstream-Status: Pending
----
- open-vm-tools/hgfsmounter/hgfsmounter.c | 14 +-
- open-vm-tools/lib/hgfsServer/hgfsServer.c | 24 ++-
- open-vm-tools/vmhgfs-fuse/dir.c | 175 ++++++++---------
- open-vm-tools/vmhgfs-fuse/file.c | 217 +++++++++++++---------
- open-vm-tools/vmhgfs-fuse/filesystem.c | 46 ++---
- open-vm-tools/vmhgfs-fuse/fsutil.c | 63 ++++---
- open-vm-tools/vmhgfs-fuse/link.c | 125 +++++++------
- 7 files changed, 367 insertions(+), 297 deletions(-)
-
-diff --git a/open-vm-tools/hgfsmounter/hgfsmounter.c b/open-vm-tools/hgfsmounter/hgfsmounter.c
-index 0921b700..3f6798dc 100644
---- a/open-vm-tools/hgfsmounter/hgfsmounter.c
-+++ b/open-vm-tools/hgfsmounter/hgfsmounter.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2006-2017 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2006-2019 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -514,11 +514,13 @@ ParseFmask(const char *option, // IN: option string along with value
- HgfsMountInfo *mountInfo, // OUT: mount data
- int *flags) // OUT: mount flags
- {
-+ unsigned short fmask = 0;
- ASSERT(option);
- ASSERT(mountInfo);
-
-- if (ParseMask(option, &mountInfo->fmask)) {
-- LOG("Setting mount fmask to %o\n", mountInfo->fmask);
-+ if (ParseMask(option, &fmask)) {
-+ LOG("Setting mount fmask to %o\n", fmask);
-+ mountInfo->fmask = fmask;
- return TRUE;
- }
-
-@@ -548,11 +550,13 @@ ParseDmask(const char *option, // IN: option string along with value
- HgfsMountInfo *mountInfo, // OUT: mount data
- int *flags) // OUT: mount flags
- {
-+ unsigned short dmask = 0;
- ASSERT(option);
- ASSERT(mountInfo);
-
-- if (ParseMask(option, &mountInfo->dmask)) {
-- LOG("Setting mount dmask to %o\n", mountInfo->dmask);
-+ if (ParseMask(option, &dmask)) {
-+ LOG("Setting mount dmask to %o\n", dmask);
-+ mountInfo->dmask = dmask;
- return TRUE;
- }
-
-diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
-index 740c4fed..422383cd 100644
---- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
-+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
-+ * Copyright (C) 1998-2019 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -159,7 +159,7 @@ struct HgfsTransportSessionInfo {
- HgfsServerChannelData channelCapabilities;
- };
-
--/* The input request paramaters object. */
-+/* The input request parameters object. */
- typedef struct HgfsInputParam {
- const void *request; /* Hgfs header followed by operation request */
- size_t requestSize; /* Size of Hgfs header and operation request */
-@@ -2682,8 +2682,8 @@ HgfsSearchHandle2Search(HgfsHandle handle, // IN: handle
- * None
- *
- * Side effects:
-- * If there isnt enough memory to accomodate the new names, those file nodes
-- * that couldnt be updated are deleted.
-+ * If there isn't enough memory to accommodate the new names, those file nodes
-+ * that couldn't be updated are deleted.
- *
- *-----------------------------------------------------------------------------
- */
-@@ -3399,7 +3399,7 @@ HgfsServerSessionReceive(HgfsPacket *packet, // IN: Hgfs Packet
-
- /* Send error if we fail to process the op. */
- if (HGFS_ERROR_SUCCESS != status) {
-- LOG(4, ("Error %d occured parsing the packet\n", (uint32)status));
-+ LOG(4, ("Error %d occurred parsing the packet\n", (uint32)status));
- HgfsServerCompleteRequest(status, 0, input);
- }
- }
-@@ -4131,7 +4131,7 @@ HgfsServerSetSessionCapability(HgfsOp op, // IN: operation code
- result = TRUE;
- }
- }
-- LOG(4, ("%s: Setting capabilitiy flags %x for op code %d %s\n",
-+ LOG(4, ("%s: Setting capability flags %x for op code %d %s\n",
- __FUNCTION__, flags, op, result ? "succeeded" : "failed"));
-
- return result;
-@@ -4143,7 +4143,7 @@ HgfsServerSetSessionCapability(HgfsOp op, // IN: operation code
- *
- * HgfsServerResEnumInit --
- *
-- * Initialize an enumeration of all exisitng resources.
-+ * Initialize an enumeration of all existing resources.
- *
- * Results:
- * The enumeration state object.
-@@ -4239,7 +4239,7 @@ HgfsServerResEnumExit(void *enumState) // IN/OUT: enumeration state
- *
- * HgfsServerEnumerateSharedFolders --
- *
-- * Enumerates all exisitng shared folders and registers shared folders with
-+ * Enumerates all existing shared folders and registers shared folders with
- * directory notification package.
- *
- * Results:
-@@ -6536,11 +6536,13 @@ HgfsServerRead(HgfsInputParam *input) // IN: Input params
- payload = &reply->payload[0];
- }
- if (payload) {
-+ uint32 actualSize = 0;
- status = HgfsPlatformReadFile(readFd, input->session, offset,
- requiredSize, payload,
-- &reply->actualSize);
-+ &actualSize);
- if (HGFS_ERROR_SUCCESS == status) {
- reply->reserved = 0;
-+ reply->actualSize = actualSize;
- replyPayloadSize = sizeof *reply;
-
- if (readUseDataBuffer) {
-@@ -6556,11 +6558,13 @@ HgfsServerRead(HgfsInputParam *input) // IN: Input params
- break;
- }
- case HGFS_OP_READ: {
-+ uint32 actualSize = 0;
- HgfsReplyRead *reply = replyRead;
-
- status = HgfsPlatformReadFile(readFd, input->session, offset, requiredSize,
-- reply->payload, &reply->actualSize);
-+ reply->payload, &actualSize);
- if (HGFS_ERROR_SUCCESS == status) {
-+ reply->actualSize = actualSize;
- replyPayloadSize = sizeof *reply + reply->actualSize;
- } else {
- LOG(4, ("%s: V1 Failed to read-> %d.\n", __FUNCTION__, status));
-diff --git a/open-vm-tools/vmhgfs-fuse/dir.c b/open-vm-tools/vmhgfs-fuse/dir.c
-index 6298a4ea..e71b7afd 100644
---- a/open-vm-tools/vmhgfs-fuse/dir.c
-+++ b/open-vm-tools/vmhgfs-fuse/dir.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -54,38 +54,53 @@ HgfsPackDirOpenRequest(const char *path, // IN: Path of the dir to open
- HgfsOp opUsed, // IN: Op to be used
- HgfsReq *req) // IN/OUT: Packet to write into
- {
-- char *name;
-- unsigned int *nameLength = NULL;
- size_t reqSize;
-- int result;
-
- ASSERT(path);
- ASSERT(req);
- LOG(4, ("Path = %s \n", path));
- switch (opUsed) {
- case HGFS_OP_SEARCH_OPEN_V3: {
-+ int result;
- HgfsRequestSearchOpenV3 *requestV3 = HgfsGetRequestPayload(req);
-
-- /* We'll use these later. */
-- name = requestV3->dirName.name;
-- nameLength = &requestV3->dirName.length;
- requestV3->dirName.flags = 0;
- requestV3->dirName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
- requestV3->dirName.fid = HGFS_INVALID_HANDLE;
- requestV3->reserved = 0;
- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ requestV3->dirName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed\n"));
-+ return -EINVAL;
-+ }
-+ LOG(4, ("After conversion = %s\n", requestV3->dirName.name));
-+ requestV3->dirName.length = result;
-+ reqSize += result;
- break;
- }
-
- case HGFS_OP_SEARCH_OPEN: {
-+ int result;
- HgfsRequestSearchOpen *request;
-
- request = (HgfsRequestSearchOpen *)(HGFS_REQ_PAYLOAD(req));
-
-- /* We'll use these later. */
-- name = request->dirName.name;
-- nameLength = &request->dirName.length;
- reqSize = sizeof *request;
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ request->dirName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed\n"));
-+ return -EINVAL;
-+ }
-+ LOG(4, ("After conversion = %s\n", request->dirName.name));
-+ request->dirName.length = result;
-+ reqSize += result;
- break;
- }
-
-@@ -94,21 +109,7 @@ HgfsPackDirOpenRequest(const char *path, // IN: Path of the dir to open
- return -EPROTO;
- }
-
-- /* Convert to CP name. */
--
-- LOG(4, ("After buildPath = %s\n", path));
-- result = CPName_ConvertTo(path,
-- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-- name);
-- if (result < 0) {
-- LOG(4, ("CP conversion failed\n"));
-- return -EINVAL;
-- }
--
-- LOG(4, ("After conversion = %s\n", name));
--
-- *nameLength = (uint32) result;
-- req->payloadSize = reqSize + result;
-+ req->payloadSize = reqSize;
-
- /* Fill in header here as payloadSize needs to be there. */
- HgfsPackHeader(req, opUsed);
-@@ -149,7 +150,6 @@ HgfsDirOpen(const char* path, // IN: Path of dir to open
- int result;
- HgfsOp opUsed;
- HgfsStatus replyStatus;
-- HgfsHandle *replySearch;
-
- ASSERT(path);
- req = HgfsGetNewRequest();
-@@ -161,16 +161,6 @@ HgfsDirOpen(const char* path, // IN: Path of dir to open
-
- retry:
- opUsed = hgfsVersionSearchOpen;
-- if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
-- HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
--
-- replySearch = &requestV3->search;
--
-- } else {
-- HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
--
-- replySearch = &request->search;
-- }
-
- result = HgfsPackDirOpenRequest(path, opUsed, req);
- if (result != 0) {
-@@ -187,8 +177,14 @@ retry:
-
- switch (result) {
- case 0:
-- *handle = *replySearch;
-- LOG(6, ("Set handle to %u\n", *replySearch));
-+ if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
-+ HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
-+ *handle = requestV3->search;
-+ } else {
-+ HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
-+ *handle = request->search;
-+ }
-+ LOG(6, ("Set handle to %u\n", *handle));
- break;
- case -EPROTO:
- /* Retry with older version(s). Set globally. */
-@@ -626,25 +622,30 @@ HgfsPackCreateDirRequest(const char *path,
- HgfsOp opUsed, // IN: Op to be used.
- HgfsReq *req) // IN/OUT: Packet to write into
- {
-- char *fileName = NULL;
-- uint32 *fileNameLength;
- size_t reqSize;
-- int result;
-+
-
- ASSERT(req);
-
- switch (opUsed) {
- case HGFS_OP_CREATE_DIR_V3: {
-+ int result;
- HgfsRequestCreateDirV3 *requestV3 = HgfsGetRequestPayload(req);
-
- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
-- /* We'll use these later. */
-- fileName = requestV3->fileName.name;
-- fileNameLength = &requestV3->fileName.length;
- requestV3->fileName.flags = 0;
- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
--
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ requestV3->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ requestV3->fileName.length = result;
-+ reqSize += result;
- requestV3->mask = HGFS_CREATE_DIR_MASK;
-
- /* Set permissions. */
-@@ -656,15 +657,23 @@ HgfsPackCreateDirRequest(const char *path,
- break;
- }
- case HGFS_OP_CREATE_DIR_V2: {
-+ int result;
- HgfsRequestCreateDirV2 *requestV2;
-
- requestV2 = (HgfsRequestCreateDirV2 *)(HGFS_REQ_PAYLOAD(req));
-
-- /* We'll use these later. */
-- fileName = requestV2->fileName.name;
-- fileNameLength = &requestV2->fileName.length;
- reqSize = sizeof *requestV2;
-
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ requestV2->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ requestV2->fileName.length = result;
-+ reqSize += result;
- requestV2->mask = HGFS_CREATE_DIR_MASK;
-
- /* Set permissions. */
-@@ -675,15 +684,22 @@ HgfsPackCreateDirRequest(const char *path,
- break;
- }
- case HGFS_OP_CREATE_DIR: {
-+ int result;
- HgfsRequestCreateDir *request;
-
- request = (HgfsRequestCreateDir *)(HGFS_REQ_PAYLOAD(req));
-
-- /* We'll use these later. */
-- fileName = request->fileName.name;
-- fileNameLength = &request->fileName.length;
- reqSize = sizeof *request;
--
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ request->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ request->fileName.length = result;
-+ reqSize += result;
- /* Set permissions. */
- request->permissions = (permsMode & S_IRWXU) >> 6;
- break;
-@@ -693,18 +709,7 @@ HgfsPackCreateDirRequest(const char *path,
- return -EPROTO;
- }
-
--
-- /* Convert to CP name. */
-- result = CPName_ConvertTo(path,
-- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-- fileName);
-- if (result < 0) {
-- LOG(4, ("CP conversion failed.\n"));
-- return -EINVAL;
-- }
--
-- *fileNameLength = result;
-- req->payloadSize = reqSize + result;
-+ req->payloadSize = reqSize;
-
- /* Fill in header here as payloadSize needs to be there. */
- HgfsPackHeader(req, opUsed);
-@@ -827,8 +832,6 @@ HgfsDelete(const char* path, // IN: Path to file
- HgfsReq *req = NULL;
- int result = 0;
- HgfsStatus replyStatus;
-- char *fileName = NULL;
-- uint32 *fileNameLength;
- uint32 reqSize;
- HgfsOp opUsed;
- HgfsAttrInfo newAttr = {0};
-@@ -862,8 +865,17 @@ HgfsDelete(const char* path, // IN: Path to file
-
- reqSize = sizeof(*request) + HgfsGetRequestHeaderSize();
- request->hints = 0;
-- fileName = request->fileName.name;
-- fileNameLength = &request->fileName.length;
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
-+ request->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+ request->fileName.length = result;
-+ reqSize += result;
- request->fileName.fid = HGFS_INVALID_HANDLE;
- request->fileName.flags = 0;
- request->fileName.caseType = HGFS_FILE_NAME_DEFAULT_CASE;
-@@ -874,24 +886,21 @@ HgfsDelete(const char* path, // IN: Path to file
-
- request = (HgfsRequestDelete *)(HGFS_REQ_PAYLOAD(req));
- /* Fill out the request packet. */
-- fileName = request->fileName.name;
-- fileNameLength = &request->fileName.length;
- reqSize = sizeof *request;
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
-+ request->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+ request->fileName.length = result;
-+ reqSize += result;
- }
-
--
-- /* Convert to CP name. */
-- result = CPName_ConvertTo(path,
-- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
-- fileName);
-- if (result < 0) {
-- LOG(4, ("CP conversion failed.\n"));
-- result = -EINVAL;
-- goto out;
-- }
--
-- *fileNameLength = result;
-- req->payloadSize = reqSize + result;
-+ req->payloadSize = reqSize;
-
- /* Fill in header here as payloadSize needs to be there. */
- HgfsPackHeader(req, opUsed);
-diff --git a/open-vm-tools/vmhgfs-fuse/file.c b/open-vm-tools/vmhgfs-fuse/file.c
-index 389ebba8..0b6c48bc 100644
---- a/open-vm-tools/vmhgfs-fuse/file.c
-+++ b/open-vm-tools/vmhgfs-fuse/file.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2013,2017 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2013,2018-2019 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -66,10 +66,7 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file
- HgfsOp opUsed, // IN: Op to use
- HgfsReq *req) // IN/OUT: Packet to write into
- {
-- char *name;
-- uint32 *nameLength;
- size_t reqSize;
-- int result;
- int openMode, openFlags;
-
- ASSERT(path);
-@@ -88,14 +85,22 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file
-
- switch (opUsed) {
- case HGFS_OP_OPEN_V3: {
-+ int result;
- HgfsRequestOpenV3 *requestV3 = HgfsGetRequestPayload(req);
-
- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
-
-- /* We'll use these later. */
-- name = requestV3->fileName.name;
-- nameLength = &requestV3->fileName.length;
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ requestV3->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-
-+ requestV3->fileName.length = result;
-+ reqSize += result;
- /* Linux clients need case-sensitive lookups. */
- requestV3->fileName.flags = 0;
- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
-@@ -122,15 +127,24 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file
- }
-
- case HGFS_OP_OPEN_V2: {
-+ int result;
- HgfsRequestOpenV2 *requestV2;
-
- requestV2 = (HgfsRequestOpenV2 *)(HGFS_REQ_PAYLOAD(req));
-
-- /* We'll use these later. */
-- name = requestV2->fileName.name;
-- nameLength = &requestV2->fileName.length;
- reqSize = sizeof *requestV2;
-
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ requestV2->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+
-+ requestV2->fileName.length = result;
-+ reqSize += result;
- requestV2->mask = mask;
- requestV2->mode = openMode;
- requestV2->flags = openFlags;
-@@ -148,14 +162,23 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file
- break;
- }
- case HGFS_OP_OPEN: {
-+ int result;
- HgfsRequestOpen *request;
-
- request = (HgfsRequestOpen *)(HGFS_REQ_PAYLOAD(req));
-- /* We'll use these later. */
-- name = request->fileName.name;
-- nameLength = &request->fileName.length;
- reqSize = sizeof *request;
-
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-+ request->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+
-+ request->fileName.length = result;
-+ reqSize += result;
- request->mode = openMode;
- request->flags = openFlags;
-
-@@ -168,18 +191,7 @@ HgfsPackOpenRequest(const char *path, // IN: Path to file
- return -EPROTO;
- }
-
--
-- /* Convert to CP name. */
-- result = CPName_ConvertTo(path,
-- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
-- name);
-- if (result < 0) {
-- LOG(4, ("CP conversion failed.\n"));
-- return -EINVAL;
-- }
--
-- *nameLength = (uint32) result;
-- req->payloadSize = reqSize + result;
-+ req->payloadSize = reqSize;
-
- /* Fill in header here as payloadSize needs to be there. */
- HgfsPackHeader(req, opUsed);
-@@ -915,10 +927,6 @@ int
- HgfsRename(const char* from, const char* to)
- {
- HgfsReq *req = NULL;
-- char *oldName;
-- char *newName;
-- uint32 *oldNameLength;
-- uint32 *newNameLength;
- int result = 0;
- uint32 reqSize;
- HgfsOp opUsed;
-@@ -942,33 +950,41 @@ retry:
- if (opUsed == HGFS_OP_RENAME_V3) {
- HgfsRequestRenameV3 *requestV3 = HgfsGetRequestPayload(req);
-
-- oldName = requestV3->oldName.name;
-- oldNameLength = &requestV3->oldName.length;
- requestV3->hints = 0;
- requestV3->oldName.flags = 0;
- requestV3->oldName.fid = HGFS_INVALID_HANDLE;
- requestV3->oldName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
- requestV3->reserved = 0;
- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
-+ /* Convert old name to CP format. */
-+ result = CPName_ConvertTo(from,
-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
-+ requestV3->oldName.name);
-+ if (result < 0) {
-+ LOG(4, ("oldName CP conversion failed\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+
-+ requestV3->oldName.length = result;
-+ reqSize += result;
- } else {
- HgfsRequestRename *request = (HgfsRequestRename *)HGFS_REQ_PAYLOAD(req);
-
-- oldName = request->oldName.name;
-- oldNameLength = &request->oldName.length;
- reqSize = sizeof *request;
-- }
-- /* Convert old name to CP format. */
-- result = CPName_ConvertTo(from,
-- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
-- oldName);
-- if (result < 0) {
-- LOG(4, ("oldName CP conversion failed\n"));
-- result = -EINVAL;
-- goto out;
-- }
-+ /* Convert old name to CP format. */
-+ result = CPName_ConvertTo(from,
-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
-+ request->oldName.name);
-+ if (result < 0) {
-+ LOG(4, ("oldName CP conversion failed\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-
-- *oldNameLength = result;
-- reqSize += result;
-+ request->oldName.length = result;
-+ reqSize += result;
-+ }
-
- /*
- * Build full new name to send to server.
-@@ -983,8 +999,20 @@ retry:
-
- newNameP = (HgfsFileNameV3 *)((char *)&requestV3->oldName +
- sizeof requestV3->oldName + result);
-- newName = newNameP->name;
-- newNameLength = &newNameP->length;
-+
-+ LOG(6, ("New name: \"%s\"\n", newNameP->name));
-+
-+ /* Convert new name to CP format. */
-+ result = CPName_ConvertTo(to,
-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
-+ newNameP->name);
-+ if (result < 0) {
-+ LOG(4, ("newName CP conversion failed\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+ newNameP->length = result;
-+ reqSize += result;
- newNameP->flags = 0;
- newNameP->fid = HGFS_INVALID_HANDLE;
- newNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
-@@ -993,24 +1021,22 @@ retry:
- HgfsFileName *newNameP;
- newNameP = (HgfsFileName *)((char *)&request->oldName +
- sizeof request->oldName + result);
-- newName = newNameP->name;
-- newNameLength = &newNameP->length;
-- }
-
-- LOG(6, ("New name: \"%s\"\n", newName));
-+ LOG(6, ("New name: \"%s\"\n", newNameP->name));
-
-- /* Convert new name to CP format. */
-- result = CPName_ConvertTo(to,
-- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
-- newName);
-- if (result < 0) {
-- LOG(4, ("newName CP conversion failed\n"));
-- result = -EINVAL;
-- goto out;
-+ /* Convert new name to CP format. */
-+ result = CPName_ConvertTo(to,
-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
-+ newNameP->name);
-+ if (result < 0) {
-+ LOG(4, ("newName CP conversion failed\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+ newNameP->length = result;
-+ reqSize += result;
- }
-
-- *newNameLength = result;
-- reqSize += result;
- req->payloadSize = reqSize;
-
- /* Fill in header here as payloadSize needs to be there. */
-@@ -1068,7 +1094,7 @@ retry:
- }
- break;
- default:
-- LOG(4, ("failed with result %d\n", result));
-+ LOG(4, ("Server protocol result %d\n", result));
- }
- break;
- default:
-@@ -1109,21 +1135,17 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- {
- HgfsAttrV2 *attrV2;
- HgfsAttr *attrV1;
-- HgfsAttrHint *hints;
- HgfsAttrChanges *update;
-- char *fileName = NULL;
-- uint32 *fileNameLength = NULL;
- size_t reqBufferSize;
- size_t reqSize;
-- int result = 0;
- ASSERT(req);
-
- switch (opUsed) {
- case HGFS_OP_SETATTR_V3: {
-+ int result;
- HgfsRequestSetattrV3 *requestV3 = HgfsGetRequestPayload(req);
-
- attrV2 = &requestV3->attr;
-- hints = &requestV3->hints;
-
- /*
- * Clear attributes, mask, and hints before touching them.
-@@ -1131,7 +1153,7 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- * make sure to zero them all here.
- */
- memset(attrV2, 0, sizeof *attrV2);
-- memset(hints, 0, sizeof *hints);
-+ requestV3->hints = 0;
-
- /*
- * When possible, issue a setattr using an existing handle. This will
-@@ -1143,14 +1165,21 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- * the times also requires write permissions on Windows, so we require it
- * here too. Otherwise, any handle will do.
- */
-- fileName = requestV3->fileName.name;
-- fileNameLength = &requestV3->fileName.length;
- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
- requestV3->fileName.flags = 0;
- requestV3->reserved = 0;
- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
- reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
-+ result = CPName_ConvertTo(path,
-+ reqBufferSize,
-+ requestV3->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ requestV3->fileName.length = result;
-+ reqSize += result;
-
- attrV2->mask = attr->mask;
- if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
-@@ -1173,22 +1202,22 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- }
- if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
- attrV2->accessTime = attr->accessTime;
-- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
-+ requestV3->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
- }
- if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
- attrV2->writeTime = attr->writeTime;
-- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
-+ requestV3->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
- }
-
- break;
- }
- case HGFS_OP_SETATTR_V2: {
-+ int result;
- HgfsRequestSetattrV2 *requestV2;
-
- requestV2 = (HgfsRequestSetattrV2 *)(HGFS_REQ_PAYLOAD(req));
-
- attrV2 = &requestV2->attr;
-- hints = &requestV2->hints;
-
- /*
- * Clear attributes, mask, and hints before touching them.
-@@ -1196,13 +1225,19 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- * make sure to zero them all here.
- */
- memset(attrV2, 0, sizeof *attrV2);
-- memset(hints, 0, sizeof *hints);
--
-- fileName = requestV2->fileName.name;
-- fileNameLength = &requestV2->fileName.length;
-+ requestV2->hints = 0;
-
- reqSize = sizeof *requestV2;
- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
-+ result = CPName_ConvertTo(path,
-+ reqBufferSize,
-+ requestV2->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ requestV2->fileName.length = result;
-+ reqSize += result;
-
- if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
- HGFS_ATTR_VALID_OWNER_PERMS |
-@@ -1224,16 +1259,17 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- }
- if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
- attrV2->accessTime = attr->accessTime;
-- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
-+ requestV2->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
- }
- if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
- attrV2->writeTime = attr->writeTime;
-- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
-+ requestV2->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
- }
-
- break;
- }
- case HGFS_OP_SETATTR: {
-+ int result;
- HgfsRequestSetattr *request;
-
- request = (HgfsRequestSetattr *)(HGFS_REQ_PAYLOAD(req));
-@@ -1241,11 +1277,17 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- attrV1 = &request->attr;
- update = &request->update;
-
-- /* We'll use these later. */
-- fileName = request->fileName.name;
-- fileNameLength = &request->fileName.length;
- reqSize = sizeof *request;
- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, request);
-+ result = CPName_ConvertTo(path,
-+ reqBufferSize,
-+ request->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ request->fileName.length = result;
-+ reqSize += result;
-
- /*
- * Clear attributes before touching them.
-@@ -1284,16 +1326,7 @@ HgfsPackSetattrRequest(const char *path, // IN: path to file
- return -EPROTO;
- }
-
-- result = CPName_ConvertTo(path,
-- reqBufferSize,
-- fileName);
-- if (result < 0) {
-- LOG(4, ("CP conversion failed.\n"));
-- return -EINVAL;
-- }
--
-- *fileNameLength = result;
-- req->payloadSize = reqSize + result;
-+ req->payloadSize = reqSize;
-
- /* Fill in header here as payloadSize needs to be there. */
- HgfsPackHeader(req, opUsed);
-diff --git a/open-vm-tools/vmhgfs-fuse/filesystem.c b/open-vm-tools/vmhgfs-fuse/filesystem.c
-index fb9d547d..1931a5d2 100644
---- a/open-vm-tools/vmhgfs-fuse/filesystem.c
-+++ b/open-vm-tools/vmhgfs-fuse/filesystem.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -123,36 +123,50 @@ HgfsPackQueryVolumeRequest(const char *path, // IN: File pointer for this
- HgfsOp opUsed, // IN: Op to be used.
- HgfsReq *req) // IN/OUT: Packet to write into
- {
-- char *name;
-- uint32 *nameLength;
- size_t requestSize;
-- int result;
-+
-
- ASSERT(req);
-
- switch (opUsed) {
- case HGFS_OP_QUERY_VOLUME_INFO_V3: {
-+ int result;
- HgfsRequestQueryVolumeV3 *requestV3 = HgfsGetRequestPayload(req);
-
-- /* We'll use these later. */
-- name = requestV3->fileName.name;
-- nameLength = &requestV3->fileName.length;
- requestV3->fileName.flags = 0;
- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
- requestV3->reserved = 0;
- requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
-+ requestV3->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ requestV3->fileName.length = result;
-+ requestSize += result;
- break;
- }
- case HGFS_OP_QUERY_VOLUME_INFO: {
-+ int result;
- HgfsRequestQueryVolume *request;
-
- request = (HgfsRequestQueryVolume *)(HGFS_REQ_PAYLOAD(req));
-
-- /* We'll use these later. */
-- name = request->fileName.name;
-- nameLength = &request->fileName.length;
- requestSize = sizeof *request;
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
-+ request->fileName.name);
-+ if (result < 0) {
-+ LOG(4, ("CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ request->fileName.length = result;
-+ requestSize += result;
- break;
- }
- default:
-@@ -160,17 +174,7 @@ HgfsPackQueryVolumeRequest(const char *path, // IN: File pointer for this
- return -EPROTO;
- }
-
-- /* Convert to CP name. */
-- result = CPName_ConvertTo(path,
-- HGFS_LARGE_PACKET_MAX - (requestSize - 1),
-- name);
-- if (result < 0) {
-- LOG(4, ("CP conversion failed.\n"));
-- return -EINVAL;
-- }
--
-- *nameLength = (uint32) result;
-- req->payloadSize = requestSize + result;
-+ req->payloadSize = requestSize;
-
- /* Fill in header here as payloadSize needs to be there. */
- HgfsPackHeader(req, opUsed);
-diff --git a/open-vm-tools/vmhgfs-fuse/fsutil.c b/open-vm-tools/vmhgfs-fuse/fsutil.c
-index 042c223c..af85c405 100644
---- a/open-vm-tools/vmhgfs-fuse/fsutil.c
-+++ b/open-vm-tools/vmhgfs-fuse/fsutil.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -189,8 +189,6 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer
- size_t reqBufferSize;
- size_t reqSize;
- int result = 0;
-- char *fileName = NULL;
-- uint32 *fileNameLength = NULL;
- ASSERT(attr);
- ASSERT(req);
- ASSERT(path);
-@@ -204,8 +202,6 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer
-
- /* Fill out the request packet. */
- requestV3->hints = 0;
-- fileName = requestV3->fileName.name;
-- fileNameLength = &requestV3->fileName.length;
- requestV3->fileName.flags = 0;
- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
-@@ -213,6 +209,19 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer
- requestV3->reserved = 0;
- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
- reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
-+ if (requestV3->fileName.name != NULL) {
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ reqBufferSize,
-+ requestV3->fileName.name);
-+ LOG(8, ("Converted path %s\n", requestV3->fileName.name));
-+ if (result < 0) {
-+ LOG(8, ("CP conversion failed.\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+ requestV3->fileName.length = result;
-+ }
- break;
- }
-
-@@ -223,20 +232,42 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer
-
- requestV2 = (HgfsRequestGetattrV2 *)(HGFS_REQ_PAYLOAD(req));
- requestV2->hints = 0;
-- fileName = requestV2->fileName.name;
-- fileNameLength = &requestV2->fileName.length;
- reqSize = sizeof *requestV2;
- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
-+ if (requestV2->fileName.name != NULL) {
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ reqBufferSize,
-+ requestV2->fileName.name);
-+ LOG(8, ("Converted path %s\n", requestV2->fileName.name));
-+ if (result < 0) {
-+ LOG(8, ("CP conversion failed.\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+ requestV2->fileName.length = result;
-+ }
- break;
- }
-
- case HGFS_OP_GETATTR: {
- HgfsRequestGetattr *requestV1;
- requestV1 = (HgfsRequestGetattr *)(HGFS_REQ_PAYLOAD(req));
-- fileName = requestV1->fileName.name;
-- fileNameLength = &requestV1->fileName.length;
- reqSize = sizeof *requestV1;
- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV1);
-+ if (requestV1->fileName.name != NULL) {
-+ /* Convert to CP name. */
-+ result = CPName_ConvertTo(path,
-+ reqBufferSize,
-+ requestV1->fileName.name);
-+ LOG(8, ("Converted path %s\n", requestV1->fileName.name));
-+ if (result < 0) {
-+ LOG(8, ("CP conversion failed.\n"));
-+ result = -EINVAL;
-+ goto out;
-+ }
-+ requestV1->fileName.length = result;
-+ }
- break;
- }
-
-@@ -246,20 +277,6 @@ HgfsPackGetattrRequest(HgfsReq *req, // IN/OUT: Request buffer
- goto out;
- }
-
-- if (fileName != NULL) {
-- /* Convert to CP name. */
-- result = CPName_ConvertTo(path,
-- reqBufferSize,
-- fileName);
-- LOG(8, ("Converted path %s\n", fileName));
-- if (result < 0) {
-- LOG(8, ("CP conversion failed.\n"));
-- result = -EINVAL;
-- goto out;
-- }
-- *fileNameLength = result;
-- }
--
- req->payloadSize = reqSize + result;
-
- /* Fill in header here as payloadSize needs to be there. */
-diff --git a/open-vm-tools/vmhgfs-fuse/link.c b/open-vm-tools/vmhgfs-fuse/link.c
-index a00e8446..777eb76e 100644
---- a/open-vm-tools/vmhgfs-fuse/link.c
-+++ b/open-vm-tools/vmhgfs-fuse/link.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -51,36 +51,81 @@ HgfsPackSymlinkCreateRequest(const char* symlink, // IN: path of the link
- {
- HgfsRequestSymlinkCreateV3 *requestV3 = NULL;
- HgfsRequestSymlinkCreate *request = NULL;
-- char *symlinkName;
-- uint32 *symlinkNameLength;
-- char *targetName;
-- uint32 *targetNameLength;
- size_t targetNameBytes;
--
- size_t requestSize;
-- int result;
-+
-+ targetNameBytes = strlen(symname) + 1;
-
- switch (opUsed) {
- case HGFS_OP_CREATE_SYMLINK_V3: {
-+ int result;
-+ HgfsFileNameV3 *fileNameP;
- requestV3 = HgfsGetRequestPayload(req);
-
-- /* We'll use these later. */
-- symlinkName = requestV3->symlinkName.name;
-- symlinkNameLength = &requestV3->symlinkName.length;
- requestV3->symlinkName.flags = 0;
- requestV3->symlinkName.fid = HGFS_INVALID_HANDLE;
- requestV3->symlinkName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
- requestV3->reserved = 0;
- requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
-+ /* Convert symlink name to CP format. */
-+ result = CPName_ConvertTo(symlink,
-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
-+ requestV3->symlinkName.name);
-+ if (result < 0) {
-+ LOG(4, ("SymlinkName CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ requestV3->symlinkName.length = result;
-+ requestSize += result;
-+
-+ /* Copy target name into request packet. */
-+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
-+ LOG(4, ("Target name is too long.\n"));
-+ return -EINVAL;
-+ }
-+
-+ fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
-+ sizeof requestV3->symlinkName + result);
-+ memcpy(fileNameP->name, symname, targetNameBytes);
-+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
-+ /* Convert target name to CPName-lite format. */
-+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
-+ fileNameP->length = targetNameBytes - 1;
-+ fileNameP->flags = 0;
-+ fileNameP->fid = HGFS_INVALID_HANDLE;
-+ fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
- break;
- }
- case HGFS_OP_CREATE_SYMLINK: {
-+ int result;
-+ HgfsFileName *fileNameP;
- request = (HgfsRequestSymlinkCreate *)(HGFS_REQ_PAYLOAD(req));
-
-- /* We'll use these later. */
-- symlinkName = request->symlinkName.name;
-- symlinkNameLength = &request->symlinkName.length;
- requestSize = sizeof *request;
-+ /* Convert symlink name to CP format. */
-+ result = CPName_ConvertTo(symlink,
-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
-+ request->symlinkName.name);
-+ if (result < 0) {
-+ LOG(4, ("SymlinkName CP conversion failed.\n"));
-+ return -EINVAL;
-+ }
-+ request->symlinkName.length = result;
-+ requestSize += result;
-+
-+ /* Copy target name into request packet. */
-+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
-+ LOG(4, ("Target name is too long.\n"));
-+ return -EINVAL;
-+ }
-+
-+ fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
-+ sizeof request->symlinkName + result);
-+ memcpy(fileNameP->name, symname, targetNameBytes);
-+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
-+ /* Convert target name to CPName-lite format. */
-+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
-+ fileNameP->length = targetNameBytes - 1;
- break;
- }
- default:
-@@ -88,59 +133,13 @@ HgfsPackSymlinkCreateRequest(const char* symlink, // IN: path of the link
- return -EPROTO;
- }
-
--
-- /* Convert symlink name to CP format. */
-- result = CPName_ConvertTo(symlink,
-- HGFS_LARGE_PACKET_MAX - (requestSize - 1),
-- symlinkName);
-- if (result < 0) {
-- LOG(4, ("SymlinkName CP conversion failed.\n"));
-- return -EINVAL;
-- }
--
-- *symlinkNameLength = result;
-- req->payloadSize = requestSize + result;
-+ req->payloadSize = requestSize;
-
- /*
-- * Note the different buffer length. This is because HgfsRequestSymlink
-- * contains two filenames, and once we place the first into the packet we
-- * must account for it when determining the amount of buffer available for
-- * the second.
-- *
-- * Also note that targetNameBytes accounts for the NUL character. Once
-- * we've converted it to CP name, it won't be NUL-terminated and the length
-- * of the string in the packet itself won't account for it.
-+ * targetNameBytes accounts for the NUL character. Once we've converted
-+ * it to CP name, it won't be NUL-terminated and the length of the string
-+ * in the packet itself won't account for it.
- */
-- if (opUsed == HGFS_OP_CREATE_SYMLINK_V3) {
-- HgfsFileNameV3 *fileNameP;
-- fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
-- sizeof requestV3->symlinkName + result);
-- targetName = fileNameP->name;
-- targetNameLength = &fileNameP->length;
-- fileNameP->flags = 0;
-- fileNameP->fid = HGFS_INVALID_HANDLE;
-- fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
-- } else {
-- HgfsFileName *fileNameP;
-- fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
-- sizeof request->symlinkName + result);
-- targetName = fileNameP->name;
-- targetNameLength = &fileNameP->length;
-- }
-- targetNameBytes = strlen(symname) + 1;
--
-- /* Copy target name into request packet. */
-- if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
-- LOG(4, ("Target name is too long.\n"));
-- return -EINVAL;
-- }
-- memcpy(targetName, symname, targetNameBytes);
-- LOG(6, ("Target name: \"%s\"\n", targetName));
--
-- /* Convert target name to CPName-lite format. */
-- CPNameLite_ConvertTo(targetName, targetNameBytes - 1, '/');
--
-- *targetNameLength = targetNameBytes - 1;
- req->payloadSize += targetNameBytes - 1;
-
- /* Fill in header here as payloadSize needs to be there. */
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_11.0.1.bb
index 63a64fc71..9e4aa4881 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_11.0.1.bb
@@ -38,10 +38,12 @@ SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \
- file://0014-Fix-new-warnings-from-gcc9.patch;patchdir=.. \
+ file://0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch;patchdir=.. \
+ file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \
+ file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
"
-# stable-10.3.5
-SRCREV = "f2ff192717375b95a6b7e278fb47dbb3d3bc56d1"
+
+SRCREV = "d3edfd142a81096f9f58aff17d84219b457f4987"
S = "${WORKDIR}/git/open-vm-tools"
@@ -56,8 +58,8 @@ SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
--disable-tests --without-gtkmm --without-xerces --without-pam \
- --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \
- --without-root-privileges --without-kernel-modules"
+ --disable-vgauth --disable-deploypkg \
+ --without-root-privileges --without-kernel-modules --with-tirpc"
NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
index 67b7c2975..08b2e3c23 100644
--- a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -56,10 +56,6 @@ FILES_${PN}-dbg += " \
INSANE_SKIP_${PN} += "dev-deps"
-do_install_append() {
- rm -r ${D}/${localstatedir}/run
-}
-
do_install () {
rm -rf ${D}
install -d ${D}/etc
@@ -87,4 +83,6 @@ do_install () {
install -dm 755 ${D}${localstatedir}/run/openct
touch ${D}${localstatedir}/run/openct/status
chmod 644 ${D}${localstatedir}/run/openct/status
+
+ rm -r ${D}/${localstatedir}/run
}
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb
index 77b5dd60c..5e89db097 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb
@@ -64,6 +64,7 @@ EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
-DCMAKE_SKIP_RPATH=ON \
-DOPENCV_ICV_HASH=${IPP_MD5} \
-DIPPROOT=${WORKDIR}/ippicv_lnx \
+ -DOPENCV_GENERATE_PKGCONFIG=ON \
${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb
index bc1722e39..a1e29dd46 100644
--- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb
@@ -16,20 +16,23 @@ SRCREV = "f1691fc91fc113191c3a8aaf5facd6983334ec47"
SRC_URI = "git://github.com/OpenSC/OpenSC \
file://0001-Remove-redundant-logging.patch \
"
-DEPENDS = "openct pcsc-lite virtual/libiconv openssl"
+DEPENDS = "virtual/libiconv openssl"
S = "${WORKDIR}/git"
inherit autotools pkgconfig bash-completion
EXTRA_OECONF = " \
--disable-static \
- --enable-openct \
- --disable-pcsc \
--disable-ctapi \
--disable-doc \
"
EXTRA_OEMAKE = "DESTDIR=${D}"
+PACKAGECONFIG ??= "pcsc"
+
+PACKAGECONFIG[openct] = "--enable-openct,--disable-openct,openct"
+PACKAGECONFIG[pcsc] = "--enable-pcsc,--disable-pcsc,pcsc-lite"
+
RDEPENDS_${PN} = "readline"
FILES_${PN} += "\
@@ -42,3 +45,5 @@ FILES_${PN}-dev += "\
${libdir}/pkcs11/onepin-opensc-pkcs11.so \
${libdir}/pkcs11/pkcs11-spy.so \
"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.25.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.25.bb
index a87c228a8..6869e2cf9 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.25.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.25.bb
@@ -9,7 +9,6 @@ LICENSE_${PN}-dbg = "BSD & GPLv3+"
LICENSE_${PN}-spy = "GPLv3+"
LICENSE_${PN}-spy-dev = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=628c01ba985ecfa21677f5ee2d5202f6"
-DEPENDS = "udev"
SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2"
SRC_URI[md5sum] = "c20650a36062ab1689f37f3302c988f2"
@@ -19,19 +18,21 @@ inherit autotools systemd pkgconfig
EXTRA_OECONF = " \
--disable-libusb \
- --enable-libudev \
--enable-usbdropdir=${libdir}/pcsc/drivers \
"
S = "${WORKDIR}/pcsc-lite-${PV}"
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} udev"
+PACKAGECONFIG_class-native ??= ""
PACKAGECONFIG[systemd] = ",--disable-libsystemd,systemd,"
+PACKAGECONFIG[udev] = "--enable-libudev,--disable-libudev,udev"
PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev"
RRECOMMENDS_${PN} = "ccid"
+RRECOMMENDS_${PN}_class-native = ""
FILES_${PN} = "${sbindir}/pcscd"
FILES_${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}"
@@ -50,3 +51,5 @@ RREPLACES_${PN} += "${PN}-systemd"
RCONFLICTS_${PN} += "${PN}-systemd"
SYSTEMD_SERVICE_${PN} = "pcscd.socket"
RDEPENDS_${PN}-spy +="python"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
index 5a21cd3fc..04133c1b3 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
@@ -12,4 +12,4 @@ SRC_URI[sha256sum] = "f4b59eef4a94b1d29dbe0c106dd00cdc630e47f18619fc754e5afbf572
FILES_${PN} = "${libdir}/pidgin/*"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch
new file mode 100644
index 000000000..87a6435f7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch
@@ -0,0 +1,50 @@
+From 1110d3036e73d0571f70f6758f3179e5048c0b5d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Nov 2019 11:07:42 -0800
+Subject: [PATCH] Align structs casts with time_t elements to 8byte boundary
+
+This helps with 64bit time_t conversion, especially where these
+structures are typcasted to another struct types which have time_t
+element, that now increases the natural alignment boundary of structures
+to 8-bytes.
+
+Fixes
+../../../pidgin-sipe-1.25.0/src/core/sipe-user.c:124:43: error: cast from 'struct sipe_core_public *' to 'struct sipe_core_private *' increases required alignment from 4 to 8 [-Werror,-Wcast-align]
+ struct sipe_core_private *sipe_private = SIPE_CORE_PRIVATE;
+ ^~~~~~~~~~~~~~~~~
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/api/sipe-core.h | 2 +-
+ src/core/sipe-http-transport.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/api/sipe-core.h b/src/api/sipe-core.h
+index cde0a9c..bd818bb 100644
+--- a/src/api/sipe-core.h
++++ b/src/api/sipe-core.h
+@@ -148,7 +148,7 @@ struct sipe_core_public {
+
+ /* server information */
+ /* currently nothing */
+-};
++} __attribute__((aligned(8)));
+
+ /**
+ * Initialize & destroy functions for the SIPE core
+diff --git a/src/core/sipe-http-transport.h b/src/core/sipe-http-transport.h
+index d82cd1b..08eb150 100644
+--- a/src/core/sipe-http-transport.h
++++ b/src/core/sipe-http-transport.h
+@@ -46,7 +46,7 @@ struct sipe_http_connection_public {
+ gchar *host;
+ guint32 port;
+ gboolean connected;
+-};
++} __attribute__((aligned(8)));
+
+ /**
+ * Check if we're shutting down the HTTP stack
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch
new file mode 100644
index 000000000..e7a72953d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch
@@ -0,0 +1,31 @@
+From ae6fa551907006c612cca98b87f339d4d6f45e25 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 11 Nov 2019 21:08:11 -0800
+Subject: [PATCH] sipe: consider 64bit time_t when printing
+
+This helps printing 64bit time_t on 32bit architectures
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/core/sipe-utils.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/core/sipe-utils.c b/src/core/sipe-utils.c
+index 12ff8d6..d3d4071 100644
+--- a/src/core/sipe-utils.c
++++ b/src/core/sipe-utils.c
+@@ -414,8 +414,8 @@ sipe_utils_time_to_str(time_t timestamp)
+ if (result)
+ return(result);
+
+- SIPE_DEBUG_ERROR("sipe_utils_time_to_str: failed to convert %lu to ISO8601 string",
+- timestamp);
++ SIPE_DEBUG_ERROR("sipe_utils_time_to_str: failed to convert %lld to ISO8601 string",
++ (long long int)timestamp);
+ return(g_strdup(""));
+ }
+
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
index 1d739874b..99fcf3c6d 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
@@ -8,6 +8,8 @@ DEPENDS = "pidgin gmime intltool-native glib-2.0-native"
inherit autotools gettext pkgconfig
SRC_URI = "${SOURCEFORGE_MIRROR}/sipe/pidgin-sipe-${PV}.tar.xz \
+ file://0001-sipe-consider-64bit-time_t-when-printing.patch \
+ file://0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch \
"
SRC_URI[md5sum] = "0e742f021dc8c3f17435aea05c3e0314"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch
deleted file mode 100644
index 72d89d09b..000000000
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ed04c97abe015a226269de391e36c4d251292725 Mon Sep 17 00:00:00 2001
-From: Francis ANDRE <francis.andre.kampbell@orange.fr>
-Date: Sun, 6 May 2018 12:28:25 +0200
-Subject: [PATCH] Support of arch riscv64 by Manuel A. Fernandez Montecelo
- <mafm@debian.org>
-
----
- Foundation/include/Poco/Platform.h | 6 +++++-
- Foundation/src/utils.h | 1 +
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
---- a/Foundation/include/Poco/Platform.h
-+++ b/Foundation/include/Poco/Platform.h
-@@ -134,6 +134,7 @@
- #define POCO_ARCH_NIOS2 0x0e
- #define POCO_ARCH_AARCH64 0x0f
- #define POCO_ARCH_ARM64 0x0f // same as POCO_ARCH_AARCH64
-+#define POCO_ARCH_RISCV64 0x10
-
-
- #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
-@@ -224,6 +225,9 @@
- #elif defined(__AARCH64EB__)
- #define POCO_ARCH POCO_ARCH_AARCH64
- #define POCO_ARCH_BIG_ENDIAN 1
-+#elif defined(__riscv) && (__riscv_xlen == 64)
-+ #define POCO_ARCH POCO_ARCH_RISCV64
-+ #define POCO_ARCH_LITTLE_ENDIAN 1
- #endif
-
-
---- a/Foundation/src/utils.h
-+++ b/Foundation/src/utils.h
-@@ -63,6 +63,7 @@
- defined(__SH4__) || defined(__alpha__) || \
- defined(_MIPS_ARCH_MIPS32R2) || \
- defined(__AARCH64EL__) || \
-+ defined(__riscv) || \
- defined(nios2) || defined(__nios2) || defined(__nios2__)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-riscv-Enable-double-operations-when-using-double-flo.patch b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-riscv-Enable-double-operations-when-using-double-flo.patch
new file mode 100644
index 000000000..c0de32daf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-riscv-Enable-double-operations-when-using-double-flo.patch
@@ -0,0 +1,28 @@
+From 589a5442a841b156a1890bc2d26e7a5103e2f672 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 1 Nov 2019 17:53:50 -0700
+Subject: [PATCH] riscv: Enable double operations when using double float abi
+
+Upstream-Status: Submitted [https://github.com/pocoproject/poco/pull/2825]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Foundation/src/utils.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h
+index 69cea1aca..ff7a5c9ce 100644
+--- a/Foundation/src/utils.h
++++ b/Foundation/src/utils.h
+@@ -63,7 +63,8 @@
+ defined(__SH4__) || defined(__alpha__) || \
+ defined(_MIPS_ARCH_MIPS32R2) || \
+ defined(__AARCH64EL__) || \
+- defined(nios2) || defined(__nios2) || defined(__nios2__)
++ defined(nios2) || defined(__nios2) || defined(__nios2__) || \
++ (defined(__riscv) && defined(__riscv_float_abi_double))
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+ #if defined(_WIN32)
+--
+2.23.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
index 70b251034..c854481de 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
@@ -11,10 +11,10 @@ DEPENDS = "libpcre zlib"
SRC_URI = " \
git://github.com/pocoproject/poco.git;branch=poco-${PV} \
file://0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch \
- file://0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch \
+ file://0001-riscv-Enable-double-operations-when-using-double-flo.patch \
file://run-ptest \
"
-SRCREV = "daf00da73ab917e4d4581e3aa00c0ee61e0cc58b"
+SRCREV = "b95393dcc3640807838e8323b4e600e54d2e8116"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
index 18f508519..05e0abede 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
@@ -13,11 +13,9 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
cmake/modules/PopplerMacros.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake
-index ccb2790..0f392cb 100644
--- a/cmake/modules/PopplerMacros.cmake
+++ b/cmake/modules/PopplerMacros.cmake
-@@ -125,14 +125,14 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+@@ -123,14 +123,14 @@ if(CMAKE_COMPILER_IS_GNUCXX)
set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
@@ -34,5 +32,21 @@ index ccb2790..0f392cb 100644
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}")
set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}")
set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cflags}")
---
-2.14.3
+@@ -167,7 +167,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL
+ set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
+
+ set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+- set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE")
++ set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cxxflags}")
+ # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
+@@ -175,7 +175,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL
+ set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}")
+ set(_save_cflags "${CMAKE_C_FLAGS}")
+- set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE")
++ set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE ${_save_cflags}")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}")
+ # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.80.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.82.0.bb
index 338af1d87..37f859353 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.80.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.82.0.bb
@@ -6,8 +6,8 @@ SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
file://0001-Do-not-overwrite-all-our-build-flags.patch \
file://basename-include.patch \
"
-SRC_URI[md5sum] = "8ff9964d1fcc9c334a9c66f6f426ab9c"
-SRC_URI[sha256sum] = "4d3ca6b79bc13b8e24092e34f83ef5f387f3bb0bbd7359a6c078e09c696d104f"
+SRC_URI[md5sum] = "4d6106c2382c5e66072e0b355acc3640"
+SRC_URI[sha256sum] = "234f8e573ea57fb6a008e7c1e56bfae1af5d1adf0e65f47555e1ae103874e4df"
DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
diff --git a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
index 82b803a4d..14fbc94b2 100644
--- a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
@@ -18,7 +18,7 @@ SRC_URI[sha256sum] = "fbed745438bb0c21467b60cbd67c8148a9289b5ebc7482d06db443bea5
S = "${WORKDIR}/Remmina-v${PV}"
-inherit cmake distro_features_check
+inherit cmake features_check
# depends on avahi-ui with this restriction
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
index f5518bd8c..dba89d181 100644
--- a/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -17,7 +17,7 @@ PV = "1.10.1+git${SRCPV}"
S = "${WORKDIR}/git"
-inherit cmake distro_features_check
+inherit cmake features_check
EXTRA_OECMAKE += "-DSYNERGY_BUILD_LEGACY_GUI=OFF"
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch
index 0fc40be4a..b5bfcd025 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch
@@ -1,6 +1,3 @@
-From caeccb7bec45f65bc89efa8195b3853368328361 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 17 Sep 2018 12:49:36 +0800
Subject: [PATCH] syslog-ng: fix segment fault during service start on arm64
service start failed since segment fault on arch arm64,
@@ -17,12 +14,15 @@ https://github.com/buytenh/ivykis/issues/15
Upstream-Status: Pending
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Update for 3.24.1.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
- lib/ivykis/src/pthr.h | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
+ lib/ivykis/src/pthr.h | 23 ++++++++++++-----------
+ 1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/lib/ivykis/src/pthr.h b/lib/ivykis/src/pthr.h
-index a41eaf3..72c5190 100644
+index 29e4be7..5d29096 100644
--- a/lib/ivykis/src/pthr.h
+++ b/lib/ivykis/src/pthr.h
@@ -24,6 +24,16 @@
@@ -47,12 +47,12 @@ index a41eaf3..72c5190 100644
#ifdef HAVE_PRAGMA_WEAK
-/*
-- * On Linux, pthread_atfork() is defined in libpthread_nonshared.a,
-- * a static library, and we want to avoid "#pragma weak" for that
-- * symbol because that causes it to be undefined even if you link
-- * libpthread_nonshared.a in explicitly.
+- * On Linux, pthread_atfork() is defined in libc_nonshared.a (for
+- * glibc >= 2.28) or libpthread_nonshared.a (for glibc <= 2.27), and
+- * we want to avoid "#pragma weak" for that symbol because that causes
+- * it to be undefined even if you link lib*_nonshared.a in explicitly.
- */
--#ifndef HAVE_LIBPTHREAD_NONSHARED
+-#if !defined(HAVE_LIBC_NONSHARED) && !defined(HAVE_LIBPTHREAD_NONSHARED)
-#pragma weak pthread_atfork
-#endif
-
@@ -60,16 +60,15 @@ index a41eaf3..72c5190 100644
#pragma weak pthread_create
#pragma weak pthread_detach
#pragma weak pthread_getspecific
-@@ -73,8 +74,7 @@ static inline int
+@@ -73,7 +74,7 @@ static inline int
pthr_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void))
{
if (pthreads_available())
- return pthread_atfork(prepare, parent, child);
--
+ return __register_atfork(prepare, parent, child, __dso_handle);
+
return ENOSYS;
}
-
--
2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
index 553f4a517..4ad0afa95 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
@@ -6,25 +6,28 @@ This would avoid a implicit auto-detecting result.
Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+Update for 3.24.1.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
- configure.ac | 27 +++++++++++++++++----------
- 1 files changed, 17 insertions(+), 10 deletions(-)
+ configure.ac | 28 ++++++++++++++++------------
+ 1 file changed, 16 insertions(+), 12 deletions(-)
-Index: syslog-ng-3.8.1/configure.ac
-===================================================================
---- syslog-ng-3.8.1.orig/configure.ac
-+++ syslog-ng-3.8.1/configure.ac
-@@ -104,6 +104,9 @@ AC_CONFIG_HEADERS(config.h)
+diff --git a/configure.ac b/configure.ac
+index 00eb566..e7d5ac1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -143,6 +143,9 @@ AC_CONFIG_HEADERS(config.h)
dnl ***************************************************************************
dnl Arguments
-+AC_ARG_ENABLE(libnet,
++AC_ARG_ENABLE(libnet,
+ [ --enable-libnet Enable libnet support.],, enable_libnet="no")
+
AC_ARG_WITH(libnet,
[ --with-libnet=path use path to libnet-config script],
,
-@@ -893,22 +896,26 @@ dnl ************************************
+@@ -1047,19 +1050,20 @@ dnl ***************************************************************************
dnl libnet headers/libraries
dnl ***************************************************************************
AC_MSG_CHECKING(for LIBNET)
@@ -39,7 +42,14 @@ Index: syslog-ng-3.8.1/configure.ac
+ else
+ LIBNET_CONFIG="$with_libnet/libnet-config"
+ fi
-+
+
+-if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
+- LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
+- LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
+- AC_MSG_RESULT(yes)
+-dnl libnet-config does not provide the _DEFAULT_SOURCE define, that can cause warning during build
+-dnl as upstream libnet-config does uses _DEFAULT_SOURCE this is just a fix till
+- LIBNET_CFLAGS="$LIBNET_CFLAGS -D_DEFAULT_SOURCE"
+ if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
+ LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
+ LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
@@ -48,16 +58,8 @@ Index: syslog-ng-3.8.1/configure.ac
+ AC_MSG_ERROR([Could not find libnet, and libnet support was explicitly enabled.])
+ fi
--if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
-- LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
-- LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
-- AC_MSG_RESULT(yes)
else
LIBNET_LIBS=
- AC_MSG_RESULT(no)
- fi
-
--
- if test "x$enable_spoof_source" = "xauto"; then
- AC_MSG_CHECKING(whether to enable spoof source support)
- if test "x$LIBNET_LIBS" != "x"; then
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf
new file mode 100644
index 000000000..32a795321
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf
@@ -0,0 +1 @@
+d /var/run/syslog-ng 0755 root root
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
index 9e910caa1..965abf722 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
@@ -1,11 +1,16 @@
-@version: 3.15
+@version: 3.19
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+#
+# Move to 3.19
+# Only change is to add dns_cache(no) to options to suppress initialization warning.
+#
+# Joe Slater <joe.slater@windriver.com>
# First, set some global options.
-options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+options { chain_hostnames(off); flush_lines(0); use_dns(no); dns_cache(no); use_fqdn(no);
owner("root"); group("adm"); perm(0640); stats_freq(0);
bad_hostname("^gconfd$");
};
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
index fb183ee17..2b39b8c1f 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
@@ -1,11 +1,16 @@
-@version: 3.15
+@version: 3.19
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+#
+# Move to 3.19
+# Only change is to add dns_cache(no) to options to suppress initialization warning.
+#
+# Joe Slater <joe.slater@windriver.com>
# First, set some global options.
-options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+options { chain_hostnames(off); flush_lines(0); use_dns(no); dns_cache(no); use_fqdn(no);
owner("root"); group("adm"); perm(0640); stats_freq(0);
bad_hostname("^gconfd$");
};
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
index 39c3f59ce..0e1d09492 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -1,16 +1,17 @@
-From 0be9c08dd3f825e92fa02d4a08d8aff743109e61 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Wed, 17 Jun 2015 14:46:30 +0900
-Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start
+Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start
successfully,so modify it.
Upstream-Status: pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
Updated-by: Andrej Valek <andrej.valek@siemens.com>
+
+Update for 3.24.1
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
- contrib/systemd/syslog-ng.service | 5 ++---
- 1 file changed, 2 insertion(+), 3 deletions(-)
+ contrib/systemd/syslog-ng@.service | 4 ++--
+ contrib/systemd/syslog-ng@default | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/contrib/systemd/syslog-ng@.service b/contrib/systemd/syslog-ng@.service
index a28640e..93aec94 100644
@@ -28,19 +29,18 @@ index a28640e..93aec94 100644
StandardError=journal
Restart=on-failure
diff --git a/contrib/systemd/syslog-ng@default b/contrib/systemd/syslog-ng@default
-index 02da288..3a8215d 100644
+index 0ccc2b9..7f08c0e 100644
--- a/contrib/systemd/syslog-ng@default
+++ b/contrib/systemd/syslog-ng@default
@@ -1,5 +1,5 @@
--CONFIG_FILE=/etc/syslog-ng.conf
+ CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf
-PERSIST_FILE=/var/lib/syslog-ng/syslog-ng.persist
--CONTROL_FILE=/var/lib/syslog-ng/syslog-ng.ctl
+-CONTROL_FILE=/var/run/syslog-ng.ctl
-PID_FILE=/var/run/syslog-ng.pid
-+CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf
+PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist
+CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl
+PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid
OTHER_OPTIONS="--enable-core"
-
--
-1.8.4.2
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index b00cb91ee..3aba4473d 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -15,6 +15,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240"
# util-linux added to get libuuid
DEPENDS = "libpcre flex glib-2.0 openssl util-linux"
+# We expect the recipe to add anything specific for that version to these defaults.
+#
SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
file://syslog-ng.conf.systemd \
file://syslog-ng.conf.sysvinit \
@@ -74,8 +76,12 @@ do_install_append() {
install -d ${D}/${sysconfdir}/${BPN}
install -d ${D}/${sysconfdir}/init.d
install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog
+
install -d ${D}/${sysconfdir}/default/volatiles/
install -m 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng
+ install -d ${D}/${sysconfdir}/tmpfiles.d/
+ install -m 755 ${WORKDIR}/syslog-ng-tmp.conf ${D}/${sysconfdir}/tmpfiles.d/syslog-ng.conf
+
install -d ${D}/${localstatedir}/lib/${BPN}
# Remove /var/run as it is created on startup
rm -rf ${D}${localstatedir}/run
@@ -86,7 +92,6 @@ do_install_append() {
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
- install -m 0644 ${S}/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
install -m 0644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb
deleted file mode 100644
index 4eecf6b6a..000000000
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require syslog-ng.inc
-
-SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
- file://syslog-ng.conf.systemd \
- file://syslog-ng.conf.sysvinit \
- file://initscript \
- file://volatiles.03_syslog-ng \
- file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
- file://fix-config-libnet.patch \
- file://fix-invalid-ownership.patch \
- file://syslog-ng.service-the-syslog-ng-service.patch \
- file://0001-syslog-ng-fix-segment-fault-during-service-start.patch \
- "
-
-SRC_URI[md5sum] = "aa79bc13d9fd925aa5fb9516e87aacd3"
-SRC_URI[sha256sum] = "5cf931a9d7bead0e6d9a2c65eee8f6005a005878f59aa280f3c4294257ed5178"
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.24.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.24.1.bb
new file mode 100644
index 000000000..01ed76765
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.24.1.bb
@@ -0,0 +1,14 @@
+require syslog-ng.inc
+
+# We only want to add stuff we need to the defaults provided in syslog-ng.inc.
+#
+SRC_URI += " \
+ file://fix-config-libnet.patch \
+ file://fix-invalid-ownership.patch \
+ file://syslog-ng.service-the-syslog-ng-service.patch \
+ file://0001-syslog-ng-fix-segment-fault-during-service-start.patch \
+ file://syslog-ng-tmp.conf \
+ "
+
+SRC_URI[md5sum] = "ef9de066793f7358af7312b964ac0450"
+SRC_URI[sha256sum] = "d4d0a0357b452be96b69d6f741129275530d8f0451e35adc408ad5635059fa3d"
diff --git a/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
index 879b67b7f..aba485e1a 100644
--- a/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
@@ -11,7 +11,7 @@ SRC_URI = "git://github.com/OSSystems/toscoterm.git"
S = "${WORKDIR}/git"
-inherit distro_features_check gitpkgv pkgconfig
+inherit features_check gitpkgv pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb
index 9c9e5e52a..f0aad9538 100644
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_git.bb
@@ -26,7 +26,7 @@ S = "${WORKDIR}/git"
CVE_PRODUCT = "udisks"
-inherit autotools systemd gtk-doc gobject-introspection gettext distro_features_check
+inherit autotools systemd gtk-doc gobject-introspection gettext features_check
REQUIRED_DISTRO_FEATURES = "polkit"
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
index 8948ebf30..c1136cd99 100644
--- a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
@@ -25,7 +25,7 @@ LEAD_SONAME = "libuim.so.1"
COMPATIBLE_HOST_riscv64 = "null"
COMPATIBLE_HOST_riscv32 = "null"
-inherit distro_features_check autotools pkgconfig gettext qemu gtk-immodules-cache
+inherit features_check autotools pkgconfig gettext qemu gtk-immodules-cache
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_12.1.0.bb b/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_12.1.0.bb
new file mode 100644
index 000000000..89ab565ce
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/unicode-ucd/unicode-ucd_12.1.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Unicode Character Database"
+HOMEPAGE = "https://unicode.org/ucd/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://unicode.org.license.html;beginline=42;endline=85;md5=67619d0c52706853c0256514e7fd04cd"
+
+SRC_URI = " \
+ https://www.unicode.org/Public/zipped/${PV}/UCD.zip;name=ucd;subdir=ucd \
+ https://www.unicode.org/license.html;name=license;subdir=${BP};downloadfilename=unicode.org.license.html \
+"
+SRC_URI[ucd.md5sum] = "430cbdac2615451571dd69a976dd08f6"
+SRC_URI[ucd.sha256sum] = "25ba51a0d4c6fa41047b7a5e5733068d4a734588f055f61e85f450097834a0a6"
+
+SRC_URI[license.md5sum] = "f03bafb623258f85ff2032c1ce567b7c"
+SRC_URI[license.sha256sum] = "983225207de8a707d0903a8d70fb7a4b28c5e0f64f2366e84a6192a2d618fed4"
+
+inherit allarch
+
+do_configure[noexec] = "1"
+
+do_install() {
+ install -d ${D}${datadir}/unicode
+ cp -rf ${WORKDIR}/ucd ${D}${datadir}/unicode
+}
+
+FILES_${PN} = "${datadir}/unicode/ucd"
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb
index c4cc62711..640841792 100644
--- a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.11.bb
@@ -10,7 +10,7 @@ SRC_URI = " \
SRC_URI[md5sum] = "abe6acb617f11f2e8dbd9846fcf86e24"
SRC_URI[sha256sum] = "64b5ffbfccd5bdb15d925777979a4dbee1a957f9eaeb158dc76175267eddbdef"
-inherit autotools pkgconfig gettext gobject-introspection systemd distro_features_check
+inherit autotools pkgconfig gettext gobject-introspection systemd features_check
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist"
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
index 8cb180dc8..5f07bf28e 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://bitmath.org/code/mtview/"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=4c61b8950dc1aab4d2aa7c2ae6b1cfb3"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.28.bb b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb
index 0a4c56aa0..40c585ee1 100644
--- a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.28.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb
@@ -20,8 +20,8 @@ SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \
file://run-ptest \
"
-SRC_URI[md5sum] = "69b8d95c009a404462e19f335e650241"
-SRC_URI[sha256sum] = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4"
+SRC_URI[md5sum] = "4755621ff2a7150e208de6bd7decca10"
+SRC_URI[sha256sum] = "b1d1deba966019930f608d1f2b95c40ca3450f1393bcd3a3c001a8ba1d2839ab"
inherit autotools-brokensep ptest pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb b/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
index 0bdafdf3b..481e7303b 100644
--- a/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
@@ -7,7 +7,7 @@ inherit autotools pkgconfig
DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11 pam"
SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git"
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb
index 75caf8d6b..deda0fd1b 100644
--- a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.11.bb
@@ -4,7 +4,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \
"
-inherit distro_features_check autotools pkgconfig useradd systemd
+inherit features_check autotools pkgconfig useradd systemd
DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native"
diff --git a/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb b/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
index c9d87e36d..98f2cacf1 100644
--- a/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
+++ b/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
@@ -17,3 +17,5 @@ EXTRA_OECONF = "--enable-memtrace --enable-automated --enable-basic --enable-con
FILES_${PN}-dev += "${datadir}/CUnit"
FILES_${PN}-doc += "${docdir}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-test/googletest/googletest_1.8.1.bb b/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb
index 362d69ff9..e1df9b6e2 100644
--- a/meta-openembedded/meta-oe/recipes-test/googletest/googletest_1.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-test/googletest/googletest_git.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://googlemock/LICENSE;md5=cbbd27594afd089daa160d3a16dd51
PROVIDES += "gmock gtest"
S = "${WORKDIR}/git"
-SRCREV = "2fe3bd994b3189899d93f1d5a881e725e046fdc2"
+SRCREV = "703bd9caab50b139428cea1aaff9974ebee5742e"
SRC_URI = "git://github.com/google/googletest.git"
inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb b/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb
index 28e967762..ace376ef2 100644
--- a/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb
+++ b/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Berkeley TestFloat is a small collection of programs for \
HOMEPAGE = "http://www.jhauser.us/arithmetic/TestFloat.html"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://TestFloat-${PV}/COPYING.txt;md5=e45c175a323b5727777fb6bd4b26eafc"
SRC_URI = "\
diff --git a/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb b/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb
index 3979b3142..58ed37ca8 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb
@@ -10,8 +10,8 @@ LICENSE = "Artistic-1.0 | GPL-1.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=16fd0ec7b73c0e158426f753943f1058"
SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Class-Method-Modifiers-${PV}.tar.gz"
-SRC_URI[md5sum] = "f55400c7a8134acf3657f8af89bdd7af"
-SRC_URI[sha256sum] = "e44c1073020bf55b8c97975ed77235fd7e2a6a56f29b5c702301721184e27ac8"
+SRC_URI[md5sum] = "b1398e3682aa2e075b913b9f9000b596"
+SRC_URI[sha256sum] = "ab5807f71018a842de6b7a4826d6c1f24b8d5b09fcce5005a3309cf6ea40fd63"
S = "${WORKDIR}/Class-Method-Modifiers-${PV}"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.62.bb b/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb
index 4af9d3c5c..468add972 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.62.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb
@@ -14,8 +14,8 @@ SRC_URI = "${CPAN_MIRROR}/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \
file://sqlite-perl-test.pl \
"
-SRC_URI[md5sum] = "f2e11a2bea6bd864404c0363d7eddaf8"
-SRC_URI[sha256sum] = "bd82ef322a9e5469a7a62d845c32fad1188b76ccb49a88520cec768343cce85c"
+SRC_URI[md5sum] = "10796495b52927eb2e1df34c86924027"
+SRC_URI[sha256sum] = "f4ae8f7b50842305566aadd90f7bfd12a9e32b6c603a9b1c1529e73eb82aff01"
UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb b/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.20.bb
index 99df6f33f..594899b07 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.20.bb
@@ -12,8 +12,8 @@ LICENSE = "Artistic-1.0 | GPL-1.0+"
LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699"
SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETJ/ExtUtils-CppGuess-${PV}.tar.gz"
-SRC_URI[md5sum] = "28be49072585b25df87e54180f741a4d"
-SRC_URI[sha256sum] = "31c47b5b15e3e9fd5ae7b35881a0fffd26a2983b241e7e3a1bc340d6d446186b"
+SRC_URI[md5sum] = "d6ddd5568c84f4c7b11b996b65f2ea3b"
+SRC_URI[sha256sum] = "12bf914708885265b5c3b0b8bfb0a9294cf132d5ca30d54bda0e00335fb43e61"
S = "${WORKDIR}/ExtUtils-CppGuess-${PV}"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb b/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003006.bb
index a260ab87d..0bd0eae92 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003006.bb
@@ -7,11 +7,11 @@ SECTION = "libs"
HOMEPAGE = "http://metapan.org/release/Moo/"
LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=731;endline=776;md5=27efedd175eeaddbd18f4e3572bd72a8"
+LIC_FILES_CHKSUM = "file://README;beginline=742;endline=787;md5=2ee6a628a04af08d75bc73a86da86d4a"
SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz"
-SRC_URI[md5sum] = "d4fcd0f240033198571fcc81ce7c5f15"
-SRC_URI[sha256sum] = "f8bbb625f8e963eabe05cff9048fdd72bdd26777404ff2c40bc690f558be91e1"
+SRC_URI[md5sum] = "53af7e7849492a8e3994ee379d12e348"
+SRC_URI[sha256sum] = "bcb2092ab18a45005b5e2e84465ebf3a4999d8e82a43a09f5a94d859ae7f2472"
S = "${WORKDIR}/Moo-${PV}"
diff --git a/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb b/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.001004.bb
index c2755ea0f..41743d508 100644
--- a/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.001004.bb
@@ -6,11 +6,11 @@ SECTION = "libs"
HOMEPAGE = "https://metacpan.org/pod/Role::Tiny"
LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=177;endline=214;md5=26df7e7c20551fb1906e2286624f0b71"
+LIC_FILES_CHKSUM = "file://README;beginline=182;endline=219;md5=26df7e7c20551fb1906e2286624f0b71"
SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Role-Tiny-${PV}.tar.gz"
-SRC_URI[md5sum] = "7c277728a7e090f64b495857cadfed08"
-SRC_URI[sha256sum] = "cc73418c904a0286ecd8915eac11f5be2a8d1e17ea9cb54c9116b0340cd3e382"
+SRC_URI[md5sum] = "98446826608b1e943e65c1f6e35942fe"
+SRC_URI[sha256sum] = "92ba5712850a74102c93c942eb6e7f62f7a4f8f483734ed289d08b324c281687"
S = "${WORKDIR}/Role-Tiny-${PV}"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2.inc b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2.inc
new file mode 100644
index 000000000..42629c261
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "HTTP/2 State-Machine based protocol implementation"
+HOMEPAGE = "https://github.com/python-hyper/hyper-h2"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b6b2f6bbe76528af543242d606c14851"
+
+SRC_URI[md5sum] = "950b5a62a2a608dc4547a01edf99aa8f"
+SRC_URI[sha256sum] = "b8a32bd282594424c0ac55845377eea13fa54fe4a8db012f3a198ed923dc3ab4"
+
+inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2_3.1.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2_3.1.1.bb
new file mode 100644
index 000000000..b84129742
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python-h2_3.1.1.bb
@@ -0,0 +1,3 @@
+require python-h2.inc
+
+inherit setuptools
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_3.1.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_3.1.1.bb
new file mode 100644
index 000000000..7230a27e8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_3.1.1.bb
@@ -0,0 +1,3 @@
+require python-h2.inc
+
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc
new file mode 100644
index 000000000..eccfa8c56
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Pure-Python HPACK header compression"
+HOMEPAGE = "https://github.com/python-hyper/hpack"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
+
+SRC_URI[md5sum] = "556b0ae66180f54c2ce8029a0952088b"
+SRC_URI[sha256sum] = "8eec9c1f4bfae3408a3f30500261f7e6a65912dc138526ea054f9ad98892e9d2"
+
+inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack_3.0.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack_3.0.0.bb
new file mode 100644
index 000000000..faaeb8555
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack_3.0.0.bb
@@ -0,0 +1,3 @@
+require python-hpack.inc
+
+inherit setuptools
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb
new file mode 100644
index 000000000..e196c55b3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb
@@ -0,0 +1,3 @@
+require python-hpack.inc
+
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc
new file mode 100644
index 000000000..0066bf8e6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "HTTP/2 framing layer for Python"
+HOMEPAGE = "https://github.com/python-hyper/hyperframe"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
+
+SRC_URI[md5sum] = "6919183242feb26d8bce3b4cba81defd"
+SRC_URI[sha256sum] = "a9f5c17f2cc3c719b917c4f33ed1c61bd1f8dfac4b1bd23b7c80b3400971b41f"
+
+inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe_5.2.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe_5.2.0.bb
new file mode 100644
index 000000000..4f0c9977a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe_5.2.0.bb
@@ -0,0 +1,3 @@
+require python-hyperframe.inc
+
+inherit setuptools
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb
new file mode 100644
index 000000000..f10fb6df1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb
@@ -0,0 +1,3 @@
+require python-hyperframe.inc
+
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc
new file mode 100644
index 000000000..aa93819bc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "A pure-Python implementation of the HTTP/2 priority tree"
+HOMEPAGE = "https://github.com/python-hyper/priority"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae57d8a09fc8b6b164d7357339619045"
+
+SRC_URI[md5sum] = "4f1ff52f7fa448e9d9cb46337ae86d1e"
+SRC_URI[sha256sum] = "6bc1961a6d7fcacbfc337769f1a382c8e746566aaa365e78047abe9f66b2ffbe"
+
+inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority_1.3.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority_1.3.0.bb
new file mode 100644
index 000000000..cbe262576
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority_1.3.0.bb
@@ -0,0 +1,3 @@
+require python-priority.inc
+
+inherit setuptools
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb
new file mode 100644
index 000000000..fe756b56b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb
@@ -0,0 +1,3 @@
+require python-priority.inc
+
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman/0001-Import-local-modules-by-relative-path-for-python3-su.patch b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman/0001-Import-local-modules-by-relative-path-for-python3-su.patch
new file mode 100644
index 000000000..977b4aacd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman/0001-Import-local-modules-by-relative-path-for-python3-su.patch
@@ -0,0 +1,74 @@
+From 2e84adb042bfb742eb328220b97f79ddb28db44b Mon Sep 17 00:00:00 2001
+From: Haris Okanovic <haris.okanovic@ni.com>
+Date: Tue, 23 Oct 2018 21:39:56 +0000
+Subject: [PATCH] Import local modules by relative path for python3 support
+
+Upstream-Status: Submitted
+---
+ pyconnman/agent.py | 2 +-
+ pyconnman/interface.py | 2 +-
+ pyconnman/manager.py | 2 +-
+ pyconnman/service.py | 2 +-
+ pyconnman/technology.py | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/pyconnman/agent.py b/pyconnman/agent.py
+index f72de8d..453d783 100644
+--- a/pyconnman/agent.py
++++ b/pyconnman/agent.py
+@@ -1,5 +1,5 @@
+ from __future__ import unicode_literals
+-from exceptions import ConnCanceledException
++from .exceptions import ConnCanceledException
+
+ import dbus.service
+
+diff --git a/pyconnman/interface.py b/pyconnman/interface.py
+index 7d82e04..d540c81 100644
+--- a/pyconnman/interface.py
++++ b/pyconnman/interface.py
+@@ -4,7 +4,7 @@ import dbus
+ import types
+ import pprint
+
+-from exceptions import ConnSignalNameNotRecognisedException
++from .exceptions import ConnSignalNameNotRecognisedException
+
+
+ def translate_to_dbus_type(typeof, value):
+diff --git a/pyconnman/manager.py b/pyconnman/manager.py
+index f6f40a8..03244cc 100644
+--- a/pyconnman/manager.py
++++ b/pyconnman/manager.py
+@@ -1,6 +1,6 @@
+ from __future__ import unicode_literals
+
+-from interface import ConnInterface
++from .interface import ConnInterface
+
+
+ class ConnManager(ConnInterface):
+diff --git a/pyconnman/service.py b/pyconnman/service.py
+index bbccced..c6b9241 100644
+--- a/pyconnman/service.py
++++ b/pyconnman/service.py
+@@ -1,6 +1,6 @@
+ from __future__ import unicode_literals
+
+-from interface import ConnInterface
++from .interface import ConnInterface
+
+
+ class ConnService(ConnInterface):
+diff --git a/pyconnman/technology.py b/pyconnman/technology.py
+index 4777229..d25bad6 100644
+--- a/pyconnman/technology.py
++++ b/pyconnman/technology.py
+@@ -1,6 +1,6 @@
+ from __future__ import unicode_literals
+
+-from interface import ConnInterface
++from .interface import ConnInterface
+
+
+ class ConnTechnology(ConnInterface):
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb
index e0f3fdd75..32bbe8b80 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb
@@ -2,4 +2,8 @@ require python-pyconnman.inc
inherit setuptools3
+SRC_URI_append = " \
+ file://0001-Import-local-modules-by-relative-path-for-python3-su.patch \
+"
+
RDEPENDS_${PN} += "python3-dbus python3-pprint"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.77.bb
index 88f5b1855..738cf8677 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.77.bb
@@ -2,8 +2,8 @@ SUMMARY = "Python Remote Objects"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc"
-SRC_URI[md5sum] = "0375c061b93411feb86da01e801df888"
-SRC_URI[sha256sum] = "536b07a097d0619e7ab1effa3747fda177a24168d17a07a93ca9ac30977608f7"
+SRC_URI[md5sum] = "21f015ae93cf9ea2bbbc418a2267e9fb"
+SRC_URI[sha256sum] = "2bfe12a22f396474b0e57c898c7e2c561a8f850bf2055d8cf0f7119f0c7a523f"
PYPI_PACKAGE = "Pyro4"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc b/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc
index 79a8bfb21..3991a830f 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun.inc
@@ -2,8 +2,8 @@ SUMMARY = "Python TUN/TAP tunnel module"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=13f7629e8e4989b66b4a913ab05a91de"
-SRC_URI[md5sum] = "5b35b1cf80a02cca7ec72eb95d6b0192"
-SRC_URI[sha256sum] = "07595dadf85f5176eb08c8d4d9ba5b862a180e96633f670f91437c47a1bead0d"
+SRC_URI[md5sum] = "adcaeea56d0ed06814487cdbde32d198"
+SRC_URI[sha256sum] = "5ead86b3391acef239535ebcabeb04d2cdc6b40ab14580d28c6da193c2d1fe53"
PYPI_PACKAGE = "python-pytun"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.3.0.bb
index 3fc587f3a..3fc587f3a 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python-pytun_2.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.3.0.bb
index 938d9d739..938d9d739 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index 42f416346..bb05de1f5 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -77,7 +77,7 @@ RDEPENDS_packagegroup-meta-python3 = "\
python3-pint python3-coverage python3-iso8601 python3-ndg-httpsclient python3-yappi python3-twofish \
python3-speaklater python3-smbus python3-djangorestframework python3-msgpack python3-jsonpointer \
python3-flask-script python3-cassandra-driver python3-cython python3-ujson python3-aws-iot-device-sdk-python \
- python3-pytest-runner python3-pyiface python3-flask-login python3-markupsafe python3-setuptools-scm \
+ python3-pytest-runner python3-pyiface python3-docutils python3-flask-login python3-markupsafe python3-setuptools-scm \
python3-semver python3-sdnotify python3-flask-user python3-tornado python3-jsonpatch python3-pexpect \
python3-progress python3-jsonschema python3-xstatic python3-pyroute2 python3-idna python3-sqlalchemy \
python3-urllib3 python3-flask-mail python3-asn1crypto python3-pyinotify python3-intervals python3-pyperclip \
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp-py2_git.bb b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp-py2_git.bb
new file mode 100644
index 000000000..d69b92ce6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp-py2_git.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require gyp.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc
new file mode 100644
index 000000000..98ed42cc9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems."
+HOMEPAGE = "https://gyp.gsrc.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
+SECTION = "devel"
+
+SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https"
+SRCREV = "fcd686f1880fa52a1ee78d3e98af1b88cb334528"
+
+S = "${WORKDIR}/git"
+PV = "0.1+git${SRCPV}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
index 2b3f3fb2b..8e48a27fa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
@@ -1,15 +1,2 @@
-DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems."
-HOMEPAGE = "https://gyp.gsrc.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
-SECTION = "devel"
-
-SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https"
-SRCREV = "8bee09f4a57807136593ddc906b0b213c21f9014"
-
-S = "${WORKDIR}/git"
-PV = "0.1+git${SRCPV}"
-
inherit setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
+require gyp.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb
index 8071fcb04..030c22f8f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb
@@ -11,5 +11,5 @@ inherit pypi setuptools
RDEPENDS_${PN} = "libpam"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc
index fa178ce08..8245676b2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc
@@ -1,9 +1,9 @@
DESCRIPTION = "A database migration tool for SQLAlchemy"
-LICENSE = "BSD"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=28aaf14a6592d14dbfb2f4abd597aa27"
-SRC_URI[md5sum] = "6fe272274fce2641b93998ef9b702b76"
-SRC_URI[sha256sum] = "9f907d7e8b286a1cfb22db9084f9ce4fde7ad7956bb496dc7c952e10ac90e36a"
+SRC_URI[md5sum] = "81ec3de9e2d9c389657f51bdc0d24984"
+SRC_URI[sha256sum] = "e6c6a4243e89c8d3e2342a1562b2388f3b524c9cac2fccc4d2c461a1320cc1c1"
PYPI_PACKAGE = "alembic"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.3.0.bb
index efcb2b1de..efcb2b1de 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc
index b18dbaf33..9b8c1cb04 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=7439e38f5e04ff62fae436184786b7ca"
PYPI_PACKAGE = "asn1crypto"
-SRC_URI[md5sum] = "cf33950b47b5148e29f1d62a6b6c009b"
-SRC_URI[sha256sum] = "0b199f211ae690df3db4fd6c1c4ff976497fb1da689193e368eedbadc53d9292"
+SRC_URI[md5sum] = "fc3815cdd4812505e3ee297740c5f5d3"
+SRC_URI[sha256sum] = "87620880a477123e01177a1f73d0f327210b43a3cdbd714efcd2fa49a8d7b384"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.2.0.bb
index 46aace286..46aace286 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto_1.2.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc
index fae0f13cb..e9a68789e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc
@@ -4,11 +4,13 @@ SECTION = "devel/python"
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI[md5sum] = "2dd01ef0d5b5f0fc754c1ba40137b61c"
-SRC_URI[sha256sum] = "fc9b582dba0366e63540982c3944a9230cbc6f303641c51483fa547dcc22393a"
+SRC_URI[md5sum] = "5f3d73d82d1753b59bb49a6bc6046dee"
+SRC_URI[sha256sum] = "71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a"
inherit pypi
+DEPENDS += "${PYTHON_PN}-pytest-runner-native"
+
PACKAGES =+ "${PN}-tests"
FILES_${PN}-tests += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_2.3.3.bb
index 687394da6..687394da6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_2.3.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
index 13c9e5f25..35d28a44d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "http://www.attrs.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
-SRC_URI[sha256sum] = "f913492e1663d3c36f502e5e9ba6cd13cf19d7fab50aa13239e420fef95e1396"
-SRC_URI[md5sum] = "d5a6ee80beaa072bd2b3bcb6fee0d508"
+SRC_URI[sha256sum] = "f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"
+SRC_URI[md5sum] = "5b2db50fcc31be34d32798183c9bd062"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.3.0.bb
index e3bec0fdf..e3bec0fdf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_19.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc
index f6cbb35c0..ec392216e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc
@@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477"
FILESEXTRAPATHS_prepend := "${THISDIR}/python-automat:"
-SRC_URI[md5sum] = "b72d5b7a83c2b1bd6e9ec3614a69f9ea"
-SRC_URI[sha256sum] = "cbd78b83fa2d81fe2a4d23d258e1661dd7493c9a50ee2f1a5b2cac61c1793b0e"
+SRC_URI[md5sum] = "47e980a48201a1dabe37fa11f0187013"
+SRC_URI[sha256sum] = "269a09dfb063a3b078983f4976d83f0a0d3e6e7aaf8e27d8df1095e09dc4a484"
PYPI_PACKAGE = "Automat"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.8.0.bb
index 8ac8c9c0f..8ac8c9c0f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.8.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
index 7423fa76d..60493e1de 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "\
file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
"
-SRC_URI[md5sum] = "50a5c46410c2b44b5c09f1ea5eb15a3b"
-SRC_URI[sha256sum] = "b3c8af3ce24eab861447a194f3c382509dd70e90452c86a5426f1e7272460177"
+SRC_URI[md5sum] = "2b3df629827d8bc18ca4d927b4885a17"
+SRC_URI[sha256sum] = "7e67c8cfeee8a1c8fd251bcc418de9d4dca697753565c9a9e614525179d9555d"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.7.bb
index 490e97391..490e97391 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc
index 427467294..c55b45922 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc
@@ -1,6 +1,6 @@
DESCRIPTION = "A collection of tools for internationalizing Python applications"
HOMEPAGE = "http://babel.edgewall.org/"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=942469df9305abb1c59e95f778310384"
SRC_URI[md5sum] = "83c158b7dae9135750a7cf204e6e2eea"
@@ -23,3 +23,5 @@ RDEPENDS_${PN} += " \
${PYTHON_PN}-shell \
${PYTHON_PN}-threading \
"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb
deleted file mode 100644
index 6a4d267bc..000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "collections.abc from Python 3.4"
-DESCRIPTION = "A backport of recent additions to the 'collections.abc' module"
-
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03"
-
-# pypi package doesn't have valid entry for license
-SRC_URI += "https://raw.githubusercontent.com/cython/backports_abc/master/LICENSE;name=license"
-
-SRC_URI[md5sum] = "0b65a216ce9dc9c1a7e20a729dd7c05b"
-SRC_URI[sha256sum] = "8b3e4092ba3d541c7a2f9b7d0d9c0275b21c6a01c53a61c731eba6686939d0a5"
-SRC_URI[license.md5sum] = "dd98d01d471fac8d8dbdd975229dba03"
-SRC_URI[license.sha256sum] = "0a4f3b38055f50f047a42521568fa6ddb9a5976c2884f6ae138796d0f71150ca"
-
-
-
-PYPI_PACKAGE = "backports_abc"
-inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.5.bb
new file mode 100644
index 000000000..b588a31a3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-abc_0.5.bb
@@ -0,0 +1,11 @@
+SUMMARY = "collections.abc from Python 3.5"
+DESCRIPTION = "A backport of recent additions to the 'collections.abc' module"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03"
+
+PYPI_PACKAGE = "backports_abc"
+
+SRC_URI[md5sum] = "7d1936ec183a3586290adf60f6f96764"
+SRC_URI[sha256sum] = "033be54514a03e255df75c5aee8f9e672f663f93abb723444caec8fe43437bde"
+
+inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.7.0.1.bb
index 45492daa6..9032a7c1e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.7.0.1.bb
@@ -7,10 +7,10 @@ match_hostname() function for performing this check instead of requiring every a
implement the check separately. This backport brings match_hostname() to users of earlier versions of Python"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=95a5ee8fd779fbeca8b4cbca64433c87"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b2adbe8bfdeb625c9a01afd9aaa66619"
-SRC_URI[md5sum] = "c03fc5e2c7b3da46b81acf5cbacfe1e6"
-SRC_URI[sha256sum] = "502ad98707319f4a51fa2ca1c677bd659008d27ded9f6380c79e8932e38dcdf2"
+SRC_URI[md5sum] = "32d2f593af01a046bec3d2f5181a420a"
+SRC_URI[sha256sum] = "bb82e60f9fbf4c080eabd957c39f0641f0fc247d9a16e31e26d594d8f42b9fd2"
PYPI_PACKAGE = "backports.ssl_match_hostname"
inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc
index 449096978..a26400329 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt.inc
@@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c"
DEPENDS += "${PYTHON_PN}-cffi-native"
-SRC_URI[md5sum] = "8408abc974446e64862a9742104e97b6"
-SRC_URI[sha256sum] = "67ed1a374c9155ec0840214ce804616de49c3df9c5bc66740687c1c9b1cd9e8d"
+SRC_URI[md5sum] = "5d6f93b575ce52470af37a8e7dce76fe"
+SRC_URI[sha256sum] = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.7.bb
index b136aa489..b136aa489 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_3.1.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc
index 480f048b7..da5d11f1c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc
@@ -1,10 +1,10 @@
SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
HOMEPAGE = "https://github.com/ilanschnell/bitarray"
LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f4ce1ae80a385140f0ddb2bcef410b06"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=00f0d12ccaf4e6b0b4fe501663621fa3"
-SRC_URI[md5sum] = "f3131ac2a277f3b70dbb6132ca8f8889"
-SRC_URI[sha256sum] = "050cd30b810ddb3aa941e7ddfbe0d8065e793012d0a88cb5739ec23624b9895e"
+SRC_URI[md5sum] = "743d396a1012d6f7d791d8a526da302d"
+SRC_URI[sha256sum] = "9f578314c7808eb1416620dc7d7977d4787a65a4f61b4c9685343a860712615b"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_1.1.0.bb
index f78c7abd2..f78c7abd2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_1.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc
index 46f085933..7d0100d7d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc
@@ -1,10 +1,10 @@
SUMMARY = "Controller Area Network (CAN) interface module for Python"
SECTION = "devel/python"
LICENSE = "LGPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=38138baa100d7259934590850bc0406e"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02"
-SRC_URI[md5sum] = "dcdd3f6b924e3f20acb1ccf4598236cf"
-SRC_URI[sha256sum] = "b5e93b2ee32bdd597d9d908afe5171c402a04c9678ba47b60f33506738b1375b"
+SRC_URI[md5sum] = "b724553a330478270267380b4888a18e"
+SRC_URI[sha256sum] = "5fefb5c1e7e7f07faefc02c6eac79f9b58376f007048a04d8e7f325d48ec6b2e"
PYPI_PACKAGE="python-can"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-can_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-can_3.3.2.bb
index f0edb6408..f0edb6408 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-can_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-can_3.3.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc
index 07baa2daf..a2b0c3bb0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cffi.inc
@@ -4,8 +4,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
DEPENDS += "libffi ${PYTHON_PN}-pycparser"
-SRC_URI[md5sum] = "2c90be6d3bfbf80ab732b28fd677051d"
-SRC_URI[sha256sum] = "8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226"
+SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2"
+SRC_URI[sha256sum] = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346"
RDEPENDS_${PN}_class-target = " \
${PYTHON_PN}-ctypes \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.2.bb
index bc667b805..bc667b805 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.13.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
index 60bc46f82..f9dfd5627 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
@@ -5,7 +5,7 @@ in a composable way with as little code as necessary. It's the "Command \
Line Interface Creation Kit". It's highly configurable but comes with \
sensible defaults out of the box."
HOMEPAGE = "http://click.pocoo.org/"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c13ed890b210a882c1778216694c98c7"
SRC_URI[md5sum] = "7f53d50f7b7373ebc7963f9ff697450a"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc
index 7782b1447..3a6bf5472 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "http://packages.python.org/cmd2/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=01aeabea7ae1529a8e4b674b7107d6bc"
-SRC_URI[md5sum] = "f7a51dc68ad377ebc6a84408044dc1a2"
-SRC_URI[sha256sum] = "840cdbf50e83761fea69ca5beadcba7569ab03734e3ee42b0dbf7f6f90e1213d"
+SRC_URI[md5sum] = "20f3f76b2aaf36a17372717b469ca969"
+SRC_URI[sha256sum] = "c81284083d993af18b8fef57d89d854d49d051d4c2c8a8e12d0281e369ac3682"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.19.bb
index 17b6ae285..17b6ae285 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.18.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.19.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc
index a1fb6cd29..8ecfe221d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc
@@ -9,3 +9,5 @@ SRC_URI[md5sum] = "bc1558ed941cb1acb80ff650726d5af8"
SRC_URI[sha256sum] = "bc37850f0cc42a1725a796ef7d92690651bf1af37d744cc63161dac62cabee17"
inherit pypi
+
+BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb
index 69f045dba..a8ed1e91b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb
@@ -1,2 +1,3 @@
inherit setuptools
require python-configparser.inc
+RDEPENDS_${PN} += "python-pkgutil"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2.inc
new file mode 100644
index 000000000..750721f3d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Backports and enhancements for the contextlib module"
+HOMEPAGE = "http://contextlib2.readthedocs.org/"
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=43d1c7827e8fad6454b553caf0e1d734"
+
+SRC_URI[md5sum] = "d03a631073b40073b5c41364ad8f5979"
+SRC_URI[sha256sum] = "7197aa736777caac513dbd800944c209a49765bf1979b12b037dce0277077ed3"
+
+BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2_0.6.0.bb
new file mode 100644
index 000000000..87cffb98f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-contextlib2_0.6.0.bb
@@ -0,0 +1,3 @@
+inherit pypi setuptools
+require python-contextlib2.inc
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
index 887d2d3d3..10af48c9f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
@@ -8,8 +8,8 @@ DEPENDS += " \
${PYTHON_PN}-cryptography \
"
-SRC_URI[md5sum] = "1a518a28ed9c924ca6c570aa8ea0c334"
-SRC_URI[sha256sum] = "f12dfb9bd669a68004074cb5b26df6e93ed1a95ebd1a999dff0a840212ff68bc"
+SRC_URI[md5sum] = "a744ed29bb9ef56b3a50317fea3b218e"
+SRC_URI[sha256sum] = "6cd32174c56a3eca72f64af43c1daacaae758cfa5ff9d280dfcf818fa11ef116"
PYPI_PACKAGE = "cryptography_vectors"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.8.bb
index 4975278a9..4975278a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
index 876fcc273..5acd02d67 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
@@ -12,8 +12,8 @@ DEPENDS += " \
${PYTHON_PN}-six \
"
-SRC_URI[md5sum] = "7dfe1035cae43569e571318f000462a4"
-SRC_URI[sha256sum] = "e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6"
+SRC_URI[md5sum] = "77730058b556c6d9838679a94c6229ce"
+SRC_URI[sha256sum] = "3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651"
RDEPENDS_${PN} += " \
${PYTHON_PN}-cffi \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.8.bb
index 9c2f88418..9c2f88418 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
index 426159465..3260e92ba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
PYPI_PACKAGE = "Cython"
BBCLASSEXTEND = "native nativesdk"
-SRC_URI[md5sum] = "f8109a2a86cded40b3896ee7a63bc5a5"
-SRC_URI[sha256sum] = "c29d069a4a30f472482343c866f7486731ad638ef9af92bfe5fca9c7323d638e"
+SRC_URI[md5sum] = "6e2f139e30bb08d68366f9370d87964c"
+SRC_URI[sha256sum] = "e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.14.bb
index d803a6ed4..d803a6ed4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.13.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.29.14.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.5.0.bb
index 98f23aba1..e0f64fcf1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.5.0.bb
@@ -12,5 +12,5 @@ RDEPENDS_${PN} = "\
python-resource \
"
-SRC_URI[md5sum] = "6759005b12dfeea0d4305f8536b4b0c2"
-SRC_URI[sha256sum] = "c0194e861826be456c7c69985825ac7b79632d8ac7ad4cde8e12fee7971468c8"
+SRC_URI[md5sum] = "3d64e7a0219ad22e3fca62460f893b6a"
+SRC_URI[sha256sum] = "dd026e4ff8d22cb016ed2130bc738b7d4b1da597ef93c074d2adb9e4dea08bc3"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
index 8cc2373cd..3c89cd62c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
@@ -4,8 +4,8 @@ HOMEPAGE = "https://dateutil.readthedocs.org"
LICENSE = "BSD-3-Clause & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996"
-SRC_URI[md5sum] = "354db28843d949f1bc3e49e8458e22df"
-SRC_URI[sha256sum] = "c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e"
+SRC_URI[md5sum] = "f2a1d4b680b297b367a974664ca3a4f6"
+SRC_URI[sha256sum] = "73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"
PYPI_PACKAGE = "python-dateutil"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.1.bb
index 12ae4c311..12ae4c311 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.8.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc
index 96cf8b475..65db1a961 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc
@@ -6,11 +6,11 @@ various non-trivial examples. Of course, as all techniques, decorators \
can be abused and you should not try to solve every problem with a \
decorator, just because you can."
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=be2fd2007972bf96c08af3293d728b22"
-SRC_URI[md5sum] = "a565a98581c0d110bc247323e89df9b1"
-SRC_URI[sha256sum] = "86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de"
+SRC_URI[md5sum] = "933981f288c4230816b5beee8d40e6ea"
+SRC_URI[sha256sum] = "54c38050039232e1db4ad7375cfce6748d7b41c29e95a081c8a6d2c30364a2ce"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.1.bb
index 2a2b455f5..2a2b455f5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc
index 6a04429b7..84502affe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython.inc
@@ -1,10 +1,10 @@
DESCRIPTION = "DNS toolkit for Python"
HOMEPAGE = "http://www.dnspython.org/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b9d855ee0d7bea17c8b0994d37985e1e"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
-SRC_URI[md5sum] = "05d33ffb5d8f35ae0474bb952778a344"
-SRC_URI[sha256sum] = "40f563e1f7a7b80dc5a4e76ad75c23da53d62f1e15e6e517293b04e1f84ead7c"
+SRC_URI[md5sum] = "bc9ca3b3a82164667d5730ec6d5248a2"
+SRC_URI[sha256sum] = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01"
PYPI_PACKAGE_EXT = "zip"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.16.0.bb
index 9dbcd0ffb..9dbcd0ffb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dnspython_1.16.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb
deleted file mode 100644
index 68436a1a5..000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Text processing system for documentation"
-HOMEPAGE = "http://docutils.sourceforge.net"
-SECTION = "devel/python"
-LICENSE = "PSF & BSD-2-Clause & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=35a23d42b615470583563132872c97d6"
-
-DEPENDS = "python"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz"
-SRC_URI[md5sum] = "2f4bee6451958252f7bec71f18b05be3"
-SRC_URI[sha256sum] = "3caee0bcb2a49fdf24fcfa70849a60abb7a181aa68b030f7cb7494096181830c"
-
-S = "${WORKDIR}/docutils-${PV}"
-
-inherit distutils
-
-BBCLASSEXTEND = "native"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.15.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.15.2.bb
new file mode 100644
index 000000000..d26e81908
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-docutils_0.15.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Text processing system for documentation"
+HOMEPAGE = "http://docutils.sourceforge.net"
+SECTION = "devel/python"
+LICENSE = "PSF & BSD-2-Clause & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7a4646907ab9083c826280b19e103106"
+
+inherit pypi setuptools
+
+PYPI_PACKAGE = "docutils"
+
+SRC_URI[md5sum] = "e26a308d8000b0bed7416a633217c676"
+SRC_URI[sha256sum] = "a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc
index ecf74a0bc..7e499a6c7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dominate.inc
@@ -2,8 +2,8 @@ SUMMARY = "Dominate is a Python library for creating and manipulating HTML docum
LICENSE = "LGPLv3"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
-SRC_URI[md5sum] = "45bd97e6f7888aac24ae86013c57638e"
-SRC_URI[sha256sum] = "4b8ce6f33633c9dd9175b228d21c00c801b6bd0327747cd5e17fc2da934c3a69"
+SRC_URI[md5sum] = "27d3aa7e0d67902c505e248e705e5e2e"
+SRC_URI[sha256sum] = "a92474b4312bd8b4c1789792f3ec8c571cd8afa8e7502a2b1c64dd48cd67e59c"
RDEPENDS_${PN} += "\
${PYTHON_PN}-numbers \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.4.0.bb
index c19445e72..c19445e72 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc
index f24da1284..134713064 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-engineio.inc
@@ -9,5 +9,5 @@ inherit pypi
PYPI_PACKAGE = "python-engineio"
-SRC_URI[md5sum] = "11a4f18f5b08a36d07d3c0ff85e7c047"
-SRC_URI[sha256sum] = "2a4c874aea686e79f8ea9efc30748110df581df6d577d18bb5eaa1a8f2199d12"
+SRC_URI[md5sum] = "bec3b06a112a7f09a0a9c92b627282fe"
+SRC_URI[sha256sum] = "9c9a6035b4b5e5a225f426f846afa14cf627f7571d1ae02167cb703fefd134b7"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.9.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.10.0.bb
index 7dd6ec0e0..7dd6ec0e0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.9.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-engineio_3.10.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc
index 5a3884a6f..953094ba7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-evdev.inc
@@ -1,10 +1,10 @@
SUMMARY = "Python evdev lib"
HOMEPAGE = "https://github.com/gvalkov/python-evdev"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2"
-SRC_URI[md5sum] = "c7e855ae9f97f869a59e75b29f05ce74"
-SRC_URI[sha256sum] = "57edafc469a414f58b51af1bfb9ee2babb9f626dd2df530d71c1176871850aa1"
+SRC_URI[md5sum] = "53e440943dfa2514f95b3c448d6a36cb"
+SRC_URI[sha256sum] = "b03f5e1be5b4a5327494a981b831d251a142b09e8778eda1a8b53eba91100166"
do_compile_prepend() {
rm -rf ${S}/evdev/ecodes.c
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_1.2.0.bb
index 63541363e..63541363e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_1.2.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc
index a333ef4ee..6ddcaa98e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc
@@ -1,7 +1,7 @@
DESCRIPTION = "A Python library for generating news feeds in RSS and Atom formats"
HOMEPAGE = "http://code.google.com/p/feedformatter/"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=258e3f39e2383fbd011035d04311008d"
SRCREV = "7391193c83e10420b5a2d8ef846d23fc368c6d85"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc
index b60ee17d1..0e507f337 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel.inc
@@ -1,9 +1,9 @@
DESCRIPTION = "i18n and l10n support for Flask based on babel and pytz"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=51917f3e8e858f5ae295a7d0e2eb3cc9"
-SRC_URI[md5sum] = "07803453743f139309021572a799c6b3"
-SRC_URI[sha256sum] = "c0d75710bd4b0fe866f9f2347de6e19208712f9cec006436b4c1c15d4cb0c939"
+SRC_URI[md5sum] = "fcf2f360ff279d3133e40974804efd72"
+SRC_URI[sha256sum] = "316ad183e42003f3922957fa643d0a1e8e34a0f0301a88c3a8f605bc37ba5c86"
PYPI_PACKAGE = "Flask-Babel"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.12.2.bb
index 38e78c73f..38e78c73f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-babel_0.12.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb
index f035862de..d090b345e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Bcrypt hashing for Flask."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0ee2ee5bee7fe96597770e92db5719a8"
SRC_URI[md5sum] = "d345c36ac6637d3ca9fa942e238d00ca"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc
index bb0870348..0df276d15 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc
@@ -1,7 +1,7 @@
SUMMARY = "Flask extension for sending email"
DESCRIPTION = "A Flask extension for sending email"
HOMEPAGE = " https://github.com/rduplain/flask-email"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5b16dfa6d3f275ace5985bb92949f770"
SRC_URI[md5sum] = "04b35a42a44ec7aa724ec8ce55e2e08e"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
index dfb20e9ee..5202f8be0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
@@ -2,8 +2,8 @@ DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alemb
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
-SRC_URI[md5sum] = "aaeee55431d0287063657122ff41a0e6"
-SRC_URI[sha256sum] = "cd1b4e6cb829eeb41c02ad9202d83bef5f4b7a036dd9fad72ce96ad1e22efb07"
+SRC_URI[md5sum] = "bedeb0366740fda6912fea683be11968"
+SRC_URI[sha256sum] = "a96ff1875a49a40bd3e8ac04fce73fdb0870b9211e6168608cbafa4eb839d502"
PYPI_PACKAGE = "Flask-Migrate"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.5.2.bb
index ece516f50..ece516f50 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.5.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc
index 39251525b..5fc35c193 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc
@@ -2,7 +2,7 @@ SUMMARY = "PyMongo support for Flask applications"
DESCRIPTION = "PyMongo support for Flask applications."
HOMEPAGE = "https://github.com/mitsuhiko/flask/"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;beginline=1;endline=24;md5=424c4e1047d28e01b4e4634a069c019d"
SRC_URI[md5sum] = "94df71e6800b1d7915cc91a74b70f959"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc
index 0485f85aa..dcbcd0d76 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc
@@ -6,8 +6,8 @@ HOMEPAGE = "https://github.com/flask-restful/flask-restful"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=685bb55ed99a366bb431995f5eef2783"
-SRC_URI[md5sum] = "8243ca101185b130d8fa529cbdbdbddd"
-SRC_URI[sha256sum] = "5795519501347e108c436b693ff9a4d7b373a3ac9069627d64e4001c05dd3407"
+SRC_URI[md5sum] = "a7217ef1159be38af5faf61aa09aabef"
+SRC_URI[sha256sum] = "f8240ec12349afe8df1db168ea7c336c4e5b0271a36982bff7394f93275f2ca9"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.7.bb
index 1968d1d9d..1968d1d9d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful_0.3.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc
index fca777bc5..f48af8bc9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-script.inc
@@ -1,5 +1,5 @@
DESCRIPTION = "Scripting support for flask"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e686048adb69341fc8a08caeda528b41"
SRC_URI[md5sum] = "3fbd91fe13cebedfb2431331f6eabb68"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc
index 251d13ede..8d778d4bf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc
@@ -9,8 +9,8 @@ inherit pypi
PYPI_PACKAGE = "Flask-SocketIO"
-SRC_URI[md5sum] = "298965a43f6534e8a5b24d1ba1fc4186"
-SRC_URI[sha256sum] = "8d8f9f104db5ddff1b06ba322d8e158881d590144199c993fe26cf53218c7edd"
+SRC_URI[md5sum] = "b23222fb7dd2f0676d78bbe24153fd80"
+SRC_URI[sha256sum] = "2172dff1e42415ba480cee02c30c2fc833671ff326f1598ee3d69aa02cf768ec"
RDEPENDS_${PN} += "\
${PYTHON_PN}-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_3.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_4.2.1.bb
index 3b9ad33bb..3b9ad33bb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_3.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio_4.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc
index e0efbc63a..86ba9dda5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc
@@ -1,9 +1,9 @@
DESCRIPTION = "Adds SQLAlchemy support to your Flask application."
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5ed1b8cc741515a835a7f6bf2f62ef4a"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
-SRC_URI[md5sum] = "373ce61dfd03b593ad2eaba68c9fee35"
-SRC_URI[sha256sum] = "5971b9852b5888655f11db634e87725a9031e170f37c0ce7851cf83497f56e53"
+SRC_URI[md5sum] = "1f5781cf3e1a2b1aabda47a5b20d2073"
+SRC_URI[sha256sum] = "6974785d913666587949f7c2946f7001e4fa2cb2d19f4e69ead02e4b8f50b33d"
PYPI_PACKAGE = "Flask-SQLAlchemy"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.4.1.bb
index 3dc355c5d..3dc355c5d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc
index c2b71829c..adef32cc8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc
@@ -3,7 +3,7 @@ DESCRIPTION = "Customizable User Account Management for Flask; Register \
Confirm email, Login, Change username, Change password, Forgot Password \
and more."
HOMEPAGE = " https://github.com/lingthio/Flask-User"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=97de97cd9d6e23c88129d884588ce71a"
SRC_URI[md5sum] = "f7965e66ca139c8436896da07e66c21f"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc
index 3c90656ad..863671153 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc
@@ -1,5 +1,5 @@
DESCRIPTION = "Simple integration of Flask and WTForms."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3ca6bb31670492f791e6a9f2fb9f8a80"
SRC_URI[md5sum] = "586f50f233926cade42e3d744aca3e8f"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc
index a1fe14ed4..48ff7149c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-xstatic.inc
@@ -1,5 +1,5 @@
DESCRIPTION = "XStatic support for flask"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=659968f6ebd4b70b6c3190d20b4a924c"
SRC_URI[md5sum] = "2f56023e1444c8bd1fec41afe93de743"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
index ffd783f3d..1263383da 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
@@ -3,11 +3,11 @@ DESCRIPTION = "\
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \
intentions. And before you ask: It’s BSD licensed!"
HOMEPAGE = "https://github.com/mitsuhiko/flask/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c011883ac26229b8ba3084f55c7664c6"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
-SRC_URI[md5sum] = "824f0f20aae1f44c9c7dc4054adb7969"
-SRC_URI[sha256sum] = "2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48"
+SRC_URI[md5sum] = "0e3ed44ece1c489ed835d1b7047e349c"
+SRC_URI[sha256sum] = "13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52"
CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.1.1.bb
index a0a28ab8b..a0a28ab8b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.1.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc
index 224756180..c0a2b39ba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc
@@ -1,10 +1,10 @@
DESCRIPTION = "Clean single-source support for Python 3 and 2"
HOMEPAGE = "https://python-future.org"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3f457538b297bd0ef86564b8ac216ad7"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a253924061f8ecc41ad7a2ba1560e8e7"
-SRC_URI[md5sum] = "3e8e88a2bda48d54b1da7634d04760d7"
-SRC_URI[sha256sum] = "e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
+SRC_URI[md5sum] = "e4579c836b9c025872efe230f6270349"
+SRC_URI[sha256sum] = "b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"
PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.18.2.bb
index d95e1ba77..d95e1ba77 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.18.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc
index 9eb5da954..a53537aa7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata.inc
@@ -10,3 +10,5 @@ SRC_URI[sha256sum] = "aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25d
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
RDEPENDS_${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb
index 5c213004c..09c5700db 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-importlib-metadata_0.23.bb
@@ -1,2 +1,7 @@
inherit pypi setuptools
require python-importlib-metadata.inc
+RDEPENDS_${PN} += "python-configparser \
+ python-contextlib2 \
+ python-pathlib2 \
+ python-compression \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc
index a915e09f9..4489aa59d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc
@@ -9,7 +9,7 @@ PYPI_PACKAGE := "python-intervals"
inherit pypi
-SRC_URI[md5sum] = "a35dd44269fdb134bf19cfd80cb2c120"
-SRC_URI[sha256sum] = "a8a15b7c2fadb8465310f44aa96e384828b35a29de38ac74738cd665924cb8ac"
+SRC_URI[md5sum] = "8955317ff4e42590c90ba6247b1caaed"
+SRC_URI[sha256sum] = "0d26746eaed0be78a61dd289bb7a10721b08770bb3e807614835f490d514f2a5"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.10.0.bb
index 3c2a33bbc..3c2a33bbc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.10.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress.inc
index 66de8b637..a23020649 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress.inc
@@ -3,11 +3,11 @@ HOMEPAGE = "https://github.com/phihag/ipaddress"
LICENSE = "Python-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a"
-DEPENDS += "python-pip"
+DEPENDS += "${PYTHON_PN}-pip"
-SRC_URI[md5sum] = "74c1ce3109f30eaa1ab3dd342e7b76d4"
-SRC_URI[sha256sum] = "b146c751ea45cad6188dd6cf2d9b757f6f4f8d6ffb96a023e6f2e26eea02a72c"
+SRC_URI[md5sum] = "aaee67a8026782af1831148beb0d9060"
+SRC_URI[sha256sum] = "b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"
-inherit pypi setuptools
+inherit pypi
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.23.bb
new file mode 100644
index 000000000..ed4e6cb19
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.23.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-ipaddress.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ipy.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-ipy.inc
new file mode 100644
index 000000000..46b2fad03
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ipy.inc
@@ -0,0 +1,19 @@
+SUMMARY = "IPy - class and tools for handling of IPv4 and IPv6 addresses and networks"
+DESCRIPTION = "IPy is a Python module for handling IPv4 and IPv6 Addresses and Networks \
+in a fashion similar to perl's Net::IP and friends. The IP class allows \
+a comfortable parsing and handling for most notations in use for IPv4 \
+and IPv6 Addresses and Networks."
+SECTION = "devel/python"
+HOMEPAGE = "https://github.com/autocracy/python-ipy"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=848d24919845901b4f48bae5f13252e6"
+
+SRC_URI[md5sum] = "1a90c68174234672241a7e60c7ea0fb9"
+SRC_URI[sha256sum] = "2f2bf658a858d43868d8a4352b3889cf78c66e2ce678b300dcf518c9149ba621"
+
+inherit pypi
+
+PYPI_PACKAGE = "IPy"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ipy_1.00.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ipy_1.00.bb
new file mode 100644
index 000000000..587a517e3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ipy_1.00.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-ipy.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc
index 3cb6bb816..8c128919e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc
@@ -1,5 +1,5 @@
SUMMARY = "ISO 8601 date/time parser"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
SRC_URI[md5sum] = "0e1203fce27ce65e2d01c5f21c4d428f"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc
index 359b18012..324d4cf10 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc
@@ -4,8 +4,8 @@ LICENSE = "MIT"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-SRC_URI[md5sum] = "fb554e9c8f9aa76e333a03d470a5cf52"
-SRC_URI[sha256sum] = "b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8"
+SRC_URI[md5sum] = "05d66f2eb7ce2c2d702e86bac24bf9e4"
+SRC_URI[sha256sum] = "54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.21.bb
index fa46d89b5..fa46d89b5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-isort_4.3.21.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc
index 84f9e7742..241786a7c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc
@@ -1,10 +1,10 @@
SUMMARY = "Various helpers to pass trusted data to untrusted environments and back."
HOMEPAGE = "http://github.com/mitsuhiko/itsdangerous"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b61841e2bf5f07884148e2a6f1bcab0c"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=370799bf709a1e4a6a369fa089ac73a6"
-SRC_URI[md5sum] = "a3d55aa79369aef5345c036a8a26307f"
-SRC_URI[sha256sum] = "cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519"
+SRC_URI[md5sum] = "9b7f5afa7f1e3acfb7786eeca3d99307"
+SRC_URI[sha256sum] = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"
CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_1.1.0.bb
index 8c99cb4ca..8c99cb4ca 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_1.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc
index a0e802ca7..b10f00bba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3.inc
@@ -5,10 +5,10 @@ DESCRIPTION = "python-javaobj is a python library that provides functions\
representation is a standard data interchange format in Java world."
HOMEPAGE = "https://github.com/tcalmant/python-javaobj"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://javaobj.py;beginline=21;endline=33;md5=8b504419ce78f8133b21b4d4a89ef7e9"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=15;endline=27;md5=af9ce26ac2de1b7436eb08c9308b4a1e"
-SRC_URI[md5sum] = "f669bb8099380e3dd84db3d542aa5b68"
-SRC_URI[sha256sum] = "b8b0d310fd97e1c7914d7911ee9d3f4b3d84d2a674aa95a4b0da3d8f155fc1bb"
+SRC_URI[md5sum] = "1c6189a0d9aef51d74bfc52cd2953991"
+SRC_URI[sha256sum] = "a57469e4f0d0eeba7482ad9839595db6e99ca4ac6630a4c8064dda75a2182549"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.3.0.bb
index ed34740e8..ed34740e8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-javaobj-py3_0.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc
index 8f64c2ab5..b23142d28 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch.inc
@@ -1,6 +1,6 @@
SUMMARY = "Appling JSON patches in Python 2.6+ and 3.x"
HOMEPAGE = "https://github.com/stefankoegl/python-json-patch"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc
index 4ed01ed6c..d36f0294a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer.inc
@@ -1,6 +1,6 @@
SUMMARY = "Resolve JSON Pointers in Python"
HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc
index d9ccf1cad..258beadc4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema.inc
@@ -1,15 +1,38 @@
SUMMARY = "An implementation of JSON Schema validation for Python"
+HOMEPAGE = "https://github.com/Julian/jsonschema"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
+ file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af"
+DEPENDS += "${PYTHON_PN}-vcversioner-native ${PYTHON_PN}-setuptools-scm-native"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-jsonschema:"
+
+SRC_URI_append = " file://0001-setup.cfg-add-non-GPL-format-option.patch"
SRC_URI[md5sum] = "a802ab85600074a726ef6acc4e6a8148"
SRC_URI[sha256sum] = "2fa0684276b6333ff3c0b1b27081f4b2305f0a36cf702a23db50edb141893c3f"
-DEPENDS += "${PYTHON_PN}-vcversioner-native ${PYTHON_PN}-setuptools-scm-native"
+PACKAGECONFIG ??= "format"
+PACKAGECONFIG[format] = ",,,\
+ ${PYTHON_PN}-idna \
+ ${PYTHON_PN}-jsonpointer \
+ ${PYTHON_PN}-webcolors \
+ ${PYTHON_PN}-rfc3987 \
+ ${PYTHON_PN}-strict-rfc3339 \
+"
+PACKAGECONFIG[nongpl] = ",,,\
+ ${PYTHON_PN}-idna \
+ ${PYTHON_PN}-jsonpointer \
+ ${PYTHON_PN}-webcolors \
+ ${PYTHON_PN}-rfc3986-validator \
+ ${PYTHON_PN}-rfc3339-validator \
+"
RDEPENDS_${PN} += " \
${PYTHON_PN}-attrs \
${PYTHON_PN}-core \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-importlib-metadata \
${PYTHON_PN}-io \
${PYTHON_PN}-json \
${PYTHON_PN}-netclient \
@@ -17,11 +40,11 @@ RDEPENDS_${PN} += " \
${PYTHON_PN}-pkgutil \
${PYTHON_PN}-pprint \
${PYTHON_PN}-pyrsistent \
- ${PYTHON_PN}-rfc3987 \
${PYTHON_PN}-shell \
- ${PYTHON_PN}-strict-rfc3339 \
+ ${PYTHON_PN}-six \
${PYTHON_PN}-unittest \
${PYTHON_PN}-setuptools-scm \
+ ${PYTHON_PN}-zipp \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch
new file mode 100644
index 000000000..afc38a30b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch
@@ -0,0 +1,96 @@
+From 8df0332475991884b8e1801d31f9c3e06d06bf9f Mon Sep 17 00:00:00 2001
+From: Nicola Lunghi <nick83ola@gmail.com>
+Date: Thu, 14 Nov 2019 18:58:56 +0000
+Subject: [PATCH] setup.cfg: add non GPL format option
+
+This is a rewrite of the following upstream commits:
+
+ - 10f8a3e Add format validators as separate modules
+ - af37707 non GPL format option
+
+removing all the non necessary bits (tox in particular)
+
+Original author: Nicolas Aimetti <naimetti@yahoo.com.ar>
+
+Upstream-status: Backported. [ to be removed for releases > 3.1.1 ]
+---
+ jsonschema/_format.py | 33 ++++++++++++++++++++++++++++-----
+ setup.cfg | 6 ++++++
+ 2 files changed, 34 insertions(+), 5 deletions(-)
+
+diff --git a/jsonschema/_format.py b/jsonschema/_format.py
+index aa04090..c967d98 100644
+--- a/jsonschema/_format.py
++++ b/jsonschema/_format.py
+@@ -248,7 +248,26 @@ else:
+ try:
+ import rfc3987
+ except ImportError:
+- pass
++ try:
++ from rfc3986_validator import validate_rfc3986
++ except ImportError:
++ pass
++ else:
++ @_checks_drafts(name="uri",)
++ def is_uri(instance):
++ if not isinstance(instance, str_types):
++ return True
++ return validate_rfc3986(instance, rule="URI")
++
++ @_checks_drafts(
++ draft6="uri-reference",
++ draft7="uri-reference",
++ raises=ValueError,
++ )
++ def is_uri_reference(instance):
++ if not isinstance(instance, str_types):
++ return True
++ return validate_rfc3986(instance, rule="URI_reference")
+ else:
+ @_checks_drafts(draft7="iri", raises=ValueError)
+ def is_iri(instance):
+@@ -280,15 +299,19 @@ else:
+
+
+ try:
+- import strict_rfc3339
++ from strict_rfc3339 import validate_rfc3339
+ except ImportError:
+- pass
+-else:
++ try:
++ from rfc3339_validator import validate_rfc3339
++ except ImportError:
++ validate_rfc3339 = None
++
++if validate_rfc3339:
+ @_checks_drafts(name="date-time")
+ def is_datetime(instance):
+ if not isinstance(instance, str_types):
+ return True
+- return strict_rfc3339.validate_rfc3339(instance)
++ return validate_rfc3339(instance)
+
+ @_checks_drafts(draft7="time")
+ def is_time(instance):
+diff --git a/setup.cfg b/setup.cfg
+index 74bc4a7..878221c 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -40,6 +40,12 @@ format =
+ rfc3987
+ strict-rfc3339
+ webcolors
++format_nongpl =
++ idna
++ jsonpointer>1.13
++ webcolors
++ rfc3986-validator>0.1.0
++ rfc3339-validator
+
+ [options.entry_points]
+ console_scripts =
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc
index 83d2ea3cd..bbbd66ce6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc
@@ -1,10 +1,12 @@
SUMMARY = "A fast and thorough lazy object proxy"
HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ec680df42d8ad56427a83308817658cc"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9c5c2c74370826468065c5702b8a1fcf"
-SRC_URI[md5sum] = "e128152b76eb5b9ba759504936139fd0"
-SRC_URI[sha256sum] = "eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a"
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+SRC_URI[md5sum] = "5c64c06affcd2a7c6ddc848af4280cca"
+SRC_URI[sha256sum] = "f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.4.3.bb
index df4d60bff..df4d60bff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.4.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc
index d4e274e60..558e436c9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-meld3.inc
@@ -5,7 +5,7 @@ template markup and dynamic rendering logic separate from one \
another. See http://www.entrian.com/PyMeld for a treatise on the \
benefits of this pattern."
HOMEPAGE = "https://github.com/supervisor/meld3"
-LICENSE = "BSD"
+LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9e7581cef5645475fcefebdc15ed7abf"
SRC_URI[md5sum] = "3ccc78cd79cffd63a751ad7684c02c91"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc
index 41c334e8d..8dcf00b3f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools.inc
@@ -3,7 +3,4 @@ HOMEPAGE = "https://github.com/erikrose/more-itertools"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
-SRC_URI[md5sum] = "f647bfd27243a7bebe53b5ddb6a3b1c4"
-SRC_URI[sha256sum] = "409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832"
-
-inherit pypi setuptools3
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_5.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_5.0.0.bb
new file mode 100644
index 000000000..6c44df40a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_5.0.0.bb
@@ -0,0 +1,7 @@
+inherit pypi setuptools
+require python-more-itertools.inc
+
+SRC_URI[md5sum] = "f2ea58aa336ce6c13b7b225b3bbe305d"
+SRC_URI[sha256sum] = "38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4"
+
+PE = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_7.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_7.2.0.bb
deleted file mode 100644
index 0702aad4e..000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-more-itertools_7.2.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-more-itertools.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
index 91235b961..bca58f764 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
@@ -1,6 +1,6 @@
DESCRIPTION = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
HOMEPAGE = "http://python-requests.org"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0"
SRC_URI[md5sum] = "b0fc8ea38f87d2c1ab1ed79a95c078f9"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc
index 5b6d4dffa..bea9be674 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr.inc
@@ -1,5 +1,5 @@
SUMMARY = "A network address manipulation library for Python."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44"
SRC_URI[md5sum] = "51019ef59c93f3979bcb37d3b8527e07"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc
index c5de8a091..fea071449 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-oauthlib.inc
@@ -1,7 +1,7 @@
SUMMARY = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
HOMEPAGE = "https://github.com/idan/oauthlib"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5ba9ce41463615e082609806255bce1b"
SRC_URI = "https://pypi.python.org/packages/a5/8a/212e9b47fb54be109f3ff0684165bb38c51117f34e175c379fce5c7df754/oauthlib-${PV}.tar.gz"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc
index 66943ed6c..0a0e61084 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc
@@ -8,8 +8,8 @@ SRCNAME = "paho-mqtt"
inherit pypi
-SRC_URI[md5sum] = "e3ac29cd5dc247a01083a2a8f3fddd08"
-SRC_URI[sha256sum] = "e440a052b46d222e184be3be38676378722072fcd4dfd2c8f509fb861a7b0b79"
+SRC_URI[md5sum] = "45e80d9b8066a8d0ba1ecfffe271bd3d"
+SRC_URI[sha256sum] = "e3d286198baaea195c8b3bc221941d25a3ab0e1507fc1779bdb7473806394be4"
DEPENDS += "${PYTHON_PN}-pytest-runner-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.5.0.bb
index a1031176e..a1031176e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.5.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb
index 60a3b43de..bac349618 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb
@@ -11,5 +11,5 @@ inherit pypi setuptools
RDEPENDS_${PN} = "libpam"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc
index fa55a93c5..ccd5a9377 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc
@@ -1,10 +1,10 @@
SUMMARY = "Parse strings using a specification based on the Python format() syntax"
HOMEPAGE = "https://github.com/r1chardj0n3s/parse"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://parse.py;beginline=1273;endline=1291;md5=5147afdd9b3615290ad8733f0137a1a1"
+LIC_FILES_CHKSUM = "file://parse.py;beginline=1317;endline=1337;md5=fa03bae3f51a2db25e239e869c647437"
-SRC_URI[md5sum] = "fa69ab2fe846f9b183411391f7c6897b"
-SRC_URI[sha256sum] = "c3cdf6206f22aeebfa00e5b954fcfea13d1b2dc271c75806b6025b94fb490939"
+SRC_URI[md5sum] = "8fc634769f1d841f14a52dd731ca447a"
+SRC_URI[sha256sum] = "a5fca7000c6588d77bc65c28f3f21bfce03b5e44daa8f9f07c17fe364990d717"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.12.1.bb
index d31ccc72a..d31ccc72a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.12.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc
index 9e477ecf9..8a6d7e9b2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc
@@ -6,7 +6,7 @@ managing existing password hashes. It’s designed to be useful for a wide range
tasks, from verifying a hash found in /etc/shadow, to providing full-strength password \
hashing for multi-user applications."
HOMEPAGE = "https://bitbucket.org/ecollins/passlib"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=73eed1a5470b969951dac411086c7036"
SRC_URI[md5sum] = "254869dae3fd9f09f0746a3cb29a0b15"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc
index c25e5a080..3199b56a0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2.inc
@@ -3,7 +3,9 @@ HOMEPAGE = "https://github.com/mcmtroffaes/pathlib2"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=042856c23a3e903b33bf361ea1cbe29a"
-SRC_URI[md5sum] = "96da6398b3ea944417b84ccb25b171aa"
-SRC_URI[sha256sum] = "446014523bb9be5c28128c4d2a10ad6bb60769e78bd85658fe44a450674e0ef8"
+SRC_URI[md5sum] = "f2bd0a363eb0f8fa0556f35c1d9e66fb"
+SRC_URI[sha256sum] = "6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868"
RDEPENDS_${PN} += "${PYTHON_PN}-six"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.4.bb
deleted file mode 100644
index e4bf78913..000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pathlib2.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.5.bb
new file mode 100644
index 000000000..6317e1c16
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pathlib2_2.3.5.bb
@@ -0,0 +1,6 @@
+inherit pypi setuptools
+require python-pathlib2.inc
+
+RDEPENDS_${PN} += "python-scandir \
+ python-misc \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc
index 539c3579c..ea43e5fa7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc
@@ -2,6 +2,6 @@ DESCRIPTION = "A pure Python 2/3 library for peripheral I/O (GPIO, LED, PWM, SPI
HOMEPAGE = "http://pythonhosted.org/python-periphery/"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=063846af82b555d48822cf43dc6db6af"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=19f978bd6c8afe3fa9e408b71330512f"
-PYPI_PACKAGE = "python-periphery" \ No newline at end of file
+PYPI_PACKAGE = "python-periphery"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb
deleted file mode 100644
index 6ae7fed81..000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools
-require python-periphery.inc
-
-SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_2.0.0.bb
new file mode 100644
index 000000000..7069f3fdd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_2.0.0.bb
@@ -0,0 +1,4 @@
+inherit pypi setuptools
+require python-periphery.inc
+
+SRC_URI[sha256sum] = "2df05528a7668db4fb3faaff516b34ed99e9009ed9610a4efe3ea6c0ea8a3aab"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc
index 10be5bb62..bde154fe7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pika.inc
@@ -5,7 +5,7 @@ including RabbitMQ’s extensions. \
"
SECTION = "devel/python"
HOMEPAGE = "https://pika.readthedocs.io"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=535836bf0a5de515a7bfee026075701d"
SRC_URI[md5sum] = "6002400cdd33bf85ec8680ece72910d4"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc
index 2bc8e4ab6..0900d91d7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc
@@ -9,7 +9,7 @@ PYPI_PACKAGE := "Pint"
inherit pypi
-SRC_URI[md5sum] = "e1f80f3f8fc4e61f68ad3912db26b3a8"
-SRC_URI[sha256sum] = "afcf31443a478c32bbac4b00337ee9026a13d0e2ac83d30c79151462513bb0d4"
+SRC_URI[md5sum] = "d0681cb7cfaca9fc68ce7edab0d08d88"
+SRC_URI[sha256sum] = "32d8a9a9d63f4f81194c0014b3b742679dce81a26d45127d9810a68a561fe4e2"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.9.bb
index 480f08872..480f08872 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.9.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.1.bb
index 2b5ee9e7e..2827a1256 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pip_19.3.1.bb
@@ -3,8 +3,8 @@ HOMEPAGE = "https://pip.pypa.io/"
LICENSE = "MIT & LGPL-2.1"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e"
-SRC_URI[md5sum] = "a57da8b758cbf1a155cde6a7a4428ba7"
-SRC_URI[sha256sum] = "324d234b8f6124846b4e390df255cacbe09ce22791c3b714aa1ea6e44a4f2861"
+SRC_URI[md5sum] = "1aaaf90fbafc50e7ba1e66ffceb00960"
+SRC_URI[sha256sum] = "21207d76c1031e517668898a6b46a9fb1501c7a4710ef5dfd6a40ad9e6757ea7"
inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc
index 57660060c..1931532a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pluggy.inc
@@ -7,5 +7,8 @@ SRC_URI[md5sum] = "4b8384b69cddbc2e104fdd3ff5631788"
SRC_URI[sha256sum] = "fa5fa1622fa6dd5c030e9cad086fa19ef6a0cf6d7a2d12318e10cb49d6d68f34"
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+RDEPENDS_${PN} += "${PYTHON_PN}-importlib-metadata \
+ ${PYTHON_PN}-more-itertools \
+"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc
index a744950b6..149fe058f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ply.inc
@@ -2,7 +2,7 @@ SUMMARY = "Python Lex and Yacc"
DESCRIPTION = "Python ply: PLY is yet another implementation of lex and yacc for Python"
HOMEPAGE = "https://pypi.python.org/pypi/ply"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://README.md;beginline=5;endline=32;md5=f5ee5c355c0e6719c787a71b8f0fa96c"
SRC_URI[md5sum] = "6465f602e656455affcd7c5734c638f8"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc
index 4c848b6dd..1f8f66a18 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc
@@ -1,6 +1,6 @@
SUMMARY = "This package provides a python interface to CMU Sphinxbase and Pocketsphinx libraries created with SWIG and Setuptools."
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=826ebda787eb48e78aec2624f9faba72"
SRC_URI[md5sum] = "c0f2bfd54bc4c438c3bb64825f57d575"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc
index b342aef52..58f196199 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pretend.inc
@@ -1,6 +1,6 @@
SUMMARY = "A library for stubbing in Python"
HOMEPAGE = "https://github.com/alex/pretend"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99"
SRC_URI[md5sum] = "ad53883ede48aeac7ae584f0de0240e8"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc
index 6004ecd33..07e896d2d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable.inc
@@ -1,6 +1,6 @@
SUMMARY = "Python library for displaying tabular data in a ASCII table format"
HOMEPAGE = "http://code.google.com/p/prettytable"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=3e73500ffa52de5071cff65990055282"
SRC_URI[md5sum] = "0c1361104caff8b09f220748f9d69899"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc
index 9f00615c4..d59ba2cc5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "http://github.com/verigak/progress/"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=aef5566ac4fede9815eccf124c281317"
-SRC_URI[md5sum] = "057981e2f09029288f5255b1ea3ab64d"
-SRC_URI[sha256sum] = "5e2f9da88ed8236a76fffbee3ceefd259589cf42dfbc2cec2877102189fae58a"
+SRC_URI[md5sum] = "408df0e3db0ad4b74f19f6beec814ae4"
+SRC_URI[sha256sum] = "69ecedd1d1bbe71bf6313d88d1e6c4d2957b7f1d4f71312c211257f7dae64372"
RDEPENDS_${PN}_class-target += " \
${PYTHON_PN}-datetime \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.5.bb
index 80608627a..80608627a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
index 1a4bd35c3..91aa7bb19 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
@@ -1,9 +1,9 @@
SUMMARY = "Library for building powerful interactive command lines in Python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
-SRC_URI[md5sum] = "8db8b8e40e91bc6dce133d8d5727a717"
-SRC_URI[sha256sum] = "ff58ce8bb82c11c43416dd3eec7701dcbe8c576e2d7649f1d2b9d21a2fd93808"
+SRC_URI[md5sum] = "5016c523e603cd7119644fbc0f00ce53"
+SRC_URI[sha256sum] = "f15af68f66e664eaa559d4ac8a928111eebd5feda0c11738b5998045224829db"
PYPI_PACKAGE = "prompt_toolkit"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.10.bb
index 527c905a8..527c905a8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.10.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc
index 0908c1c92..931226699 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc
@@ -1,9 +1,9 @@
SUMMARY = "A cross-platform process and system utilities module for Python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e35fd9f271d19d5f742f20a9d1f8bb8b"
-SRC_URI[md5sum] = "1bbc1788588cc3c2c461cd98a830ba72"
-SRC_URI[sha256sum] = "863a85c1c0a5103a12c05a35e59d336e1d665747e531256e061213e2e90f63f3"
+SRC_URI[md5sum] = "5561dfe61b5888fb1b3f17fbe4eeb15d"
+SRC_URI[sha256sum] = "d051532ac944f1be0179e0506f6889833cf96e466262523e57a871de65a15147"
PACKAGES =+ "${PN}-tests"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.5.bb
index 9aabfb206..9aabfb206 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.6.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc
index 1722875ab..d1d53e125 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc
@@ -3,5 +3,5 @@ HOMEPAGE = "https://github.com/wjakob/pybind11"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=beb87117af69fd10fbf9fb14c22a2e62"
-SRC_URI[md5sum] = "5b9611041e4ea66b2b919239e3bacd65"
-SRC_URI[sha256sum] = "87ff3ae777d9326349af5272974581270b2a0909b2392dc0cc57eb28ce23bcc3"
+SRC_URI[md5sum] = "23fdca8191b16ce3e7f38fb9e4252b2d"
+SRC_URI[sha256sum] = "72e6def53fb491f7f4e92692029d2e7bb5a0783314f20d80222735ff10a75758"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.4.3.bb
index e56743002..e56743002 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.4.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc
index c4969f966..50ffd0a66 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome.inc
@@ -3,10 +3,10 @@ DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level\
cryptographic primitives."
HOMEPAGE = "http://www.pycryptodome.org"
LICENSE = "PD & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=775fe77831c03bf82f35abc0e230d4c1"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=6dc0e2a13d2f25d6f123c434b761faba"
-SRC_URI[md5sum] = "a2587b6381b0ef4eb960cea1e7507d04"
-SRC_URI[sha256sum] = "c5dd29e9f1b733e74311bf95d0e544e91bd1d14bc0366e8f443562d8d9920b7d"
+SRC_URI[md5sum] = "c4e53f9ed33ca883b18249b9e1546251"
+SRC_URI[sha256sum] = "39ddc3c493125494572e0beefa8e8e6a43369e93c3c3e163cb871b37c1c62fba"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.9.3.bb
index c7701eb9f..c7701eb9f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pycryptodome_3.9.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools.inc
new file mode 100644
index 000000000..7d4f763ff
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+HOMEPAGE = "https://github.com/eliben/pyelftools"
+SECTION = "devel/python"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc"
+
+SRC_URI[md5sum] = "c5629b9a5d19c82107a946cce52eeec2"
+SRC_URI[sha256sum] = "89c6da6f56280c37a5ff33468591ba9a124e17d71fe42de971818cbff46c1b24"
+
+PYPI_PACKAGE = "pyelftools"
+
+inherit pypi
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools_0.25.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools_0.25.bb
new file mode 100644
index 000000000..de4202506
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyelftools_0.25.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-pyelftools.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc
index d2d41d51d..85d9588a8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect.inc
@@ -7,5 +7,5 @@ LIC_FILES_CHKSUM = "file://README.md;md5=500b884e9dcd5f677a53cbbee8ace939"
inherit pypi
-SRC_URI[md5sum] = "c71307d6c7096fdbde0813018dfa0092"
-SRC_URI[sha256sum] = "d656ef7e07a8aa539ce0a4883a683341037b6fc1c329bf55b63bffbf2cce9582"
+SRC_URI[md5sum] = "dc744289858001925c75d21e26f1260f"
+SRC_URI[sha256sum] = "bff4654b113dac6c2231e486e11dcb23281ddc0742a5404467303fe7638829ef"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.19.bb
index d26beb794..d26beb794 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyexpect_1.0.19.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc
index 2365379aa..2a53574e2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata.inc
@@ -7,7 +7,7 @@ RDEPENDS_${PN} = "\
${PYTHON_PN}-pyserial \
"
-SRC_URI[md5sum] = "ee4c23ca5c35d3091d550a63540811a3"
-SRC_URI[sha256sum] = "b54d49d66a9d93c1ef9c72ca01264414cb2de177baac116c12d5cce0c380160c"
+SRC_URI[md5sum] = "159673cfb56c72ceafc30fe91eedd847"
+SRC_URI[sha256sum] = "cc180d1b30c85a2bbca62c15fef1b871db048cdcfa80959968356d97bd3ff08e"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.1.0.bb
index d77e0f385..d77e0f385 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyfirmata_1.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb
index 02d4f54e1..8dbb79a42 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "Hamcrest framework for matcher objects"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6df1318c6071dd1707f5e3b6c11f24f"
PYPI_PACKAGE = "PyHamcrest"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc
index d866c5650..9a066f7f1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks.inc
@@ -6,8 +6,8 @@ HOMEPAGE = "http://github.com/kurtbrose/pyjks"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9694d6cc724caf7f7386be88a4a81958"
-SRC_URI[md5sum] = "d53501e7c80d465969742bc6bee91d49"
-SRC_URI[sha256sum] = "709c44a303dd6b2464078ebeb677417e717818d4b3dc3844a462bef9d215dcc8"
+SRC_URI[md5sum] = "b6e8f3b91be355d15e3ba99de2cccf9b"
+SRC_URI[sha256sum] = "9ce5b40289bcdffcd6a8e7118b333ba8ba2ec4c9ebc5e324885cc8a69767011a"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_19.0.0.bb
index ce99f2835..ce99f2835 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjks_19.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc
index 00c38e317..9b8938530 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc
@@ -6,8 +6,8 @@ HOMEPAGE = "http://github.com/jpadilla/pyjwt"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=68626705a7b513ca8d5f44a3e200ed0c"
-SRC_URI[md5sum] = "2731c6b66b67b95d1944f072f5fa35a9"
-SRC_URI[sha256sum] = "4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176"
+SRC_URI[md5sum] = "a4712f980c008696e13e09504120b2a0"
+SRC_URI[sha256sum] = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96"
PYPI_PACKAGE = "PyJWT"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.7.1.bb
index f0a77b674..f0a77b674 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.7.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
index 468a80122..4c61d9fff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/MISP/PyMISP"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
-SRC_URI[md5sum] = "6d549b36cbfa8c1a3323c5d6e299789e"
-SRC_URI[sha256sum] = "f4ed2000cbe1a314f1f88fd8a8eba4ad05974b351b96f1235c6e532158a39fe0"
+SRC_URI[md5sum] = "77aef367e57ba7dcc6f9b3d445a960ed"
+SRC_URI[sha256sum] = "de67196f6a8916b9c52a84a1c45ea967c53fa9d2b3795b070ad2c1cbc28d79d7"
RDEPENDS_${PN} += " \
${PYTHON_PN}-dateutil \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.93.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.117.2.bb
index 1b1fbe956..1b1fbe956 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.93.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.117.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc
index 6a3989627..c755c0ae9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pynetlinux.inc
@@ -2,7 +2,7 @@ SUMMARY = "Linux network configuration library for Python"
DESCRIPTION = "This library contains Python bindings to ioctl calls"
SECTION = "devel/python"
HOMEPAGE = "http://github.com/rlisagor/pynetlinux"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=74e1861736ee959824fe7542323c12e9"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc
index 556946e76..bf89be662 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "http://pyparsing.wikispaces.com/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1"
-SRC_URI[md5sum] = "46d02cbe0461fe0571d51649e6006ef5"
-SRC_URI[sha256sum] = "6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80"
+SRC_URI[md5sum] = "75dfad250d739efa82c7c0eeaacc5e68"
+SRC_URI[sha256sum] = "4ca62001be367f01bd3e92ecbb79070272a9d4964dce6a48a82ff0b8bc7e683a"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.5.bb
index 90217f3c3..90217f3c3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.4.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc
index ed1981e49..7a14b9efb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc
@@ -3,8 +3,8 @@ LICENSE = "GPLv2 & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce"
-SRC_URI[md5sum] = "2f6f951e94356ae9d224f417dc6ebed2"
-SRC_URI[sha256sum] = "42bf74495d95a0196a74dd171357f660175aba2bfc23f9b5f63e3830ccbef9ac"
+SRC_URI[md5sum] = "371683b62314211b8bc9807ac8ef1144"
+SRC_URI[sha256sum] = "963fce07da2841456d39e3b932b071f6de28d23dadfae014022d67a752916f98"
FILESEXTRAPATHS_prepend := "${THISDIR}/python-pyroute2:"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.7.bb
index f25f1b4ab..f25f1b4ab 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc
index 2add037de..fad488dd9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/tobgu/pyrsistent"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENCE.mit;md5=ca574f2891cf528b3e7a2ee570337e7c"
-SRC_URI[md5sum] = "0298efae86e009e24136d39dc8b2d33e"
-SRC_URI[sha256sum] = "34b47fa169d6006b32e99d4b3c4031f155e6e68ebcc107d6454852e8e0ee6533"
+SRC_URI[md5sum] = "903c518c8829de4ee255cff68ff8da45"
+SRC_URI[sha256sum] = "eb6545dbeb1aa69ab1fb4809bfbf5a8705e44d92ef8fc7c2361682a47c46c778"
RDEPENDS_${PN} += " \
${PYTHON_PN}-six \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.5.bb
index 832eb8038..832eb8038 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyrsistent_0.15.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc
index 870f1d8a8..c9580de26 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc
@@ -1,5 +1,5 @@
SUMMARY = "Serial Port Support for Python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d476d94926db6e0008a5b3860d1f5c0d"
SRC_URI[md5sum] = "ed6183b15519a0ae96675e9c3330c69b"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.3.4.bb
index 24759b5d6..43aa4b84c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pysmi_0.3.4.bb
@@ -5,11 +5,11 @@ DESCRIPTION = "A pure-Python implementation of SNMP/SMI MIB \
HOMEPAGE = "https://pypi.python.org/pypi/pysmi"
SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=d8b1bbadd635f187dee74d999a8c67b8"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=a088b5c72b59d51a5368ad3b18e219bf"
-SRC_URI[md5sum] = "3b0f71e4e9f730d211f09d8ef5371140"
-SRC_URI[sha256sum] = "2a315cc3e556b3428372b69da663a24d2f0df9e9ab075b022cb133855f25aef7"
+SRC_URI[md5sum] = "10a9dd140ad512eed9f37344df83ce9d"
+SRC_URI[sha256sum] = "bd15a15020aee8376cab5be264c26330824a8b8164ed0195bd402dd59e4e8f7c"
inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb
index 9ff4df2c9..8883df9d8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pysnmp_4.4.9.bb
@@ -5,7 +5,7 @@ DESCRIPTION = "SNMP v1/v2c/v3 engine and apps written in pure-Python. \
"
HOMEPAGE = "https://pypi.python.org/pypi/pysnmp"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=b15d29f500f748d1c2a15709769090a8"
SRCNAME = "pysnmp"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc
index ceadcb20d..1836e52d0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pysocks.inc
@@ -1,6 +1,6 @@
DESCRIPTION = "A Python SOCKS client module"
HOMEPAGE = "http://python-requests.org"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1d457bcffb9661b45f799d4efee72f16"
SRC_URI[md5sum] = "89b1a6865c61bae67a32417517612ee6"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc
index a69867d91..c091ab976 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc
@@ -2,9 +2,9 @@ DESCRIPTION = "This plugin does not provide any helpers to pytest, it does, howe
HOMEPAGE = "https://github.com/saltstack/pytest-helpers-namespace"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=71fac4dfeee99c39c51f617e9486237c"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=cc99508c43d9d14fd51c7fac622ffd23"
-SRC_URI[md5sum] = "80fe3e515f640b1459709b539f6b857e"
-SRC_URI[sha256sum] = "d8bdb017c0f7271699c08850b6b12e1ce9e52913cbd4461b5febd21082a29113"
+SRC_URI[md5sum] = "04ec1d8750f9b154e782a47cf8b30736"
+SRC_URI[sha256sum] = "4eff23a19f92410c0166f6dffbfa8901d3e14a80e97d70cd08428b6d597771ce"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2019.1.8.bb
index 2b6ee8550..2b6ee8550 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2019.1.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc
index 113ab41f5..0b443b3d6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc
@@ -2,8 +2,8 @@ SUMMARY = "Invoke py.test as distutils command with dependency resolution"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e"
-SRC_URI[md5sum] = "a52d65bd3dbc88bed751cf934dc41db3"
-SRC_URI[sha256sum] = "25a013c8d84f0ca60bb01bd11913a3bcab420f601f0f236de4423074af656e7a"
+SRC_URI[md5sum] = "e5f66b8e8e87f62c59631c35c919d321"
+SRC_URI[sha256sum] = "96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.2.bb
index 1765a732d..1765a732d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_5.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc
index 196f6d644..cf355a364 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc
@@ -2,9 +2,9 @@ DESCRIPTION = "Adds support for a predictable and repeatable temporary directory
HOMEPAGE = "https://github.com/saltstack/pytest-tempdir"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=8751a9cf4a70be4f02697a9b89e686ce"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9872c3a37cc9baf79a464cd168282be5"
-SRC_URI[md5sum] = "f87f2583f5f8aaca7203d57ada3948b5"
-SRC_URI[sha256sum] = "65ff815966ea6dfc07ca1b43747c9888a6d883971170e67b16290f9f50d434ea"
+SRC_URI[md5sum] = "79b997d418fb85c2529ab50cd4333689"
+SRC_URI[sha256sum] = "e7d91813a9aa991db87dacdef8cfd3f1657632d731d56d06238c5ffb63ab36d8"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2019.10.12.bb
index 8a9b83e3d..8a9b83e3d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2019.10.12.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc
index fa264f791..a26d41084 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "http://pytest.org"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=640061b8cee64b308a4d2f9f556c12f2"
-SRC_URI[md5sum] = "00561d0295aab167987f8a4f784964c4"
-SRC_URI[sha256sum] = "ca563435f4941d0cb34767301c27bc65c510cb82e90b9ecf9cb52dc2c63caaa0"
+SRC_URI[md5sum] = "889344299c9182aff67d6e461cb7af29"
+SRC_URI[sha256sum] = "27abc3fef618a01bebb1f0d6d303d2816a99aa87a5968ebc32fe971be91eb1e6"
SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.2.2.bb
index 39e50aca9..39e50aca9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_5.2.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc
index baf2db530..e783dd432 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb.inc
@@ -1,6 +1,6 @@
SUMMARY = "PyUSB provides USB access on the Python language"
HOMEPAGE = "http://pyusb.sourceforge.net/"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=51691ed11cc2c7ae93e383f60ed49b0f"
DEPENDS += "libusb1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc
index 0eac19788..2fa6d9815 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc
@@ -1,5 +1,5 @@
SUMMARY = "RDFLib is a pure Python package for working with RDF"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=68c1a3bb687bd63b8e5552f3ea249840"
SRC_URI[md5sum] = "534fe35b13c5857d53fa1ac5a41eca67"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc
index 4bc6a368c..7c4d85f2a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc
@@ -1,7 +1,7 @@
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=22d117a849df10d047ed9b792838e863"
-SRC_URI[md5sum] = "4358a879a4377393bcfd37d0f9ae6d4d"
-SRC_URI[sha256sum] = "883ac416757eada6d3d07054ec7092ac21c7f35cb1d2cf82faf205637081f468"
+SRC_URI[md5sum] = "1ebcd55f1b1b9281940b4bc33010e2ba"
+SRC_URI[sha256sum] = "b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a"
RDEPENDS_${PN} += "${PYTHON_PN}-requests"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_1.3.0.bb
index 43189150a..43189150a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_1.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator.inc
new file mode 100644
index 000000000..3da082984
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator.inc
@@ -0,0 +1,25 @@
+SUMMARY = "A pure python RFC3339 validator"
+HOMEPAGE = "https://github.com/naimetti/rfc3339-validator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-rfc3339-validator:"
+
+SRC_URI[md5sum] = "9d8899041d83f98180bddd8b62ee7e99"
+SRC_URI[sha256sum] = "20a600d01fbb1f793cbb6f4ec4ebb2104f4c9e80d74d5f78350b63ecc6cccd08"
+
+PYPI_PACKAGE = "rfc3339_validator"
+
+inherit pypi
+
+SRC_URI_append = " \
+ file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch
new file mode 100644
index 000000000..ce8ca0bc8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch
@@ -0,0 +1,32 @@
+From 2de281fdca88f223ace1eb6428a77b9903c69264 Mon Sep 17 00:00:00 2001
+From: Nicola Lunghi <nicola.lunghi@jci.com>
+Date: Thu, 14 Nov 2019 11:58:28 +0000
+Subject: [PATCH] setup.py: move pytest-runner to test_requirements
+
+This fixes an issue with yocto build.
+pytest-runner is only needed when running tests.
+
+Upstream-Status: Pending
+---
+ setup.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 9a50767..e3b1c6e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -12,9 +12,9 @@ requirements = [
+ 'six',
+ ]
+
+-setup_requirements = ['pytest-runner', ]
++setup_requirements = []
+
+-test_requirements = ['pytest>=3', ]
++test_requirements = ['pytest>=3', 'pytest-runner']
+
+ setup(
+ author="Nicolas Aimetti",
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator_0.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator_0.1.1.bb
new file mode 100644
index 000000000..29b8a6e0d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3339-validator_0.1.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-rfc3339-validator.inc \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator.inc
new file mode 100644
index 000000000..71f7a7904
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator.inc
@@ -0,0 +1,23 @@
+SUMMARY = "Pure python rfc3986 validator"
+HOMEPAGE = "https://github.com/naimetti/rfc3986-validator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-rfc3986-validator:"
+
+SRC_URI[md5sum] = "47f7657b790aaf6011a1ab3d86c6be95"
+SRC_URI[sha256sum] = "3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"
+
+PYPI_PACKAGE = "rfc3986_validator"
+
+inherit pypi
+
+SRC_URI_append = " \
+ file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \
+"
+
+RDEPENDS_${PN} += "\
+ python3-core \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch
new file mode 100644
index 000000000..8a646874e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch
@@ -0,0 +1,32 @@
+From 3531ff73631a0d59234eb4713e7b3a7f5ea57bbb Mon Sep 17 00:00:00 2001
+From: Nicola Lunghi <nicola.lunghi@jci.com>
+Date: Thu, 14 Nov 2019 12:17:51 +0000
+Subject: [PATCH] setup.py: move pytest-runner to test_requirements
+
+This fixes an issue with yocto build.
+pytest-runner is only needed when running tests.
+
+Upstream-Status: Pending
+---
+ setup.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 53ebea7..ebb0de2 100644
+--- a/setup.py
++++ b/setup.py
+@@ -10,9 +10,9 @@ with open('README.md') as readme_file:
+
+ requirements = []
+
+-setup_requirements = ['pytest-runner', ]
++setup_requirements = []
+
+-test_requirements = ['pytest>=3', ]
++test_requirements = ['pytest>=3', 'pytest-runner']
+
+ setup(
+ author="Nicolas Aimetti",
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator_0.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator_0.1.1.bb
new file mode 100644
index 000000000..9dddbb4a9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rfc3986-validator_0.1.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-rfc3986-validator.inc \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-scandir_1.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-scandir_1.10.0.bb
new file mode 100644
index 000000000..9de272417
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-scandir_1.10.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A better directory iterator and faster os.walk()"
+HOMEPAGE = "https://github.com/benhoyt/scandir"
+AUTHOR = "Ben Hoyt"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=482ee62da51806409d432a80eed4e3ea"
+
+SRC_URI = "git://github.com/benhoyt/scandir.git"
+SRCREV = "982e6ba60e7165ef965567eacd7138149c9ce292"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools
+
+BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc
index 2ba65706b..1a3aac07f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc
@@ -1,9 +1,9 @@
SUMMARY = "Serialization based on ast.literal_eval"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5a8193ba89f1083617f32d522f6485e9"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5cd70632b6cdb96df9ddaf6a4ce619e6"
-SRC_URI[md5sum] = "0f9684622125a527fa4fbe2587738973"
-SRC_URI[sha256sum] = "264a028e059c1b557701ae7c567cdab330dbd228ff924489343efcb39bd828a0"
+SRC_URI[md5sum] = "15ef8b67c76a6d19bac9c16731a1e62a"
+SRC_URI[sha256sum] = "f306336ca09aa38e526f3b03cab58eb7e45af09981267233167bcf3bfd6436ab"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.25.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.28.bb
index 0db3cf98a..0db3cf98a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.25.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.28.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc
index 98883ec39..a7e1bf6ad 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc
@@ -2,8 +2,8 @@ SUMMARY = "the blessed package to manage your versions by scm tags"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-SRC_URI[md5sum] = "cfec5d2dbbd0a85c40066f79035b5878"
-SRC_URI[sha256sum] = "a767141fecdab1c0b3c8e4c788ac912d7c94a0d6c452d40777ba84f918316379"
+SRC_URI[md5sum] = "50b2199082fe808d032ec1710c9d7415"
+SRC_URI[sha256sum] = "bd25e1fb5e4d603dcf490f1fde40fb4c595b357795674c3e5cb7f6217ab39ea5"
PYPI_PACKAGE = "setuptools_scm"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_3.3.3.bb
index 64b36e3a0..64b36e3a0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_2.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_3.3.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc
index 3d36f9608..5592eaf3d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc
@@ -21,3 +21,5 @@ FILES_${PN}-tests+= " \
${PYTHON_SITEPACKAGES_DIR}/simplejson/tests \
${PYTHON_SITEPACKAGES_DIR}/simplejson/tool.py* \
"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc
index f472a57f4..8ba1ab2b8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-smbus.inc
@@ -1,11 +1,11 @@
SUMMARY = "Set of i2c tools for linux - Python module"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://smbusmodule.c;beginline=1;endline=17;md5=fa24df321a520ff8e10f203425ab9fa8"
+LIC_FILES_CHKSUM = "file://smbusmodule.c;beginline=1;endline=18;md5=46e424fb045901ab25e0f92c28c80055"
PR = "r1"
SRC_URI = "${KERNELORG_MIRROR}/software/utils/i2c-tools/i2c-tools-${PV}.tar.gz "
-SRC_URI[md5sum] = "d92a288d70f306d3895e3a7e9c14c9aa"
-SRC_URI[sha256sum] = "5b60daf6f011de0acb61de57dba62f2054bb39f19961d67e0c91610f071ca403"
+SRC_URI[md5sum] = "3536237a6b51fb10caacdc3b8a496237"
+SRC_URI[sha256sum] = "ef8f77afc70e7dbfd1171bfeae87a8a7f10074829370ce8d9ccd585a014e0073"
DEPENDS += "i2c-tools"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.1.bb
index 1b9577887..1b9577887 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.13.bb
index c5af48dd3..c885a7fbe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-snimpy_0.8.13.bb
@@ -8,8 +8,8 @@ DEPENDS += "libsmi python-cffi-native python-vcversioner-native"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=7c53ab2d1240828625c3e093d049d4f4"
-SRC_URI[md5sum] = "6d016b6356db432e6a87ad708eb8fcb6"
-SRC_URI[sha256sum] = "04efcfba867ffb0e10cc8d7f93a553ceb6bdf2ee34e49762749028a2c76096c1"
+SRC_URI[md5sum] = "7c57acac10226df5bf43e10b929942df"
+SRC_URI[sha256sum] = "98b1790977b435332c03ab2603f6621eeeee69a50453ac01ca55dc7696d08535"
inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc
index 94fa8a6c0..a2534e401 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-speaklater.inc
@@ -1,5 +1,5 @@
DESCRIPTION = "Media asset management for Python, with glue code for various frameworks"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b810770075a29bf44b96607440e7c801"
SRC_URI[md5sum] = "e8d5dbe36e53d5a35cff227e795e8bbf"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc
index beab49739..158cd52e1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-supervisor.inc
@@ -4,7 +4,7 @@ Supervisor is a client/server system that allows its users \
to monitorand control a number of processes on UNIX-like \
operating systems."
HOMEPAGE = "https://github.com/Supervisor/supervisor"
-LICENSE = "BSD"
+LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=5b4e3a2172bba4c47cded5885e7e507e"
SRC_URI[md5sum] = "ac70dadd051dcaf1d03c467d51a3aac1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc
index 5be5de092..b14f82501 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc
@@ -7,7 +7,7 @@ PYPI_PACKAGE = "systemd-python"
DEPENDS += "systemd (<=234)"
RDEPENDS_${PN} += "systemd ${PYTHON_PN}-syslog ${PYTHON_PN}-logging"
REQUIRED_DISTRO_FEATURES = "systemd"
-inherit pypi distro_features_check
+inherit pypi features_check
SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d"
SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7"
@@ -15,4 +15,6 @@ SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895
# allow for common patches for python- and python3-systemd
FILESEXTRAPATHS_prepend := "${THISDIR}/python-systemd:"
+SRC_URI += "file://endian.patch"
+
SRC_URI_append_libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/endian.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/endian.patch
new file mode 100644
index 000000000..e09aea733
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/endian.patch
@@ -0,0 +1,14 @@
+Include endian.h for missing definitions of htobe16
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/systemd/util.c
++++ b/systemd/util.c
+@@ -28,6 +28,7 @@
+ #include <stdbool.h>
+ #include <assert.h>
+ #include <errno.h>
++#include <endian.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <net/if.h>
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
index 16899f88c..7cb61931a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
@@ -6,8 +6,8 @@ HOMEPAGE = "http://www.tornadoweb.org/en/stable/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI[md5sum] = "bd264851c409f926d1dae1ad5055d28d"
-SRC_URI[sha256sum] = "4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582"
+SRC_URI[md5sum] = "cab4b11480f6d032e46465586192d343"
+SRC_URI[sha256sum] = "c845db36ba616912074c5b1ee897f8e0124df269468f25e4fe21fe72f6edd7a9"
RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-numbers ${PYTHON_PN}-email \
${PYTHON_PN}-pkgutil ${PYTHON_PN}-html ${PYTHON_PN}-json ${PYTHON_PN}-certifi ${PYTHON_PN}-threading \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_6.0.3.bb
index 193a4db7d..193a4db7d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_6.0.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc
index 967a80c20..1e410f402 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=054ef7105cba050017d1368262a1623c"
inherit pypi
-SRC_URI[md5sum] = "807e8c13e16e3660ac88e05d711daeb0"
-SRC_URI[sha256sum] = "e22977e3ebe961f72362f6ddfb9197cc531c9737aaf5f607ef09740c849ecd05"
+SRC_URI[md5sum] = "9a092a5878090996bbb0ed92bf572a8a"
+SRC_URI[sha256sum] = "c1d677f3a85fa291b34bdf8f770f877119b9754b32673699653556f85e2c2f13"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.38.0.bb
index b3810097e..b3810097e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.38.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
index d70104dc2..34f8846b0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
@@ -7,8 +7,8 @@ HOMEPAGE = "http://www.twistedmatrix.com"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1743f12d8b8f5aec625c0569a058f0a6"
-SRC_URI[sha256sum] = "d5db93026568f60cacdc0615fcd21d46f694a6bfad0ef3ff53cde2b4bb85a39d"
-SRC_URI[md5sum] = "5e9296a952430d288cdcdc6ad9eb5ee8"
+SRC_URI[sha256sum] = "7394ba7f272ae722a74f3d969dcf599bc4ef093bc392038748a490f1724a515d"
+SRC_URI[md5sum] = "f2d70f7a66ecdf54152310164cceadfe"
PYPI_PACKAGE = "Twisted"
PYPI_PACKAGE_EXT = "tar.bz2"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.10.0.bb
index 5903db3e0..5903db3e0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_19.10.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc
index f5657eeb2..ac3f65279 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc
@@ -2,10 +2,10 @@ SUMMARY = "Twitter for Python"
DESCRIPTION = "Python module to support twitter API"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=0307fffd8c4d9946c029daa1426d26e7"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=8f702b489acb6863cec8b261a55931d8"
-SRC_URI[md5sum] = "c6dc2f315ded761aafc96bea3351c7f6"
-SRC_URI[sha256sum] = "fe85a79f58a01dd335968523b91c5fce760e7fe78bf25a6e71c72204fe499d0b"
+SRC_URI[md5sum] = "8aeff278b7cefcd384c65929bc921e2c"
+SRC_URI[sha256sum] = "8abd828ba51a85a2b5bb7373715d6d3bb32d18ac624e3a4db02e4ef8ab48316b"
PYPI_PACKAGE = "tweepy"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.8.0.bb
index 6a28b08ae..6a28b08ae 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.8.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc
index 42f93e6a5..3e423d227 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc
@@ -3,6 +3,6 @@ HOMEPAGE = "https://pypi.org/project/tzlocal/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
-SRC_URI[md5sum] = "4553be891efa0812c4adfb0c6e818eec"
-SRC_URI[sha256sum] = "4ebeb848845ac898da6519b9b31879cf13b6626f7184c496037b818e238f2c4e"
+SRC_URI[md5sum] = "b14262cecca16ec9220ca8dff2ca7c5d"
+SRC_URI[sha256sum] = "949b9dd5ba4be17190a80c0268167d7e6c92c62b30026cf9764caf3e308e5590"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_2.0.0.bb
index b7980dd55..b7980dd55 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_2.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc
index c3d0bfeed..8f05de856 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ujson.inc
@@ -1,7 +1,7 @@
SUMMARY = "Ultra fast JSON encoder and decoder for Python"
DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e"
SRC_URI[md5sum] = "42f77b0cce686dfa4da2e68480b1dd24"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc
index 398b5f2ac..b7edc03f0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/shazow/urllib3"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=65715c2eb961313d71b297dd5a04f85e"
-SRC_URI[md5sum] = "a7504a9fcb7ed4ffa482fe098c80b6d4"
-SRC_URI[sha256sum] = "9a107b99a5393caf59c7aa3c1249c16e6879447533d0887f4336dde834c7be86"
+SRC_URI[md5sum] = "85e1e3925f8c1095172bff343f3312ed"
+SRC_URI[sha256sum] = "f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745"
RDEPENDS_${PN} += "\
${PYTHON_PN}-certifi \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.7.bb
index 6c81f1db9..6c81f1db9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.25.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc
index a02bbbbed..ef254e33b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-webcolors.inc
@@ -1,5 +1,5 @@
SUMMARY = "Simple Python module for working with HTML/CSS color definitions."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=197add016087e6884a012b0f185d44ad"
SRC_URI[md5sum] = "40890db38b2a856e526a568864025fe6"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc
index c04a4e0c4..e292d93bb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc
@@ -7,11 +7,11 @@ HTTP utilities to handle entity tags, cache control headers, HTTP dates, \
cookie handling, file uploads, a powerful URL routing system and a bunch \
of community contributed addon modules."
HOMEPAGE = "http://werkzeug.pocoo.org/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ed9a0b7c0254616d72dadb98b293ef1b"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
-SRC_URI[md5sum] = "6d20b5be2d245be4ac7706cc390d130c"
-SRC_URI[sha256sum] = "c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c"
+SRC_URI[md5sum] = "5b23b4953efc4f52b1d0b33af6f7cd2d"
+SRC_URI[sha256sum] = "7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7"
PYPI_PACKAGE = "Werkzeug"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.16.0.bb
index db41161b3..db41161b3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.16.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc
index a4ca5dcd4..040b32458 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc
@@ -4,7 +4,7 @@ Whoosh is a fast, featureful full-text indexing and searching library \
implemented in pure Python. Programmers can use it to easily add search \
functionality to their applications and websites. Every part of how \
Whoosh works can be extended or replaced to meet your needs exactly."
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05303186defc6141143629961c7c8a60"
SRC_URI[md5sum] = "893433e9c0525ac043df33e6e04caab2"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc
index ed49811fe..496c73fa8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-wrapt.inc
@@ -1,6 +1,6 @@
SUMMARY = "A Python module for decorators, wrappers and monkey patching."
HOMEPAGE = "http://wrapt.readthedocs.org/"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fdfc019b57affbe1d7a32e3d34e83db4"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc
index 868686bfe..93c5bc4e9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc
@@ -1,7 +1,7 @@
DESCRIPTION = "A flexible forms validation and rendering library for python web development."
HOMEPAGE = "https://pypi.python.org/pypi/WTForms"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c4660c132770d5d0a5757541f6b79493"
SRC_URI[md5sum] = "41c0008dbe7bd98892c58f7457a46a4a"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
index 893e82e05..f87d2ab7c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
@@ -3,11 +3,11 @@ DESCRIPTION = "Extract data from Excel spreadsheets (.xls and .xlsx,\
versions 2.0 onwards) on any platform. Pure Python (2.6, 2.7, 3.2+). \
Strong support for Excel dates. Unicode-aware."
HOMEPAGE = "http://www.python-excel.org/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=08bd814936237b6e1355e6370b24b2c1"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5f4244d51fcc1e7cc2d43e96891b2f80"
-SRC_URI[md5sum] = "b85c9916ac755cad489a9005f5a0d390"
-SRC_URI[sha256sum] = "8a21885513e6d915fe33a8ee5fdfa675433b61405ba13e2a69e62ee36828d7e2"
+SRC_URI[md5sum] = "e5d5b96924d791b22898b622eb3e918e"
+SRC_URI[sha256sum] = "546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2"
RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.2.0.bb
index 3a4d709eb..3a4d709eb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_1.2.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc
index f7c7db99a..c44d66853 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic.inc
@@ -2,12 +2,12 @@ DESCRIPTION = "XStatic base package with minimal support code"
HOMEPAGE = "https://pypi.python.org/pypi/XStatic"
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.txt;md5=36a1e7eaa71e1bd07b8d2247839f228e"
+LIC_FILES_CHKSUM = "file://README.txt;md5=1418684272f85f400cebf1b1a255c5cd"
PYPI_PACKAGE = "XStatic"
-SRC_URI[md5sum] = "7064b5ea7fd1ee990e0ae0538301d9bc"
-SRC_URI[sha256sum] = "0ec93d7c66ebb9e0d31b664753437dc8634cb66e13310cb47c9eb1e0bc66d726"
+SRC_URI[md5sum] = "dea172b7b14b0dbcd5ed63075221af4b"
+SRC_URI[sha256sum] = "80b78dfe37bce6dee4343d64c65375a80bcf399b46dd47c0c7d56161568a23a8"
DEPENDS += " \
${PYTHON_PN}-pip \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.2.bb
index 807303704..807303704 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-xstatic_1.0.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc
index 93b2a15a7..1ec3937b1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc
@@ -1,6 +1,6 @@
SUMMARY = "xxhash is a Python binding for the xxHash library by Yann Collet."
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5a8d76283514a1b7e6a414aba38629b5"
SRC_URI[md5sum] = "80461eff10ac62214fa788a6045aab43"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc
index 651ce7731..54d408742 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-yappi.inc
@@ -2,10 +2,10 @@ SUMMARY = "Yet Another Python Profiler"
HOMEPAGE = "http://yappi.googlecode.com/"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6b131c3041637f6a5175a43112dde05c"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9a193c13f346884e597acdcac7fe9ac8"
-SRC_URI[md5sum] = "dc56240575c99938a924eaeb7c0d8beb"
-SRC_URI[sha256sum] = "5f657129e1b9b952379ffbc009357d0dcdb58c50f3bfe88ffbb992e4b27b263c"
+SRC_URI[md5sum] = "a545101aa8a435b0780f06f4723f58c8"
+SRC_URI[sha256sum] = "7f814131515d51db62b1a3468bcb84de30499124752806a5a6e11caf0b4344bf"
inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_0.98.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_1.0.bb
index a3bdde5c2..a3bdde5c2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_0.98.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-yappi_1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc
index ba18f7216..5f63852ad 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-zipp.inc
@@ -8,3 +8,5 @@ SRC_URI[sha256sum] = "3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
RDEPENDS_${PN} += "${PYTHON_PN}-more-itertools"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc
index 7213bc8ac..df8f1ff3b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc
@@ -2,8 +2,8 @@ SUMMARY = "Interface definitions for Zope products"
LICENSE = "ZPL-2.1"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46"
-SRC_URI[md5sum] = "a3b24f9d079bae5e13dd7a88aa512112"
-SRC_URI[sha256sum] = "1b3d0dcabc7c90b470e59e38a9acaa361be43b3a6ea644c0063951964717f0e5"
+SRC_URI[md5sum] = "1bc66758275c5eb66d169acba3c8e50e"
+SRC_URI[sha256sum] = "4bb937e998be9d5e345f486693e477ba79e4344674484001a0b646be1d530487"
PYPI_PACKAGE = "zope.interface"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.7.1.bb
index 1bdfd4d37..1bdfd4d37 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.7.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.3.0.bb
index e248fe7ce..e248fe7ce 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.4.bb
new file mode 100644
index 000000000..8d23678a0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.4.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Apply values to optional params"
+HOMEPAGE = "https://github.com/bcb/apply_defaults"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c89120516900f96f4c60d35fdc4c3f15"
+
+PYPI_PACKAGE = "apply_defaults"
+
+SRC_URI[md5sum] = "719abb133f4b46283ebd940fcdf30a78"
+SRC_URI[sha256sum] = "1ce26326a61d8773d38a9726a345c6525a91a6120d7333af79ad792dacb6246c"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "python3-core"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.2.0.bb
index cfbe57520..cfbe57520 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.2.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor/f820f3ff7ad8818475b6e107e63aa9a54252d2a9.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor/f820f3ff7ad8818475b6e107e63aa9a54252d2a9.patch
new file mode 100644
index 000000000..823699339
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor/f820f3ff7ad8818475b6e107e63aa9a54252d2a9.patch
@@ -0,0 +1,87 @@
+From f820f3ff7ad8818475b6e107e63aa9a54252d2a9 Mon Sep 17 00:00:00 2001
+From: Jonathan Ringer <jonringer117@gmail.com>
+Date: Thu, 17 Oct 2019 16:54:16 -0700
+Subject: [PATCH] Fix packaging for setuptools>=41.4
+
+---
+ astor/VERSION | 1 +
+ astor/__init__.py | 5 ++++-
+ setup.cfg | 3 ++-
+ setup.py | 16 +---------------
+ 4 files changed, 8 insertions(+), 17 deletions(-)
+ create mode 100644 astor/VERSION
+
+diff --git a/astor/VERSION b/astor/VERSION
+new file mode 100644
+index 0000000..a3df0a6
+--- /dev/null
++++ b/astor/VERSION
+@@ -0,0 +1 @@
++0.8.0
+diff --git a/astor/__init__.py b/astor/__init__.py
+index 3b02983..8dfcdb1 100644
+--- a/astor/__init__.py
++++ b/astor/__init__.py
+@@ -9,6 +9,7 @@
+
+ """
+
++import os
+ import warnings
+
+ from .code_gen import SourceGenerator, to_source # NOQA
+@@ -19,7 +20,9 @@
+ from .op_util import symbol_data # NOQA
+ from .tree_walk import TreeWalk # NOQA
+
+-__version__ = '0.8.0'
++ROOT = os.path.dirname(__file__)
++with open(os.path.join(ROOT, 'VERSION')) as version_file:
++ __version__ = version_file.read().strip
+
+ parse_file = code_to_ast.parse_file
+
+diff --git a/setup.cfg b/setup.cfg
+index 1baf6fc..a43634f 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -2,6 +2,7 @@
+ name = astor
+ description = Read/rewrite/write Python ASTs
+ long_description = file:README.rst
++version = file: astor/VERSION
+ author = Patrick Maupin
+ author_email = pmaupin@gmail.com
+ platforms = Independent
+@@ -40,7 +41,7 @@ test_suite = nose.collector
+ [options.packages.find]
+ exclude = tests
+
+-[wheel]
++[bdist_wheel]
+ universal = 1
+
+ [build-system]
+diff --git a/setup.py b/setup.py
+index 4a111b5..6068493 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,17 +1,3 @@
+-import os
+-import sys
+-
+ from setuptools import setup
+-from setuptools.config import read_configuration
+-
+-from setuputils import find_version
+-
+-
+-def here(*paths):
+- return os.path.join(os.path.dirname(__file__), *paths)
+-
+-config = read_configuration(here('setup.cfg'))
+-config['metadata']['version'] = find_version(here('astor', '__init__.py'))
+-config['options'].update(config['metadata'])
+
+-setup(**config['options'])
++setup()
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.bb
index c2dc9245c..17cc540f0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.bb
@@ -4,8 +4,10 @@ SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=561205fdabc3ec52cae2d30815b8ade7"
-SRC_URI = "git://github.com/berkerpeksag/astor.git"
-SRCREV ?= "4ca3a26e52f08678854c2841cd0fdf223461e47d"
+SRC_URI = "git://github.com/berkerpeksag/astor.git \
+ file://f820f3ff7ad8818475b6e107e63aa9a54252d2a9.patch \
+ "
+SRCREV ?= "3a7607e31f0c17e747ded5cfe0b582d99f7caecf"
inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb
index 6e32c288f..6e32c288f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb
index c34693f50..c34693f50 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb
index 2c747643f..2c747643f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb
index c43649dbf..c43649dbf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb
index d2ec9e386..d2ec9e386 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.1.0.bb
index 7ee444dc9..7ee444dc9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.2.bb
index aaa9e811c..aaa9e811c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb
index e88808434..e88808434 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.19.bb
index f5c5c7e1a..f5c5c7e1a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.18.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_0.9.19.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb
new file mode 100644
index 000000000..1c0b560b4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb
@@ -0,0 +1,3 @@
+inherit pypi setuptools3
+require python-contextlib2.inc
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.8.bb
index 58994ffff..58994ffff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.8.bb
index 195923343..195923343 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.14.bb
index 2ce6bdbd6..2ce6bdbd6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.13.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.29.14.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb
index 1d2baf55c..1d2baf55c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.2.bb
new file mode 100644
index 000000000..2784013a1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.2.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A zero-dependency DBus library for Python with asyncio support"
+HOMEPAGE = "https://github.com/acrisci/python-dbus-next"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b32e18a71bcdd072bce21f204629a104"
+
+SRC_URI[md5sum] = "df838d695284dd1775860f9691a8663f"
+SRC_URI[sha256sum] = "a567d845ceed5feac48dda7faeb9ff2571f9a434a3c32b9b363f763e82368762"
+
+PYPI_PACKAGE = "dbus_next"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.1.bb
index 844cbdc9a..844cbdc9a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.16.0.bb
index ce4dfdc74..ce4dfdc74 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_1.16.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-docutils_0.15.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-docutils_0.15.2.bb
new file mode 100644
index 000000000..321f55572
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-docutils_0.15.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Text processing system for documentation"
+HOMEPAGE = "http://docutils.sourceforge.net"
+SECTION = "devel/python"
+LICENSE = "PSF & BSD-2-Clause & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7a4646907ab9083c826280b19e103106"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "docutils"
+
+SRC_URI[md5sum] = "e26a308d8000b0bed7416a633217c676"
+SRC_URI[sha256sum] = "a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.4.0.bb
index 5304ccc18..5304ccc18 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.9.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.10.0.bb
index 028d1104a..028d1104a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.9.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_3.10.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.2.0.bb
index 3a92b6ec9..3a92b6ec9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.2.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.12.2.bb
index 104e7c28f..104e7c28f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_0.12.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb
index c98cbfddb..c98cbfddb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb
index 6bff59a56..6bff59a56 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_3.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb
index ffc4aa7fd..ffc4aa7fd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_3.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb
index 07f45bcff..07f45bcff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb
index cd439900c..cd439900c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.18.2.bb
index f059186bf..f059186bf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.18.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.4.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.4.4.bb
new file mode 100644
index 000000000..ff89087a1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.4.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Client for MQTT protocol"
+HOMEPAGE = "https://github.com/wialon/gmqtt"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=903f1792621a3b35ee546da75d139177"
+
+SRC_URI[md5sum] = "af3a2c6c2f8e3c934b31159ffdce5fd6"
+SRC_URI[sha256sum] = "b96bca8a54b8af057d4cc42a79f9e2b40cdbb5a2bfebbc5f05ee35575d3e3089"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ python3-asyncio \
+ python3-core \
+ python3-datetime \
+ python3-json \
+ python3-logging \
+ python3-netclient \
+ python3-typing \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb
index bca7757ad..7822e463e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb
@@ -1,7 +1,7 @@
SUMMARY = "Provides both a high- and low-level interface to the HDF5 library from Python. "
HOMEPAGE = "https://www.h5py.org/"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://setup.py;beginline=107;endline=107;md5=795ecad0d261c998cc526c84a822dff6"
SRC_URI = "git://github.com/h5py/h5py.git \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb
index d71c45b5f..8a971dac0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-importlib-metadata_0.23.bb
@@ -1,2 +1,5 @@
inherit pypi setuptools3
require python-importlib-metadata.inc
+
+RDEPENDS_${PN}_append_class-target = " python3-misc"
+RDEPENDS_${PN}_append_class-nativesdk = " python3-misc"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
index 8cbe1090f..8cbe1090f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb
new file mode 100644
index 000000000..77e978710
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-ipaddress.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.00.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.00.bb
new file mode 100644
index 000000000..ea6a1055a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.00.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-ipy.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.21.bb
index 755b3e2f2..755b3e2f2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_4.3.21.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_1.1.0.bb
index a71c20f0e..a71c20f0e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_1.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.3.0.bb
index 0ec23ba99..0ec23ba99 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-javaobj-py3_0.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.0.5.bb
new file mode 100644
index 000000000..bf9eb0a1c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.0.5.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Library to process JSON-RPC requests"
+HOMEPAGE = "https://github.com/bcb/jsonrpcserver"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c89120516900f96f4c60d35fdc4c3f15"
+
+SRC_URI[md5sum] = "d41e9f6b310cb29b0d8f213ff9d57567"
+SRC_URI[sha256sum] = "240c517f49b0fdd3bfa428c9a7cc581126a0c43eca60d29762da124017d9d9f4"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ python3-apply-defaults \
+ python3-asyncio \
+ python3-core \
+ python3-json \
+ python3-jsonschema \
+ python3-logging \
+ python3-netclient \
+ python3-pkgutil \
+ python3-typing \
+"
+
+BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.4.3.bb
index 150e12fd4..150e12fd4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.4.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb
index b6d2f18c8..68cd723ac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb
@@ -1,5 +1,5 @@
SUMMARY = "A Python implementation of John Gruber's Markdown."
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_7.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_7.2.0.bb
index 28ddf88fb..06d45ce54 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_7.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_7.2.0.bb
@@ -1,2 +1,5 @@
inherit pypi setuptools3
require python-more-itertools.inc
+
+SRC_URI[md5sum] = "f647bfd27243a7bebe53b5ddb6a3b1c4"
+SRC_URI[sha256sum] = "409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.3.bb
new file mode 100644
index 000000000..24e1ccb3b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.3.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Mycroft Skill Manager, in python!"
+HOMEPAGE = "https://github.com/MycroftAI/mycroft-skills-manager"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa"
+
+SRC_URI[md5sum] = "d5f580c58389b337f5577cb92f36e788"
+SRC_URI[sha256sum] = "c201785997f3b766ec376a89bbb3367889ac542183ca26733ffe002bb94917b4"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ python3-pako \
+ python3-monotonic \
+ python3-appdirs \
+"
+
+do_install_append() {
+ # Stop this from being installed
+ rm -rf ${D}/usr/share
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.0.bb
index 4981e61ed..4981e61ed 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.2.3.bb
new file mode 100644
index 000000000..21c48fca6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.2.3.bb
@@ -0,0 +1,13 @@
+SUMMARY = "The universal package manager library"
+HOMEPAGE = "https://github.com/MycroftAI/pako"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa"
+
+SRC_URI[md5sum] = "8eb7077075091c50e4b8a9f939607277"
+SRC_URI[sha256sum] = "6be55fd8c5a2a6f02974f37438c1c47a3d9e764ce81c9d0a1a8c9a1815a59778"
+
+inherit pypi setuptools3
+
+do_install_append() {
+ rm -rf ${D}/usr/share
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.12.1.bb
index b1242545c..b1242545c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.12.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.5.bb
index 66f71e57a..66f71e57a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pathlib2_2.3.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb
deleted file mode 100644
index ba9a95dbf..000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools3
-require python-periphery.inc
-
-SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.0.0.bb
new file mode 100644
index 000000000..d0c8bed26
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.0.0.bb
@@ -0,0 +1,4 @@
+inherit pypi setuptools3
+require python-periphery.inc
+
+SRC_URI[sha256sum] = "2df05528a7668db4fb3faaff516b34ed99e9009ed9610a4efe3ea6c0ea8a3aab"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
index d4372696f..35aee4214 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
@@ -1,4 +1,4 @@
-From 9f3073bf6a7c7c51bb49d25f65c8f75cc704a5ee Mon Sep 17 00:00:00 2001
+From 862a981ce462cd83a99e3db9faeeda1f8c64983f Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 18 Mar 2019 23:23:55 -0400
Subject: [PATCH] explicitly set compile options
@@ -10,18 +10,19 @@ explicitly set build_ext options for oe-core's
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
setup.cfg | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/setup.cfg b/setup.cfg
-index 3ab2e127..e92615f3 100644
+index 1c6ebc84..1ccc3d69 100644
--- a/setup.cfg
+++ b/setup.cfg
-@@ -4,3 +4,15 @@ test=pytest
- [flake8]
- extend-ignore = E203, W503
- max-line-length = 88
+@@ -13,3 +13,15 @@ multi_line_output = 3
+
+ [tool:pytest]
+ addopts = -rs
+
+[build_ext]
+disable-platform-guessing = 1
@@ -34,6 +35,3 @@ index 3ab2e127..e92615f3 100644
+disable-webp = 1
+disable-webpmux = 1
+disable-imagequant = 1
---
-2.20.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb
index 1d9106648..a383a3ff9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb
@@ -5,11 +5,11 @@ HOMEPAGE = "https://pillow.readthedocs.io"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=55c0f320370091249c1755c0d2b48e89"
-SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=6.1.x \
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=6.2.x \
file://0001-support-cross-compiling.patch \
file://0001-explicitly-set-compile-options.patch \
"
-SRCREV ?= "aaca672173413883fbcefd659f04d74fe44fb5d5"
+SRCREV ?= "6e0f07bbe38def22d36ee176b2efd9ea74b453a6"
inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.9.bb
index f793ac4ac..f793ac4ac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.9.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.5.bb
index 45e264213..45e264213 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.10.bb
index 0e99917c2..0e99917c2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.10.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.5.bb
index c1969ea65..c1969ea65 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.6.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb
index c60d40e3a..4f52ac70d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.32.1.bb
@@ -12,7 +12,7 @@ SRCREV = "dc4565208fca00da06b972915a080ad3c63f640d"
S = "${WORKDIR}/git"
# Same restriction as gtk+
-inherit distro_features_check
+inherit features_check
ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
inherit pkgconfig autotools python3native
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.4.3.bb
index 355e28460..355e28460 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.4.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.9.3.bb
index 0c062dddf..0c062dddf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycryptodome_3.9.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyelftools_0.25.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyelftools_0.25.bb
new file mode 100644
index 000000000..56eb8c4cd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyelftools_0.25.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-pyelftools.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.19.bb
index bfd584041..bfd584041 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.17.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyexpect_1.0.19.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb
index 25af1b5c0..25af1b5c0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_19.0.0.bb
index 8982fcebc..8982fcebc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjks_19.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.7.1.bb
index dc16d2282..dc16d2282 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.7.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.93.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.117.2.bb
index 4523d9e30..4523d9e30 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.93.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.117.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.5.bb
index 0805fee3e..0805fee3e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyparsing_2.4.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.7.bb
index a23e72c4a..a23e72c4a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.5.bb
index 2e567e9f9..2e567e9f9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.15.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.6.0.bb
index 89d718de6..02a5c8f85 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.6.0.bb
@@ -8,6 +8,6 @@ SRC_URI[sha256sum] = "b1fc072c87e3766711f64caf86fd633dca393e20c8a0a37a5058dd70a2
DEPENDS = "systemd"
REQUIRED_DISTRO_FEATURES = "systemd"
-inherit pypi setuptools3 distro_features_check
+inherit pypi setuptools3 features_check
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2019.1.8.bb
index f03f5d415..f03f5d415 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2019.1.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.2.bb
index df56ba6d4..df56ba6d4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb
index 02e821563..02e821563 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.2.2.bb
index eba6632a2..eba6632a2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest_5.2.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.0.bb
index 129466150..129466150 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.1.bb
new file mode 100644
index 000000000..f4ee8feda
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3339-validator_0.1.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-rfc3339-validator.inc \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb
new file mode 100644
index 000000000..6491308cb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-rfc3986-validator.inc \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.25.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.28.bb
index 1e04def7b..1e04def7b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.25.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.28.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_3.3.3.bb
index 5bf598387..5bf598387 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_2.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_3.3.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.1.bb
index b357bcd82..b357bcd82 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.0.3.bb
index 77c9fb516..77c9fb516 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.0.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.38.0.bb
index 348337f0d..348337f0d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.38.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.10.0.bb
index dfb9d4a4c..dfb9d4a4c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_19.10.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb
index c2e4d2ebd..c2e4d2ebd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_2.0.0.bb
index 813934c81..813934c81 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_2.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.7.bb
index 19eb7025b..19eb7025b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.25.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.16.0.bb
index 145a1de0a..145a1de0a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.16.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.2.0.bb
index b7bd969c7..b7bd969c7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_1.2.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb
index 76cb70273..76cb70273 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_0.98.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.0.bb
index 07da5b6eb..07da5b6eb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_0.98.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.7.1.bb
index be11858d3..be11858d3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.7.1.bb
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb
index fe9d27ab8..2b5b253b5 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.4.bb
@@ -25,7 +25,7 @@ SRC_URI = "git://github.com/rhinstaller/blivet;branch=3.1-release \
UPSTREAM_CHECK_GITTAGREGEX = "blivet-(?P<pver>\d+(\.\d+)+)$"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "systemd"
inherit setuptools3 python3native
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb
index b7e2493c3..92402bee5 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb
@@ -13,7 +13,7 @@ SRC_URI = "git://github.com/rhinstaller/blivet-gui;branch=master \
file://0001-Fix-return-type-of-BlivetUtils.get_disks-1658893.patch \
"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11 systemd"
inherit setuptools3 python3native
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb
index 95d6d183c..9ca7a56bd 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb
@@ -10,7 +10,7 @@ S = "${WORKDIR}/git"
SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \
"
-SRCREV = "78d868d99104317ce8820f39f61d207566e61a55"
+SRCREV = "760f78a634ecf0e2380abcbd751bc233d29300ef"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
FILES_${PN} += "${datadir}/*"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb b/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.7.0.bb
index e28ce6ccc..422f0dbc4 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.7.0.bb
@@ -4,8 +4,8 @@ HOMEPAGE = "http://rhodesmill.org/pyephem/"
LICENSE = "LGPL-3.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=f288303760f6e5ceaafe3aaa32186ab1"
-SRC_URI[md5sum] = "405a109f3017251ecd8c2890d850f649"
-SRC_URI[sha256sum] = "7a4c82b1def2893e02aec0394f108d24adb17bd7b0ca6f4bc78eb7120c0212ac"
+SRC_URI[md5sum] = "46c035b4a903ff26e0d8ad0f1fe6cc35"
+SRC_URI[sha256sum] = "607148429f85412915e32265779c0cf6d09f73aa97cf1ff0d101ac22c69c4436"
PYPI_PACKAGE = "ephem"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
index 81e351b11..7ab734686 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
@@ -17,7 +17,7 @@ fixup! add comments of shutdown for user
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/pykickstart/commands/reboot.py b/pykickstart/commands/reboot.py
-index 2c1b1c0..b3ec717 100644
+index 75a6d916..edfe83ff 100644
--- a/pykickstart/commands/reboot.py
+++ b/pykickstart/commands/reboot.py
@@ -43,6 +43,9 @@ class FC3_Reboot(KickstartCommand):
@@ -31,18 +31,18 @@ index 2c1b1c0..b3ec717 100644
return retval
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index e68174d..efd78a6 100644
+index bc59131b..b2d09d45 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -385,7 +385,7 @@ class Packages(KickstartObject):
+@@ -428,7 +428,7 @@ class Packages(KickstartObject):
if not self.default:
if self.environment:
- pkgs += "@^%s\n" % self.environment
+ pkgs += "#@^%s\n" % self.environment
- grps = self.groupList
- grps.sort()
+ grps = self.groupList
+ grps.sort()
--
2.7.4
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.20.bb b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.22.bb
index ed10ce958..041abd3e8 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.20.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.22.bb
@@ -18,7 +18,7 @@ SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=ma
file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \
file://0004-load.py-retry-to-invoke-request-with-timeout.patch \
"
-SRCREV = "487edfded19d5969db0673b200ee4272b7dc6697"
+SRCREV = "674c17b1e231f56a0d8a5ced4a204cdbc4c1edf3"
UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc
index f769f95a0..97054487f 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted.inc
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "\
DEPENDS += "parted"
# upstream only publishes releases in github archives which are discouraged
-SRCREV = "2396ba7df56de277b4999bdd5f7d1a1706a6388a"
+SRCREV = "481510c10866851844b19f3d2ffcdaa37efc0cf8"
SRC_URI = "git://github.com/rhinstaller/pyparted.git;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.2.bb b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.3.bb
index 32aa378cc..32aa378cc 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.3.bb
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.2.bb b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.3.bb
index d83901ff3..d83901ff3 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.3.bb
diff --git a/meta-openembedded/meta-webserver/conf/layer.conf b/meta-openembedded/meta-webserver/conf/layer.conf
index 6157d4d30..2c6fad4ac 100644
--- a/meta-openembedded/meta-webserver/conf/layer.conf
+++ b/meta-openembedded/meta-webserver/conf/layer.conf
@@ -23,4 +23,5 @@ LICENSE_PATH += "${LAYERDIR}/licenses"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
phpmyadmin->bash \
+ phpmyadmin->php \
"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch
new file mode 100644
index 000000000..0f4384275
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch
@@ -0,0 +1,47 @@
+From c73415021f3f3b2b30062ab74b25fe49c51c2242 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 10 Nov 2019 15:59:44 -0800
+Subject: [PATCH] common-internal.h: Define LLONG_MAX if undefined
+
+time_t can also be long long type, therefore check for that as fallback
+Fixes build on 32bit hosts where time_t is fixed for Y2K38
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cherokee/common-internal.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/cherokee/common-internal.h b/cherokee/common-internal.h
+index 5c28da97..5646ec0f 100644
+--- a/cherokee/common-internal.h
++++ b/cherokee/common-internal.h
+@@ -222,6 +222,16 @@ char *strcasestr(char *s, char *find);
+ # endif
+ #endif
+
++/* Long Long limit
++ */
++#ifndef LLONG_MAX
++# if (__SIZEOF_LONG_LONG__ == 8)
++# define LLONG_MAX 0x7fffffffffffffffLL
++# else
++# error "Can't define LLONG_MAX"
++# endif
++#endif
++
+ /* time_t limit
+ */
+ #ifndef TIME_MAX
+@@ -229,6 +239,8 @@ char *strcasestr(char *s, char *find);
+ # define TIME_MAX ((time_t)INT_MAX)
+ # elif (SIZEOF_TIME_T == SIZEOF_LONG)
+ # define TIME_MAX ((time_t)LONG_MAX)
++# elif (SIZEOF_TIME_T == __SIZEOF_LONG_LONG__)
++# define TIME_MAX ((time_t)LLONG_MAX)
+ # else
+ # error "Can't define TIME_MAX"
+ # endif
+--
+2.24.0
+
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
index 3f7eae4c1..490fc53f9 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "unzip-native libpcre openssl mysql5 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-SRCREV = "75f041e2255e6dd0692db2f14611c2647dbe8425"
+SRCREV = "9a75e65b876bcc376cb6b379dca1f7ce4a055c59"
PV = "1.2.104+git${SRCPV}"
SRC_URI = "git://github.com/cherokee/webserver \
file://cherokee.init \
@@ -15,6 +15,7 @@ SRC_URI = "git://github.com/cherokee/webserver \
file://cherokee-install-configured.py-once.patch \
file://0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch \
file://0001-make-Do-not-build-po-files.patch \
+ file://0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
index e202e8563..0d229ff40 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -93,9 +93,9 @@ do_install () {
>> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
fi
install -d ${D}${sysconfdir}/${BPN}
- ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
+ lnr ${D}${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
install -d ${D}${NGINX_WWWDIR}
- mv ${D}/usr/html ${D}${NGINX_WWWDIR}/
+ mv ${D}${exec_prefix}/html ${D}${NGINX_WWWDIR}/
chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR}
install -d ${D}${sysconfdir}/init.d
diff --git a/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb b/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb
index 8b2ff44c0..1d66d1301 100644
--- a/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb
+++ b/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb
@@ -1,7 +1,7 @@
SUMMARRY = "spawn-fcgi is used to spawn FastCGI applications"
HOMEPAGE = "http://redmine.lighttpd.net/projects/spawn-fcgi"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
SRC_URI = "http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-${PV}.tar.gz \
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb
index d54d6223c..112365d4b 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb
@@ -1,6 +1,6 @@
SUMMARY = "Web-based administration interface"
HOMEPAGE = "http://www.webmin.com"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE;md5=0373ac9f611e542ddebe1ec6394afc3c"
SRC_URI = "${SOURCEFORGE_MIRROR}/webadmin/webmin-${PV}.tar.gz \
diff --git a/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass b/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass
index 76b0e7233..854d96b3a 100644
--- a/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass
+++ b/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass
@@ -1,4 +1,4 @@
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/classes/xfce-app.bbclass b/meta-openembedded/meta-xfce/classes/xfce-app.bbclass
index 1c31c2faa..d1b07d745 100644
--- a/meta-openembedded/meta-xfce/classes/xfce-app.bbclass
+++ b/meta-openembedded/meta-xfce/classes/xfce-app.bbclass
@@ -1,4 +1,4 @@
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass b/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass
index 29c1245ca..594d40d0d 100644
--- a/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass
+++ b/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass
@@ -1,14 +1,14 @@
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
DEPENDS += "libxfce4ui libxfce4util xfce4-panel"
-SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2"
+SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2"
FILES_${PN} += "${datadir}/xfce4/panel-plugins/"
FILES_${PN} += "${datadir}/xfce4/panel/plugins/"
FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so"
FILES_${PN} += "${libdir}/xfce4/panel/plugins/*.so"
-FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la" \ No newline at end of file
+FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb
index 8196e6c17..f1d9c04b8 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.1.bb
@@ -9,7 +9,7 @@ DEPENDS = " \
intltool-native \
"
-inherit distutils3 gtk-icon-cache distro_features_check
+inherit distutils3 gtk-icon-cache features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb b/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
index 7445cd7c5..d6990476a 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
@@ -12,7 +12,7 @@ SRCREV = "9ab958a4023b62b43972c55a3143ff0722bd88a6"
PV = "0.5.4.14"
S = "${WORKDIR}/git"
-inherit gettext pkgconfig autotools gtk-icon-cache distro_features_check
+inherit gettext pkgconfig autotools gtk-icon-cache features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch b/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch
deleted file mode 100644
index e872249d5..000000000
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From fb1f83c04dd5262897b09e60fa8b39090d0d4619 Mon Sep 17 00:00:00 2001
-From: Rex Dieter <rdieter@math.unl.edu>
-Date: Thu, 12 Nov 2015 13:53:03 -0600
-Subject: [PATCH] fix Name/Comment fields
-
-Validate as a valid .desktop file per
-http://standards.freedesktop.org/desktop-entry-spec/latest/
-
-See also issue #2
-
-Upstream-Status: Applied [1]
-
-[1] https://github.com/ncopa/xfce-polkit/commit/fb1f83c04dd5262897b09e60fa8b39090d0d4619
----
- xfce-polkit.desktop.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xfce-polkit.desktop.in b/xfce-polkit.desktop.in
-index 8575896..dd9f09c 100644
---- a/xfce-polkit.desktop.in
-+++ b/xfce-polkit.desktop.in
-@@ -1,7 +1,7 @@
- [Desktop Entry]
- Type=Application
--_Name=XFCE PolKit
--_Comment=Policykit Authentication Agent
-+Name=XFCE PolKit
-+Comment=Policykit Authentication Agent
- Exec=@xfce_polkit_libexecdir@/xfce-polkit
- Icon=gtk-dialog-authentication
- NotShowIn=GNOME;KDE;
---
-2.14.3
-
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb
index 62d8d6de9..2ef81f286 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb
@@ -4,12 +4,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=758b03f872a88c99fc36d50c5932091c"
DEPENDS = "libxfce4ui polkit"
-inherit xfce-app distro_features_check
+inherit xfce-app features_check
REQUIRED_DISTRO_FEATURES = "polkit"
SRC_URI = " \
git://github.com/ncopa/${BPN}.git \
- file://0001-fix-Name-Comment-fields.patch \
"
-SRCREV = "6ad1ee833c9e22e4dd72a8f7d54562d046965283"
+SRCREV = "6d3282cc1734c305850d48f5bf4b4d94e88885e9"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
index 4d128ac51..2dd3f01d8 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
@@ -13,7 +13,7 @@ SRCREV = "5c7a73a3824b03b91719e05e2604b97c7a72d50f"
S = "${WORKDIR}/git"
-inherit gettext meson distro_features_check
+inherit gettext meson features_check
REQUIRED_DISTRO_FEATURES = "systemd x11"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb
index 5fa2a7bce..467e0953c 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb
@@ -3,7 +3,7 @@ SECTION = "x11/application"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-inherit python3native gettext distro_features_check
+inherit python3native gettext features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.5.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.8.bb
index 4a1aae764..9c9c327b7 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.5.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_0.1.8.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
"
-DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf"
+DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf libwnck3"
inherit xfce-app
@@ -16,11 +16,12 @@ SRC_URI_append = " \
file://fix-cross-compile.patch \
file://fix-pam-config.patch \
"
-SRC_URI[md5sum] = "982f9a355456320933ec08313523a567"
-SRC_URI[sha256sum] = "fdecf0fc432b59defba2dd706051696d47227ca0744c7971014021190126f2d5"
+SRC_URI[md5sum] = "0fea7b676e6e533a3f305c6f642fe0cd"
+SRC_URI[sha256sum] = "4056045ea5fd3eccfe328b86ae245ee4949b9e3044e42ca29c492c0f4ac860d7"
do_install_append() {
install -D -m 0644 ${S}/data/xfce4-screensaver.common-auth ${D}${sysconfdir}/pam.d/xfce4-screensaver
}
FILES_${PN} += "${datadir}/dbus-1 ${datadir}/desktop-directories"
+RDEPENDS_${PN} += "python3-core"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.6.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.7.bb
index 7f6756fc9..a0de63004 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.6.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.7.bb
@@ -7,8 +7,8 @@ DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-
inherit xfce-app
-SRC_URI[md5sum] = "9e4026d9ae7850b290992c9d2aea80dd"
-SRC_URI[sha256sum] = "88c174ce687d1f7ba5470d6ab5784d33dc215f8f220211e892e268189dbea658"
+SRC_URI[md5sum] = "9b63c0fa7cbde8ec4e6cacb75fc44b65"
+SRC_URI[sha256sum] = "0f7161053a23a6413376f4d17db6b774d4849384a9b1ffe01fdb2b0035a070d1"
do_compile_prepend() {
mkdir -p lib
diff --git a/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb b/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
index 68dbc69af..2f5d820f0 100644
--- a/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
+++ b/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
@@ -3,7 +3,7 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
DEPENDS = "libxfce4util garcon xfconf libxfce4ui xfce4-panel exo vala xfce4-dev-tools-native"
-inherit xfce pkgconfig distro_features_check
+inherit xfce pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb b/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
index 21930ba14..8009acdd9 100644
--- a/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
+++ b/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
@@ -6,7 +6,7 @@ IMAGE_INSTALL = "packagegroup-core-boot \
kernel-modules \
"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
IMAGE_LINGUAS ?= " "
diff --git a/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb b/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb
index c3da3e9b9..24d0d901f 100644
--- a/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb
+++ b/meta-openembedded/meta-xfce/recipes-devtools/glade/glade3_3.8.5.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
DEPENDS = "gtk+ gnome-doc-utils gnome-common libxml2 intltool-native"
-inherit distro_features_check autotools pkgconfig pythonnative gtk-icon-cache
+inherit features_check autotools pkgconfig pythonnative gtk-icon-cache
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb b/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb
index 5c94cb6bc..c8f495edb 100644
--- a/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-extended/imsettings/imsettings_1.8.1.bb
@@ -10,7 +10,7 @@ SECTION = "Applications/System"
LICENSE = "LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-inherit autotools gtk-doc gobject-introspection gettext distro_features_check
+inherit autotools gtk-doc gobject-introspection gettext features_check
DEPENDS = "gtk+3 libnotify"
diff --git a/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb b/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
index a6475cef6..a6d335a2e 100644
--- a/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
+++ b/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
@@ -25,7 +25,7 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-inherit autotools pkgconfig gobject-introspection distro_features_check gtk-doc
+inherit autotools pkgconfig gobject-introspection features_check gtk-doc
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.4.bb b/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.5.bb
index 68556a2ab..efee1aa93 100644
--- a/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.4.bb
+++ b/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.5.bb
@@ -16,8 +16,8 @@ DEPENDS += " \
taglib \
"
-SRC_URI[md5sum] = "c23621eb44df292f828e86074d4e719d"
-SRC_URI[sha256sum] = "e92b8ec369e53d921b47d2473c2e2a1e9e04d3c5d536d419abdff40e5e136dc1"
+SRC_URI[md5sum] = "74fcde5da018c011e5febd9649817c05"
+SRC_URI[sha256sum] = "1adb4bd96c4cc4b4a79eeafe1316e170f506426e3737e8ba8898f7ea6bec572a"
RDEPENDS_${PN} += "gstreamer1.0-plugins-good"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.2.bb
index 002e93da4..3108a7760 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.2.bb
@@ -5,5 +5,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe"
inherit xfce-panel-plugin
-SRC_URI[md5sum] = "9dd0681c179302d56d92bbda5765bd09"
-SRC_URI[sha256sum] = "4c6ce37fbe71094548b44862587c2813da991aeaaecff8e572724dbbec83ab86"
+SRC_URI[md5sum] = "d808fe77a438c95b97ec6feda6162d22"
+SRC_URI[sha256sum] = "256c22526f61aabf43b91b903b976c13e56198657667df443cdb06b31fbf23aa"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb
index 8b8f5f21c..fc380c153 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.2.bb
@@ -2,7 +2,7 @@ SUMMARY = "Pulseaudio mixer for the xfce panel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f"
-inherit xfce-panel-plugin distro_features_check
+inherit xfce-panel-plugin features_check
REQUIRED_DISTRO_FEATURES = "pulseaudio x11"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.3.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.0.bb
index 4218c0c50..c3de5964d 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.3.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.0.bb
@@ -6,5 +6,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
inherit xfce-panel-plugin
-SRC_URI[md5sum] = "81e1a961032c7b87d672bed09c681a73"
-SRC_URI[sha256sum] = "7f9cd4694e83d9cc5e41140d174dcc5ffe00fd546f2706f619031039ad7e0f6b"
+SRC_URI[md5sum] = "afa0ef865a49f28165098d3fe625df44"
+SRC_URI[sha256sum] = "ee4a51a35076d50cba3824079f8312585373ff2f0d9ebc740d8f3c0426430a19"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb
index c53ca13c8..96c2048be 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb
@@ -7,7 +7,7 @@ inherit xfce-panel-plugin
DEPENDS += "libsoup-2.4 dbus-glib upower"
-SRC_URI[md5sum] = "e0bde3ba6a7e863022a86a23c7871255"
-SRC_URI[sha256sum] = "7cdc18b8df759dee4ceaaf6ce303eff7fda48e247dbc26b78142929213506cfd"
+SRC_URI[md5sum] = "7ff4ab636f93addba0817bf6436d2964"
+SRC_URI[sha256sum] = "4423a0c27830fd1f08e063aaefbf70f31d89235d75549ca841d677ab2e409572"
FILES_${PN} += "${datadir}/xfce4/weather"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.3.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb
index a05f0dc6f..595e3c815 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.3.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
inherit xfce-panel-plugin cmake
-SRC_URI[md5sum] = "21f1e1d8d4a030f23d358d6c5ac50f2a"
-SRC_URI[sha256sum] = "e0c6cc4fc1e685bc9601ec217a803d5489ca3276f4008bf056600471c6ac1848"
+SRC_URI[md5sum] = "ee9e378fae78b230a23b241cf727c84b"
+SRC_URI[sha256sum] = "84d3de35695a023aab181f7a9b75f59029eb3b07c3e47a5e11e8bd79db62570e"
RRECOMMENDS_${PN} += "menulibre"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb
index 994c65282..d85063678 100644
--- a/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "Quickly share a folder using Samba from Thunar"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-inherit thunar-plugin distro_features_check
+inherit thunar-plugin features_check
REQUIRED_DISTRO_FEATURES = "pam"
SRC_URI[md5sum] = "a1773168c0b3c7c0f253a339f02e5ae2"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.8.bb b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.9.bb
index fdd50d435..8d59be13b 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.8.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.9.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "gtk+3 libxfce4ui virtual/libx11 liburi-perl-native cairo"
DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native"
-inherit xfce pythonnative perlnative gtk-doc distro_features_check
+inherit xfce pythonnative perlnative gtk-doc features_check
REQUIRED_DISTRO_FEATURES = "x11"
REQUIRED_DISTRO_FEATURES_class-native = ""
@@ -20,8 +20,8 @@ SRC_URI_append_class-native = " \
file://reduce-build-to-exo-csource-only.patch \
"
-SRC_URI[md5sum] = "e618ce760a12ac7427a48a44c69f3d31"
-SRC_URI[sha256sum] = "3400a2e64aa41ede25bedaca4909bde7ea4f8698d9598d1b80f02a40ac89fcde"
+SRC_URI[md5sum] = "9730f9d270b4968a8bbebe73e6de934f"
+SRC_URI[sha256sum] = "9ba0bf0fd59aeb1cd32ae3863e7a78222655eb15eb675ba08f3b3fb933b6fbfe"
PACKAGECONFIG ??= ""
PACKAGECONFIG_class-target ??= "gtk"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb b/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb
index 62c789019..75997de7b 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.6.4.bb
@@ -4,7 +4,7 @@ LICENSE = "LGPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b"
DEPENDS = "xfce4-dev-tools-native libxfce4ui intltool-native"
-inherit xfce gtk-doc distro_features_check
+inherit xfce gtk-doc features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
index 805e893f7..0dd4a4c3f 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "gtk+ xfce4-dev-tools-native"
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb
index 6b26200aa..053eb201b 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.14.1.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
DEPENDS = "intltool-native perl-native gtk+ gtk+3 libice libsm libxfce4util xfce4-dev-tools xfconf virtual/libx11"
-inherit xfce gtk-doc gobject-introspection distro_features_check
+inherit xfce gtk-doc gobject-introspection features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
index daee73eb3..412c6ae80 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
@@ -2,7 +2,7 @@ SUMMARY = "All packages required for a base installation of XFCE"
SECTION = "x11/wm"
PR = "r5"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
index 527f81f1f..42f20c9d2 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
@@ -3,7 +3,7 @@ SECTION = "x11/wm"
PR = "r10"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb
index fff7c0302..d499e22ea 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.5.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "exo libnotify libgudev"
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.9.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.9.bb
index ff020d0c7..bc996c15d 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.9.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.9.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "exo gdk-pixbuf libxfce4ui libsm startup-notification libnotify xfce4-panel udev"
-inherit xfce gobject-introspection distro_features_check
+inherit xfce gobject-introspection features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb
index 2d6b7a550..e4f35b0fc 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.14.0.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "glib-2.0 gtk+3 libxfce4util libxfce4ui garcon xfconf"
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb
index a1b571e68..cc3f323bd 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.14.1.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee"
DEPENDS = "garcon exo gtk+3 cairo virtual/libx11 libxml2 libwnck3 vala-native"
-inherit xfce gtk-doc gobject-introspection distro_features_check remove-libtool
+inherit xfce gtk-doc gobject-introspection features_check remove-libtool
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb
index 284a29ba2..295e2e4ed 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.5.bb
@@ -5,7 +5,7 @@ SECTION = "x11"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb
index 6b4cafd00..37560c2db 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.14.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
DEPENDS = "libwnck3 libsm libxfce4ui virtual/libx11"
-inherit xfce update-alternatives distro_features_check
+inherit xfce update-alternatives features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb
index a24928cf6..d326f9209 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.14.1.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "exo exo-native garcon libxi virtual/libx11 xrandr libxcursor libxklavier upower"
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb
index ec4f00f3d..fe9f40b38 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.14.1.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "libxfce4ui libwnck thunar garcon exo"
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb
index 77b45a7c9..b77e619b3 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.14.0.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
DEPENDS = "virtual/libx11 libxfce4ui libwnck3 libxinerama exo-native"
-inherit xfce update-alternatives distro_features_check
+inherit xfce update-alternatives features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openpower/classes/openpower-software-manager-ubi.bbclass b/meta-openpower/classes/openpower-software-manager-ubi.bbclass
index 7ff62be57..7167b88c3 100644
--- a/meta-openpower/classes/openpower-software-manager-ubi.bbclass
+++ b/meta-openpower/classes/openpower-software-manager-ubi.bbclass
@@ -7,7 +7,6 @@ SYSTEMD_SERVICE_${PN} += " \
obmc-flash-bios-ubiumount-rw@.service \
obmc-flash-bios-ubipatch.service \
obmc-flash-bios-ubiremount.service \
- obmc-flash-bios-updatesymlinks.service \
obmc-flash-bios-cleanup.service \
obmc-flash-bios-enable-clearvolatile@.service \
obmc-flash-bios-check-clearvolatile@.service \
diff --git a/meta-openpower/classes/openpower-software-manager-virtual-pnor.bbclass b/meta-openpower/classes/openpower-software-manager-virtual-pnor.bbclass
new file mode 100644
index 000000000..c83f4aa1c
--- /dev/null
+++ b/meta-openpower/classes/openpower-software-manager-virtual-pnor.bbclass
@@ -0,0 +1,5 @@
+PACKAGECONFIG_append = " virtual_pnor"
+
+SYSTEMD_SERVICE_${PN} += " \
+ obmc-vpnor-updatesymlinks.service \
+ "
diff --git a/meta-openpower/conf/distro/include/openpower-ubi.inc b/meta-openpower/conf/distro/include/openpower-ubi.inc
index cb488c830..95355b8f4 100644
--- a/meta-openpower/conf/distro/include/openpower-ubi.inc
+++ b/meta-openpower/conf/distro/include/openpower-ubi.inc
@@ -1,2 +1,4 @@
+require conf/distro/include/openpower-virtual-pnor.inc
+
DISTRO_FEATURES += "openpower-ubi-fs"
DISTROOVERRIDES .= ":df-openpower-ubi-fs"
diff --git a/meta-openpower/conf/distro/include/openpower-virtual-pnor.inc b/meta-openpower/conf/distro/include/openpower-virtual-pnor.inc
new file mode 100644
index 000000000..56a4a4d7a
--- /dev/null
+++ b/meta-openpower/conf/distro/include/openpower-virtual-pnor.inc
@@ -0,0 +1,2 @@
+DISTRO_FEATURES += "openpower-virtual-pnor"
+DISTROOVERRIDES .= ":df-openpower-virtual-pnor"
diff --git a/meta-openpower/recipes-bsp/ecmd-pdbg/ecmd-pdbg_1.0.bb b/meta-openpower/recipes-bsp/ecmd-pdbg/ecmd-pdbg_1.0.bb
new file mode 100644
index 000000000..21b397972
--- /dev/null
+++ b/meta-openpower/recipes-bsp/ecmd-pdbg/ecmd-pdbg_1.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "eCMD plugin with pdbg backend"
+DESCRIPTION = "The glue code necessary for pdbg to be used as an eCMD plugin"
+PR = "r1"
+PV = "1.0+git${SRCPV}"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit meson
+inherit pkgconfig
+
+SRC_URI = "git://github.com/open-power/ecmd-pdbg.git"
+SRCREV = "d955e0efe5a4e01af23448083d63cc8581a18b3e"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "pdbg zlib libyaml"
+
+FILES_${PN} += "${prefix}/help" \ No newline at end of file
diff --git a/meta-openpower/recipes-bsp/ecmd/croserver_git.bb b/meta-openpower/recipes-bsp/ecmd/croserver_git.bb
new file mode 100644
index 000000000..01005f8fa
--- /dev/null
+++ b/meta-openpower/recipes-bsp/ecmd/croserver_git.bb
@@ -0,0 +1,36 @@
+SUMMARY = "eCMD"
+DESCRIPTION = "eCMD is a hardware access API for IBM Systems"
+LICENSE= "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/NOTICE;md5=fee220301a2af3faf8f211524b4248ea"
+
+SRC_URI = "git://github.com/open-power/eCMD.git"
+SRCREV = "6c0348b12c95b3bd6e8d8003f9ff743d25400ae2"
+DEPENDS += "python-native zlib"
+
+SRC_URI += "file://croserver.service"
+
+S = "${WORKDIR}/git"
+
+# Add the hash style option here to Work around this warning:
+# "QA Issue: No GNU_HASH in the elf binary"
+#
+# The recipe cannot set LDFLAGS in the environment as it overrides the
+# internal settings.
+do_configure() {
+ LD="${CXX} -Wl,--hash-style=gnu" ${S}/config.py --without-swig --output-root ${B} --target obj --extensions "cmd cip" --build-verbose
+}
+
+do_compile() {
+ cd ${S}/dllNetwork/server
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 out_obj/lib/server1p ${D}${bindir}/croserver
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/croserver.service ${D}${systemd_system_unitdir}/
+}
+
+FILES_${PN} += "${systemd_system_unitdir}/croserver.service"
diff --git a/meta-openpower/recipes-bsp/ecmd/files/croserver.service b/meta-openpower/recipes-bsp/ecmd/files/croserver.service
new file mode 100644
index 000000000..38d1fd2ff
--- /dev/null
+++ b/meta-openpower/recipes-bsp/ecmd/files/croserver.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Cronus Server
+Documentation=https://github.com/open-power/eCMD/
+After=network.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/croserver
+Restart=on-failure
+ProtectHome=yes
+ProtectSystem=full
+RestrictAddressFamilies=AF_UNIX
diff --git a/meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb b/meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb
index e1651ca5c..08f936d18 100644
--- a/meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb
+++ b/meta-openpower/recipes-bsp/pdbg/pdbg_2.4.bb
@@ -13,3 +13,5 @@ DEPENDS += "dtc-native"
S = "${WORKDIR}/git"
inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openpower/recipes-bsp/skiboot/skiboot.inc b/meta-openpower/recipes-bsp/skiboot/skiboot.inc
index 4f7ba6502..e7fbf4a7d 100644
--- a/meta-openpower/recipes-bsp/skiboot/skiboot.inc
+++ b/meta-openpower/recipes-bsp/skiboot/skiboot.inc
@@ -1,14 +1,14 @@
HOMEPAGE = "https://github.com/open-power"
LICENSE = "Apache-2.0"
-SRC_URI += "git://github.com/open-power/skiboot.git"
+SRC_URI += "git://github.com/open-power/skiboot.git;branch=skiboot-6.5.x"
FILESEXTRAPATHS_prepend := "${THISDIR}/skiboot:"
LIC_FILES_CHKSUM = "file://${S}/LICENCE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRCREV = "54811997b6d02dacaf8dd0d61cadaf3786dbabb0"
-PV = "6.3.0+git${SRCPV}"
+SRCREV = "aff9301bb341b5387228e82036a7d72e519d8855"
+PV = "6.5.1+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb b/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb
index 093a7adcf..0b2c26b9d 100644
--- a/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb
+++ b/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb
@@ -15,9 +15,13 @@ inherit pythonnative
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'openpower-ubi-fs', \
'openpower-software-manager-ubi', \
'openpower-software-manager-static', d)}
+inherit ${@bb.utils.contains('DISTRO_FEATURES', 'openpower-virtual-pnor', \
+ 'openpower-software-manager-virtual-pnor', \
+ '', d)}
PACKAGECONFIG[verify_pnor_signature] = "--enable-verify_pnor_signature,--disable-verify_pnor_signature"
PACKAGECONFIG[ubifs_layout] = "--enable-ubifs_layout,--disable-ubifs_layout,,mtd-utils-ubifs"
+PACKAGECONFIG[virtual_pnor] = "--enable-virtual_pnor,--disable-virtual_pnor"
EXTRA_OECONF += " \
PNOR_MSL="v2.0.10 v2.2" \
@@ -39,7 +43,7 @@ S = "${WORKDIR}/git"
SRC_URI += "git://github.com/openbmc/openpower-pnor-code-mgmt"
-SRCREV = "85f25407598494d8f91890df5152501680a067dd"
+SRCREV = "59d5657643c1cd24de579867abff1dcfa54d3803"
DBUS_SERVICE_${PN} += "org.open_power.Software.Host.Updater.service"
diff --git a/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb b/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb
index 2832c940a..902f38b7b 100644
--- a/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb
+++ b/meta-openpower/recipes-phosphor/packagegroups/packagegroup-op-apps.bb
@@ -48,4 +48,6 @@ RDEPENDS_${PN}-flash = " \
SUMMARY_${PN}-system = "OpenPOWER System"
RDEPENDS_${PN}-system = " \
pdbg \
- "
+ croserver \
+ ecmd-pdbg \
+ " \ No newline at end of file
diff --git a/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb b/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb
index a1b7026a8..87377edc5 100644
--- a/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb
+++ b/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd_git.bb
@@ -39,5 +39,5 @@ do_install_append() {
install ${SRC}/inventory ${DEST}
install -d ${D}/${base_libdir}/udev/rules.d/
- install ${WORKDIR}/70-op-vpd.rules ${D}/${base_libdir}/udev/rules.d/
+ install -m0644 ${WORKDIR}/70-op-vpd.rules ${D}/${base_libdir}/udev/rules.d/
}
diff --git a/meta-phosphor/classes/image_types_phosphor.bbclass b/meta-phosphor/classes/image_types_phosphor.bbclass
index 23ff3475c..e29f4ff47 100644
--- a/meta-phosphor/classes/image_types_phosphor.bbclass
+++ b/meta-phosphor/classes/image_types_phosphor.bbclass
@@ -57,6 +57,8 @@ SIGNING_KEY ?= "${STAGING_DIR_NATIVE}${datadir}/OpenBMC.priv"
INSECURE_KEY = "${@'${SIGNING_KEY}' == '${STAGING_DIR_NATIVE}${datadir}/OpenBMC.priv'}"
SIGNING_KEY_DEPENDS = "${@oe.utils.conditional('INSECURE_KEY', 'True', 'phosphor-insecure-signing-key-native:do_populate_sysroot', '', d)}"
+VERSION_PURPOSE ?= "xyz.openbmc_project.Software.Version.VersionPurpose.BMC"
+
UBOOT_SUFFIX ?= "bin"
python() {
@@ -418,10 +420,11 @@ def get_pubkey_path(d):
'publickey')
python do_generate_phosphor_manifest() {
+ purpose = d.getVar('VERSION_PURPOSE', True)
version = do_get_version(d)
target_machine = d.getVar('MACHINE', True)
with open('MANIFEST', 'w') as fd:
- fd.write('purpose=xyz.openbmc_project.Software.Version.VersionPurpose.BMC\n')
+ fd.write('purpose={}\n'.format(purpose))
fd.write('version={}\n'.format(version.strip('"')))
fd.write('KeyType={}\n'.format(get_pubkey_type(d)))
fd.write('HashType=RSA-SHA256\n')
diff --git a/meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass b/meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass
index 16112e638..d9d179ee6 100644
--- a/meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass
+++ b/meta-phosphor/classes/image_types_phosphor_nuvoton.bbclass
@@ -4,17 +4,19 @@ FULL_SUFFIX = "full"
MERGED_SUFFIX = "merged"
UBOOT_SUFFIX_append = ".${MERGED_SUFFIX}"
+IGPS_DIR = "${STAGING_DIR_NATIVE}/${datadir}/npcm7xx-igps"
+
# Prepare the Bootblock and U-Boot images using npcm7xx-bingo
do_prepare_bootloaders() {
local olddir="$(pwd)"
cd ${DEPLOY_DIR_IMAGE}
- bingo ${STAGING_DIR_NATIVE}/${bindir}/BootBlockAndHeader_EB.xml \
+ bingo ${IGPS_DIR}/BootBlockAndHeader_${IGPS_MACHINE}.xml \
-o ${DEPLOY_DIR_IMAGE}/${BOOTBLOCK}.${FULL_SUFFIX}
- bingo ${STAGING_DIR_NATIVE}/${bindir}/UbootHeader_EB.xml \
+ bingo ${IGPS_DIR}/UbootHeader_${IGPS_MACHINE}.xml \
-o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${FULL_SUFFIX}
- bingo ${STAGING_DIR_NATIVE}/${bindir}/mergedBootBlockAndUboot.xml \
+ bingo ${IGPS_DIR}/mergedBootBlockAndUboot.xml \
-o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${MERGED_SUFFIX}
cd "$olddir"
}
@@ -22,6 +24,7 @@ do_prepare_bootloaders() {
do_prepare_bootloaders[depends] += " \
npcm7xx-bootblock:do_deploy \
npcm7xx-bingo-native:do_populate_sysroot \
+ npcm7xx-igps-native:do_populate_sysroot \
"
addtask do_prepare_bootloaders before do_generate_static after do_generate_rwfs_static
diff --git a/meta-phosphor/classes/phosphor-rootfs-postcommands.bbclass b/meta-phosphor/classes/phosphor-rootfs-postcommands.bbclass
new file mode 100644
index 000000000..3485661b3
--- /dev/null
+++ b/meta-phosphor/classes/phosphor-rootfs-postcommands.bbclass
@@ -0,0 +1,10 @@
+#
+# This function is intended to add root to corresponding groups if 'debug-tweaks' or 'allow-root-login' is in IMAGE_FEATURES.
+#
+update_root_user_groups () {
+ if [ -e ${IMAGE_ROOTFS}/etc/group ]; then
+ sed -i '/^\(ipmi\|web\|redfish\|priv-admin\):.*:.*:$/s/$/root/' ${IMAGE_ROOTFS}/etc/group
+ fi
+}
+# Add root user to the needed groups
+ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'allow-root-login' ], "update_root_user_groups; ", "", d)}'
diff --git a/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass b/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass
index 0280133fe..17b50da0e 100644
--- a/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass
+++ b/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass
@@ -6,10 +6,6 @@ RDEPENDS_phosphor-software-manager-updater-ubi += " \
mtd-utils-ubifs \
"
-FILES_${PN}-updater-ubi += " \
- /usr/local \
- "
-
# Remove default configs
EXTRA_OECONF_remove_df-obmc-ubi-fs += " \
ACTIVE_BMC_MAX_ALLOWED=1 \
@@ -34,7 +30,6 @@ SYSTEMD_SERVICE_phosphor-software-manager-updater-ubi += " \
reboot-guard-enable.service \
reboot-guard-disable.service \
force-reboot.service \
- usr-local.mount \
"
# Name of the mtd device where the ubi volumes should be created
@@ -50,6 +45,3 @@ SYSTEMD_SUBSTITUTIONS += "RO_MTD:${BMC_RO_MTD}:obmc-flash-bmc-ubiro@.service"
SYSTEMD_SUBSTITUTIONS += "KERNEL_MTD:${BMC_KERNEL_MTD}:obmc-flash-bmc-ubiro@.service"
SYSTEMD_SUBSTITUTIONS += "RW_SIZE:${BMC_RW_SIZE}:obmc-flash-bmc-ubirw.service"
-do_install_append() {
- install -d ${D}/usr/local
-}
diff --git a/meta-phosphor/conf/distro/include/phosphor-base.inc b/meta-phosphor/conf/distro/include/phosphor-base.inc
index 2a9301d76..7970fefcd 100644
--- a/meta-phosphor/conf/distro/include/phosphor-base.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-base.inc
@@ -113,7 +113,7 @@ DISTRO_FEATURES_DEFAULT = " \
libc-inet-anl \
"
-DISTRO_FEATURES = " \
+DISTRO_FEATURES += " \
${DISTRO_FEATURES_DEFAULT} \
${DISTRO_FEATURES_LIBC} \
${DISTRO_FEATURES_OBMC} \
@@ -133,7 +133,7 @@ include conf/distro/include/openbmc-phosphor/${MACHINE}.inc
KERNEL_FEATURES_append = " phosphor-gpio-keys"
KERNEL_FEATURES_remove_qemuall = " phosphor-gpio-keys"
-IMAGE_CLASSES_append = " image_types_phosphor"
+IMAGE_CLASSES_append = " image_types_phosphor phosphor-rootfs-postcommands"
IMAGE_CLASSES_append_npcm7xx = " image_types_phosphor_nuvoton"
IMAGE_INSTALL_append = " dbus-broker"
diff --git a/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth b/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth
index 58ed74f19..8eef164d1 100644
--- a/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth
+++ b/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-auth
@@ -10,7 +10,7 @@
# here are the per-package modules (the "Primary" block)
auth [success=ok user_unknown=ignore default=2] pam_tally2.so deny=0 unlock_time=0
# Try for local user first, and then try for ldap
-auth [success=2 default=ignore] pam_unix.so nullok_secure
+auth [success=2 default=ignore] pam_unix.so quiet
-auth [success=1 default=ignore] pam_ldap.so ignore_unknown_user ignore_authinfo_unavail
# here's the fallback if no module succeeds
auth requisite pam_deny.so
diff --git a/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-session b/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-session
new file mode 100644
index 000000000..e8751d2ee
--- /dev/null
+++ b/meta-phosphor/recipes-extended/pam/libpam/pam.d/common-session
@@ -0,0 +1,19 @@
+#
+# /etc/pam.d/common-session - session-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of sessions of *any* kind (both interactive and
+# non-interactive).
+#
+
+# here are the per-package modules (the "Primary" block)
+session [default=1] pam_permit.so
+# here's the fallback if no module succeeds
+session requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+session required pam_unix.so quiet
diff --git a/meta-phosphor/recipes-extended/pam/libpam_%.bbappend b/meta-phosphor/recipes-extended/pam/libpam_%.bbappend
index f97664f20..770ffeafd 100644
--- a/meta-phosphor/recipes-extended/pam/libpam_%.bbappend
+++ b/meta-phosphor/recipes-extended/pam/libpam_%.bbappend
@@ -3,6 +3,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += " file://pam.d/common-password \
file://pam.d/common-account \
file://pam.d/common-auth \
+ file://pam.d/common-session \
"
RDEPENDS_${PN}-runtime += "${MLPREFIX}pam-plugin-cracklib-${libpam_suffix} \
diff --git a/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb b/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb
index 97e6239ac..16f3d06f0 100644
--- a/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb
+++ b/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb
@@ -14,6 +14,6 @@ EXTRA_OEMESON = " \
"
SRC_URI += "git://github.com/openbmc/stdplus"
-SRCREV = "4ef36e7904aa354256ab5818c543df0a9c61f90f"
+SRCREV = "f1c46f813fed48f18c4f846d597df5e87a91b5d0"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb b/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb
index e0f35354a..c8190131c 100644
--- a/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb
+++ b/meta-phosphor/recipes-graphics/obmc-ikvm/obmc-ikvm_git.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=75859989545e37968a99b631ef42722e"
DEPENDS = " libvncserver systemd sdbusplus phosphor-logging phosphor-dbus-interfaces"
SRC_URI = "git://github.com/openbmc/obmc-ikvm"
-SRCREV = "7cf1f1d43ef9b4c312bfb2c7c61514ca93a53ee6"
+SRCREV = "861337e8ec92767c4c88237ec5db494a2a67fa8d"
PV = "1.0+git${SRCPV}"
diff --git a/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb b/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb
index cc1f0825f..9fa5f3a0f 100644
--- a/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb
+++ b/meta-phosphor/recipes-phosphor/certificate/phosphor-bmcweb-cert-config.bb
@@ -11,8 +11,10 @@ inherit allarch
SRC_URI = "file://env"
+FILES_${PN} = "${datadir}"
+
do_install() {
- install -D ${WORKDIR}/env ${D}/${sysconfdir}/default/obmc/cert/bmcweb
+ install -D ${WORKDIR}/env ${D}/${datadir}/phosphor-certificate-manager/bmcweb
}
pkg_postinst_${PN}() {
diff --git a/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service b/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service
index a8215662e..255906fab 100644
--- a/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service
+++ b/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager/phosphor-certificate-manager@.service
@@ -2,7 +2,7 @@
Description=Phosphor certificate manager for %I
[Service]
-EnvironmentFile={envfiledir}/obmc/cert/%I
+EnvironmentFile=/usr/share/phosphor-certificate-manager/%I
ExecStart=/usr/bin/env phosphor-certificate-manager --endpoint=${{ENDPOINT}} --path=${{CERTPATH}} --unit=${{UNIT}} --type=${{TYPE}}
SyslogIdentifier=phosphor-certificate-manager
Restart=always
diff --git a/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb b/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb
index 028434a52..b2a908244 100644
--- a/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb
@@ -9,7 +9,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://github.com/openbmc/phosphor-certificate-manager"
-SRCREV = "06a69d7b0674857ebe708025c17ce2fca93e1bf0"
+SRCREV = "667286e4f7dc31a9ab786307092919901adccbb5"
inherit autotools \
pkgconfig \
diff --git a/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb b/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb
index f15fc73d3..07302d657 100644
--- a/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb
+++ b/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config.bb
@@ -11,8 +11,10 @@ inherit allarch
SRC_URI = "file://env"
+FILES_${PN} = "${datadir}"
+
do_install() {
- install -D ${WORKDIR}/env ${D}/${sysconfdir}/default/obmc/cert/authority
+ install -D ${WORKDIR}/env ${D}/${datadir}/phosphor-certificate-manager/authority
}
pkg_postinst_${PN}() {
diff --git a/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env b/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env
index 849d695b5..d2e8814cb 100644
--- a/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env
+++ b/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-authority-cert-config/env
@@ -3,7 +3,10 @@
ENDPOINT=ldap
#Path for the certificate file
-CERTPATH=/etc/ssl/certs/Root-CA.pem
+CERTPATH=/etc/ssl/certs/authority
+
+#Units to restart
+UNIT=bmcweb.service
#Type of service
TYPE=authority
diff --git a/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb b/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb
index 0a53a3202..5b0c03a65 100644
--- a/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb
+++ b/meta-phosphor/recipes-phosphor/certificate/phosphor-nslcd-cert-config.bb
@@ -11,8 +11,10 @@ inherit allarch
SRC_URI = "file://env"
+FILES_${PN} = "${datadir}"
+
do_install() {
- install -D ${WORKDIR}/env ${D}/${sysconfdir}/default/obmc/cert/nslcd
+ install -D ${WORKDIR}/env ${D}/${datadir}/phosphor-certificate-manager/nslcd
}
pkg_postinst_${PN}() {
diff --git a/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb b/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb
index 6a8b041b7..a3968e33d 100644
--- a/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb
+++ b/meta-phosphor/recipes-phosphor/chassis/obmc-phosphor-buttons_git.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
S = "${WORKDIR}/git"
SRC_URI += "git://github.com/openbmc/phosphor-buttons.git"
-SRCREV = "1ac9ab6d29dc06bf15f1377fc8aebb21a3e5a600"
+SRCREV = "3fdcdb82d0c6b0ecae4a28d43a92359f1524506c"
inherit cmake pkgconfig systemd
diff --git a/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb b/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb
index 6e6fd1eaf..8d0c36fa7 100644
--- a/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Entity Manager provides d-bus configuration data \
and configures system sensors"
SRC_URI = "git://github.com/openbmc/entity-manager.git"
-SRCREV = "978fcadadc8320ff5356ed1a5dc25e3284e3745f"
+SRCREV = "7d807754cc9153b04b599804464edd9654d7a81e"
PV = "0.1+git${SRCPV}"
LICENSE = "Apache-2.0"
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb
index d34d1ca54..88cef960d 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb
@@ -14,7 +14,7 @@ DEPENDS += "autoconf-archive-native"
DEPENDS += "sdbus++-native"
SRC_URI += "git://github.com/openbmc/phosphor-dbus-interfaces"
-SRCREV = "9cb4a711cff999b373cf98b44cc18b9001c1395a"
+SRCREV = "2d3b637f21f642afbe3d1193fd6cc4ab3a5e0d6c"
DEPENDS_remove_class-native = "sdbus++-native"
DEPENDS_remove_class-nativesdk = "sdbus++-native"
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb
index 90fa3ac40..3e2cd9a34 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-monitor_git.bb
@@ -7,7 +7,7 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-dbus-monitor"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI = "git://github.com/openbmc/phosphor-dbus-monitor"
-SRCREV = "22bf9008271a2f084a3369f7550a4b66305649dd"
+SRCREV = "b4d69909425dac7bccb28331f2da78a0ad7092b8"
inherit autotools \
pkgconfig \
diff --git a/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service b/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service
index aa3837d89..5d1e959d3 100644
--- a/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service
+++ b/meta-phosphor/recipes-phosphor/dump/phosphor-debug-collector/obmc-dump-monitor.service
@@ -1,5 +1,6 @@
[Unit]
Description=Phosphor Dump core monitor.
+ConditionPathExists=/var/lib/systemd/coredump
[Service]
ExecStart=/usr/bin/env phosphor-dump-monitor
diff --git a/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb b/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb
index 881bfd7f7..9a6106320 100644
--- a/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb
+++ b/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb
@@ -14,7 +14,7 @@ inherit systemd
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/phosphor-pid-control"
-SRCREV = "6b9f59991b7f694866c98775b4179ae97c5e69a8"
+SRCREV = "3660b3888af789266b6c84714b4e161a32e6ea54"
# Each platform will need a service file that starts
# at an appropriate time per system. For instance, if
diff --git a/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc b/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc
index 30b8078d9..e72b2ef3d 100644
--- a/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc
+++ b/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/phosphor-bmc-code-mgmt"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI += "git://github.com/openbmc/phosphor-bmc-code-mgmt"
-SRCREV = "5a7363b4cfdf995a6bebb80b6fe1cd3514c593a6"
+SRCREV = "22848eceb4f19c93b1e3331e52005ce09523637d"
diff --git a/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb b/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb
index 588c55f32..bdd95df82 100644
--- a/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager_git.bb
@@ -58,6 +58,7 @@ FILES_${PN}-download-mgr += "${bindir}/phosphor-download-manager"
FILES_${PN}-updater += " \
${bindir}/phosphor-image-updater \
${bindir}/obmc-flash-bmc \
+ /usr/local \
"
FILES_${PN}-sync += " \
${bindir}/phosphor-sync-software-manager \
@@ -70,6 +71,11 @@ DBUS_SERVICE_${PN}-sync += "xyz.openbmc_project.Software.Sync.service"
SYSTEMD_SERVICE_${PN}-updater += " \
obmc-flash-bmc-setenv@.service \
+ usr-local.mount \
"
S = "${WORKDIR}/git"
+
+do_install_append() {
+ install -d ${D}/usr/local
+}
diff --git a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-monitor@.service b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-monitor@.service
deleted file mode 100644
index 8d0f4cd5b..000000000
--- a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-monitor@.service
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=Phosphor GPIO %I monitor
-
-[Service]
-Restart=no
-EnvironmentFile={envfiledir}/obmc/gpio/%I
-ExecStart=/usr/bin/env phosphor-gpio-monitor --path=${{DEVPATH}} --key=${{KEY}} --polarity=${{POLARITY}} --target=${{TARGET}} ${{EXTRA_ARGS}}
-SyslogIdentifier=phosphor-gpio-monitor
diff --git a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service
deleted file mode 100644
index a92f82c87..000000000
--- a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Phosphor GPIO %I Presence
-Wants=mapper-wait@-xyz-openbmc_project-inventory.service
-After=mapper-wait@-xyz-openbmc_project-inventory.service
-ConditionPathExists={envfiledir}/obmc/gpio/phosphor-power-supply-%i.conf
-
-[Service]
-EnvironmentFile={envfiledir}/obmc/gpio/phosphor-power-supply-%i.conf
-ExecStart=/usr/bin/env phosphor-gpio-presence --path=${{DEVPATH}} --inventory=${{INVENTORY}} --key=${{KEY}} --name=${{NAME}} --drivers=${{DRIVERS}} --extra-ifaces=${{EXTRA_IFACES}}
-SyslogIdentifier=phosphor-gpio-presence
-
-[Install]
-RequiredBy=multi-user.target
diff --git a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb
index b18f27794..de79d15ae 100644
--- a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb
+++ b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb
@@ -5,7 +5,7 @@ PR = "r1"
PV = "1.0+git${SRCPV}"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-inherit autotools pkgconfig
+inherit meson pkgconfig
inherit obmc-phosphor-dbus-service
GPIO_PACKAGES = " \
@@ -23,20 +23,26 @@ RPROVIDES_${PN}-presence += "virtual/obmc-gpio-presence"
PROVIDES += "virtual/obmc-gpio-monitor"
PROVIDES += "virtual/obmc-gpio-presence"
-DEPENDS += "autoconf-archive-native"
DEPENDS += "sdbusplus sdbusplus-native"
DEPENDS += "phosphor-dbus-interfaces"
DEPENDS += "libevdev"
DEPENDS += "phosphor-logging"
DEPENDS += "systemd"
+DEPENDS += "boost"
+DEPENDS += "libgpiod"
+DEPENDS += "cli11"
+DEPENDS += "nlohmann-json"
+SYSTEMD_SERVICE_${PN}-monitor += "phosphor-multi-gpio-monitor.service"
SYSTEMD_SERVICE_${PN}-monitor += "phosphor-gpio-monitor@.service"
SYSTEMD_SERVICE_${PN}-presence += "phosphor-gpio-presence@.service"
FILES_${PN}-monitor += "${bindir}/phosphor-gpio-monitor"
+FILES_${PN}-monitor += "${bindir}/phosphor-multi-gpio-monitor"
FILES_${PN}-monitor += "${bindir}/phosphor-gpio-util"
+FILES_${PN}-monitor += "${base_libdir}/udev/rules.d/99-gpio-keys.rules"
FILES_${PN}-presence += "${bindir}/phosphor-gpio-presence"
SRC_URI += "git://github.com/openbmc/phosphor-gpio-monitor"
-SRCREV = "86d16f037350afd379d062ca17cab5d553a1c8f2"
+SRCREV = "43dd2d8a025ca9f3df4dd58dd7e4ecf6fa1b6634"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb b/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
index b81e580cf..5e4768a29 100644
--- a/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
+++ b/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
@@ -6,8 +6,6 @@ USERADD_PACKAGES = "${PN}"
# add a user called httpd for the server to assume
USERADD_PARAM_${PN} = "-r -s /usr/sbin/nologin bmcweb"
GROUPADD_PARAM_${PN} = "web; redfish"
-# Add root user to web & redfish group
-GROUPMEMS_PARAM_${PN} = "-g web -a root; -g redfish -a root"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENCE;md5=a6a4edad4aed50f39a66d098d74b265b"
@@ -15,7 +13,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=a6a4edad4aed50f39a66d098d74b265b"
SRC_URI = "git://github.com/openbmc/bmcweb.git"
PV = "1.0+git${SRCPV}"
-SRCREV = "717794d5465c54e07a1247db9e9d7ec68b0d6cc6"
+SRCREV = "2658d9859a89d2d3c02326e5e2b944480119e0c3"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc b/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc
index cee138864..d4c9672bf 100644
--- a/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc
+++ b/meta-phosphor/recipes-phosphor/inventory/phosphor-inventory-manager.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-inventory-manager"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI = "git://github.com/openbmc/phosphor-inventory-manager"
-SRCREV = "bbacd2326f84fb821c634e3cdfa78c2c7fedc0cf" \ No newline at end of file
+SRCREV = "5a71b4c637ea92f5801007503968a4c4999bcab1"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb
index e77ecd8e6..0f6c433e3 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb
@@ -16,7 +16,7 @@ DEPENDS += "ipmi-blob-tool"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/phosphor-ipmi-blobs"
-SRCREV = "8bc117792fbf118dd74d015546c22612961ccc26"
+SRCREV = "fea1d8115bace4bedae2523a9d9389a990adb09f"
FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb
index feea0ec32..100552978 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb
@@ -44,7 +44,7 @@ EXTRA_OECONF_append = " MAPPED_ADDRESS=${IPMI_FLASH_BMC_ADDRESS}"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/phosphor-ipmi-flash"
-SRCREV = "a9f674c5ba0436382ee839f463e2e4d120272de7"
+SRCREV = "1290198fb84fc136ff33cb79f1333fd06977d847"
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE_${PN} += "phosphor-ipmi-flash-bmc-prepare.target \
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
index 88c53d393..465aa6a1e 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-host-ipmid"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
SRC_URI += "git://github.com/openbmc/phosphor-host-ipmid"
-SRCREV = "e7023926675030a5976dffda0825445ca0b5ef84"
+SRCREV = "4d22640a64b74c11b2cbdadc88d0ffd60d09e274"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb
index f654d0ce6..e41da0be3 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb
@@ -54,8 +54,6 @@ inherit useradd
USERADD_PACKAGES = "${PN}"
# add ipmi group
GROUPADD_PARAM_${PN} = "ipmi"
-# Add root user to ipmi group
-GROUPMEMS_PARAM_${PN} = "-g ipmi -a root"
SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service phosphor-ipmi-host.service"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb
index 127a8c659..2bd4bd766 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_git.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "The IPMB bridge implements a Dbus compliant interface for \
implementing IPMB interfaces"
SRC_URI = "git://github.com/openbmc/ipmbbridge.git"
-SRCREV = "bbfd00abdbc6d2f7c0389eae91cc055a1d4fe0c3"
+SRCREV = "43c89138ea759b4e47f6cef481f677b9f421d148"
PV = "0.1+git${SRCPV}"
LICENSE = "Apache-2.0"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb
index 075e6cf6e..eb39439b1 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb
@@ -30,7 +30,7 @@ DEPENDS += " \
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/kcsbridge.git"
-SRCREV = "2cdc49585235a6557c9cbb6c8b75c064fc02681a"
+SRCREV = "46525ae48db23333493ac927c12ed13a0e663de5"
# This is how linux-libc-headers says to include custom uapi headers
CFLAGS_append = " -I ${STAGING_KERNEL_DIR}/include/uapi"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb
index 5869bb7c2..733bbf503 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net_git.bb
@@ -16,7 +16,7 @@ DEPENDS += "systemd"
DEPENDS += "phosphor-ipmi-host"
SRC_URI += "git://github.com/openbmc/phosphor-net-ipmid"
-SRCREV = "dafe36444fa438030fdf27089b0e94d8d88411dc"
+SRCREV = "49a94b2f82fb1aa68d608f28c4863bb36661a3a4"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc b/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc
index d7c473a10..aa9ea6489 100644
--- a/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc
+++ b/meta-phosphor/recipes-phosphor/leds/phosphor-led-manager.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-led-manager"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI += "git://github.com/openbmc/phosphor-led-manager"
-SRCREV = "6fd9e440be73865d99cd408e0f87ec639882267b"
+SRCREV = "a6e4892942b882a969df9adff57ec295eb92c2ae"
diff --git a/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb b/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb
index 5dc02f0f2..052aa850e 100644
--- a/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb
+++ b/meta-phosphor/recipes-phosphor/leds/phosphor-led-sysfs_git.bb
@@ -19,10 +19,10 @@ DBUS_SERVICE_${PN} += "xyz.openbmc_project.led.controller@.service"
SRC_URI += "git://github.com/openbmc/phosphor-led-sysfs"
SRC_URI += "file://70-leds.rules"
-SRCREV = "b6708c7e8477f52a1cf3253989b6afe782c3c500"
+SRCREV = "ca3dd7dd91830515251bbf91ba0644052c630be2"
S = "${WORKDIR}/git"
do_install_append() {
install -d ${D}/${base_libdir}/udev/rules.d/
- install ${WORKDIR}/70-leds.rules ${D}/${base_libdir}/udev/rules.d/
+ install -m 0644 ${WORKDIR}/70-leds.rules ${D}/${base_libdir}/udev/rules.d/
}
diff --git a/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb b/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb
index 6728b0777..061124c09 100644
--- a/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb
+++ b/meta-phosphor/recipes-phosphor/logging/phosphor-logging_git.bb
@@ -54,7 +54,7 @@ FILES_phosphor-rsyslog-config += " \
"
SRC_URI += "git://github.com/openbmc/phosphor-logging"
-SRCREV = "31eed996da81cf6e35e7ddd035aa8088be230218"
+SRCREV = "53407be367f112649cae10ebd6152f9bfd62b79b"
S = "${WORKDIR}/git"
@@ -95,7 +95,7 @@ PACKAGECONFIG[install_scripts] = " \
PACKAGECONFIG[openpower-pels] = " \
--enable-openpower-pel-extension, \
--disable-openpower-pel-extension, \
- nlohmann-json, \
+ nlohmann-json cli11, \
, \
"
diff --git a/meta-phosphor/recipes-phosphor/pldm/pldm.inc b/meta-phosphor/recipes-phosphor/pldm/pldm.inc
index 149d51ef9..6787dea8a 100644
--- a/meta-phosphor/recipes-phosphor/pldm/pldm.inc
+++ b/meta-phosphor/recipes-phosphor/pldm/pldm.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/pldm"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://github.com/openbmc/pldm"
-SRCREV = "497665acdb655e965545becf97c2ccf41545ac6f"
+SRCREV = "4de4d00f3ab06eaf2ac15719c27ce21603c88369"
diff --git a/meta-phosphor/recipes-phosphor/power/phosphor-power-systemd-links.bb b/meta-phosphor/recipes-phosphor/power/phosphor-power-systemd-links.bb
new file mode 100644
index 000000000..0ee5e8303
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/power/phosphor-power-systemd-links.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Phosphor Power services installation"
+PR = "r1"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit allarch
+
+RDEPENDS_${PN} += "phosphor-power"
+
+OBMC_POWER_SUPPLY_INSTANCES ?= "0"
+
+ALLOW_EMPTY_${PN} = "1"
+
+pkg_postinst_${PN}() {
+ mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants
+ mkdir -p $D$systemd_system_unitdir/multi-user.target.requires
+
+ LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor.service"
+ TARGET="../pseq-monitor.service"
+ ln -s $TARGET $LINK
+
+ LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor-pgood.service"
+ TARGET="../pseq-monitor-pgood.service"
+ ln -s $TARGET $LINK
+
+ for inst in $OBMC_POWER_SUPPLY_INSTANCES; do
+ LINK="$D$systemd_system_unitdir/multi-user.target.requires/power-supply-monitor@$inst.service"
+ TARGET="../power-supply-monitor@.service"
+ ln -s $TARGET $LINK
+ done
+}
+
+pkg_prerm_${PN}() {
+ LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor.service"
+ rm $LINK
+ LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/pseq-monitor-pgood.service"
+ rm $LINK
+ for inst in $OBMC_POWER_SUPPLY_INSTANCES; do
+ LINK="$D$systemd_system_unitdir/multi-user.target.requires/power-supply-monitor@$inst.service"
+ rm $LINK
+ done
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc b/meta-phosphor/recipes-phosphor/power/phosphor-power.inc
index c3ef3e460..f062cd0a7 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc
+++ b/meta-phosphor/recipes-phosphor/power/phosphor-power.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/phosphor-power"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI += "git://github.com/openbmc/phosphor-power"
-SRCREV = "bd4b86d3982cd5592e0417a5e45be6d3083f4c81"
+SRCREV = "6d5977375f5ca0a8676c6337e465bf7c92f3a765"
diff --git a/meta-phosphor/recipes-phosphor/power/phosphor-power_git.bb b/meta-phosphor/recipes-phosphor/power/phosphor-power_git.bb
new file mode 100644
index 000000000..bb1847e8d
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/power/phosphor-power_git.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Phosphor Power services and utilities"
+DESCRIPTION = "Configure and monitor power supplies, power sequencers, and \
+voltage regulators, and analyzes power devices for faults"
+PR = "r1"
+PV = "1.0+git${SRCPV}"
+
+inherit meson
+inherit pkgconfig
+inherit systemd
+inherit pythonnative
+
+require ${PN}.inc
+
+S = "${WORKDIR}/git"
+
+# TODO: in future when openpower-dbus-interfaces is removed from
+# phosphor-power, remove the dependency here.
+DEPENDS += " \
+ phosphor-logging \
+ openpower-dbus-interfaces \
+ sdbus++-native \
+ sdeventplus \
+ nlohmann-json \
+ cli11 \
+ "
+
+SEQ_MONITOR_SVC = "pseq-monitor.service"
+SEQ_PGOOD_SVC = "pseq-monitor-pgood.service"
+PSU_MONITOR_TMPL = "power-supply-monitor@.service"
+SYSTEMD_SERVICE_${PN} += "${SEQ_MONITOR_SVC} ${SEQ_PGOOD_SVC} ${PSU_MONITOR_TMPL}"
diff --git a/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init b/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init
index 91f8038f9..818a32099 100644
--- a/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init
+++ b/meta-phosphor/recipes-phosphor/preinit-mounts/preinit-mounts/init
@@ -1,5 +1,11 @@
#!/bin/sh
+mount_overlay() {
+ if ! mount overlay /etc -t overlay -o defaults,lowerdir=/etc,upperdir=/var/persist/etc,workdir=/var/persist/etc-work; then
+ mount overlay /etc -t overlay -o defaults,lowerdir=/etc:/var/persist/etc
+ fi
+}
+
if ! mount ubi0:rwfs /var -t ubifs -o defaults; then
if ! mount ubi0:rwfs /var -t ubifs -o defaults,ro; then
mount tmpfs /var -t tmpfs -o defaults
@@ -12,8 +18,32 @@ rm -rf /var/persist/etc-work/*
# rm -rf specifically skips . and .. directories; pipe all output to null to avoid the error message
rm -rf /var/persist/etc-work/.* > /dev/null 2>&1
-if ! mount overlay /etc -t overlay -o defaults,lowerdir=/etc,upperdir=/var/persist/etc,workdir=/var/persist/etc-work; then
- mount overlay /etc -t overlay -o defaults,lowerdir=/etc:/var/persist/etc
-fi
+mount_overlay
+
+# Check if there are any issues accessing the files in /etc after mounting the
+# overlay by doing an 'ls' command
+error="/var/overlay-error"
+cd /var/persist/etc/
+for i in *; do
+ # Only check regular files at the top of the directory
+ if [[ -f $i ]]; then
+ ls -i /etc/$i >/dev/null 2>${error};
+ if [[ -s ${error} ]]; then
+ # We don't have a way to print this error to the journal, delete it
+ rm -f ${error}
+ # Attempt to re-create the overlay by moving out the overlay contents and
+ # copying them back to /etc, which would create them back in the overlay
+ cd
+ umount /etc
+ rm -rf /var/persist/etc-save
+ mv /var/persist/etc /var/persist/etc-save
+ mkdir -p /var/persist/etc
+ mount_overlay
+ cp -rp /var/persist/etc-save/* /etc/
+ rm -rf /var/persist/etc-save
+ break
+ fi
+ fi
+done
exec /lib/systemd/systemd
diff --git a/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb b/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb
index 04e9864c4..459ca82f1 100644
--- a/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb
+++ b/meta-phosphor/recipes-phosphor/sel-logger/phosphor-sel-logger_git.bb
@@ -18,7 +18,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
DEPENDS += "systemd sdbusplus boost phosphor-ipmi-host"
SRC_URI = "git://github.com/openbmc/phosphor-sel-logger.git;protocol=git"
-SRCREV = "6afe9560852c6431c43c8e79a28e2b7cb498e355"
+SRCREV = "7d5054ac15bee9945ac00c470c36c94b565ac8fa"
PV = "0.1+git${SRCPV}"
diff --git a/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb b/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb
index d3cd73c7f..f6ecb7c0d 100644
--- a/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb
+++ b/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb
@@ -2,7 +2,7 @@ SUMMARY = "dbus-sensors"
DESCRIPTION = "Dbus Sensor Services Configured from D-Bus"
SRC_URI = "git://github.com/openbmc/dbus-sensors.git"
-SRCREV = "4316218ab824c3c60f566b38f620a6d778e45a83"
+SRCREV = "14f0ad806c3e92b5aee23632534698fbca18014b"
PV = "0.1+git${SRCPV}"
diff --git a/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh b/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh
index c1ec42e94..2f35865b3 100755
--- a/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh
+++ b/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh
@@ -20,4 +20,4 @@ fi
path="${path//:/--}"
path="${path//-/\\x2d}"
-systemctl $action 'xyz.openbmc_project.Hwmon@'$path'.service'
+systemctl --no-block $action 'xyz.openbmc_project.Hwmon@'$path'.service'
diff --git a/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb b/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb
index e3d276ea2..3207df4dc 100644
--- a/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb
+++ b/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb
@@ -39,15 +39,15 @@ SRC_URI += "file://70-hwmon.rules"
SRC_URI += "file://70-iio.rules"
SRC_URI += "file://start_hwmon.sh"
-SRCREV = "ddbf1c68e33f18797fafffc4615b19178b9fdb8d"
+SRCREV = "5906173aec2a48f37d1356f1ade788c8d25530b2"
S = "${WORKDIR}/git"
do_install_append() {
install -d ${D}/${base_libdir}/udev/rules.d/
- install ${WORKDIR}/70-hwmon.rules ${D}/${base_libdir}/udev/rules.d/
- install ${WORKDIR}/70-iio.rules ${D}/${base_libdir}/udev/rules.d/
+ install -m 0644 ${WORKDIR}/70-hwmon.rules ${D}/${base_libdir}/udev/rules.d/
+ install -m 0644 ${WORKDIR}/70-iio.rules ${D}/${base_libdir}/udev/rules.d/
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/start_hwmon.sh ${D}${bindir}
diff --git a/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb b/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb
index c30d191ec..5fee027d0 100644
--- a/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb
@@ -147,6 +147,6 @@ do_install_append() {
}
SRC_URI += "git://github.com/openbmc/phosphor-state-manager"
-SRCREV = "a6e7bbf0d63b33382448a62ae08661ef17f60e64"
+SRCREV = "a65d30d16bad3521c3c03ccf2b5cef213e825576"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb b/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb
index d1c96662c..8a2971ccf 100644
--- a/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb
@@ -23,11 +23,8 @@ inherit useradd
USERADD_PACKAGES = "${PN} phosphor-ldap"
DBUS_PACKAGES = "${USERADD_PACKAGES}"
# add groups needed for privilege maintenance
-GROUPADD_PARAM_${PN} = "priv-admin; priv-operator; priv-user; priv-callback "
-GROUPADD_PARAM_phosphor-ldap = "priv-admin; priv-operator; priv-user; priv-callback "
-
-# Add root user to priv-admin group
-GROUPMEMS_PARAM_${PN} = "-g priv-admin -a root"
+GROUPADD_PARAM_${PN} = "priv-admin; priv-operator; priv-user "
+GROUPADD_PARAM_phosphor-ldap = "priv-admin; priv-operator; priv-user "
DBUS_SERVICE_${PN} += "xyz.openbmc_project.User.Manager.service"
FILES_phosphor-ldap += " \
@@ -39,5 +36,5 @@ DBUS_SERVICE_phosphor-ldap = " \
xyz.openbmc_project.LDAP.PrivilegeMapper.service \
"
SRC_URI += "git://github.com/openbmc/phosphor-user-manager"
-SRCREV = "7c6e7cffaf061aabfe5489ef52442e2f7cbd0fb7"
+SRCREV = "d4d655006c6179d47008d9b374debcedcc03a1c4"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb b/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb
index 79fa6206a..55529eb29 100644
--- a/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb
+++ b/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb
@@ -20,7 +20,7 @@ DEPENDS += "phosphor-logging"
DEPENDS += "systemd"
SRC_URI += "git://github.com/openbmc/phosphor-watchdog"
-SRCREV = "c35135d32f9cb84b62de7b72eee3a2e87b4b3d4d"
+SRCREV = "2e09bb076a767e270350a9e5daf1b33aab200f55"
S = "${WORKDIR}/git"
EXTRA_OEMESON = " \
diff --git a/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb b/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb
index 766074e58..21c5fe6d8 100644
--- a/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb
+++ b/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb
@@ -6,7 +6,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI = "git://github.com/openbmc/phosphor-webui.git"
-SRCREV = "5e930c0aeb5b66df2c357be4d5c33d4828c2783f"
+SRCREV = "1ab0f7c1d59e3ccae14d92ba865ec52c53772ca2"
S = "${WORKDIR}/git"
DEPENDS_prepend = "nodejs-native "
diff --git a/meta-phosphor/recipes-x86/chassis/x86-power-control_git.bb b/meta-phosphor/recipes-x86/chassis/x86-power-control_git.bb
new file mode 100755
index 000000000..668d0a1ca
--- /dev/null
+++ b/meta-phosphor/recipes-x86/chassis/x86-power-control_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Chassis Power Control service for Intel based platforms"
+DESCRIPTION = "Chassis Power Control service for Intel based platforms"
+
+SRC_URI = "git://github.com/openbmc/x86-power-control.git;protocol=ssh"
+SRCREV = "174ec66e41c0182ae3299637c2846a57dc4684f5"
+
+PV = "1.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+inherit cmake systemd
+
+SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.Chassis.Control.Power.service"
+
+DEPENDS += " \
+ boost \
+ i2c-tools \
+ libgpiod \
+ sdbusplus \
+ phosphor-logging \
+ "
diff --git a/meta-quanta/MAINTAINERS b/meta-quanta/MAINTAINERS
new file mode 100644
index 000000000..f309c5644
--- /dev/null
+++ b/meta-quanta/MAINTAINERS
@@ -0,0 +1,46 @@
+How to use this list:
+ Find the most specific section entry (described below) that matches where
+ your change lives and add the reviewers (R) and maintainers (M) as
+ reviewers. You can use the same method to track down who knows a particular
+ code base best.
+
+ Your change/query may span multiple entries; that is okay.
+
+ If you do not find an entry that describes your request at all, someone
+ forgot to update this list; please at least file an issue or send an email
+ to a maintainer, but preferably you should just update this document.
+
+Description of section entries:
+
+ Section entries are structured according to the following scheme:
+
+ X: NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>
+ X: ...
+ .
+ .
+ .
+
+ Where REPO_NAME is the name of the repository within the OpenBMC GitHub
+ organization; FILE_PATH is a file path within the repository, possibly with
+ wildcards; X is a tag of one of the following types:
+
+ M: Denotes maintainer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ if omitted from an entry, assume one of the maintainers from the
+ MAINTAINERS entry.
+ R: Denotes reviewer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ these people are to be added as reviewers for a change matching the repo
+ path.
+ F: Denotes forked from an external repository; has fields URL.
+
+ Line comments are to be denoted "# SOME COMMENT" (typical shell style
+ comment); it is important to follow the correct syntax and semantics as we
+ may want to use automated tools with this file in the future.
+
+ A change cannot be added to an OpenBMC repository without a MAINTAINER's
+ approval; thus, a MAINTAINER should always be listed as a reviewer.
+
+START OF MAINTAINERS LIST
+-------------------------
+
+M: Benjamin Fair <benjaminfair@google.com> <benjaminfair!>
+M: Samuel Jiang <Samuel.Jiang@quantatw.com> <samueljiang!>
diff --git a/meta-quanta/meta-gsj/conf/machine/gsj.conf b/meta-quanta/meta-gsj/conf/machine/gsj.conf
index cad99697d..328796aa0 100644
--- a/meta-quanta/meta-gsj/conf/machine/gsj.conf
+++ b/meta-quanta/meta-gsj/conf/machine/gsj.conf
@@ -2,6 +2,7 @@ KMACHINE = "nuvoton"
KERNEL_DEVICETREE = "${KMACHINE}-npcm730-gsj.dtb"
UBOOT_MACHINE = "PolegSVB_config"
+IGPS_MACHINE = "EB"
FLASH_SIZE = "32768"
require conf/machine/include/npcm7xx.inc
diff --git a/meta-quanta/meta-runbmc-nuvoton/conf/bblayers.conf.sample b/meta-quanta/meta-olympus-nuvoton/conf/bblayers.conf.sample
index 1e6f3b030..a4fbed41f 100644
--- a/meta-quanta/meta-runbmc-nuvoton/conf/bblayers.conf.sample
+++ b/meta-quanta/meta-olympus-nuvoton/conf/bblayers.conf.sample
@@ -13,7 +13,7 @@ BBLAYERS ?= " \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-nuvoton \
##OEROOT##/meta-quanta \
- ##OEROOT##/meta-quanta/meta-runbmc-nuvoton \
+ ##OEROOT##/meta-quanta/meta-olympus-nuvoton \
"
BBLAYERS_NON_REMOVABLE ?= " \
##OEROOT##/meta \
@@ -23,5 +23,5 @@ BBLAYERS_NON_REMOVABLE ?= " \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-nuvoton \
##OEROOT##/meta-quanta \
- ##OEROOT##/meta-quanta/meta-runbmc-nuvoton \
+ ##OEROOT##/meta-quanta/meta-olympus-nuvoton \
"
diff --git a/meta-ibm/meta-z/conf/conf-notes.txt b/meta-quanta/meta-olympus-nuvoton/conf/conf-notes.txt
index 9b3c01a55..9b3c01a55 100644
--- a/meta-ibm/meta-z/conf/conf-notes.txt
+++ b/meta-quanta/meta-olympus-nuvoton/conf/conf-notes.txt
diff --git a/meta-quanta/meta-runbmc-nuvoton/conf/layer.conf b/meta-quanta/meta-olympus-nuvoton/conf/layer.conf
index ccb683fe8..5d5fdb733 100644
--- a/meta-quanta/meta-runbmc-nuvoton/conf/layer.conf
+++ b/meta-quanta/meta-olympus-nuvoton/conf/layer.conf
@@ -5,6 +5,6 @@ BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
-BBFILE_COLLECTIONS += "runbmc-nuvoton-layer"
-BBFILE_PATTERN_runbmc-nuvoton-layer := "^${LAYERDIR}/"
-LAYERSERIES_COMPAT_runbmc-nuvoton-layer = "warrior zeus"
+BBFILE_COLLECTIONS += "olympus-nuvoton-layer"
+BBFILE_PATTERN_olympus-nuvoton-layer := "^${LAYERDIR}/"
+LAYERSERIES_COMPAT_olympus-nuvoton-layer = "warrior zeus"
diff --git a/meta-ibm/meta-z/conf/local.conf.sample b/meta-quanta/meta-olympus-nuvoton/conf/local.conf.sample
index bd6b65b5b..76d1a9716 100644
--- a/meta-ibm/meta-z/conf/local.conf.sample
+++ b/meta-quanta/meta-olympus-nuvoton/conf/local.conf.sample
@@ -1,4 +1,4 @@
-MACHINE ??= "ibm-z"
+MACHINE ??= "olympus-nuvoton"
DISTRO ?= "openbmc-phosphor"
PACKAGE_CLASSES ?= "package_rpm"
SANITY_TESTED_DISTROS_append ?= " *"
diff --git a/meta-quanta/meta-runbmc-nuvoton/conf/machine/runbmc-nuvoton.conf b/meta-quanta/meta-olympus-nuvoton/conf/machine/olympus-nuvoton.conf
index c8e8257ca..f13b5c5ac 100644
--- a/meta-quanta/meta-runbmc-nuvoton/conf/machine/runbmc-nuvoton.conf
+++ b/meta-quanta/meta-olympus-nuvoton/conf/machine/olympus-nuvoton.conf
@@ -11,6 +11,7 @@ FLASH_ROFS_OFFSET = "8192"
FLASH_RWFS_OFFSET = "29696"
UBOOT_MACHINE = "PolegRunBMC_defconfig"
+IGPS_MACHINE = "RunBMC"
IMAGE_FSTYPES += " cpio.${INITRAMFS_CTYPE}.u-boot"
IMAGE_FSTYPES += " mtd-ubi-tar"
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config b/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config
index 0c384273f..0c384273f 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton/fw_env.config
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend b/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend
index 91518decf..91518decf 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_%.bbappend
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton/runbmc-nuvoton.cfg b/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton/olympus-nuvoton.cfg
index d970410dd..eb0eec124 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton/runbmc-nuvoton.cfg
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton/olympus-nuvoton.cfg
@@ -17,6 +17,7 @@ CONFIG_IIO_MUX=y
CONFIG_NPCM_ADC=y
CONFIG_SENSORS_IIO_HWMON=y
+CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend b/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend
index de375ce24..0ebbb1aae 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-kernel/linux/linux-nuvoton_%.bbappend
@@ -1,3 +1,3 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-nuvoton:"
-SRC_URI += "file://runbmc-nuvoton.cfg"
+SRC_URI += "file://olympus-nuvoton.cfg"
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/console/files/obmc-console.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/files/obmc-console.conf
index f99eaff47..f99eaff47 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/console/files/obmc-console.conf
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/files/obmc-console.conf
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend
index 5967ce1bb..5967ce1bb 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/console/obmc-console_%.bbappend
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-runbmc-nuvoton.json b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-olympus-nuvoton.json
index 5a78db6ee..5a78db6ee 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-runbmc-nuvoton.json
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/config-olympus-nuvoton.json
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh
index 9a0d8e2e7..9a0d8e2e7 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-full-speed.sh
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service
index 3ce2e01b0..3ce2e01b0 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/fan-reboot-control.service
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service
index 57ae69c56..57ae69c56 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control/phosphor-pid-control.service
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
new file mode 100644
index 000000000..a61181dcb
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
@@ -0,0 +1,29 @@
+FILESEXTRAPATHS_prepend_olympus-nuvoton := "${THISDIR}/${PN}:"
+
+SRC_URI_append_olympus-nuvoton = " file://config-olympus-nuvoton.json"
+SRC_URI_append_olympus-nuvoton = " file://fan-full-speed.sh"
+SRC_URI_append_olympus-nuvoton = " file://phosphor-pid-control.service"
+SRC_URI_append_olympus-nuvoton = " file://fan-reboot-control.service"
+
+FILES_${PN}_append_olympus-nuvoton = " ${bindir}/fan-full-speed.sh"
+FILES_${PN}_append_olympus-nuvoton = " ${datadir}/swampd/config.json"
+
+RDEPENDS_${PN} += "bash"
+
+SYSTEMD_SERVICE_${PN}_append_olympus-nuvoton = " phosphor-pid-control.service"
+SYSTEMD_SERVICE_${PN}_append_olympus-nuvoton = " fan-reboot-control.service"
+
+do_install_append_olympus-nuvoton() {
+ install -d ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/fan-full-speed.sh ${D}/${bindir}
+
+ install -d ${D}${datadir}/swampd
+ install -m 0644 -D ${WORKDIR}/config-olympus-nuvoton.json \
+ ${D}${datadir}/swampd/config.json
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/phosphor-pid-control.service \
+ ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/fan-reboot-control.service \
+ ${D}${systemd_unitdir}/system
+}
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-runbmc-channels.json b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-olympus-channels.json
index 45100bd1d..45100bd1d 100644
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-runbmc-channels.json
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/ipmb-olympus-channels.json
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
new file mode 100644
index 000000000..6feb2be84
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS_prepend_olympus-nuvoton := "${THISDIR}/${PN}:"
+
+SRC_URI_append_olympus-nuvoton = " file://ipmb-olympus-channels.json"
+FILES_${PN}_append_olympus-nuvoton = " ${datadir}/ipmbbridge/ipmb-channels.json"
+
+do_install_append_olympus-nuvoton() {
+ install -d ${D}${datadir}/ipmbbridge
+ install -m 0644 -D ${WORKDIR}/ipmb-olympus-channels.json \
+ ${D}${datadir}/ipmbbridge/ipmb-channels.json
+}
+
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/adc@c000.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/adc@c000.conf
new file mode 100644
index 000000000..0a91f05d9
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/adc@c000.conf
@@ -0,0 +1,46 @@
+LABEL_in1 = "P3V3"
+GAIN_in1=2.435
+WARNHI_in1 = "3541"
+WARNLO_in1 = "3066"
+CRITHI_in1 = "3647"
+CRITLO_in1 = "2097"
+
+LABEL_in2 = "P5V"
+GAIN_in2=3.68
+WARNHI_in2 = "5500"
+WARNLO_in2 = "4500"
+CRITHI_in2 = "5700"
+CRITLO_in2 = "4000"
+
+LABEL_in3 = "P3V3_STBY"
+GAIN_in3=2.435
+WARNHI_in3 = "3541"
+WARNLO_in3 = "3066"
+CRITHI_in3 = "3647"
+CRITLO_in3 = "2097"
+
+LABEL_in4 = "P5V_STBY"
+GAIN_in4=3.68
+WARNHI_in4 = "5500"
+WARNLO_in4 = "4500"
+CRITHI_in4 = "5700"
+CRITLO_in4 = "4000"
+
+LABEL_in6 = "PVNN_STBY_PCH"
+WARNHI_in6 = "1050"
+WARNLO_in6 = "945"
+CRITHI_in6 = "1100"
+CRITLO_in6 = "916"
+
+LABEL_in7 = "P12V_STBY"
+GAIN_in7=8.9
+WARNHI_in7 = "13101"
+WARNLO_in7 = "10945"
+CRITHI_in7 = "13494"
+CRITLO_in7 = "10616"
+
+LABEL_in8 = "P1V05_STBY_PCH"
+WARNHI_in8 = "1106"
+WARNLO_in8 = "995"
+CRITHI_in8 = "1139"
+CRITLO_in8 = "966"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/power-supply@58.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/power-supply@58.conf
new file mode 100644
index 000000000..eb47c3c89
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/power-supply@58.conf
@@ -0,0 +1,34 @@
+LABEL_temp1= "ps0_tempture"
+WARNHI_temp1 = "90000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "100000"
+CRITLO_temp1 = "0"
+
+LABEL_in1= "ps0_input_voltage"
+WARNHI_in1="290000"
+WARNLO_in1="200000"
+CRITHI_in1="300000"
+CRITLO_in1="180000"
+
+LABEL_in2= "ps0_output_voltage"
+WARNHI_in2="12700"
+WARNLO_in2="0"
+CRITHI_in2="13000"
+CRITLO_in2="0"
+
+LABEL_power1= "ps0_input_power"
+WARNHI_power1="950000000"
+WARNLO_power1="0"
+CRITHI_power1="1000000000"
+CRITLO_power1="0"
+
+LABEL_power2= "ps0_output_power"
+WARNHI_power2="950000000"
+WARNLO_power2="0"
+CRITHI_power2="1000000000"
+CRITLO_power2="0"
+
+LABEL_fan1= "ps0_fan1"
+LABEL_fan2= "ps0_fan2"
+
+INTERVAL=10000000
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/tmp421@4c.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/tmp421@4c.conf
new file mode 100644
index 000000000..a7430a769
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@82000/tmp421@4c.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "inlet"
+WARNHI_temp1 = "110000"
+WARNLO_temp1 = "5000"
+CRITHI_temp1 = "115000"
+CRITLO_temp1 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@40.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@40.conf
new file mode 100644
index 000000000..2073266c7
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@40.conf
@@ -0,0 +1,5 @@
+LABEL_curr1 = "p0_dimm_vr0_lin"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@41.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@41.conf
new file mode 100644
index 000000000..c01aab86e
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@41.conf
@@ -0,0 +1,5 @@
+LABEL_curr1 = "p0_dimm_vr1_lin"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@44.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@44.conf
new file mode 100644
index 000000000..3cc382473
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@44.conf
@@ -0,0 +1,5 @@
+LABEL_curr1 = "p1_dimm_vr0_lin"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@45.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@45.conf
new file mode 100644
index 000000000..5384422eb
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/ina219@45.conf
@@ -0,0 +1,5 @@
+LABEL_curr1 = "p1_dimm_vr1_lin"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@67.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@67.conf
new file mode 100644
index 000000000..7b27a4ce3
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@67.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p0_vccio_vr_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_vccio_vr_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p0_vccio_vr_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_vccio_vr_pin"
+
+LABEL_power2 = "p0_vccio_vr_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@77.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@77.conf
new file mode 100644
index 000000000..b4d46de3d
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53622@77.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p1_vccio_vr_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_vccio_vr_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p1_vccio_vr_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_vccio_vr_pin"
+
+LABEL_power2 = "p1_vccio_vr_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@62.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@62.conf
new file mode 100644
index 000000000..3c10f9c26
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@62.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p0_dimm_vr0_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_dimm_vr0_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p0_dimm_vr0_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_dimm_vr0_pin"
+
+LABEL_power2 = "p0_dimm_vr0_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@64.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@64.conf
new file mode 100644
index 000000000..55bce3f4e
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@64.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p0_dimm_vr1_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_dimm_vr1_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p0_dimm_vr1_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_dimm_vr1_pin"
+
+LABEL_power2 = "p0_dimm_vr1_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@72.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@72.conf
new file mode 100644
index 000000000..75c9b4e6a
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@72.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p1_dimm_vr0_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_dimm_vr0_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p1_dimm_vr0_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_dimm_vr0_pin"
+
+LABEL_power2 = "p1_dimm_vr0_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@74.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@74.conf
new file mode 100644
index 000000000..249e61d33
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53659@74.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p1_dimm_vr1_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_dimm_vr1_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p1_dimm_vr1_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_dimm_vr1_pin"
+
+LABEL_power2 = "p1_dimm_vr1_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@60.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@60.conf
new file mode 100644
index 000000000..7ef3664ba
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@60.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p0_vccin_vr_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_vccin_vr_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p0_vccin_vr_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_vccin_vr_pin"
+
+LABEL_power2 = "p0_vccin_vr_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@70.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@70.conf
new file mode 100644
index 000000000..611b1073f
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@86000/tps53679@70.conf
@@ -0,0 +1,21 @@
+LABEL_temp1 = "p1_vccin_vr_temp"
+WARNHI_temp1 = "105000"
+CRITHI_temp1 = "115000"
+WARNLO_temp1 = "0"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_vccin_vr_current"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+
+LABEL_in1 = "p1_vccin_vr_voltage"
+WARNHI_in1 = "16000"
+WARNLO_in1 = "11000"
+CRITLO_in1 = "9500"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_vccin_vr_pin"
+
+LABEL_power2 = "p1_vccin_vr_pout"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@87000/tmp421@4c.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@87000/tmp421@4c.conf
new file mode 100644
index 000000000..3afeef744
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@87000/tmp421@4c.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "outlet"
+WARNHI_temp1 = "110000"
+WARNLO_temp1 = "5000"
+CRITHI_temp1 = "115000"
+CRITLO_temp1 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@88000/adm1278@11.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@88000/adm1278@11.conf
new file mode 100644
index 000000000..84bce0d51
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@88000/adm1278@11.conf
@@ -0,0 +1,9 @@
+LABEL_temp1 = "MB0_Temp"
+WARNLO_temp1= "5000"
+WARNHI_temp1= "50000"
+CRITHI_temp1 = "60000"
+CRITLO_temp1 = "0"
+LABEL_curr1 = "MB0_Iout"
+LABEL_in1 = "MB0_Vin"
+LABEL_in2 = "MB0_Vout"
+LABEL_power1 = "MB0_Pin"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8d000/tmp75@4a.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8d000/tmp75@4a.conf
new file mode 100644
index 000000000..7cf67cb8b
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@8d000/tmp75@4a.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "bmc_card"
+WARNHI_temp1 = "110000"
+WARNLO_temp1 = "5000"
+CRITHI_temp1 = "115000"
+CRITLO_temp1 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-fan-controller@103000.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-fan-controller@103000.conf
new file mode 100644
index 000000000..9ffe5bfb7
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-fan-controller@103000.conf
@@ -0,0 +1,59 @@
+LABEL_fan1= "fan1"
+TARGET_fan1= "fan1"
+WARNHI_fan1= "19250"
+WARNLO_fan1= "150"
+CRITHI_fan1= "19250"
+CRITLO_fan1= "150"
+MINVALUE_fan1 = "0"
+MAXVALUE_fan1 = "20145"
+PWM_TARGET_fan1 = 1
+
+LABEL_fan2= "fan2"
+TARGET_fan2= "fan2"
+WARNHI_fan2= "19250"
+WARNLO_fan2= "150"
+CRITHI_fan2= "19250"
+CRITLO_fan2= "150"
+MINVALUE_fan2 = "0"
+MAXVALUE_fan2 = "20145"
+PWM_TARGET_fan2 = 1
+
+LABEL_fan3= "fan3"
+TARGET_fan3= "fan3"
+WARNHI_fan3= "19250"
+WARNLO_fan3= "150"
+CRITHI_fan3= "19250"
+CRITLO_fan3= "150"
+MINVALUE_fan3 = "0"
+MAXVALUE_fan3 = "20145"
+PWM_TARGET_fan3 = 1
+
+LABEL_fan4= "fan4"
+TARGET_fan4= "fan4"
+WARNHI_fan4= "19250"
+WARNLO_fan4= "150"
+CRITHI_fan4= "19250"
+CRITLO_fan4= "150"
+MINVALUE_fan4 = "0"
+MAXVALUE_fan4 = "20145"
+PWM_TARGET_fan4 = 1
+
+LABEL_fan5= "fan5"
+TARGET_fan5= "fan5"
+WARNHI_fan5= "19250"
+WARNLO_fan5= "150"
+CRITHI_fan5= "19250"
+CRITLO_fan5= "150"
+MINVALUE_fan5 = "0"
+MAXVALUE_fan5 = "20145"
+PWM_TARGET_fan5 = 1
+
+LABEL_fan6= "fan6"
+TARGET_fan6= "fan6"
+WARNHI_fan6= "19250"
+WARNLO_fan6= "150"
+CRITHI_fan6= "19250"
+CRITLO_fan6= "150"
+MINVALUE_fan6 = "0"
+MAXVALUE_fan6 = "20145"
+PWM_TARGET_fan6 = 1
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-cputemp.0.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-cputemp.0.conf
new file mode 100644
index 000000000..3285f71d9
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-cputemp.0.conf
@@ -0,0 +1,35 @@
+LABEL_temp1 = "Die_CPU0"
+WARNHI_temp1 = "79000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "89000"
+CRITLO_temp1 = "0"
+LABEL_temp5 = "Core_0_CPU0"
+WARNHI_temp5 = "79000"
+WARNLO_temp5 = "0"
+CRITHI_temp5 = "89000"
+CRITLO_temp5 = "0"
+LABEL_temp6 = "Core_1_CPU0"
+WARNHI_temp6 = "79000"
+WARNLO_temp6 = "0"
+CRITHI_temp6 = "89000"
+CRITLO_temp6 = "0"
+LABEL_temp7 = "Core_2_CPU0"
+WARNHI_temp7 = "79000"
+WARNLO_temp7 = "0"
+CRITHI_temp7 = "89000"
+CRITLO_temp7 = "0"
+LABEL_temp8 = "Core_3_CPU0"
+WARNHI_temp8 = "79000"
+WARNLO_temp8 = "0"
+CRITHI_temp8 = "89000"
+CRITLO_temp8 = "0"
+LABEL_temp9 = "Core_4_CPU0"
+WARNHI_temp9 = "79000"
+WARNLO_temp9 = "0"
+CRITHI_temp9 = "89000"
+CRITLO_temp9 = "0"
+LABEL_temp10 = "Core_5_CPU0"
+WARNHI_temp10 = "79000"
+WARNLO_temp10 = "0"
+CRITHI_temp10 = "89000"
+CRITLO_temp10 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-dimmtemp.0.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-dimmtemp.0.conf
new file mode 100644
index 000000000..7c74dd72f
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-30/peci-dimmtemp.0.conf
@@ -0,0 +1,5 @@
+LABEL_temp5 = "DIMM_C1_CPU0"
+WARNHI_temp5 = "79000"
+WARNLO_temp5 = "0"
+CRITHI_temp5 = "89000"
+CRITLO_temp5 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-31/peci-cputemp.1.conf b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-31/peci-cputemp.1.conf
new file mode 100644
index 000000000..a24fd0a87
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/devices/platform/ahb/ahb--apb/f0100000.peci-bus/peci-0/0-31/peci-cputemp.1.conf
@@ -0,0 +1,35 @@
+LABEL_temp1 = "Die_CPU1"
+WARNHI_temp1 = "79000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "89000"
+CRITLO_temp1 = "0"
+LABEL_temp5 = "Core_0_CPU1"
+WARNHI_temp5 = "79000"
+WARNLO_temp5 = "0"
+CRITHI_temp5 = "89000"
+CRITLO_temp5 = "0"
+LABEL_temp6 = "Core_1_CPU1"
+WARNHI_temp6 = "79000"
+WARNLO_temp6 = "0"
+CRITHI_temp6 = "89000"
+CRITLO_temp6 = "0"
+LABEL_temp7 = "Core_2_CPU1"
+WARNHI_temp7 = "79000"
+WARNLO_temp7 = "0"
+CRITHI_temp7 = "89000"
+CRITLO_temp7 = "0"
+LABEL_temp8 = "Core_3_CPU1"
+WARNHI_temp8 = "79000"
+WARNLO_temp8 = "0"
+CRITHI_temp8 = "89000"
+CRITLO_temp8 = "0"
+LABEL_temp9 = "Core_4_CPU1"
+WARNHI_temp9 = "79000"
+WARNLO_temp9 = "0"
+CRITHI_temp9 = "89000"
+CRITLO_temp9 = "0"
+LABEL_temp10 = "Core_5_CPU1"
+WARNHI_temp10 = "79000"
+WARNLO_temp10 = "0"
+CRITHI_temp10 = "89000"
+CRITLO_temp10 = "0"
diff --git a/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
new file mode 100644
index 000000000..938bfb60f
--- /dev/null
+++ b/meta-quanta/meta-olympus-nuvoton/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
@@ -0,0 +1,40 @@
+FILESEXTRAPATHS_prepend_olympus-nuvoton := "${THISDIR}/${PN}:"
+
+
+ITEMS = " \
+ i2c@82000/tmp421@4c \
+ i2c@82000/power-supply@58 \
+ i2c@86000/tps53679@60 \
+ i2c@86000/tps53659@62 \
+ i2c@86000/tps53659@64 \
+ i2c@86000/tps53679@70 \
+ i2c@86000/tps53659@72 \
+ i2c@86000/tps53659@74 \
+ i2c@86000/tps53622@67 \
+ i2c@86000/tps53622@77 \
+ i2c@86000/ina219@40 \
+ i2c@86000/ina219@41 \
+ i2c@86000/ina219@44 \
+ i2c@86000/ina219@45 \
+ i2c@87000/tmp421@4c \
+ i2c@88000/adm1278@11 \
+ i2c@8d000/tmp75@4a \
+ pwm-fan-controller@103000 \
+ adc@c000 \
+ "
+
+ENVS = "obmc/hwmon/ahb/apb/{0}.conf"
+SYSTEMD_ENVIRONMENT_FILE_${PN}_append_olympus-nuvoton = " ${@compose_list(d, 'ENVS', 'ITEMS')}"
+
+# PECI
+PECINAMES = " \
+ peci-0/0-30/peci-cputemp.0 \
+ peci-0/0-31/peci-cputemp.1\
+ peci-0/0-30/peci-dimmtemp.0 \
+ "
+PECIITEMSFMT = "devices/platform/ahb/ahb--apb/f0100000.peci-bus/{0}.conf"
+PECIITEMS = "${@compose_list(d, 'PECIITEMSFMT', 'PECINAMES')}"
+PECIENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN}_append_olympus-nuvoton = " ${@compose_list(d, 'PECIENVS', 'PECIITEMS')}"
+
+EXTRA_OECONF_append_olympus-nuvoton = " --enable-update-functional-on-fail"
diff --git a/meta-quanta/meta-runbmc-nuvoton/conf/conf-notes.txt b/meta-quanta/meta-runbmc-nuvoton/conf/conf-notes.txt
deleted file mode 100644
index 9b3c01a55..000000000
--- a/meta-quanta/meta-runbmc-nuvoton/conf/conf-notes.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Common targets are:
- obmc-phosphor-image
diff --git a/meta-quanta/meta-runbmc-nuvoton/conf/local.conf.sample b/meta-quanta/meta-runbmc-nuvoton/conf/local.conf.sample
deleted file mode 100644
index 37ae2b3a8..000000000
--- a/meta-quanta/meta-runbmc-nuvoton/conf/local.conf.sample
+++ /dev/null
@@ -1,17 +0,0 @@
-MACHINE ??= "runbmc-nuvoton"
-DISTRO ?= "openbmc-phosphor"
-PACKAGE_CLASSES ?= "package_rpm"
-SANITY_TESTED_DISTROS_append ?= " *"
-EXTRA_IMAGE_FEATURES = "debug-tweaks"
-USER_CLASSES ?= "buildstats image-mklibs image-prelink"
-PATCHRESOLVE = "noop"
-BB_DISKMON_DIRS = "\
- STOPTASKS,${TMPDIR},1G,100K \
- STOPTASKS,${DL_DIR},1G,100K \
- STOPTASKS,${SSTATE_DIR},1G,100K \
- STOPTASKS,/tmp,100M,100K \
- ABORT,${TMPDIR},100M,1K \
- ABORT,${DL_DIR},100M,1K \
- ABORT,${SSTATE_DIR},100M,1K \
- ABORT,/tmp,10M,1K"
-CONF_VERSION = "1"
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_RunBMC.xml b/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_RunBMC.xml
deleted file mode 100644
index 58723e60e..000000000
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_RunBMC.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<!-- SPDX-License-Identifier: GPL-2.0
-#
-# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
-#
-# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
-#--------------------------------------------------------------------------->
-
-<?xml version="1.0" encoding="UTF-8"?>
-
-<Bin_Ecc_Map>
- <!-- BMC mandatory fields -->
- <ImageProperties>
- <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
- <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
- </ImageProperties>
-
- <BinField>
- <!-- BootBlock tag (0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42) or
- uboot tag (0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B) -->
- <name>StartTag</name> <!-- name of field -->
- <config>
- <offset>0</offset> <!-- offset in the header -->
- <size>0x8</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Code destination address, 32-bit aligned: for BootBlock should be 0xFFFD5E00 so code will run in 0xFFFD6000 as linked for -->
- <name>DestAddr</name> <!-- name of field -->
- <config>
- <offset>0x140</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0xFFFD5E00</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- BootBlock or u-boot Code size -->
- <name>CodeSize</name> <!-- name of field -->
- <config>
- <offset>0x144</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='FileSize'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- The BootBlock or u-boot binary file -->
- <name>Code</name> <!-- name of field -->
- <config>
- <offset>0x200</offset> <!-- offset in the header -->
- <size format='FileSize'>Poleg_bootblock.bin</size> <!-- size in the header calculated by tool-->
- </config>
- <content format='FileContent'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU0 FIU_DRD_CFG register -->
- <name>FIU0_DRD_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x108</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x030011BB</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines the clock divide ratio from AHB to FIU0 clock -->
- <name>FIU_Clk_Divider</name> <!-- name of field -->
- <config>
- <offset>0x10C</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>4</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Version (Major.Minor) -->
- <name>Version</name> <!-- name of field -->
- <config>
- <offset>0x148</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x0201</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Board manufaturer ( Dell = 0, Nuvoton = 100, Google = 1, MS = 2) -->
- <name>BOARD_VENDOR</name> <!-- name of field -->
- <config>
- <offset>0x124</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>100</content> <!--Board_manufacturer: Nuvoton-->
- </BinField>
- <BinField>
- <!-- Board type ( DRB = 0, SVB = 1, EB = 2,HORIZON = 3, SANDSTORM = 4, ROCKAWAY = 100 RunBMC = 10) -->
- <!-- WARNING: Currently this value is only printed to serial. Set BOARD_VENDOR to 1 get Dell specific customization. -->
- <name>BOARD_TYPE</name> <!-- name of field -->
- <config>
- <offset>0x120</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x0A</content> <!--Board_type: SVB-->
- </BinField>
-
- <!-- the next two fields are available since version 10.7.0 -->
- <BinField>
- <!-- supported values: 333,444,500,600,666,700,720,750,775,787,800,825,850,900,950,1000,1060 -->
- <name>MC_FREQ_IN_MHZ</name> <!-- name of field -->
- <config>
- <offset>0x128</offset> <!-- offset in the header -->
- <size>0x2</size> <!-- size in the header -->
- </config>
- <content format='32bit'>800</content>
- </BinField>
- <BinField>
- <!-- supporeted values: 333,500,600,666,700,720,750,800,825,850,900,950,1000,1060 -->
- <name>CPU_FREQ_IN_MHZ</name> <!-- name of field -->
- <config>
- <offset>0x12A</offset> <!-- offset in the header -->
- <size>0x2</size> <!-- size in the header -->
- </config>
- <content format='32bit'>800</content>
- </BinField>
-
- <BinField>
- <!-- MC_CONFIG.
- Bit 0: MC_DISABLE_CAPABILITY_INPUT_DQS_ENHANCE_TRAINING (0x01)
- Bit 1: MC_CAPABILITY_IGNORE_ECC_DEVICE (0x02) -->
- <name>MC_CONFIG</name> <!-- name of field -->
- <config>
- <offset>0x12C</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x01</content>
- </BinField>
-
- <BinField>
- <!-- HOST_IF.
- 0xFF: LPC backward compatible
- 0x00: LPC.
- 0x01: eSPI
- 0x02: GPIOs TRIS. -->
- <name>HOST_IF</name> <!-- name of field -->
- <config>
- <offset>0x12D</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x00</content>
- </BinField>
-
- <!-- reserved fields -->
- <BinField>
- <!-- reserved field for sample -->
- <name>My_reserved</name> <!-- name of field -->
- <config>
- <offset>0x110</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0xFF 0xFF 0xFF 0xFF</content> <!-- content the user should fill -->
- </BinField>
-
-</Bin_Ecc_Map>
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/UbootHeader_RunBMC.xml b/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/UbootHeader_RunBMC.xml
deleted file mode 100644
index 1612a8368..000000000
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/files/UbootHeader_RunBMC.xml
+++ /dev/null
@@ -1,191 +0,0 @@
-<!-- SPDX-License-Identifier: GPL-2.0
-#
-# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
-#
-# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
-#--------------------------------------------------------------------------->
-
-<?xml version="1.0" encoding="UTF-8"?>
-
-<Bin_Ecc_Map>
- <!-- BMC mandatory fields -->
- <ImageProperties>
- <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
- <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
- </ImageProperties>
-
- <BinField>
- <!-- BootBlock tag (0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42) or
- uboot tag (0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B) -->
- <name>StartTag</name> <!-- name of field -->
- <config>
- <offset>0</offset> <!-- offset in the header -->
- <size>0x8</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Code destination address, 32-bit aligned: for u-boot should be 0x80005000 so code will run in 0x80005200 as linked for -->
- <name>DestAddr</name> <!-- name of field -->
- <config>
- <offset>0x140</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x8000</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- BootBlock or u-boot Code size -->
- <name>CodeSize</name> <!-- name of field -->
- <config>
- <offset>0x144</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='FileSize'>u-boot.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- The BootBlock or u-boot binary file -->
- <name>Code</name> <!-- name of field -->
- <config>
- <offset>0x200</offset> <!-- offset in the header -->
- <size format='FileSize'>u-boot.bin</size> <!-- size in the header calculated by tool-->
- </config>
- <content format='FileContent'>u-boot.bin</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU0 FIU_DRD_CFG register -->
- <name>FIU0_DRD_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x108</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x030111BC</content> <!-- content the user should fill 0x030032EB -->
- </BinField>
-
- <BinField>
- <!-- Defines the clock divide ratio from AHB to FIU0 clock -->
- <name>FIU0_Clk_Divider</name> <!-- name of field -->
- <config>
- <offset>0x10C</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU0 CS1 is enabled -->
- <name>fiu0_cs1_en</name> <!-- name of field -->
- <config>
- <offset>0x10D</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU0 CS2 is enabled -->
- <name>fiu0_cs2_en</name> <!-- name of field -->
- <config>
- <offset>0x10E</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU0 CS3 is enabled -->
- <name>fiu0_cs3_en</name> <!-- name of field -->
- <config>
- <offset>0x10F</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
- <name>FIU3_DRD_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x110</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x030011BB</content> <!-- content the user should fill -->
- </BinField>
-
- <!-- BMC optional fields -->
- <BinField>
- <!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
- <name>FIU3_DWR_CFG_Set</name> <!-- name of field -->
- <config>
- <offset>0x114</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines the clock divide ratio from AHB to FIU3 clock -->
- <name>FIU3_Clk_Divider</name> <!-- name of field -->
- <config>
- <offset>0x118</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU3 CS0 is enabled -->
- <name>fiu3_cs0_en</name> <!-- name of field -->
- <config>
- <offset>0x119</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU3 CS1 is enabled -->
- <name>fiu3_cs1_en</name> <!-- name of field -->
- <config>
- <offset>0x11A</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU3 CS2 is enabled -->
- <name>fiu3_cs2_en</name> <!-- name of field -->
- <config>
- <offset>0x11B</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Defines if FIU3 CS3 is enabled -->
- <name>fiu3_cs3_en</name> <!-- name of field -->
- <config>
- <offset>0x11C</offset> <!-- offset in the header -->
- <size>0x1</size> <!-- size in the header -->
- </config>
- <content format='bytes'>0x0</content> <!-- content the user should fill -->
- </BinField>
-
- <BinField>
- <!-- Version (Major.Minor) -->
- <name>Version</name> <!-- name of field -->
- <config>
- <offset>0x148</offset> <!-- offset in the header -->
- <size>0x4</size> <!-- size in the header -->
- </config>
- <content format='32bit'>0x0201</content> <!-- content the user should fill -->
- </BinField>
-
-</Bin_Ecc_Map>
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_%.bbappend b/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_%.bbappend
deleted file mode 100644
index 664fcb01d..000000000
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-bsp/images/npcm7xx-bingo-native_%.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-SRC_URI_remove = "file://BootBlockAndHeader_EB.xml"
-SRC_URI_remove = "file://UbootHeader_EB.xml"
-SRC_URI += " file://BootBlockAndHeader_RunBMC.xml"
-SRC_URI += " file://UbootHeader_RunBMC.xml"
-
-
-do_install_append() {
- install ${WORKDIR}/BootBlockAndHeader_RunBMC.xml ${D}${bindir}/BootBlockAndHeader_EB.xml
- install ${WORKDIR}/UbootHeader_RunBMC.xml ${D}${bindir}/UbootHeader_EB.xml
-}
-
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
deleted file mode 100644
index 5d7e0f977..000000000
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
+++ /dev/null
@@ -1,29 +0,0 @@
-FILESEXTRAPATHS_prepend_runbmc-nuvoton := "${THISDIR}/${PN}:"
-
-SRC_URI_append_runbmc-nuvoton = " file://config-runbmc-nuvoton.json"
-SRC_URI_append_runbmc-nuvoton = " file://fan-full-speed.sh"
-SRC_URI_append_runbmc-nuvoton = " file://phosphor-pid-control.service"
-SRC_URI_append_runbmc-nuvoton = " file://fan-reboot-control.service"
-
-FILES_${PN}_append_runbmc-nuvoton = " ${bindir}/fan-full-speed.sh"
-FILES_${PN}_append_runbmc-nuvoton = " ${datadir}/swampd/config.json"
-
-RDEPENDS_${PN} += "bash"
-
-SYSTEMD_SERVICE_${PN}_append_runbmc-nuvoton = " phosphor-pid-control.service"
-SYSTEMD_SERVICE_${PN}_append_runbmc-nuvoton = " fan-reboot-control.service"
-
-do_install_append_runbmc-nuvoton() {
- install -d ${D}/${bindir}
- install -m 0755 ${WORKDIR}/fan-full-speed.sh ${D}/${bindir}
-
- install -d ${D}${datadir}/swampd
- install -m 0644 -D ${WORKDIR}/config-runbmc-nuvoton.json \
- ${D}${datadir}/swampd/config.json
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/phosphor-pid-control.service \
- ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/fan-reboot-control.service \
- ${D}${systemd_unitdir}/system
-}
diff --git a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
deleted file mode 100644
index ef0838e10..000000000
--- a/meta-quanta/meta-runbmc-nuvoton/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-FILESEXTRAPATHS_prepend_runbmc-nuvoton := "${THISDIR}/${PN}:"
-
-SRC_URI_append_runbmc-nuvoton = " file://ipmb-runbmc-channels.json"
-FILES_${PN}_append_runbmc-nuvoton = " ${datadir}/ipmbbridge/ipmb-channels.json"
-
-do_install_append_runbmc-nuvoton() {
- install -d ${D}${datadir}/ipmbbridge
- install -m 0644 -D ${WORKDIR}/ipmb-runbmc-channels.json \
- ${D}${datadir}/ipmbbridge/ipmb-channels.json
-}
-
diff --git a/meta-raspberrypi/files/custom-licenses/Broadcom b/meta-raspberrypi/files/custom-licenses/Broadcom
deleted file mode 100644
index 258268161..000000000
--- a/meta-raspberrypi/files/custom-licenses/Broadcom
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2012, Broadcom Europe Ltd
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the copyright holder nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/meta-raspberrypi/files/custom-licenses/Broadcom-RPi b/meta-raspberrypi/files/custom-licenses/Broadcom-RPi
new file mode 100644
index 000000000..6f3baa0ca
--- /dev/null
+++ b/meta-raspberrypi/files/custom-licenses/Broadcom-RPi
@@ -0,0 +1,29 @@
+Copyright (c) 2006, Broadcom Corporation.
+Copyright (c) 2015, Raspberry Pi (Trading) Ltd
+All rights reserved.
+
+Redistribution. Redistribution and use in binary form, without
+modification, are permitted provided that the following conditions are
+met:
+
+* This software may only be used for the purposes of developing for,
+ running or using a Raspberry Pi device.
+* Redistributions must reproduce the above copyright notice and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+* Neither the name of Broadcom Corporation nor the names of its suppliers
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
diff --git a/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb b/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb
index 66f283334..4318d9b97 100644
--- a/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb
+++ b/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Boot strap code that the GPU puts on memory to start running the boot loader"
-LICENSE = "Proprietary"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://armstub.S;beginline=1;endline=26;md5=9888f34ac06a676129416c952a6a521e"
diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb b/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb
index bbaf61906..848a29af7 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835."
-LICENSE = "Proprietary"
+LICENSE = "Broadcom-RPi"
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1"
diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
index f8ae2f57d..a535cce98 100644
--- a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
+++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
@@ -1,10 +1,10 @@
-RPIFW_DATE ?= "20190823"
-SRCREV ?= "7163480fff007dc98978899b556dcf06f8a462c8"
+RPIFW_DATE ?= "20191107"
+SRCREV ?= "d737daa826adaab8679f83018c3cdc8783d49b59"
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
SRC_URI = "${RPIFW_SRC_URI}"
-SRC_URI[md5sum] = "b10044aa637ed170eef2ca6c1dcc8aba"
-SRC_URI[sha256sum] = "012bc542157d03d19c52dfb2ff9e828905d1991a8b33420f1a2e3730040c167f"
+SRC_URI[md5sum] = "002b6544826ce8f0d1176dd2e958022c"
+SRC_URI[sha256sum] = "48817e60ca15098ff46d7942914fcbdc44e74c97aa3d58889e59a90901b8fc1a"
PV = "${RPIFW_DATE}"
diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc
index 1ea65dbd1..a889a47d8 100644
--- a/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc
+++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc
@@ -1,9 +1,9 @@
-SRCREV ?= "76f64a28dc4685507d12f57fe5cfc89f6c32f8e6"
+SRCREV ?= "4a335520900ce55e251ac4f420f52bf0b2ab6b1f"
RPITOOLS_SRC_URI ?= "https://github.com/raspberrypi/tools/archive/${SRCREV}.tar.gz"
RPITOOLS_S ?= "${WORKDIR}/tools-${SRCREV}"
SRC_URI = "${RPITOOLS_SRC_URI}"
-SRC_URI[md5sum] = "e2d4709b62e1536aeaaeabcbae82a03e"
-SRC_URI[sha256sum] = "5f1c5eb8af9dff71b7cae30ffa6541d689d269a7b86013b365215adfb4c1c27d"
+SRC_URI[md5sum] = "9d9f3e4887d357cbc5601e61bc538fae"
+SRC_URI[sha256sum] = "7dcb188f14845909573a7ec6522b7ba8de5d3373d06aab0e8852f4c8352d6541"
PV = "0.0+git${SRCREV}"
diff --git a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch
index 45839053c..45b43c725 100644
--- a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch
+++ b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch
@@ -1,16 +1,18 @@
-From af91c96951a11f81f5cea88a0010161592c89310 Mon Sep 17 00:00:00 2001
+From a73bbed89fb049ac424c211629935b26013e2573 Mon Sep 17 00:00:00 2001
From: "Peter A. Bigot" <pab@pabigot.com>
Date: Wed, 14 Nov 2018 09:19:51 -0600
Subject: [PATCH] bthelper: correct path for hciconfig under Yocto
Upstream-Status: Inapproprate [OE-specific]
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
---
usr/bin/bthelper | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/usr/bin/bthelper b/usr/bin/bthelper
-index 255fdeb..4e1a1a4 100755
+index af597e5..5de84f6 100755
--- a/usr/bin/bthelper
+++ b/usr/bin/bthelper
@@ -10,7 +10,7 @@ fi
@@ -18,11 +20,8 @@ index 255fdeb..4e1a1a4 100755
dev="$1"
# Need to bring hci up before looking at MAC as it can be all zeros during init
-/bin/hciconfig "$dev" up
--/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0
+-/bin/hciconfig "$dev" | grep -qE "BD Address: (B8:27:EB|DC:A6:32):" || exit 0
+/usr/bin/hciconfig "$dev" up
-+/usr/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0
++/usr/bin/hciconfig "$dev" | grep -qE "BD Address: (B8:27:EB|DC:A6:32):" || exit 0
/usr/bin/hcitool -i "$dev" cmd 0x3f 0x1c 0x01 0x02 0x00 0x01 0x01 > /dev/null
---
-2.17.1
-
diff --git a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.12.bb
index b2401b93c..e16ed17b1 100644
--- a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb
+++ b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.12.bb
@@ -10,8 +10,7 @@ SRC_URI = "\
git://github.com/RPi-Distro/pi-bluetooth \
file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \
"
-SRCREV = "2e1a393955910aea67bbf3c921be35a66e8a8fbe"
-PV = "1.1+git${SRCPV}"
+SRCREV = "cbdbcb66bcc5b9af05f1a9fffe2254c872bb0ace"
S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch b/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch
deleted file mode 100644
index b4bc4b289..000000000
--- a/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6a6b705ff5cba960c54bdb4d4bcdaa3b00a854a2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 11 Aug 2018 10:24:24 -0700
-Subject: [PATCH] pi-blaster: Include sys/sysmacros.h for makedev()
-
-In glibc 2.28+ this header is not included indirectly anymore
-
-fixes
-
-ld: pi-blaster.o: in function `mbox_open':
-pi-blaster.c:(.text+0x28): undefined reference to `makedev'
-collect2: error: ld returned 1 exit status
-
-Upstream-Status: Submitted [https://github.com/sarfata/pi-blaster/pull/100]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- pi-blaster.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/pi-blaster.c b/pi-blaster.c
-index 6cfd010..fc4e686 100644
---- a/pi-blaster.c
-+++ b/pi-blaster.c
-@@ -41,6 +41,7 @@ static char VERSION[] = "SNAPSHOT";
- #include <sys/time.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <sys/sysmacros.h>
- #include <fcntl.h>
- #include <sys/mman.h>
- #include "mailbox.h"
diff --git a/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb b/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
index 9cedf5ec8..fdaf16c8f 100644
--- a/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
+++ b/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
@@ -2,16 +2,15 @@ DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspbe
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
SECTION = "devel/libs"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.md;beginline=244;endline=268;md5=86d10e4bcf4b4014d306dde7c1d2a80d"
+LIC_FILES_CHKSUM = "file://README.md;beginline=268;endline=292;md5=86d10e4bcf4b4014d306dde7c1d2a80d"
SRC_URI = "git://github.com/sarfata/pi-blaster \
file://remove-initscript-lsb-dependency.patch \
- file://0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch \
"
S = "${WORKDIR}/git"
-SRCREV = "e981aa5d7624c75a4d4afcddcbd235f25e32ffe4"
+SRCREV = "befd8ef36e5066e4d444ef47fe4020787e541248"
inherit update-rc.d autotools
diff --git a/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb b/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb
index 0de775c72..c2d7f59fb 100644
--- a/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb
+++ b/meta-raspberrypi/recipes-devtools/raspi-gpio/raspi-gpio_git.bb
@@ -8,7 +8,7 @@ COMPATIBLE_MACHINE = "^rpi$"
inherit autotools
-SRCREV = "2df7b8684e2e36b080cda315d78d5ba16f8f18b0"
+SRCREV = "2eaa8b8755a550e34d07c898b90b0d9b3d66fd81"
SRC_URI = "git://github.com/RPi-Distro/raspi-gpio.git;protocol=https;branch=master \
"
diff --git a/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch b/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch
deleted file mode 100644
index be3d9eebd..000000000
--- a/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch
+++ /dev/null
@@ -1,415 +0,0 @@
-From 32f3cad3c41161693659a902062fa0c01c0338ed Mon Sep 17 00:00:00 2001
-From: ErikHH <erik.hoogeveen@outlook.com>
-Date: Thu, 20 Dec 2018 15:33:45 +0100
-Subject: [PATCH 1/1] Add initial cross compile support
-
-Signed-off-by: ErikHH <erik.hoogeveen@outlook.com>
----
- devLib/Makefile | 55 +++++++++++++++++++++----------------
- examples/Gertboard/Makefile | 22 +++++++++------
- examples/Makefile | 22 +++++++++------
- examples/PiFace/Makefile | 22 +++++++++------
- examples/PiGlow/Makefile | 4 +--
- examples/q2w/Makefile | 4 +--
- gpio/Makefile | 29 +++++++++----------
- wiringPi/Makefile | 47 +++++++++++++++++--------------
- 8 files changed, 119 insertions(+), 86 deletions(-)
-
-diff --git a/devLib/Makefile b/devLib/Makefile
-index cf665d6..d193a9d 100644
---- a/devLib/Makefile
-+++ b/devLib/Makefile
-@@ -22,6 +22,7 @@
- #################################################################################
-
- VERSION=$(shell cat ../VERSION)
-+DYN_VERS_MAJ=$(word 1,$(subst ., ,$(VERSION)))
- DESTDIR?=/usr
- PREFIX?=/local
-
-@@ -31,15 +32,19 @@ ifneq ($V,1)
- Q ?= @
- endif
-
--STATIC=libwiringPiDev.a
--DYNAMIC=libwiringPiDev.so.$(VERSION)
-+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
-+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
-
--#DEBUG = -g -O0
--DEBUG = -O2
--CC = gcc
--INCLUDE = -I.
--DEFS = -D_GNU_SOURCE
--CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
-+BASE_NAME=libwiringPiDev
-+STATIC=$(BASE_NAME).a
-+DYNAMIC=$(BASE_NAME).so.$(VERSION)
-+
-+#DEBUG ?= -g -O0
-+DEBUG ?= -O2
-+CC ?= gcc
-+INCLUDE ?= -I.
-+DEFS ?= -D_GNU_SOURCE
-+CFLAGS ?= $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
-
- LIBS =
-
-@@ -68,16 +73,16 @@ $(STATIC): $(OBJ)
-
- $(DYNAMIC): $(OBJ)
- $Q echo "[Link (Dynamic)]"
-- $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ)
-+ $Q $(CC) -shared $(LDFLAGS) -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
-
- .c.o:
- $Q echo [Compile] $<
-- $Q $(CC) -c $(CFLAGS) $< -o $@
-+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
-
- .PHONY: clean
- clean:
- $Q echo "[Clean]"
-- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPiDev.*
-+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
-
- .PHONY: tags
- tags: $(SRC)
-@@ -88,22 +93,22 @@ tags: $(SRC)
- .PHONY: install
- install: $(DYNAMIC)
- $Q echo "[Install Headers]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
-- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
-+ $Q install -m 0755 -d $(INCLUDE_DIR)
-+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
- $Q echo "[Install Dynamic Lib]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
-- $Q install -m 0755 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION)
-- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so
-- $Q $(LDCONFIG)
-+ $Q install -m 0755 -d $(LIB_DIR)
-+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
-+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
-+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
-
- .PHONY: install-static
- install-static: $(STATIC)
- $Q echo "[Install Headers]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
-- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
-+ $Q install -m 0755 -d $(INCLUDE_DIR)
-+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
- $Q echo "[Install Static Lib]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
-- $Q install -m 0755 libwiringPiDev.a $(DESTDIR)$(PREFIX)/lib
-+ $Q install -m 0755 -d $(LIB_DIR)
-+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
-
- .PHONY: install-deb
- install-deb: $(DYNAMIC)
-@@ -118,9 +123,11 @@ install-deb: $(DYNAMIC)
- .PHONY: uninstall
- uninstall:
- $Q echo "[UnInstall]"
-- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
-- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPiDev.*
-- $Q $(LDCONFIG)
-+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
-+ $Q rm -f $(LIB_DIR)/$(STATIC)
-+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
-+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
-+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
-
-
- .PHONY: depend
-diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile
-index 1939ad6..98d1415 100644
---- a/examples/Gertboard/Makefile
-+++ b/examples/Gertboard/Makefile
-@@ -9,14 +9,20 @@ ifneq ($V,1)
- Q ?= @
- endif
-
--#DEBUG = -g -O0
--DEBUG = -O3
--CC = gcc
--INCLUDE = -I/usr/local/include
--CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
--
--LDFLAGS = -L/usr/local/lib
--LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
-+DESTDIR?=/usr
-+PREFIX?=/local
-+
-+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
-+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
-+
-+#DEBUG ?= -g -O0
-+DEBUG ?= -O3
-+CC ?= gcc
-+INCLUDE ?= -I$(INCLUDE_DIR)
-+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-+
-+LDFLAGS ?= -L$(LIB_DIR)
-+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
-
- # Should not alter anything below this line
- ###############################################################################
-diff --git a/examples/Makefile b/examples/Makefile
-index 6d87885..8623816 100644
---- a/examples/Makefile
-+++ b/examples/Makefile
-@@ -26,14 +26,20 @@ ifneq ($V,1)
- Q ?= @
- endif
-
--#DEBUG = -g -O0
--DEBUG = -O3
--CC = gcc
--INCLUDE = -I/usr/local/include
--CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
--
--LDFLAGS = -L/usr/local/lib
--LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt
-+DESTDIR?=/usr
-+PREFIX?=/local
-+
-+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
-+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
-+
-+#DEBUG ?= -g -O0
-+DEBUG ?= -O3
-+CC ?= gcc
-+INCLUDE ?= -I$(INCLUDE_DIR)
-+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-+
-+LDFLAGS ?= -L$(LIB_DIR)
-+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt
-
- # Should not alter anything below this line
- ###############################################################################
-diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile
-index f937c14..ad030b3 100644
---- a/examples/PiFace/Makefile
-+++ b/examples/PiFace/Makefile
-@@ -26,14 +26,20 @@ ifneq ($V,1)
- Q ?= @
- endif
-
--#DEBUG = -g -O0
--DEBUG = -O3
--CC = gcc
--INCLUDE = -I/usr/local/include
--CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
--
--LDFLAGS = -L/usr/local/lib
--LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
-+DESTDIR?=/usr
-+PREFIX?=/local
-+
-+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
-+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
-+
-+#DEBUG ?= -g -O0
-+DEBUG ?= -O3
-+CC ?= gcc
-+INCLUDE ?= -I$(INCLUDE_DIR)
-+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-+
-+LDFLAGS ?= -L$(LIB_DIR)
-+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
-
- # Should not alter anything below this line
- ###############################################################################
-diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile
-index f182db7..d1ea74f 100644
---- a/examples/PiGlow/Makefile
-+++ b/examples/PiGlow/Makefile
-@@ -29,10 +29,10 @@ endif
- #DEBUG = -g -O0
- DEBUG = -O3
- CC = gcc
--INCLUDE = -I/usr/local/include
-+INCLUDE = -I../wiringPi -I../wiringPiDev
- CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
--LDFLAGS = -L/usr/local/lib
-+LDFLAGS = -L../wiringPi -L../wiringPiDev
- LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
-
- # Should not alter anything below this line
-diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile
-index 8f773bf..14aa6e4 100644
---- a/examples/q2w/Makefile
-+++ b/examples/q2w/Makefile
-@@ -29,10 +29,10 @@ endif
- #DEBUG = -g -O0
- DEBUG = -O3
- CC = gcc
--INCLUDE = -I/usr/local/include
-+INCLUDE = -I../wiringPi -I../devLib
- CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
--LDFLAGS = -L/usr/local/lib
-+LDFLAGS = -L../wiringPi -L../devLib
- LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
-
- ###############################################################################
-diff --git a/gpio/Makefile b/gpio/Makefile
-index 9ec160d..a294242 100644
---- a/gpio/Makefile
-+++ b/gpio/Makefile
-@@ -30,13 +30,17 @@ ifneq ($V,1)
- Q ?= @
- endif
-
--#DEBUG = -g -O0
--DEBUG = -O2
--CC = gcc
--INCLUDE = -I$(DESTDIR)$(PREFIX)/include
--CFLAGS = $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe
-+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
-+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
-+BIN_DIR?=$(DESTDIR)$(PREFIX)/bin
-
--LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib
-+#DEBUG ?= -g -O0
-+DEBUG ?= -O2
-+CC ?= gcc
-+INCLUDE ?= -I$(INCLUDE_DIR)
-+CFLAGS ?= $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe
-+
-+LDFLAGS ?= -L$(LIB_DIR)
- LIBS = -lwiringPi -lwiringPiDev -lpthread -lrt -lm -lcrypt
-
- # May not need to alter anything below this line
-@@ -72,13 +76,10 @@ tags: $(SRC)
- .PHONY: install
- install: gpio
- $Q echo "[Install]"
-- $Q cp gpio $(DESTDIR)$(PREFIX)/bin
--ifneq ($(WIRINGPI_SUID),0)
-- $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio
-- $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio
--endif
-- $Q mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
-- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
-+ $Q install -d $(BIN_DIR)
-+ $Q install -m 4755 -o root -g root gpio $(BIN_DIR)
-+ $Q install -d $(DESTDIR)$(PREFIX)/share/man/man1
-+ $Q install -m 644 -o root -g root gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
-
- .PHONY: install-deb
- install-deb: gpio
-@@ -91,7 +92,7 @@ install-deb: gpio
- .PHONY: uninstall
- uninstall:
- $Q echo "[UnInstall]"
-- $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio
-+ $Q rm -f $(BIN_DIR)/gpio
- $Q rm -f $(DESTDIR)$(PREFIX)/share/man/man1/gpio.1
-
- .PHONY: depend
-diff --git a/wiringPi/Makefile b/wiringPi/Makefile
-index 287fa58..3423d3f 100644
---- a/wiringPi/Makefile
-+++ b/wiringPi/Makefile
-@@ -22,25 +22,30 @@
- #################################################################################
-
- VERSION=$(shell cat ../VERSION)
-+DYN_VERS_MAJ=$(word 1,$(subst ., ,$(VERSION)))
- DESTDIR?=/usr
- PREFIX?=/local
-
-+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
-+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
-+
- LDCONFIG?=ldconfig
-
- ifneq ($V,1)
- Q ?= @
- endif
-
--STATIC=libwiringPi.a
--DYNAMIC=libwiringPi.so.$(VERSION)
-+BASE_NAME=libwiringPi
-+STATIC=$(BASE_NAME).a
-+DYNAMIC=$(BASE_NAME).so.$(VERSION)
-
--#DEBUG = -g -O0
--DEBUG = -O2
--CC = gcc
--INCLUDE = -I.
-+#DEBUG ?= -g -O0
-+DEBUG ?= -O2
-+CC ?= gcc
-+INCLUDE ?= -I.
- DEFS = -D_GNU_SOURCE
--CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC
--#CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Wconversion -Winline $(INCLUDE) -pipe -fPIC
-+CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Winline -pipe -fPIC
-+#CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Wconversion -Winline -pipe -fPIC
-
- LIBS = -lm -lpthread -lrt -lcrypt
-
-@@ -75,17 +80,17 @@ static:
-
- $(DYNAMIC): $(OBJ)
- $Q echo "[Link (Dynamic)]"
-- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(LIBS) $(OBJ)
-+ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(OBJ) $(LIBS)
-
- .c.o:
- $Q echo [Compile] $<
-- $Q $(CC) -c $(CFLAGS) $< -o $@
-+ $Q $(CC) $(CFLAGS) $(LIBS) -c $< -o $@
-
-
- .PHONY: clean
- clean:
- $Q echo "[Clean]"
-- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.*
-+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
-
- .PHONY: tags
- tags: $(SRC)
-@@ -96,13 +101,13 @@ tags: $(SRC)
- .PHONY: install
- install: $(DYNAMIC)
- $Q echo "[Install Headers]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
-- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
-+ $Q install -m 0755 -d $(INCLUDE_DIR)
-+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
- $Q echo "[Install Dynamic Lib]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
-- $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION)
-- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so
-- $Q $(LDCONFIG)
-+ $Q install -m 0755 -d $(LIB_DIR)
-+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
-+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
-+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
-
- .PHONY: install-deb
- install-deb: $(DYNAMIC)
-@@ -117,9 +122,11 @@ install-deb: $(DYNAMIC)
- .PHONY: uninstall
- uninstall:
- $Q echo "[UnInstall]"
-- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
-- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.*
-- $Q $(LDCONFIG)
-+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
-+ $Q rm -f $(LIB_DIR)/$(STATIC)
-+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
-+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
-+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
-
-
- .PHONY: depend
---
-2.19.1
-
diff --git a/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc b/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc
index 8b3f2bf0f..540e28954 100644
--- a/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc
+++ b/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc
@@ -1,5 +1,5 @@
DESCRIPTION = "Graphics libraries for BCM2835."
-LICENSE = "Proprietary"
+LICENSE = "Broadcom-RPi"
LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780"
diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
index 2bc55223b..3d1aaf898 100644
--- a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
+++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
@@ -35,7 +35,7 @@ NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree"
-SRCREV = "f0ad1a42b051aa9da1d9e1dc606dd68ec2f163a5"
+SRCREV = "00daf85ffa373ecce7836df7543c6ebe4cf43639"
PV = "0.0+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb
index 95407470e..45a122d1f 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb
@@ -1,6 +1,6 @@
-LINUX_VERSION ?= "4.19.75"
+LINUX_VERSION ?= "4.19.81"
LINUX_RPI_BRANCH ?= "rpi-4.19.y"
-SRCREV = "642e12d892e694214e387208ebd9feb4a654d287"
+SRCREV = "eef78b714c3fbc635642332a2ce7d66e51f514d9"
require linux-raspberrypi_4.19.inc
diff --git a/meta-xilinx/meta-xilinx-bsp/README.md b/meta-xilinx/meta-xilinx-bsp/README.md
index 13ef6b619..ac1140d7a 100644
--- a/meta-xilinx/meta-xilinx-bsp/README.md
+++ b/meta-xilinx/meta-xilinx-bsp/README.md
@@ -47,6 +47,8 @@ the [meta-xilinx mailing list](https://lists.yoctoproject.org/listinfo/meta-xili
Maintainers:
Manjukumar Harthikote Matha <manjukumar.harthikote-matha@xilinx.com>
+ Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
+ Mark Hatle <mark.hatle@xilinx.com>
Dependencies
============
diff --git a/meta-xilinx/meta-xilinx-contrib/README.md b/meta-xilinx/meta-xilinx-contrib/README.md
index 55c985309..49942b968 100644
--- a/meta-xilinx/meta-xilinx-contrib/README.md
+++ b/meta-xilinx/meta-xilinx-contrib/README.md
@@ -26,6 +26,8 @@ https://lists.yoctoproject.org/listinfo/meta-xilinx
Maintainers:
Manjukumar Harthikote Matha <manjukumar.harthikote-matha@xilinx.com>
+ Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
+ Mark Hatle <mark.hatle@xilinx.com>
Dependencies
============
diff --git a/meta-xilinx/meta-xilinx-standalone/README.md b/meta-xilinx/meta-xilinx-standalone/README.md
index b800f3720..c7bdeb6ea 100644
--- a/meta-xilinx/meta-xilinx-standalone/README.md
+++ b/meta-xilinx/meta-xilinx-standalone/README.md
@@ -16,6 +16,8 @@ Maintainers:
Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Manjukumar Harthikote Matha <manjukumar.harthikote-matha@xilinx.com>
+ Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
+ Mark Hatle <mark.hatle@xilinx.com>
Dependencies
============
diff --git a/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts b/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts
index 533052294..befdbb74d 100644
--- a/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts
+++ b/meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts
@@ -140,6 +140,9 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rmii1_default>;
+ clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
+ <&syscon ASPEED_CLK_GATE_MAC1RCLK>;
+ clock-names = "MACCLK", "RCLK";
};
&i2c1 {
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index 6776cadda..1e641e81c 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -195,9 +195,6 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
global worker_pipe_lock
pipein.close()
- signal.signal(signal.SIGTERM, sigterm_handler)
- # Let SIGHUP exit as SIGTERM
- signal.signal(signal.SIGHUP, sigterm_handler)
bb.utils.signal_on_parent_exit("SIGTERM")
# Save out the PID so that the event can include it the
@@ -212,6 +209,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
# This ensures signals sent to the controlling terminal like Ctrl+C
# don't stop the child processes.
os.setsid()
+
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ # Let SIGHUP exit as SIGTERM
+ signal.signal(signal.SIGHUP, sigterm_handler)
+
# No stdin
newsi = os.open(os.devnull, os.O_RDWR)
os.dup2(newsi, sys.stdin.fileno())
diff --git a/poky/bitbake/contrib/vim/indent/bitbake.vim b/poky/bitbake/contrib/vim/indent/bitbake.vim
new file mode 100644
index 000000000..138103409
--- /dev/null
+++ b/poky/bitbake/contrib/vim/indent/bitbake.vim
@@ -0,0 +1,343 @@
+" Vim indent file
+" Language: BitBake
+" Copyright: Copyright (C) 2019 Agilent Technologies, Inc.
+" Maintainer: Chris Laplante <chris.laplante@agilent.com>
+" License: You may redistribute this under the same terms as Vim itself
+
+
+if exists("b:did_indent")
+ finish
+endif
+
+if exists("*BitbakeIndent")
+ finish
+endif
+
+runtime! indent/sh.vim
+unlet b:did_indent
+
+setlocal indentexpr=BitbakeIndent(v:lnum)
+setlocal autoindent nolisp
+
+function s:is_bb_python_func_def(lnum)
+ let stack = synstack(a:lnum, 1)
+ if len(stack) == 0
+ return 0
+ endif
+
+ let top = synIDattr(stack[0], "name")
+ echo top
+
+ return synIDattr(stack[0], "name") == "bbPyFuncDef"
+endfunction
+
+"""" begin modified from indent/python.vim, upstream commit 7a9bd7c1e0ce1baf5a02daf36eeae3638aa315c7
+"""" This copied code is licensed the same as Vim itself.
+setlocal indentkeys+=<:>,=elif,=except
+
+let s:keepcpo= &cpo
+set cpo&vim
+
+let s:maxoff = 50 " maximum number of lines to look backwards for ()
+
+function GetPythonIndent(lnum)
+
+ " If this line is explicitly joined: If the previous line was also joined,
+ " line it up with that one, otherwise add two 'shiftwidth'
+ if getline(a:lnum - 1) =~ '\\$'
+ if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
+ return indent(a:lnum - 1)
+ endif
+ return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (shiftwidth() * 2))
+ endif
+
+ " If the start of the line is in a string don't change the indent.
+ if has('syntax_items')
+ \ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
+ return -1
+ endif
+
+ " Search backwards for the previous non-empty line.
+ let plnum = prevnonblank(v:lnum - 1)
+
+ if plnum == 0
+ " This is the first non-empty line, use zero indent.
+ return 0
+ endif
+
+ call cursor(plnum, 1)
+
+ " Identing inside parentheses can be very slow, regardless of the searchpair()
+ " timeout, so let the user disable this feature if he doesn't need it
+ let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0)
+
+ if disable_parentheses_indenting == 1
+ let plindent = indent(plnum)
+ let plnumstart = plnum
+ else
+ " searchpair() can be slow sometimes, limit the time to 150 msec or what is
+ " put in g:pyindent_searchpair_timeout
+ let searchpair_stopline = 0
+ let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
+
+ " If the previous line is inside parenthesis, use the indent of the starting
+ " line.
+ " Trick: use the non-existing "dummy" variable to break out of the loop when
+ " going too far back.
+ let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
+ \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
+ \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
+ \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
+ \ searchpair_stopline, searchpair_timeout)
+ if parlnum > 0
+ " We may have found the opening brace of a BitBake Python task, e.g. 'python do_task {'
+ " If so, ignore it here - it will be handled later.
+ if s:is_bb_python_func_def(parlnum)
+ let parlnum = 0
+ let plindent = indent(plnum)
+ let plnumstart = plnum
+ else
+ let plindent = indent(parlnum)
+ let plnumstart = parlnum
+ endif
+ else
+ let plindent = indent(plnum)
+ let plnumstart = plnum
+ endif
+
+ " When inside parenthesis: If at the first line below the parenthesis add
+ " two 'shiftwidth', otherwise same as previous line.
+ " i = (a
+ " + b
+ " + c)
+ call cursor(a:lnum, 1)
+ let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
+ \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
+ \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
+ \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
+ \ searchpair_stopline, searchpair_timeout)
+ if p > 0
+ if s:is_bb_python_func_def(p)
+ " Handle first non-empty line inside a BB Python task
+ if p == plnum
+ return shiftwidth()
+ endif
+
+ " Handle the user actually trying to close a BitBake Python task
+ let line = getline(a:lnum)
+ if line =~ '^\s*}'
+ return -2
+ endif
+
+ " Otherwise ignore the brace
+ let p = 0
+ else
+ if p == plnum
+ " When the start is inside parenthesis, only indent one 'shiftwidth'.
+ let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
+ \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
+ \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
+ \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
+ \ searchpair_stopline, searchpair_timeout)
+ if pp > 0
+ return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
+ endif
+ return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
+ endif
+ if plnumstart == p
+ return indent(plnum)
+ endif
+ return plindent
+ endif
+ endif
+
+ endif
+
+
+ " Get the line and remove a trailing comment.
+ " Use syntax highlighting attributes when possible.
+ let pline = getline(plnum)
+ let pline_len = strlen(pline)
+ if has('syntax_items')
+ " If the last character in the line is a comment, do a binary search for
+ " the start of the comment. synID() is slow, a linear search would take
+ " too long on a long line.
+ if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$"
+ let min = 1
+ let max = pline_len
+ while min < max
+ let col = (min + max) / 2
+ if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$"
+ let max = col
+ else
+ let min = col + 1
+ endif
+ endwhile
+ let pline = strpart(pline, 0, min - 1)
+ endif
+ else
+ let col = 0
+ while col < pline_len
+ if pline[col] == '#'
+ let pline = strpart(pline, 0, col)
+ break
+ endif
+ let col = col + 1
+ endwhile
+ endif
+
+ " If the previous line ended with a colon, indent this line
+ if pline =~ ':\s*$'
+ return plindent + shiftwidth()
+ endif
+
+ " If the previous line was a stop-execution statement...
+ " TODO: utilize this logic to deindent when ending a bbPyDefRegion
+ if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\|bb\.fatal\)\>'
+ " See if the user has already dedented
+ if indent(a:lnum) > indent(plnum) - shiftwidth()
+ " If not, recommend one dedent
+ return indent(plnum) - shiftwidth()
+ endif
+ " Otherwise, trust the user
+ return -1
+ endif
+
+ " If the current line begins with a keyword that lines up with "try"
+ if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
+ let lnum = a:lnum - 1
+ while lnum >= 1
+ if getline(lnum) =~ '^\s*\(try\|except\)\>'
+ let ind = indent(lnum)
+ if ind >= indent(a:lnum)
+ return -1 " indent is already less than this
+ endif
+ return ind " line up with previous try or except
+ endif
+ let lnum = lnum - 1
+ endwhile
+ return -1 " no matching "try"!
+ endif
+
+ " If the current line begins with a header keyword, dedent
+ if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'
+
+ " Unless the previous line was a one-liner
+ if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>'
+ return plindent
+ endif
+
+ " Or the user has already dedented
+ if indent(a:lnum) <= plindent - shiftwidth()
+ return -1
+ endif
+
+ return plindent - shiftwidth()
+ endif
+
+ " When after a () construct we probably want to go back to the start line.
+ " a = (b
+ " + c)
+ " here
+ if parlnum > 0
+ return plindent
+ endif
+
+ return -1
+
+endfunction
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+""" end of stuff from indent/python.vim
+
+
+let b:did_indent = 1
+setlocal indentkeys+=0\"
+
+
+function BitbakeIndent(lnum)
+ if !has('syntax_items')
+ return -1
+ endif
+
+ let stack = synstack(a:lnum, 1)
+ if len(stack) == 0
+ return -1
+ endif
+
+ let name = synIDattr(stack[0], "name")
+
+ " TODO: support different styles of indentation for assignments. For now,
+ " we only support like this:
+ " VAR = " \
+ " value1 \
+ " value2 \
+ " "
+ "
+ " i.e. each value indented by shiftwidth(), with the final quote " completely unindented.
+ if name == "bbVarValue"
+ " Quote handling is tricky. kernel.bbclass has this line for instance:
+ " EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}""
+ " Instead of trying to handle crazy cases like that, just assume that a
+ " double-quote on a line by itself (following an assignment) means the
+ " user is closing the assignment, and de-dent.
+ if getline(a:lnum) =~ '^\s*"$'
+ return 0
+ endif
+
+ let prevstack = synstack(a:lnum - 1, 1)
+ if len(prevstack) == 0
+ return -1
+ endif
+
+ let prevname = synIDattr(prevstack[0], "name")
+
+ " Only indent if there was actually a continuation character on
+ " the previous line, to avoid misleading indentation.
+ let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name")
+ let prev_continued = prevlinelastchar == "bbContinue"
+
+ " Did the previous line introduce an assignment?
+ if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1
+ if prev_continued
+ return shiftwidth()
+ endif
+ endif
+
+ if !prev_continued
+ return 0
+ endif
+
+ " Autoindent can take it from here
+ return -1
+ endif
+
+ if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
+ let ret = GetPythonIndent(a:lnum)
+ " Should normally always be indented by at least one shiftwidth; but allow
+ " return of -1 (defer to autoindent) or -2 (force indent to 0)
+ if ret == 0
+ return shiftwidth()
+ elseif ret == -2
+ return 0
+ endif
+ return ret
+ endif
+
+ " TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot'
+ " Need to submit a patch upstream to Vim to provide an extension point.
+ " Unlike the Python indenter, the Sh indenter is way too large to copy and
+ " modify here.
+ if name == "bbShFuncRegion"
+ return GetShIndent()
+ endif
+
+ " TODO:
+ " + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user
+ " types an obvious BB keyword like addhandler or addtask, or starts
+ " writing a shell task. Maybe too hard to implement...
+
+ return -1
+endfunction
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 20ef04d3f..e6442bff9 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -371,10 +371,6 @@ class BBCooker:
self.data.setVar('BB_CMDLINE', self.ui_cmdline)
- #
- # Copy of the data store which has been expanded.
- # Used for firing events and accessing variables where expansion needs to be accounted for
- #
if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
self.disableDataTracking()
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 1f5f8f1f1..07de6c269 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -1593,7 +1593,7 @@ class Fetch(object):
fn = d.getVar('FILE')
mc = d.getVar('__BBMULTICONFIG') or ""
if cache and fn and mc + fn in urldata_cache:
- self.ud = urldata_cache[mc + fn]
+ self.ud = urldata_cache[mc + fn + str(id(d))]
for url in urls:
if url not in self.ud:
@@ -1605,7 +1605,7 @@ class Fetch(object):
pass
if fn and cache:
- urldata_cache[mc + fn] = self.ud
+ urldata_cache[mc + fn + str(id(d))] = self.ud
def localpath(self, url):
if url not in self.urls:
diff --git a/poky/bitbake/lib/bb/fetch2/clearcase.py b/poky/bitbake/lib/bb/fetch2/clearcase.py
index 3dd93ad6b..e2934ef9f 100644
--- a/poky/bitbake/lib/bb/fetch2/clearcase.py
+++ b/poky/bitbake/lib/bb/fetch2/clearcase.py
@@ -145,18 +145,18 @@ class ClearCase(FetchMethod):
basecmd = "%s %s" % (ud.basecmd, command)
- if command is 'mkview':
+ if command == 'mkview':
if not "rcleartool" in ud.basecmd:
# Cleartool needs a -snapshot view
options.append("-snapshot")
options.append("-tag %s" % ud.viewname)
options.append(ud.viewdir)
- elif command is 'rmview':
+ elif command == 'rmview':
options.append("-force")
options.append("%s" % ud.viewdir)
- elif command is 'setcs':
+ elif command == 'setcs':
options.append("-overwrite")
options.append(ud.configspecfile)
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index 2d1d2cabd..fa41b078f 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -292,11 +292,21 @@ class Git(FetchMethod):
def clonedir_need_update(self, ud, d):
if not os.path.exists(ud.clonedir):
return True
+ if ud.shallow and ud.write_shallow_tarballs and self.clonedir_need_shallow_revs(ud, d):
+ return True
for name in ud.names:
if not self._contains_ref(ud, d, name, ud.clonedir):
return True
return False
+ def clonedir_need_shallow_revs(self, ud, d):
+ for rev in ud.shallow_revs:
+ try:
+ runfetchcmd('%s rev-parse -q --verify %s' % (ud.basecmd, rev), d, quiet=True, workdir=ud.clonedir)
+ except bb.fetch2.FetchError:
+ return rev
+ return None
+
def shallow_tarball_need_update(self, ud):
return ud.shallow and ud.write_shallow_tarballs and not os.path.exists(ud.fullshallow)
@@ -339,13 +349,7 @@ class Git(FetchMethod):
runfetchcmd(clone_cmd, d, log=progresshandler)
# Update the checkout if needed
- needupdate = False
- for name in ud.names:
- if not self._contains_ref(ud, d, name, ud.clonedir):
- needupdate = True
- break
-
- if needupdate:
+ if self.clonedir_need_update(ud, d):
output = runfetchcmd("%s remote" % ud.basecmd, d, quiet=True, workdir=ud.clonedir)
if "origin" in output:
runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
@@ -369,6 +373,11 @@ class Git(FetchMethod):
if not self._contains_ref(ud, d, name, ud.clonedir):
raise bb.fetch2.FetchError("Unable to find revision %s in branch %s even from upstream" % (ud.revisions[name], ud.branches[name]))
+ if ud.shallow and ud.write_shallow_tarballs:
+ missing_rev = self.clonedir_need_shallow_revs(ud, d)
+ if missing_rev:
+ raise bb.fetch2.FetchError("Unable to find revision %s even from upstream" % missing_rev)
+
def build_mirror_data(self, ud, d):
if ud.shallow and ud.write_shallow_tarballs:
if not os.path.exists(ud.fullshallow):
diff --git a/poky/bitbake/lib/bb/fetch2/hg.py b/poky/bitbake/lib/bb/fetch2/hg.py
index 15d729e7b..e21115deb 100644
--- a/poky/bitbake/lib/bb/fetch2/hg.py
+++ b/poky/bitbake/lib/bb/fetch2/hg.py
@@ -54,13 +54,6 @@ class Hg(FetchMethod):
else:
ud.proto = "hg"
- ud.setup_revisions(d)
-
- if 'rev' in ud.parm:
- ud.revision = ud.parm['rev']
- elif not ud.revision:
- ud.revision = self.latest_revision(ud, d)
-
# Create paths to mercurial checkouts
hgsrcname = '%s_%s_%s' % (ud.module.replace('/', '.'), \
ud.host, ud.path.replace('/', '.'))
@@ -74,6 +67,13 @@ class Hg(FetchMethod):
ud.localfile = ud.moddir
ud.basecmd = d.getVar("FETCHCMD_hg") or "/usr/bin/env hg"
+ ud.setup_revisions(d)
+
+ if 'rev' in ud.parm:
+ ud.revision = ud.parm['rev']
+ elif not ud.revision:
+ ud.revision = self.latest_revision(ud, d)
+
ud.write_tarballs = d.getVar("BB_GENERATE_MIRROR_TARBALLS")
def need_update(self, ud, d):
@@ -139,7 +139,7 @@ class Hg(FetchMethod):
cmd = "%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" pull" % (ud.basecmd, ud.user, ud.pswd, proto)
else:
cmd = "%s pull" % (ud.basecmd)
- elif command == "update":
+ elif command == "update" or command == "up":
if ud.user and ud.pswd:
cmd = "%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" update -C %s" % (ud.basecmd, ud.user, ud.pswd, proto, " ".join(options))
else:
@@ -247,12 +247,19 @@ class Hg(FetchMethod):
scmdata = ud.parm.get("scmdata", "")
if scmdata != "nokeep":
+ proto = ud.parm.get('protocol', 'http')
if not os.access(os.path.join(codir, '.hg'), os.R_OK):
logger.debug(2, "Unpack: creating new hg repository in '" + codir + "'")
runfetchcmd("%s init %s" % (ud.basecmd, codir), d)
logger.debug(2, "Unpack: updating source in '" + codir + "'")
- runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d, workdir=codir)
- runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d, workdir=codir)
+ if ud.user and ud.pswd:
+ runfetchcmd("%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" pull %s" % (ud.basecmd, ud.user, ud.pswd, proto, ud.moddir), d, workdir=codir)
+ else:
+ runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d, workdir=codir)
+ if ud.user and ud.pswd:
+ runfetchcmd("%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" up -C %s" % (ud.basecmd, ud.user, ud.pswd, proto, revflag), d, workdir=codir)
+ else:
+ runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d, workdir=codir)
else:
logger.debug(2, "Unpack: extracting source to '" + codir + "'")
runfetchcmd("%s archive -t files %s %s" % (ud.basecmd, revflag, codir), d, workdir=ud.moddir)
diff --git a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index 2e84b913d..af64d3446 100644
--- a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -119,30 +119,30 @@ def handle(fn, data, include):
oldfile = data.getVar('FILE', False)
abs_fn = resolve_file(fn, data)
- f = open(abs_fn, 'r')
-
- statements = ast.StatementGroup()
- lineno = 0
- while True:
- lineno = lineno + 1
- s = f.readline()
- if not s:
- break
- w = s.strip()
- # skip empty lines
- if not w:
- continue
- s = s.rstrip()
- while s[-1] == '\\':
- s2 = f.readline().rstrip()
+ with open(abs_fn, 'r') as f:
+
+ statements = ast.StatementGroup()
+ lineno = 0
+ while True:
lineno = lineno + 1
- if (not s2 or s2 and s2[0] != "#") and s[0] == "#" :
- bb.fatal("There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s))
- s = s[:-1] + s2
- # skip comments
- if s[0] == '#':
- continue
- feeder(lineno, s, abs_fn, statements)
+ s = f.readline()
+ if not s:
+ break
+ w = s.strip()
+ # skip empty lines
+ if not w:
+ continue
+ s = s.rstrip()
+ while s[-1] == '\\':
+ s2 = f.readline().rstrip()
+ lineno = lineno + 1
+ if (not s2 or s2 and s2[0] != "#") and s[0] == "#" :
+ bb.fatal("There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s))
+ s = s[:-1] + s2
+ # skip comments
+ if s[0] == '#':
+ continue
+ feeder(lineno, s, abs_fn, statements)
# DONE WITH PARSING... time to evaluate
data.setVar('FILE', abs_fn)
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 18049436f..26492e708 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -1397,7 +1397,7 @@ class RunQueue:
cache[tid] = iscurrent
return iscurrent
- def validate_hashes(self, tocheck, data, currentcount=0, siginfo=False):
+ def validate_hashes(self, tocheck, data, currentcount=0, siginfo=False, summary=True):
valid = set()
if self.hashvalidate:
sq_data = {}
@@ -1410,15 +1410,15 @@ class RunQueue:
sq_data['hashfn'][tid] = self.rqdata.dataCaches[mc].hashfn[taskfn]
sq_data['unihash'][tid] = self.rqdata.runtaskentries[tid].unihash
- valid = self.validate_hash(sq_data, data, siginfo, currentcount)
+ valid = self.validate_hash(sq_data, data, siginfo, currentcount, summary)
return valid
- def validate_hash(self, sq_data, d, siginfo, currentcount):
- locs = {"sq_data" : sq_data, "d" : d, "siginfo" : siginfo, "currentcount" : currentcount}
+ def validate_hash(self, sq_data, d, siginfo, currentcount, summary):
+ locs = {"sq_data" : sq_data, "d" : d, "siginfo" : siginfo, "currentcount" : currentcount, "summary" : summary}
# Metadata has **kwargs so args can be added, sq_data can also gain new fields
- call = self.hashvalidate + "(sq_data, d, siginfo=siginfo, currentcount=currentcount)"
+ call = self.hashvalidate + "(sq_data, d, siginfo=siginfo, currentcount=currentcount, summary=summary)"
return bb.utils.better_eval(call, locs)
@@ -1605,7 +1605,7 @@ class RunQueue:
tocheck.add(tid)
- valid_new = self.validate_hashes(tocheck, self.cooker.data, 0, True)
+ valid_new = self.validate_hashes(tocheck, self.cooker.data, 0, True, summary=False)
# Tasks which are both setscene and noexec never care about dependencies
# We therefore find tasks which are setscene and noexec and mark their
@@ -1986,7 +1986,7 @@ class RunQueueExecute:
continue
logger.debug(1, "Task %s no longer deferred" % nexttask)
del self.sq_deferred[nexttask]
- valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False)
+ valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False, summary=False)
if not valid:
logger.debug(1, "%s didn't become valid, skipping setscene" % nexttask)
self.sq_task_failoutright(nexttask)
@@ -2303,16 +2303,22 @@ class RunQueueExecute:
for tid in changed:
if tid not in self.rqdata.runq_setscene_tids:
continue
+ if tid not in self.pending_migrations:
+ self.pending_migrations.add(tid)
+
+ for tid in self.pending_migrations.copy():
if tid in self.runq_running:
+ # Too late, task already running, not much we can do now
+ self.pending_migrations.remove(tid)
continue
- if tid in self.scenequeue_covered:
+
+ if tid in self.scenequeue_covered or tid in self.sq_live:
+ # Already ran this setscene task or it running
# Potentially risky, should we report this hash as a match?
logger.info("Already covered setscene for %s so ignoring rehash" % (tid))
+ self.pending_migrations.remove(tid)
continue
- if tid not in self.pending_migrations:
- self.pending_migrations.add(tid)
- for tid in self.pending_migrations.copy():
valid = True
# Check no tasks this covers are running
for dep in self.sqdata.sq_covered_tasks[tid]:
@@ -2361,9 +2367,13 @@ class RunQueueExecute:
if tid in self.build_stamps:
del self.build_stamps[tid]
- logger.info("Setscene task %s now valid and being rerun" % tid)
+ origvalid = False
+ if tid in self.sqdata.valid:
+ origvalid = True
self.sqdone = False
- update_scenequeue_data([tid], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self)
+ update_scenequeue_data([tid], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
+ if tid in self.sqdata.valid and not origvalid:
+ logger.info("Setscene task %s became valid" % tid)
if changed:
self.holdoff_need_update = True
@@ -2692,9 +2702,9 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
sqdata.stamppresent = set()
sqdata.valid = set()
- update_scenequeue_data(sqdata.sq_revdeps, sqdata, rqdata, rq, cooker, stampcache, sqrq)
+ update_scenequeue_data(sqdata.sq_revdeps, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True)
-def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq):
+def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True):
tocheck = set()
@@ -2728,7 +2738,7 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq):
tocheck.add(tid)
- sqdata.valid |= rq.validate_hashes(tocheck, cooker.data, len(sqdata.stamppresent), False)
+ sqdata.valid |= rq.validate_hashes(tocheck, cooker.data, len(sqdata.stamppresent), False, summary=summary)
sqdata.hashes = {}
for mc in sorted(sqdata.multiconfigs):
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index a0b656b61..83fad3ff0 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -1863,6 +1863,26 @@ class GitShallowTest(FetcherTest):
with self.assertRaises(bb.fetch2.FetchError):
self.fetch()
+ def test_shallow_fetch_missing_revs(self):
+ self.add_empty_file('a')
+ self.add_empty_file('b')
+ fetcher, ud = self.fetch(self.d.getVar('SRC_URI'))
+ self.git('tag v0.0 master', cwd=self.srcdir)
+ self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0')
+ self.d.setVar('BB_GIT_SHALLOW_REVS', 'v0.0')
+ self.fetch_shallow()
+
+ def test_shallow_fetch_missing_revs_fails(self):
+ self.add_empty_file('a')
+ self.add_empty_file('b')
+ fetcher, ud = self.fetch(self.d.getVar('SRC_URI'))
+ self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0')
+ self.d.setVar('BB_GIT_SHALLOW_REVS', 'v0.0')
+
+ with self.assertRaises(bb.fetch2.FetchError), self.assertLogs("BitBake.Fetcher", level="ERROR") as cm:
+ self.fetch_shallow()
+ self.assertIn("Unable to find revision v0.0 even from upstream", cm.output[0])
+
@skipIfNoNetwork()
def test_bitbake(self):
self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir)
diff --git a/poky/bitbake/lib/bb/tests/utils.py b/poky/bitbake/lib/bb/tests/utils.py
index f4adf1d44..5c910b4b8 100644
--- a/poky/bitbake/lib/bb/tests/utils.py
+++ b/poky/bitbake/lib/bb/tests/utils.py
@@ -103,6 +103,32 @@ class Path(unittest.TestCase):
result = bb.utils._check_unsafe_delete_path(arg1)
self.assertEqual(result, correctresult, '_check_unsafe_delete_path("%s") != %s' % (arg1, correctresult))
+class Checksum(unittest.TestCase):
+ filler = b"Shiver me timbers square-rigged spike Gold Road galleon bilge water boatswain wherry jack pirate. Mizzenmast rum lad Privateer jack salmagundi hang the jib piracy Pieces of Eight Corsair. Parrel marooned black spot yawl provost quarterdeck cable no prey, no pay spirits lateen sail."
+
+ def test_md5(self):
+ import hashlib
+ with tempfile.NamedTemporaryFile() as f:
+ f.write(self.filler)
+ f.flush()
+ checksum = bb.utils.md5_file(f.name)
+ self.assertEqual(checksum, "bd572cd5de30a785f4efcb6eaf5089e3")
+
+ def test_sha1(self):
+ import hashlib
+ with tempfile.NamedTemporaryFile() as f:
+ f.write(self.filler)
+ f.flush()
+ checksum = bb.utils.sha1_file(f.name)
+ self.assertEqual(checksum, "249eb8fd654732ea836d5e702d7aa567898eca71")
+
+ def test_sha256(self):
+ import hashlib
+ with tempfile.NamedTemporaryFile() as f:
+ f.write(self.filler)
+ f.flush()
+ checksum = bb.utils.sha256_file(f.name)
+ self.assertEqual(checksum, "fcfbae8bf6b721dbb9d2dc6a9334a58f2031a9a9b302999243f99da4d7f12d0f")
class EditMetadataFile(unittest.TestCase):
_origfile = """
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index d035949b3..8d40bcdf8 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -520,22 +520,26 @@ def unlockfile(lf):
fcntl.flock(lf.fileno(), fcntl.LOCK_UN)
lf.close()
-def md5_file(filename):
- """
- Return the hex string representation of the MD5 checksum of filename.
- """
- import hashlib, mmap
+def _hasher(method, filename):
+ import mmap
with open(filename, "rb") as f:
- m = hashlib.md5()
try:
with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mm:
for chunk in iter(lambda: mm.read(8192), b''):
- m.update(chunk)
+ method.update(chunk)
except ValueError:
# You can't mmap() an empty file so silence this exception
pass
- return m.hexdigest()
+ return method.hexdigest()
+
+
+def md5_file(filename):
+ """
+ Return the hex string representation of the MD5 checksum of filename.
+ """
+ import hashlib
+ return _hasher(hashlib.md5(), filename)
def sha256_file(filename):
"""
@@ -543,24 +547,14 @@ def sha256_file(filename):
filename.
"""
import hashlib
-
- s = hashlib.sha256()
- with open(filename, "rb") as f:
- for line in f:
- s.update(line)
- return s.hexdigest()
+ return _hasher(hashlib.sha256(), filename)
def sha1_file(filename):
"""
Return the hex string representation of the SHA1 checksum of the filename
"""
import hashlib
-
- s = hashlib.sha1()
- with open(filename, "rb") as f:
- for line in f:
- s.update(line)
- return s.hexdigest()
+ return _hasher(hashlib.sha1(), filename)
def preserved_envvars_exported():
"""Variables which are taken from the environment and placed in and exported
diff --git a/poky/bitbake/lib/prserv/serv.py b/poky/bitbake/lib/prserv/serv.py
index be3acec36..b854ba14b 100644
--- a/poky/bitbake/lib/prserv/serv.py
+++ b/poky/bitbake/lib/prserv/serv.py
@@ -243,6 +243,7 @@ class PRServer(SimpleXMLRPCServer):
try:
pid = os.fork()
if pid > 0:
+ self.socket.close() # avoid ResourceWarning in parent
return pid
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
@@ -379,9 +380,8 @@ def stop_daemon(host, port):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
try:
- pf = open(pidfile,'r')
- pid = int(pf.readline().strip())
- pf.close()
+ with open(pidfile) as pf:
+ pid = int(pf.readline().strip())
except IOError:
pid = None
diff --git a/poky/documentation/bsp-guide/bsp-guide.xml b/poky/documentation/bsp-guide/bsp-guide.xml
index addb42118..dd0c76add 100644
--- a/poky/documentation/bsp-guide/bsp-guide.xml
+++ b/poky/documentation/bsp-guide/bsp-guide.xml
@@ -132,9 +132,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
index f72f81f55..00741ee45 100644
--- a/poky/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -2349,7 +2349,7 @@
Most software provides some means of setting build-time
configuration options before compilation.
Typically, setting these options is accomplished by running a
- configure script with some options, or by modifying a build
+ configure script with options, or by modifying a build
configuration file.
<note>
As of Yocto Project Release 1.7, some of the core recipes
@@ -2389,6 +2389,7 @@
software is built using Autotools.
If this is the case, you just need to worry about
modifying the configuration.</para>
+
<para>When using Autotools, your recipe needs to inherit
the
<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-autotools'><filename>autotools</filename></ulink>
@@ -2401,13 +2402,15 @@
or
<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></ulink>
to pass any needed configure options that are specific
- to the recipe.</para></listitem>
+ to the recipe.
+ </para></listitem>
<listitem><para><emphasis>CMake:</emphasis>
If your source files have a
<filename>CMakeLists.txt</filename> file, then your
software is built using CMake.
If this is the case, you just need to worry about
modifying the configuration.</para>
+
<para>When you use CMake, your recipe needs to inherit
the
<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-cmake'><filename>cmake</filename></ulink>
@@ -2417,7 +2420,16 @@
You can make some adjustments by setting
<ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OECMAKE'><filename>EXTRA_OECMAKE</filename></ulink>
to pass any needed configure options that are specific
- to the recipe.</para></listitem>
+ to the recipe.
+ <note>
+ If you need to install one or more custom CMake
+ toolchain files that are supplied by the
+ application you are building, install the files to
+ <filename>${D}${datadir}/cmake/</filename> Modules
+ during
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>.
+ </note>
+ </para></listitem>
<listitem><para><emphasis>Other:</emphasis>
If your source files do not have a
<filename>configure.ac</filename> or
@@ -2780,6 +2792,14 @@
<ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></ulink>
for additional information.
</para></listitem>
+ <listitem><para>
+ If you need to install one or more custom CMake
+ toolchain files that are supplied by the
+ application you are building, install the files to
+ <filename>${D}${datadir}/cmake/</filename> Modules
+ during
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>.
+ </para></listitem>
</itemizedlist>
</note>
</section>
@@ -5420,12 +5440,16 @@
<literallayout class='monospaced'>
BBMULTICONFIG = "x86 arm"
</literallayout>
- </para>
-
- <para>Please note, that a "default" configuration already exists by definition,
- this configuration is named: "" (empty string) and is defined by the variables
- coming from your local.conf file. So, the previous example actually adds two
- additional configurations to your build "arm" and "x86" along with "".
+ <note>
+ A "default" configuration already exists by
+ definition.
+ This configuration is named: "" (i.e. empty
+ string) and is defined by the variables coming
+ from your <filename>local.conf</filename> file.
+ Consequently, the previous example actually
+ adds two additional configurations to your
+ build: "arm" and "x86" along with "".
+ </note>
</para></listitem>
<listitem><para>
<emphasis>Launch BitBake</emphasis>:
@@ -5445,9 +5469,10 @@
<filename>x86.conf</filename> configuration file,
a <filename>core-image-sato</filename>
image that is configured through the
- <filename>arm.conf</filename> configuration file and a
- <filename>core-image-base</filename> that is configured
- through your <filename>local.conf</filename> configuration file.
+ <filename>arm.conf</filename> configuration file
+ and a <filename>core-image-base</filename> that is
+ configured through your
+ <filename>local.conf</filename> configuration file.
</para></listitem>
</itemizedlist>
<note>
@@ -10820,6 +10845,47 @@
</para>
<para>
+ By default, the Yocto Project uses SysVinit as the initialization
+ manager.
+ However, support also exists for systemd,
+ which is a full replacement for init with
+ parallel starting of services, reduced shell overhead and other
+ features that are used by many distributions.
+ </para>
+
+ <para>
+ Within the system, SysVinit treats system components as services.
+ These services are maintained as shell scripts stored in the
+ <filename>/etc/init.d/</filename> directory.
+ Services organize into different run levels.
+ This organization is maintained by putting links to the services
+ in the <filename>/etc/rcN.d/</filename> directories, where
+ <replaceable>N/</replaceable> is one of the following options:
+ "S", "0", "1", "2", "3", "4", "5", or "6".
+ <note>
+ Each runlevel has a dependency on the previous runlevel.
+ This dependency allows the services to work properly.
+ </note>
+ </para>
+
+ <para>
+ In comparison, systemd treats components as units.
+ Using units is a broader concept as compared to using a service.
+ A unit includes several different types of entities.
+ Service is one of the types of entities.
+ The runlevel concept in SysVinit corresponds to the concept of a
+ target in systemd, where target is also a type of supported unit.
+ </para>
+
+ <para>
+ In a SysVinit-based system, services load sequentially (i.e. one
+ by one) during and parallelization is not supported.
+ With systemd, services start in parallel.
+ Needless to say, the method can have an impact on system startup
+ performance.
+ </para>
+
+ <para>
If you want to use SysVinit, you do
not have to do anything.
But, if you want to use systemd, you must
diff --git a/poky/documentation/dev-manual/dev-manual.xml b/poky/documentation/dev-manual/dev-manual.xml
index 42deff102..04fa1e4f9 100644
--- a/poky/documentation/dev-manual/dev-manual.xml
+++ b/poky/documentation/dev-manual/dev-manual.xml
@@ -117,9 +117,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/kernel-dev/kernel-dev.xml b/poky/documentation/kernel-dev/kernel-dev.xml
index c43330a31..4c5881b07 100644
--- a/poky/documentation/kernel-dev/kernel-dev.xml
+++ b/poky/documentation/kernel-dev/kernel-dev.xml
@@ -102,9 +102,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/mega-manual/mega-manual.xml b/poky/documentation/mega-manual/mega-manual.xml
index b66b9334f..cd9a3da8f 100644
--- a/poky/documentation/mega-manual/mega-manual.xml
+++ b/poky/documentation/mega-manual/mega-manual.xml
@@ -88,9 +88,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
@@ -332,22 +332,22 @@
</para>
<xi:include
- xmlns:xi="http://www.w3.org/2003/XInclude" href="../../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml"/>
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml"/>
<xi:include
- xmlns:xi="http://www.w3.org/2003/XInclude" href="../../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml"/>
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml"/>
<xi:include
- xmlns:xi="http://www.w3.org/2003/XInclude" href="../../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml"/>
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml"/>
<xi:include
- xmlns:xi="http://www.w3.org/2003/XInclude" href="../../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml"/>
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml"/>
<xi:include
- xmlns:xi="http://www.w3.org/2003/XInclude" href="../../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml"/>
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml"/>
<xi:include
- xmlns:xi="http://www.w3.org/2003/XInclude" href="../../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml"/>
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../../bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml"/>
</book>
diff --git a/poky/documentation/overview-manual/overview-manual.xml b/poky/documentation/overview-manual/overview-manual.xml
index 728cad57f..c7716e460 100644
--- a/poky/documentation/overview-manual/overview-manual.xml
+++ b/poky/documentation/overview-manual/overview-manual.xml
@@ -47,9 +47,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/poky.ent b/poky/documentation/poky.ent
index 192b9418f..7af47df72 100644
--- a/poky/documentation/poky.ent
+++ b/poky/documentation/poky.ent
@@ -1,14 +1,14 @@
-<!ENTITY DISTRO "2.8">
-<!ENTITY DISTRO_COMPRESSED "28">
+<!ENTITY DISTRO "3.0">
+<!ENTITY DISTRO_COMPRESSED "30">
<!ENTITY DISTRO_NAME_NO_CAP "zeus">
<!ENTITY DISTRO_NAME "Zeus">
<!ENTITY DISTRO_NAME_NO_CAP_MINUS_ONE "warrior">
<!ENTITY DISTRO_NAME_MINUS_ONE "Warrior">
-<!ENTITY YOCTO_DOC_VERSION "2.8">
+<!ENTITY YOCTO_DOC_VERSION "3.0">
<!ENTITY YOCTO_DOC_VERSION_MINUS_ONE "2.7">
-<!ENTITY DISTRO_REL_TAG "yocto-2.8">
+<!ENTITY DISTRO_REL_TAG "yocto-3.0">
<!ENTITY METAINTELVERSION "9.0">
-<!ENTITY REL_MONTH_YEAR "TBD">
+<!ENTITY REL_MONTH_YEAR "October 2019">
<!ENTITY META_INTEL_REL_TAG "&METAINTELVERSION;-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;">
<!ENTITY POKYVERSION "22.0.0">
<!ENTITY POKYVERSION_COMPRESSED "2200">
diff --git a/poky/documentation/profile-manual/profile-manual.xml b/poky/documentation/profile-manual/profile-manual.xml
index c6e8baf02..c1f461f43 100644
--- a/poky/documentation/profile-manual/profile-manual.xml
+++ b/poky/documentation/profile-manual/profile-manual.xml
@@ -102,9 +102,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/ref-manual/migration.xml b/poky/documentation/ref-manual/migration.xml
index ade8787b4..8d50ab913 100644
--- a/poky/documentation/ref-manual/migration.xml
+++ b/poky/documentation/ref-manual/migration.xml
@@ -2103,10 +2103,9 @@
</para>
<para>
- Additionally, a
- <link linkend='ref-classes-bluetooth'><filename>bluetooth</filename></link>
- class has been added to make selection of the appropriate bluetooth
- support within a recipe a little easier.
+ Additionally, a <filename>bluetooth</filename> class has been added
+ to make selection of the appropriate bluetooth support within a
+ recipe a little easier.
If you wish to make use of this class in a recipe, add something
such as the following:
<literallayout class='monospaced'>
@@ -4740,7 +4739,7 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message</ulink>.
<para>
This section provides information about packaging changes that have
- ocurred:
+ occurred:
<itemizedlist>
<listitem><para>
<emphasis><filename>python3</filename> Changes:</emphasis>
@@ -6597,6 +6596,505 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message</ulink>.
</para>
</section>
</section>
+
+<section id='moving-to-the-yocto-project-3.0-release'>
+ <title>Moving to the Yocto Project 3.0 Release</title>
+
+ <para>
+ This section provides migration information for moving to the
+ Yocto Project 3.0 Release from the prior release.
+ </para>
+
+ <section id='migration-3.0-init-system-selection'>
+ <title>Init System Selection</title>
+
+ <para>
+ Changing the init system manager previously required setting a
+ number of different variables.
+ You can now change the manager by setting the
+ <filename>INIT_MANAGER</filename> variable and the corresponding
+ include files
+ (i.e. <filename>conf/distro/include/init-manager-*.conf</filename>).
+ Include files are provided for four values: "none", "sysvinit",
+ "systemd", and "mdev-busybox".
+ The default value, "none", for <filename>INIT_MANAGER</filename>
+ should allow your current settings to continue working.
+ However, it is advisable to explicitly set
+ <filename>INIT_MANAGER</filename>.
+ </para>
+ </section>
+
+ <section id='migration-3.0-lsb-support-removed'>
+ <title>LSB Support Removed</title>
+
+ <para>
+ Linux Standard Base (LSB) as a standard is not current, and
+ is not well suited for embedded applications.
+ Support can be continued in a separate layer if needed.
+ However, presently LSB support has been removed from the core.
+ </para>
+
+ <para>
+ As a result of this change, the <filename>poky-lsb</filename>
+ derivative distribution configuration that was also used for
+ testing alternative configurations has been replaced with a
+ <filename>poky-altcfg</filename> distribution that has LSB
+ parts removed.
+ </para>
+ </section>
+
+ <section id='migration-3.0-removed-recipes'>
+ <title>Removed Recipes</title>
+
+ <para>
+ The following recipes have been removed.
+ <itemizedlist>
+ <listitem><para>
+ <filename>core-image-lsb-dev</filename>: Part of removed
+ LSB support.
+ </para></listitem>
+ <listitem><para>
+ <filename>core-image-lsb</filename>: Part of removed
+ LSB support.
+ </para></listitem>
+ <listitem><para>
+ <filename>core-image-lsb-sdk</filename>: Part of removed
+ LSB support.
+ </para></listitem>
+ <listitem><para>
+ <filename>cve-check-tool</filename>: Functionally replaced
+ by the <filename>cve-update-db</filename> recipe and
+ <filename>cve-check</filename> class.
+ </para></listitem>
+ <listitem><para>
+ <filename>eglinfo</filename>: No longer maintained.
+ <filename>eglinfo</filename> from
+ <filename>mesa-demos</filename> is an adequate and
+ maintained alternative.
+ </para></listitem>
+ <listitem><para>
+ <filename>gcc-8.3</filename>: Version 8.3 removed.
+ Replaced by 9.2.
+ </para></listitem>
+ <listitem><para>
+ <filename>gnome-themes-standard</filename>: Only needed
+ by gtk+ 2.x, which has been removed.
+ </para></listitem>
+ <listitem><para>
+ <filename>gtk+</filename>: GTK+ 2 is obsolete and has been
+ replaced by gtk+3.
+ </para></listitem>
+ <listitem><para>
+ <filename>irda-utils</filename>: Has become obsolete.
+ IrDA support has been removed from the Linux kernel in
+ version 4.17 and later.
+ </para></listitem>
+ <listitem><para>
+ <filename>libnewt-python</filename>:
+ <filename>libnewt</filename> Python support merged into
+ main <filename>libnewt</filename> recipe.
+ </para></listitem>
+ <listitem><para>
+ <filename>libsdl</filename>: Replaced by newer
+ <filename>libsdl2</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>libx11-diet</filename>: Became obsolete.
+ </para></listitem>
+ <listitem><para>
+ <filename>libxx86dga</filename>: Removed obsolete client
+ library.
+ </para></listitem>
+ <listitem><para>
+ <filename>libxx86misc</filename>: Removed. Library is
+ redundant.
+ </para></listitem>
+ <listitem><para>
+ <filename>linux-yocto</filename>: Version 5.0 removed,
+ which is now redundant (5.2 / 4.19 present).
+ </para></listitem>
+ <listitem><para>
+ <filename>lsbinitscripts</filename>: Part of removed LSB
+ support.
+ </para></listitem>
+ <listitem><para>
+ <filename>lsb</filename>: Part of removed LSB support.
+ </para></listitem>
+ <listitem><para>
+ <filename>lsbtest</filename>: Part of removed LSB support.
+ </para></listitem>
+ <listitem><para>
+ <filename>openssl10</filename>: Replaced by newer
+ <filename>openssl</filename> version 1.1.
+ </para></listitem>
+ <listitem><para>
+ <filename>packagegroup-core-lsb</filename>: Part of removed
+ LSB support.
+ </para></listitem>
+ <listitem><para>
+ <filename>python-nose</filename>: Removed the Python 2.x
+ version of the recipe.
+ </para></listitem>
+ <listitem><para>
+ <filename>python-numpy</filename>: Removed the Python 2.x
+ version of the recipe.
+ </para></listitem>
+ <listitem><para>
+ <filename>python-scons</filename>: Removed the Python 2.x
+ version of the recipe.
+ </para></listitem>
+ <listitem><para>
+ <filename>source-highlight</filename>: No longer needed.
+ </para></listitem>
+ <listitem><para>
+ <filename>stress</filename>: Replaced by
+ <filename>stress-ng</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>vulkan</filename>: Split into
+ <filename>vulkan-loader</filename>,
+ <filename>vulkan-headers</filename>, and
+ <filename>vulkan-tools</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>weston-conf</filename>: Functionality moved to
+ <filename>weston-init</filename>.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-3.0-packaging-changes'>
+ <title>Packaging Changes</title>
+
+ <para>
+ The following packaging changes have occurred.
+ <itemizedlist>
+ <listitem><para>
+ The
+ <ulink url='https://en.wikipedia.org/wiki/GNOME_Web'>Epiphany</ulink>
+ browser has been dropped from
+ <filename>packagegroup-self-hosted</filename> as it has
+ not been needed inside
+ <filename>build-appliance-image</filename> for
+ quite some time and was causing resource problems.
+ </para></listitem>
+ <listitem><para>
+ <filename>libcap-ng</filename> Python support has been
+ moved to a separate <filename>libcap-ng-python</filename>
+ recipe to streamline the build process when the Python
+ bindings are not needed.
+ </para></listitem>
+ <listitem><para>
+ <filename>libdrm</filename> now packages the file
+ <filename>amdgpu.ids</filename> into a separate
+ <filename>libdrm-amdgpu</filename> package.
+ </para></listitem>
+ <listitem><para>
+ <filename>python3</filename>: The
+ <filename>runpy</filename> module is now in the
+ <filename>python3-core</filename> package as it is
+ required to support the common "python3 -m" command usage.
+ </para></listitem>
+ <listitem><para>
+ <filename>distcc</filename> now provides separate
+ <filename>distcc-client</filename> and
+ <filename>distcc-server</filename> packages as typically
+ one or the other are needed, rather than both.
+ </para></listitem>
+ <listitem><para>
+ <filename>python*-setuptools</filename> recipes now
+ separately package the <filename>pkg_resources</filename>
+ module in a <filename>python-pkg-resources</filename> /
+ <filename>python3-pkg-resources</filename> package as
+ the module is useful independent of the rest of the
+ setuptools package.
+ The main <filename>python-setuptools</filename> /
+ <filename>python3-setuptools</filename> package depends
+ on this new package so you should only need to update
+ dependencies unless you want to take advantage of the
+ increased granularity.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-3.0-cve-checking'>
+ <title>CVE Checking</title>
+
+ <para>
+ <filename>cve-check-tool</filename> has been functionally replaced
+ by a new <filename>cve-update-db</filename> recipe and
+ functionality built into the <filename>cve-check</filename> class.
+ The result uses NVD JSON data feeds rather than the deprecated
+ XML feeds that <filename>cve-check-tool</filename> was using,
+ supports CVSSv3 scoring, and makes other improvements.
+ </para>
+
+ <para>
+ Additionally, the <filename>CVE_CHECK_CVE_WHITELIST</filename>
+ variable has been replaced by
+ <filename>CVE_CHECK_WHITELIST</filename>.
+ </para>
+ </section>
+
+ <section id='migration-3.0-bitbake-changes'>
+ <title>Bitbake Changes</title>
+
+ <para>
+ The following BitBake changes have occurred.
+ <itemizedlist>
+ <listitem><para>
+ <filename>addtask</filename> statements now properly
+ validate dependent tasks.
+ Previously, an invalid task was silently ignored.
+ With this change, the invalid task generates a warning.
+ </para></listitem>
+ <listitem><para>
+ Other invalid <filename>addtask</filename> and
+ <filename>deltask</filename> usages now trigger these
+ warnings: "multiple target tasks arguments with
+ addtask / deltask", and "multiple before/after clauses".
+ </para></listitem>
+ <listitem><para>
+ The "multiconfig" prefix is now shortened to "mc".
+ "multiconfig" will continue to work, however it may be
+ removed in a future release.
+ </para></listitem>
+ <listitem><para>
+ The <filename>bitbake -g</filename> command no longer
+ generates a <filename>recipe-depends.dot</filename> file
+ as the contents (i.e. a reprocessed version of
+ <filename>task-depends.dot</filename>) were confusing.
+ </para></listitem>
+ <listitem><para>
+ The <filename>bb.build.FuncFailed</filename> exception,
+ previously raised by
+ <filename>bb.build.exec_func()</filename> when certain
+ other exceptions have occurred, has been removed.
+ The real underlying exceptions will be raised instead.
+ If you have calls to
+ <filename>bb.build.exec_func()</filename> in custom classes
+ or <filename>tinfoil-using</filename> scripts, any
+ references to <filename>bb.build.FuncFailed</filename>
+ should be cleaned up.
+ </para></listitem>
+ <listitem><para>
+ Additionally, the
+ <filename>bb.build.exec_func()</filename> no longer accepts
+ the "pythonexception" parameter.
+ The function now always raises exceptions.
+ Remove this argument in any calls to
+ <filename>bb.build.exec_func()</filename> in custom classes
+ or scripts.
+ </para></listitem>
+ <listitem><para>
+ The
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-bb-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></ulink>
+ is no longer used.
+ In the unlikely event that you have any references to it,
+ they should be removed.
+ </para></listitem>
+ <listitem><para>
+ The <filename>RunQueueExecuteScenequeue</filename> and
+ <filename>RunQueueExecuteTasks</filename> events have been
+ removed since setscene tasks are now executed as part of
+ the normal runqueue.
+ Any event handling code in custom classes or scripts that
+ handles these two events need to be updated.
+ </para></listitem>
+ <listitem><para>
+ The arguments passed to functions used with
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-bb-BB_HASHCHECK_FUNCTION'><filename>BB_HASHCHECK_FUNCTION</filename></ulink>
+ have changed.
+ If you are using your own custom hash check function, see
+ <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725'></ulink>
+ for details.
+ </para></listitem>
+ <listitem><para>
+ Task specifications in <filename>BB_TASKDEPDATA</filename>
+ and class implementations used in signature generator
+ classes now use "&lt;fn&gt;:&lt;task&gt;" everywhere rather than
+ the "." delimiter that was being used in some places.
+ This change makes it consistent with all areas in the code.
+ Custom signature generator classes and code that reads
+ <filename>BB_TASKDEPDATA</filename> need to be updated to
+ use ':' as a separator rather than '.'.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-3.0-sanity-checks'>
+ <title>Sanity Checks</title>
+
+ <para>
+ The following sanity check changes occurred.
+ <itemizedlist>
+ <listitem><para>
+ <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
+ is now checked for usage of two problematic items:
+ <itemizedlist>
+ <listitem><para>
+ "${PN}" prefix/suffix use - Warnings always appear
+ if ${PN} is used.
+ You must fix the issue regardless of whether
+ multiconfig or anything else that would cause
+ prefixing/suffixing to happen.
+ </para></listitem>
+ <listitem><para>
+ Github archive tarballs - these are not guaranteed
+ to be stable.
+ Consequently, it is likely that the tarballs will
+ be refreshed and thus the SRC_URI checksums
+ will fail to apply.
+ It is recommended that you fetch either an official
+ release tarball or a specific revision from the
+ actual Git repository instead.
+ </para></listitem>
+ </itemizedlist>
+ Either one of these items now trigger a warning by default.
+ If you wish to disable this check, remove
+ <filename>src-uri-bad</filename> from
+ <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link>.
+ </para></listitem>
+ <listitem><para>
+ The <filename>file-rdeps</filename> runtime dependency
+ check no longer expands
+ <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
+ recursively as there is no mechanism to ensure they can be
+ fully computed, and thus races sometimes result in errors
+ either showing up or not.
+ Thus, you might now see errors for missing runtime
+ dependencies that were previously satisfied recursively.
+ Here is an example: package A contains a shell script
+ starting with <filename>#!/bin/bash</filename> but has no
+ dependency on bash.
+ However, package A depends on package B, which does depend
+ on bash.
+ You need to add the missing dependency or dependencies to
+ resolve the warning.
+ </para></listitem>
+ <listitem><para>
+ Setting <filename>DEPENDS_${PN}</filename> anywhere
+ (i.e. typically in a recipe) now triggers an error.
+ The error is triggered because
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ is not a package-specific variable unlike RDEPENDS.
+ You should set <filename>DEPENDS</filename> instead.
+ </para></listitem>
+ <listitem><para>
+ systemd currently does not work well with the musl C
+ library because only upstream officially supports linking
+ the library with glibc.
+ Thus, a warning is shown when building systemd in
+ conjunction with musl.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-3.0-miscellaneous-changes'>
+ <title>Miscellaneous Changes</title>
+
+ <para>
+ The following miscellaneous changes have occurred.
+ <itemizedlist>
+ <listitem><para>
+ The <filename>gnome</filename>
+ class has been removed because it now does very little.
+ You should update recipes that previously inherited this
+ class to do the following:
+ <literallayout class='monospaced'>
+ inherit gnomebase gtk-icon-cache gconf mime
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ The
+ <filename>meta/recipes-kernel/linux/linux-dtb.inc</filename>
+ file has been removed.
+ This file was previously deprecated in favor of setting
+ <link linkend='var-KERNEL_DEVICETREE'><filename>KERNEL_DEVICETREE</filename></link>
+ in any kernel recipe and only produced a warning.
+ Remove any <filename>include</filename> or
+ <filename>require</filename> statements pointing to this
+ file.
+ </para></listitem>
+ <listitem><para>
+ <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>,
+ <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>,
+ <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>,
+ and
+ <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
+ are no longer exported to the external environment.
+ This change did not require any changes to core recipes,
+ which is a good indicator that no changes will be
+ required.
+ However, if for some reason the software being built by one
+ of your recipes is expecting these variables to be set,
+ then building the recipe will fail.
+ In such cases, you must either export the variable or
+ variables in the recipe or change the scripts so that
+ exporting is not necessary.
+ </para></listitem>
+ <listitem><para>
+ You must change the host distro identifier used in
+ <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
+ to use all lowercase characters even if it does not contain
+ a version number.
+ This change is necessary only if you are not using
+ <filename>uninative</filename> and
+ <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>.
+ </para></listitem>
+ <listitem><para>
+ In the <filename>base-files</filename> recipe, writing the
+ hostname into <filename>/etc/hosts</filename> and
+ <filename>/etc/hostname</filename> is now done within the
+ main
+ <link linkend='ref-tasks-install'><filename>do_install</filename></link>
+ function rather than in the
+ <filename>do_install_basefilesissue</filename> function.
+ The reason for the change is because
+ <filename>do_install_basefilesissue</filename> is more
+ easily overridden without having to duplicate the hostname
+ functionality.
+ If you have done the latter (e.g. in a
+ <filename>base-files</filename> bbappend), then you should
+ remove it from your customized
+ <filename>do_install_basefilesissue</filename> function.
+ </para></listitem>
+ <listitem><para>
+ The <filename>wic --expand</filename> command now uses
+ commas to separate "key:value" pairs rather than hyphens.
+ <note>
+ The wic command-line help is not updated.
+ </note>
+ You must update any scripts or commands where you use
+ <filename>wic --expand</filename> with multiple
+ "key:value" pairs.
+ </para></listitem>
+ <listitem><para>
+ UEFI image variable settings have been moved from various
+ places to a central
+ <filename>conf/image-uefi.conf</filename>.
+ This change should not influence any existing configuration
+ as the <filename>meta/conf/image-uefi.conf</filename>
+ in the core metadata sets defaults that can be overridden
+ in the same manner as before.
+ </para></listitem>
+ <listitem><para>
+ <filename>conf/distro/include/world-broken.inc</filename>
+ has been removed.
+ For cases where certain recipes need to be disabled when
+ using the musl C library, these recipes now have
+ <filename>COMPATIBLE_HOST_libc-musl</filename> set with a
+ comment that explains why.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+</section>
+
</chapter>
<!--
vim: expandtab tw=80 ts=4
diff --git a/poky/documentation/ref-manual/ref-classes.xml b/poky/documentation/ref-manual/ref-classes.xml
index 5403f20b6..f9bbddd72 100644
--- a/poky/documentation/ref-manual/ref-classes.xml
+++ b/poky/documentation/ref-manual/ref-classes.xml
@@ -428,6 +428,14 @@
variable to specify additional configuration options to be passed
using the <filename>cmake</filename> command line.
</para>
+
+ <para>
+ On the occasion that you would be installing custom CMake toolchain
+ files supplied by the application being built, you should install them
+ to the preferred CMake Module directory:
+ <filename>${D}${datadir}/cmake/</filename> Modules during
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>.
+ </para>
</section>
<section id='ref-classes-cml1'>
diff --git a/poky/documentation/ref-manual/ref-manual.xml b/poky/documentation/ref-manual/ref-manual.xml
index fc4319773..b442f709a 100644
--- a/poky/documentation/ref-manual/ref-manual.xml
+++ b/poky/documentation/ref-manual/ref-manual.xml
@@ -133,9 +133,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/ref-manual/ref-variables.xml b/poky/documentation/ref-manual/ref-variables.xml
index 8ad3f9b3c..02abc590c 100644
--- a/poky/documentation/ref-manual/ref-variables.xml
+++ b/poky/documentation/ref-manual/ref-variables.xml
@@ -1349,8 +1349,8 @@
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Specifies each additional separate configuration when you are
- building targets with multiple configurations.
+ Specifies each additional separate configuration when you
+ are building targets with multiple configurations.
Use this variable in your
<filename>conf/local.conf</filename> configuration file.
Specify a <replaceable>multiconfigname</replaceable> for
@@ -2182,9 +2182,10 @@
<para>
The <filename>BUSYBOX_SPLIT_SUID</filename> variable
- defaults to "1", which results in a single output
+ defaults to "1", which results in splitting the output
executable file.
- Set the variable to "0" to split the output file.
+ Set the variable to "0" to get a single output executable
+ file.
</para>
</glossdef>
</glossentry>
diff --git a/poky/documentation/sdk-manual/sdk-manual.xml b/poky/documentation/sdk-manual/sdk-manual.xml
index 7edd2c46a..8d5f6ec4d 100644
--- a/poky/documentation/sdk-manual/sdk-manual.xml
+++ b/poky/documentation/sdk-manual/sdk-manual.xml
@@ -67,9 +67,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/toaster-manual/toaster-manual.xml b/poky/documentation/toaster-manual/toaster-manual.xml
index b31659ffb..d7b4bcee6 100644
--- a/poky/documentation/toaster-manual/toaster-manual.xml
+++ b/poky/documentation/toaster-manual/toaster-manual.xml
@@ -77,9 +77,9 @@
<revremark>Released with the Yocto Project 2.7 Release.</revremark>
</revision>
<revision>
- <revnumber>2.8</revnumber>
+ <revnumber>3.0</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>Released with the Yocto Project 2.8 Release.</revremark>
+ <revremark>Released with the Yocto Project 3.0 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/tools/mega-manual.sed b/poky/documentation/tools/mega-manual.sed
index 9c4f4e2ed..374d8e7b0 100644
--- a/poky/documentation/tools/mega-manual.sed
+++ b/poky/documentation/tools/mega-manual.sed
@@ -1,36 +1,36 @@
# Processes bitbake-user-manual (<word>-<word>-<word> style).
# This style is for manual three-word folders, which currently is only the BitBake User Manual.
# We used to have the "yocto-project-qs" and "poky-ref-manual" folders but no longer do.
-# s@"ulink" href="http://www.yoctoproject.org/docs/2.8/[a-z]*-[a-z]*-[a-z]*/[a-z]*-[a-z]*-[a-z]*.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/bitbake-user-manual/bitbake-user-manual.html#@"link" href="#@g
+# s@"ulink" href="http://www.yoctoproject.org/docs/3.0/[a-z]*-[a-z]*-[a-z]*/[a-z]*-[a-z]*-[a-z]*.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/bitbake-user-manual/bitbake-user-manual.html#@"link" href="#@g
# Processes all other manuals (<word>-<word> style).
# This style is for manual folders that use two word, which is the standard now (e.g. "ref-manual").
# Here is the one-liner:
-# s@"ulink" href="http://www.yoctoproject.org/docs/2.8/[a-z]*-[a-z]*/[a-z]*-[a-z]*.html#@"link" href="#@g
+# s@"ulink" href="http://www.yoctoproject.org/docs/3.0/[a-z]*-[a-z]*/[a-z]*-[a-z]*.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/sdk-manual/sdk-manual.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/bsp-guide/bsp-guide.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/dev-manual/dev-manual.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/overview-manual/overview-manual.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/brief-yoctoprojectqs/brief-yoctoprojectqs.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/kernel-dev/kernel-dev.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/profile-manual/profile-manual.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/ref-manual/ref-manual.html#@"link" href="#@g
-s@"ulink" href="http://www.yoctoproject.org/docs/2.8/toaster-manual/toaster-manual.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/sdk-manual/sdk-manual.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/bsp-guide/bsp-guide.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/dev-manual/dev-manual.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/overview-manual/overview-manual.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/brief-yoctoprojectqs/brief-yoctoprojectqs.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/kernel-dev/kernel-dev.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/profile-manual/profile-manual.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/ref-manual/ref-manual.html#@"link" href="#@g
+s@"ulink" href="http://www.yoctoproject.org/docs/3.0/toaster-manual/toaster-manual.html#@"link" href="#@g
# Process cases where just an external manual is referenced without an id anchor
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/brief-yoctoprojectqs/brief-yoctoprojectqs.html" target="_top">Yocto Project Quick Build</a>@Yocto Project Quick Build@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/bitbake-user-manual/bitbake-user-manual.html" target="_top">BitBake User Manual</a>@BitBake User Manual@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/dev-manual/dev-manual.html" target="_top">Yocto Project Development Tasks Manual</a>@Yocto Project Development Tasks Manual@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/overview-manual/overview-manual.html" target="_top">Yocto Project Overview and Concepts Manual</a>@Yocto project Overview and Concepts Manual@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/sdk-manual/sdk-manual.html" target="_top">Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</a>@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/bsp-guide/bsp-guide.html" target="_top">Yocto Project Board Support Package (BSP) Developer's Guide</a>@Yocto Project Board Support Package (BSP) Developer's Guide@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/profile-manual/profile-manual.html" target="_top">Yocto Project Profiling and Tracing Manual</a>@Yocto Project Profiling and Tracing Manual@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/kernel-dev/kernel-dev.html" target="_top">Yocto Project Linux Kernel Development Manual</a>@Yocto Project Linux Kernel Development Manual@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/ref-manual/ref-manual.html" target="_top">Yocto Project Reference Manual</a>@Yocto Project Reference Manual@g
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/toaster-manual/toaster-manual.html" target="_top">Toaster User Manual</a>@Toaster User Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/brief-yoctoprojectqs/brief-yoctoprojectqs.html" target="_top">Yocto Project Quick Build</a>@Yocto Project Quick Build@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/bitbake-user-manual/bitbake-user-manual.html" target="_top">BitBake User Manual</a>@BitBake User Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/dev-manual/dev-manual.html" target="_top">Yocto Project Development Tasks Manual</a>@Yocto Project Development Tasks Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/overview-manual/overview-manual.html" target="_top">Yocto Project Overview and Concepts Manual</a>@Yocto project Overview and Concepts Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/sdk-manual/sdk-manual.html" target="_top">Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</a>@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/bsp-guide/bsp-guide.html" target="_top">Yocto Project Board Support Package (BSP) Developer's Guide</a>@Yocto Project Board Support Package (BSP) Developer's Guide@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/profile-manual/profile-manual.html" target="_top">Yocto Project Profiling and Tracing Manual</a>@Yocto Project Profiling and Tracing Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/kernel-dev/kernel-dev.html" target="_top">Yocto Project Linux Kernel Development Manual</a>@Yocto Project Linux Kernel Development Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/ref-manual/ref-manual.html" target="_top">Yocto Project Reference Manual</a>@Yocto Project Reference Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/toaster-manual/toaster-manual.html" target="_top">Toaster User Manual</a>@Toaster User Manual@g
# Process a single, rouge occurrence of a linked reference to the Mega-Manual.
-s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.8/mega-manual/mega-manual.html" target="_top">Yocto Project Mega-Manual</a>@Yocto Project Mega-Manual@g
+s@<a class="ulink" href="http://www.yoctoproject.org/docs/3.0/mega-manual/mega-manual.html" target="_top">Yocto Project Mega-Manual</a>@Yocto Project Mega-Manual@g
diff --git a/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py b/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py
index d301a19fa..c0abfd1b1 100644
--- a/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py
+++ b/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py
@@ -13,11 +13,6 @@ class VirglTest(OERuntimeTestCase):
@OETestDepends(['virgl.VirglTest.test_kernel_driver'])
def test_kmscube(self):
-
- distro = oe.lsb.distro_identifier()
- if distro and distro == 'centos-7':
- self.skipTest('kmscube is not working when centos 7 is the host OS')
-
status, output = self.target.run('kmscube', timeout=30)
self.assertEqual(status, 0, "kmscube exited with non-zero status %d and output:\n%s" %(status, output))
self.assertIn('renderer: "virgl"', output, "kmscube does not seem to use virgl:\n%s" %(output))
diff --git a/poky/meta-selftest/recipes-test/aspell/aspell_0.60.7.bbappend b/poky/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend
index 205720982..205720982 100644
--- a/poky/meta-selftest/recipes-test/aspell/aspell_0.60.7.bbappend
+++ b/poky/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend
diff --git a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch
new file mode 100644
index 000000000..c4f3f1266
--- /dev/null
+++ b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch
@@ -0,0 +1,37 @@
+commit ced2ec32b657a7f52604b2e16e5d5881041c517a
+Author: OpenEmbedded <oe.patch@oe>
+Date: Mon Nov 18 18:43:15 2019 +0100
+
+ Backport of the NEWS file from version 1.6.0
+
+diff --git a/doc/NEWS b/doc/NEWS
+index 69793fc..fd49b1c 100644
+--- a/doc/NEWS
++++ b/doc/NEWS
+@@ -1,3 +1,26 @@
++1.6.0 - 15 March 2015
++ - fix lstat64 support when unavailable - separate patches supplied by
++ Ganael Laplanche and Peter Korsgaard
++ - (#1506) new option "-D" / "--delay-start" to only show bar after N
++ seconds (Damon Harper)
++ - new option "--fineta" / "-I" to show ETA as time of day rather than time
++ remaining - patch supplied by Erkki Seppälä (r147)
++ - (#1509) change ETA (--eta / -e) so that days are given if the hours
++ remaining are 24 or more (Jacek Wielemborek)
++ - (#1499) repeat read and write attempts on partial buffer fill/empty to
++ work around post-signal transfer rate drop reported by Ralf Ramsauer
++ - (#1507) do not try to calculate total size in line mode, due to bug
++ reported by Jacek Wielemborek and Michiel Van Herwegen
++ - cleanup: removed defunct RATS comments and unnecessary copyright notices
++ - clean up displayed lines when using --watchfd PID, when PID exits
++ - output errors on a new line to avoid overwriting transfer bar
++
++1.5.7 - 26 August 2014
++ - show KiB instead of incorrect kiB (Debian bug #706175)
++ - (#1284) do not gzip man page, for non-Linux OSes (Bob Friesenhahn)
++ - work around "awk" bug in tests/016-numeric-timer in decimal "," locales
++ - fix "make rpm" and "make srpm", extend "make release" to sign releases
++
+ 1.5.3 - 4 May 2014
+ - remove SPLICE_F_NONBLOCK to fix problem with slow splice() (Jan Seda)
+
diff --git a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
index 333ecac7e..fee5bee73 100644
--- a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
+++ b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
@@ -3,7 +3,9 @@ LICENSE = "Artistic-2.0"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \
- file://0001-Add-a-note-line-to-the-quick-reference.patch"
+ file://0001-Add-a-note-line-to-the-quick-reference.patch \
+ file://backported.patch \
+ "
UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
diff --git a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
index 9d94f671d..66e45c7e8 100644
--- a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
+++ b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
@@ -3,7 +3,9 @@ LICENSE = "Artistic-2.0"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \
- file://0001-Add-a-note-line-to-the-quick-reference.patch"
+ file://0001-Add-a-note-line-to-the-quick-reference.patch \
+ file://backported.patch \
+ "
UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
diff --git a/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb b/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
index 7c20d9a68..0cd0494da 100644
--- a/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
+++ b/poky/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
@@ -4,7 +4,7 @@ require recipeutils-test.inc
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://${WORKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e"
-DEPENDS += "virtual/libx11"
+DEPENDS += "zlib"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 093e2d95a..7c46cff91 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -441,9 +441,10 @@ python do_ar_recipe () {
incfile = include_re.match(line).group(1)
if incfile:
incfile = d.expand(incfile)
+ if incfile:
incfile = bb.utils.which(bbpath, incfile)
- if incfile:
- shutil.copy(incfile, outdir)
+ if incfile:
+ shutil.copy(incfile, outdir)
create_tarball(d, outdir, 'recipe', d.getVar('ARCHIVER_OUTDIR'))
bb.utils.remove(outdir, recurse=True)
diff --git a/poky/meta/classes/base.bbclass b/poky/meta/classes/base.bbclass
index d3184ecf7..1cea3a221 100644
--- a/poky/meta/classes/base.bbclass
+++ b/poky/meta/classes/base.bbclass
@@ -482,6 +482,7 @@ python () {
# If we're building a target package we need to use fakeroot (pseudo)
# in order to capture permissions, owners, groups and special files
if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
+ d.appendVarFlag('do_prepare_recipe_sysroot', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
d.setVarFlag('do_unpack', 'umask', '022')
d.setVarFlag('do_configure', 'umask', '022')
d.setVarFlag('do_compile', 'umask', '022')
diff --git a/poky/meta/classes/buildhistory.bbclass b/poky/meta/classes/buildhistory.bbclass
index f986f7c79..affdf272d 100644
--- a/poky/meta/classes/buildhistory.bbclass
+++ b/poky/meta/classes/buildhistory.bbclass
@@ -280,7 +280,7 @@ python buildhistory_emit_pkghistory() {
last_pkgr = lastversion.pkgr
r = bb.utils.vercmp((pkge, pkgv, pkgr), (last_pkge, last_pkgv, last_pkgr))
if r < 0:
- msg = "Package version for package %s went backwards which would break package feeds from (%s:%s-%s to %s:%s-%s)" % (pkg, last_pkge, last_pkgv, last_pkgr, pkge, pkgv, pkgr)
+ msg = "Package version for package %s went backwards which would break package feeds (from %s:%s-%s to %s:%s-%s)" % (pkg, last_pkge, last_pkgv, last_pkgr, pkge, pkgv, pkgr)
package_qa_handle_error("version-going-backwards", msg, d)
pkginfo = PackageInfo(pkg)
diff --git a/poky/meta/classes/cmake.bbclass b/poky/meta/classes/cmake.bbclass
index 2b317c832..291f1e8d4 100644
--- a/poky/meta/classes/cmake.bbclass
+++ b/poky/meta/classes/cmake.bbclass
@@ -106,11 +106,12 @@ set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" )
# only search in the paths provided so cmake doesnt pick
# up libraries and tools from the native build machine
-set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN})
+set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN} ${HOSTTOOLS_DIR})
set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM} )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
+set( CMAKE_PROGRAM_PATH "/" )
# Use qt.conf settings
set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf )
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index c00d2910b..19ed5548b 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -62,7 +62,7 @@ python do_cve_check () {
}
-addtask cve_check after do_unpack before do_build
+addtask cve_check before do_build
do_cve_check[depends] = "cve-update-db-native:do_populate_cve_db"
do_cve_check[nostamp] = "1"
@@ -70,7 +70,6 @@ python cve_check_cleanup () {
"""
Delete the file used to gather all the CVE information.
"""
-
bb.utils.remove(e.data.getVar("CVE_CHECK_TMP_FILE"))
}
@@ -166,7 +165,6 @@ def check_cves(d, patched_cves):
"""
Connect to the NVD database and find unpatched cves.
"""
- import ast, csv, tempfile, subprocess, io
from distutils.version import LooseVersion
cves_unpatched = []
@@ -188,63 +186,74 @@ def check_cves(d, patched_cves):
cve_whitelist = d.getVar("CVE_CHECK_WHITELIST").split()
import sqlite3
- db_file = d.getVar("CVE_CHECK_DB_FILE")
- conn = sqlite3.connect(db_file)
+ db_file = d.expand("file:${CVE_CHECK_DB_FILE}?mode=ro")
+ conn = sqlite3.connect(db_file, uri=True)
+ # For each of the known product names (e.g. curl has CPEs using curl and libcurl)...
for product in products:
- c = conn.cursor()
if ":" in product:
vendor, product = product.split(":", 1)
- c.execute("SELECT * FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR IS ?", (product, vendor))
else:
- c.execute("SELECT * FROM PRODUCTS WHERE PRODUCT IS ?", (product,))
+ vendor = "%"
- for row in c:
- cve = row[0]
- version_start = row[3]
- operator_start = row[4]
- version_end = row[5]
- operator_end = row[6]
+ # Find all relevant CVE IDs.
+ for cverow in conn.execute("SELECT DISTINCT ID FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR LIKE ?", (product, vendor)):
+ cve = cverow[0]
if cve in cve_whitelist:
bb.note("%s-%s has been whitelisted for %s" % (product, pv, cve))
+ # TODO: this should be in the report as 'whitelisted'
+ patched_cves.add(cve)
+ continue
elif cve in patched_cves:
bb.note("%s has been patched" % (cve))
- else:
- to_append = False
+ continue
+
+ vulnerable = False
+ for row in conn.execute("SELECT * FROM PRODUCTS WHERE ID IS ? AND PRODUCT IS ? AND VENDOR LIKE ?", (cve, product, vendor)):
+ (_, _, _, version_start, operator_start, version_end, operator_end) = row
+ #bb.debug(2, "Evaluating row " + str(row))
+
if (operator_start == '=' and pv == version_start):
- cves_unpatched.append(cve)
+ vulnerable = True
else:
if operator_start:
try:
- to_append_start = (operator_start == '>=' and LooseVersion(pv) >= LooseVersion(version_start))
- to_append_start |= (operator_start == '>' and LooseVersion(pv) > LooseVersion(version_start))
+ vulnerable_start = (operator_start == '>=' and LooseVersion(pv) >= LooseVersion(version_start))
+ vulnerable_start |= (operator_start == '>' and LooseVersion(pv) > LooseVersion(version_start))
except:
- bb.note("%s: Failed to compare %s %s %s for %s" %
+ bb.warn("%s: Failed to compare %s %s %s for %s" %
(product, pv, operator_start, version_start, cve))
- to_append_start = False
+ vulnerable_start = False
else:
- to_append_start = False
+ vulnerable_start = False
if operator_end:
try:
- to_append_end = (operator_end == '<=' and LooseVersion(pv) <= LooseVersion(version_end))
- to_append_end |= (operator_end == '<' and LooseVersion(pv) < LooseVersion(version_end))
+ vulnerable_end = (operator_end == '<=' and LooseVersion(pv) <= LooseVersion(version_end))
+ vulnerable_end |= (operator_end == '<' and LooseVersion(pv) < LooseVersion(version_end))
except:
- bb.note("%s: Failed to compare %s %s %s for %s" %
+ bb.warn("%s: Failed to compare %s %s %s for %s" %
(product, pv, operator_end, version_end, cve))
- to_append_end = False
+ vulnerable_end = False
else:
- to_append_end = False
+ vulnerable_end = False
if operator_start and operator_end:
- to_append = to_append_start and to_append_end
+ vulnerable = vulnerable_start and vulnerable_end
else:
- to_append = to_append_start or to_append_end
+ vulnerable = vulnerable_start or vulnerable_end
- if to_append:
+ if vulnerable:
+ bb.note("%s-%s is vulnerable to %s" % (product, pv, cve))
cves_unpatched.append(cve)
- bb.debug(2, "%s-%s is not patched for %s" % (product, pv, cve))
+ break
+
+ if not vulnerable:
+ bb.note("%s-%s is not vulnerable to %s" % (product, pv, cve))
+ # TODO: not patched but not vulnerable
+ patched_cves.add(cve)
+
conn.close()
return (list(patched_cves), cves_unpatched)
@@ -252,31 +261,23 @@ def check_cves(d, patched_cves):
def get_cve_info(d, cves):
"""
Get CVE information from the database.
-
- Unfortunately the only way to get CVE info is set the output to
- html (hard to parse) or query directly the database.
"""
- try:
- import sqlite3
- except ImportError:
- from pysqlite2 import dbapi2 as sqlite3
+ import sqlite3
cve_data = {}
- db_file = d.getVar("CVE_CHECK_DB_FILE")
- placeholder = ",".join("?" * len(cves))
- query = "SELECT * FROM NVD WHERE id IN (%s)" % placeholder
- conn = sqlite3.connect(db_file)
- cur = conn.cursor()
- for row in cur.execute(query, tuple(cves)):
- cve_data[row[0]] = {}
- cve_data[row[0]]["summary"] = row[1]
- cve_data[row[0]]["scorev2"] = row[2]
- cve_data[row[0]]["scorev3"] = row[3]
- cve_data[row[0]]["modified"] = row[4]
- cve_data[row[0]]["vector"] = row[5]
- conn.close()
+ conn = sqlite3.connect(d.getVar("CVE_CHECK_DB_FILE"))
+
+ for cve in cves:
+ for row in conn.execute("SELECT * FROM NVD WHERE ID IS ?", (cve,)):
+ cve_data[row[0]] = {}
+ cve_data[row[0]]["summary"] = row[1]
+ cve_data[row[0]]["scorev2"] = row[2]
+ cve_data[row[0]]["scorev3"] = row[3]
+ cve_data[row[0]]["modified"] = row[4]
+ cve_data[row[0]]["vector"] = row[5]
+ conn.close()
return cve_data
def cve_write_data(d, patched, unpatched, cve_data):
diff --git a/poky/meta/classes/devtool-source.bbclass b/poky/meta/classes/devtool-source.bbclass
index a8110006f..280d6009f 100644
--- a/poky/meta/classes/devtool-source.bbclass
+++ b/poky/meta/classes/devtool-source.bbclass
@@ -97,17 +97,15 @@ python devtool_post_unpack() {
local_files = oe.recipeutils.get_recipe_local_files(d)
if is_kernel_yocto:
- for key in local_files.copy():
- if key.endswith('scc'):
- sccfile = open(local_files[key], 'r')
+ for key in [f for f in local_files if f.endswith('scc')]:
+ with open(local_files[key], 'r') as sccfile:
for l in sccfile:
line = l.split()
if line and line[0] in ('kconf', 'patch'):
cfg = os.path.join(os.path.dirname(local_files[key]), line[-1])
- if not cfg in local_files.values():
+ if cfg not in local_files.values():
local_files[line[-1]] = cfg
shutil.copy2(cfg, workdir)
- sccfile.close()
# Ignore local files with subdir={BP}
srcabspath = os.path.abspath(srcsubdir)
diff --git a/poky/meta/classes/distro_features_check.bbclass b/poky/meta/classes/distro_features_check.bbclass
index eeaa3b44c..8124a8ca2 100644
--- a/poky/meta/classes/distro_features_check.bbclass
+++ b/poky/meta/classes/distro_features_check.bbclass
@@ -1,32 +1,7 @@
-# Allow checking of required and conflicting DISTRO_FEATURES
-#
-# ANY_OF_DISTRO_FEATURES: ensure at least one item on this list is included
-# in DISTRO_FEATURES.
-# REQUIRED_DISTRO_FEATURES: ensure every item on this list is included
-# in DISTRO_FEATURES.
-# CONFLICT_DISTRO_FEATURES: ensure no item in this list is included in
-# DISTRO_FEATURES.
-#
-# Copyright 2013 (C) O.S. Systems Software LTDA.
+# Temporarily provide fallback to the old name of the class
-python () {
- # Assume at least one var is set.
- distro_features = set((d.getVar('DISTRO_FEATURES') or '').split())
-
- any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split())
- if any_of_distro_features:
- if set.isdisjoint(any_of_distro_features, distro_features):
- raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features))
-
- required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split())
- if required_distro_features:
- missing = set.difference(required_distro_features, distro_features)
- if missing:
- raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
-
- conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split())
- if conflict_distro_features:
- conflicts = set.intersection(conflict_distro_features, distro_features)
- if conflicts:
- raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
+python __anonymous() {
+ bb.warn("distro_features_check.bbclass is deprecated, please use features_check.bbclass instead")
}
+
+inherit features_check
diff --git a/poky/meta/classes/features_check.bbclass b/poky/meta/classes/features_check.bbclass
new file mode 100644
index 000000000..391fbe1c9
--- /dev/null
+++ b/poky/meta/classes/features_check.bbclass
@@ -0,0 +1,85 @@
+# Allow checking of required and conflicting DISTRO_FEATURES
+#
+# ANY_OF_DISTRO_FEATURES: ensure at least one item on this list is included
+# in DISTRO_FEATURES.
+# REQUIRED_DISTRO_FEATURES: ensure every item on this list is included
+# in DISTRO_FEATURES.
+# CONFLICT_DISTRO_FEATURES: ensure no item in this list is included in
+# DISTRO_FEATURES.
+# ANY_OF_MACHINE_FEATURES: ensure at least one item on this list is included
+# in MACHINE_FEATURES.
+# REQUIRED_MACHINE_FEATURES: ensure every item on this list is included
+# in MACHINE_FEATURES.
+# CONFLICT_MACHINE_FEATURES: ensure no item in this list is included in
+# MACHINE_FEATURES.
+# ANY_OF_COMBINED_FEATURES: ensure at least one item on this list is included
+# in COMBINED_FEATURES.
+# REQUIRED_COMBINED_FEATURES: ensure every item on this list is included
+# in COMBINED_FEATURES.
+# CONFLICT_COMBINED_FEATURES: ensure no item in this list is included in
+# COMBINED_FEATURES.
+#
+# Copyright 2019 (C) Texas Instruments Inc.
+# Copyright 2013 (C) O.S. Systems Software LTDA.
+
+python () {
+ # Assume at least one var is set.
+ distro_features = set((d.getVar('DISTRO_FEATURES') or '').split())
+
+ any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split())
+ if any_of_distro_features:
+ if set.isdisjoint(any_of_distro_features, distro_features):
+ raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features))
+
+ required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split())
+ if required_distro_features:
+ missing = set.difference(required_distro_features, distro_features)
+ if missing:
+ raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
+
+ conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split())
+ if conflict_distro_features:
+ conflicts = set.intersection(conflict_distro_features, distro_features)
+ if conflicts:
+ raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
+
+ # Assume at least one var is set.
+ machine_features = set((d.getVar('MACHINE_FEATURES') or '').split())
+
+ any_of_machine_features = set((d.getVar('ANY_OF_MACHINE_FEATURES') or '').split())
+ if any_of_machine_features:
+ if set.isdisjoint(any_of_machine_features, machine_features):
+ raise bb.parse.SkipRecipe("one of '%s' needs to be in MACHINE_FEATURES" % ' '.join(any_of_machine_features))
+
+ required_machine_features = set((d.getVar('REQUIRED_MACHINE_FEATURES') or '').split())
+ if required_machine_features:
+ missing = set.difference(required_machine_features, machine_features)
+ if missing:
+ raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in MACHINE_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
+
+ conflict_machine_features = set((d.getVar('CONFLICT_MACHINE_FEATURES') or '').split())
+ if conflict_machine_features:
+ conflicts = set.intersection(conflict_machine_features, machine_features)
+ if conflicts:
+ raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in MACHINE_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
+
+ # Assume at least one var is set.
+ combined_features = set((d.getVar('COMBINED_FEATURES') or '').split())
+
+ any_of_combined_features = set((d.getVar('ANY_OF_COMBINED_FEATURES') or '').split())
+ if any_of_combined_features:
+ if set.isdisjoint(any_of_combined_features, combined_features):
+ raise bb.parse.SkipRecipe("one of '%s' needs to be in COMBINED_FEATURES" % ' '.join(any_of_combined_features))
+
+ required_combined_features = set((d.getVar('REQUIRED_COMBINED_FEATURES') or '').split())
+ if required_combined_features:
+ missing = set.difference(required_combined_features, combined_features)
+ if missing:
+ raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in COMBINED_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
+
+ conflict_combined_features = set((d.getVar('CONFLICT_COMBINED_FEATURES') or '').split())
+ if conflict_combined_features:
+ conflicts = set.intersection(conflict_combined_features, combined_features)
+ if conflicts:
+ raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in COMBINED_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
+}
diff --git a/poky/meta/classes/icecc.bbclass b/poky/meta/classes/icecc.bbclass
index 4376aa37d..bc3d6f4cc 100644
--- a/poky/meta/classes/icecc.bbclass
+++ b/poky/meta/classes/icecc.bbclass
@@ -356,17 +356,6 @@ set_icecc_env() {
return
fi
- # Create symlinks to icecc in the recipe-sysroot directory
- mkdir -p ${ICE_PATH}
- if [ -n "${KERNEL_CC}" ]; then
- compilers="${@get_cross_kernel_cc(bb,d)}"
- else
- compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++"
- fi
- for compiler in $compilers; do
- ln -sf ${ICECC_BIN} ${ICE_PATH}/$compiler
- done
-
ICECC_CC="${@icecc_get_and_check_tool(bb, d, "gcc")}"
ICECC_CXX="${@icecc_get_and_check_tool(bb, d, "g++")}"
# cannot use icecc_get_and_check_tool here because it assumes as without target_sys prefix
@@ -385,6 +374,26 @@ set_icecc_env() {
return
fi
+ # Create symlinks to icecc and wrapper-scripts in the recipe-sysroot directory
+ mkdir -p $ICE_PATH/symlinks
+ if [ -n "${KERNEL_CC}" ]; then
+ compilers="${@get_cross_kernel_cc(bb,d)}"
+ else
+ compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++"
+ fi
+ for compiler in $compilers; do
+ ln -sf $ICECC_BIN $ICE_PATH/symlinks/$compiler
+ rm -f $ICE_PATH/$compiler
+ cat <<-__EOF__ > $ICE_PATH/$compiler
+ #!/bin/sh -e
+ export ICECC_VERSION=$ICECC_VERSION
+ export ICECC_CC=$ICECC_CC
+ export ICECC_CXX=$ICECC_CXX
+ $ICE_PATH/symlinks/$compiler "\$@"
+ __EOF__
+ chmod 775 $ICE_PATH/$compiler
+ done
+
ICECC_AS="`${ICECC_CC} -print-prog-name=as`"
# for target recipes should return something like:
# /OE/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm920tt-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.8.2/as
@@ -417,7 +426,6 @@ set_icecc_env() {
export CCACHE_PATH="$PATH"
export CCACHE_DISABLE="1"
- export ICECC_VERSION ICECC_CC ICECC_CXX
export PATH="$ICE_PATH:$PATH"
bbnote "Using icecc path: $ICE_PATH"
diff --git a/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass
index f4633da3d..c2824395c 100644
--- a/poky/meta/classes/image.bbclass
+++ b/poky/meta/classes/image.bbclass
@@ -124,7 +124,7 @@ python () {
def rootfs_variables(d):
from oe.rootfs import variable_depends
variables = ['IMAGE_DEVICE_TABLE','IMAGE_DEVICE_TABLES','BUILD_IMAGES_FROM_FEEDS','IMAGE_TYPES_MASKED','IMAGE_ROOTFS_ALIGNMENT','IMAGE_OVERHEAD_FACTOR','IMAGE_ROOTFS_SIZE','IMAGE_ROOTFS_EXTRA_SPACE',
- 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
+ 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS', 'IMAGE_LINGUAS_COMPLEMENTARY',
'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS', 'IMAGE_INSTALL_DEBUGFS']
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 9605ac2ba..f856cf6a2 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -340,9 +340,11 @@ def package_qa_textrel(path, name, d, elf, messages):
for line in phdrs.split("\n"):
if textrel_re.match(line):
sane = False
+ break
if not sane:
- package_qa_add_message(messages, "textrel", "ELF binary '%s' has relocations in .text" % path)
+ path = package_qa_clean_path(path, d, name)
+ package_qa_add_message(messages, "textrel", "%s: ELF binary %s has relocations in .text" % (name, path))
QAPATHTEST[ldflags] = "package_qa_hash_style"
def package_qa_hash_style(path, name, d, elf, messages):
diff --git a/poky/meta/classes/kernel-devicetree.bbclass b/poky/meta/classes/kernel-devicetree.bbclass
index 8a81c850f..522c46575 100644
--- a/poky/meta/classes/kernel-devicetree.bbclass
+++ b/poky/meta/classes/kernel-devicetree.bbclass
@@ -71,23 +71,23 @@ do_deploy_append() {
dtb=`normalize_dtb "$dtbf"`
dtb_ext=${dtb##*.}
dtb_base_name=`basename $dtb .$dtb_ext`
- install -d ${DEPLOYDIR}
- install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
- ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name.$dtb_ext
- ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
+ install -d $deployDir
+ install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
+ ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name.$dtb_ext
+ ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
cat ${D}/${KERNEL_IMAGEDEST}/$type \
- ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
- > ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
+ $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
+ > $deployDir/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
- ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+ $deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
cat ${KERNEL_OUTPUT_DIR}/${type}.initramfs \
- ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
- > ${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
+ $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
+ > $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
- ${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+ $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
fi
fi
done
diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass
index 1bcb09c59..ec18a3d69 100644
--- a/poky/meta/classes/kernel-fitimage.bbclass
+++ b/poky/meta/classes/kernel-fitimage.bbclass
@@ -53,6 +53,9 @@ UBOOT_MKIMAGE_DTCOPTS ??= ""
# fitImage Hash Algo
FIT_HASH_ALG ?= "sha256"
+# fitImage Signature Algo
+FIT_SIGN_ALG ?= "rsa2048"
+
#
# Emit the fitImage ITS header
#
@@ -246,6 +249,7 @@ EOF
fitimage_emit_section_config() {
conf_csum="${FIT_HASH_ALG}"
+ conf_sign_algo="${FIT_SIGN_ALG}"
if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then
conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
fi
@@ -327,7 +331,7 @@ EOF
cat << EOF >> ${1}
signature@1 {
- algo = "${conf_csum},rsa2048";
+ algo = "${conf_csum},${conf_sign_algo}";
key-name-hint = "${conf_sign_keyname}";
${sign_line}
};
@@ -500,27 +504,27 @@ kernel_do_deploy_append() {
# Update deploy directory
if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
echo "Copying fit-image.its source file..."
- install -m 0644 ${B}/fit-image.its ${DEPLOYDIR}/fitImage-its-${KERNEL_FIT_NAME}.its
- ln -snf fitImage-its-${KERNEL_FIT_NAME}.its ${DEPLOYDIR}/fitImage-its-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/fit-image.its "$deployDir/fitImage-its-${KERNEL_FIT_NAME}.its"
+ ln -snf fitImage-its-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${KERNEL_FIT_LINK_NAME}"
echo "Copying linux.bin file..."
- install -m 0644 ${B}/linux.bin ${DEPLOYDIR}/fitImage-linux.bin-${KERNEL_FIT_NAME}.bin
- ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}.bin ${DEPLOYDIR}/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/linux.bin $deployDir/fitImage-linux.bin-${KERNEL_FIT_NAME}.bin
+ ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}"
if [ -n "${INITRAMFS_IMAGE}" ]; then
echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..."
- install -m 0644 ${B}/fit-image-${INITRAMFS_IMAGE}.its ${DEPLOYDIR}/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its
- ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its ${DEPLOYDIR}/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/fit-image-${INITRAMFS_IMAGE}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its"
+ ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
echo "Copying fitImage-${INITRAMFS_IMAGE} file..."
- install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} ${DEPLOYDIR}/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin
- ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin ${DEPLOYDIR}/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin"
+ ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
fi
if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ] ; then
# UBOOT_DTB_IMAGE is a realfile, but we can't use
# ${UBOOT_DTB_IMAGE} since it contains ${PV} which is aimed
# for u-boot, but we are in kernel env now.
- install -m 0644 ${B}/u-boot-${MACHINE}*.dtb ${DEPLOYDIR}/
+ install -m 0644 ${B}/u-boot-${MACHINE}*.dtb "$deployDir/"
fi
fi
}
diff --git a/poky/meta/classes/libc-package.bbclass b/poky/meta/classes/libc-package.bbclass
index a66e54088..de816bcec 100644
--- a/poky/meta/classes/libc-package.bbclass
+++ b/poky/meta/classes/libc-package.bbclass
@@ -346,14 +346,13 @@ python package_do_split_gconvs () {
if use_bin == "compile":
makefile = oe.path.join(d.getVar("WORKDIR"), "locale-tree", "Makefile")
- m = open(makefile, "w")
- m.write("all: %s\n\n" % " ".join(commands.keys()))
- total = len(commands)
- for i, cmd in enumerate(commands):
- m.write(cmd + ":\n")
- m.write("\t@echo 'Progress %d/%d'\n" % (i, total))
- m.write("\t" + commands[cmd] + "\n\n")
- m.close()
+ with open(makefile, "w") as m:
+ m.write("all: %s\n\n" % " ".join(commands.keys()))
+ total = len(commands)
+ for i, (maketarget, makerecipe) in enumerate(commands.items()):
+ m.write(maketarget + ":\n")
+ m.write("\t@echo 'Progress %d/%d'\n" % (i, total))
+ m.write("\t" + makerecipe + "\n\n")
d.setVar("EXTRA_OEMAKE", "-C %s ${PARALLEL_MAKE}" % (os.path.dirname(makefile)))
d.setVarFlag("oe_runmake", "progress", "outof:Progress\s(\d+)/(\d+)")
bb.note("Executing binary locale generation makefile")
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index d8bef3afb..e0d6ff670 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -826,8 +826,9 @@ python fixup_perms () {
# Now we actually load from the configuration files
for conf in get_fs_perms_list(d).split():
- if os.path.exists(conf):
- f = open(conf)
+ if not os.path.exists(conf):
+ continue
+ with open(conf) as f:
for line in f:
if line.startswith('#'):
continue
@@ -848,7 +849,6 @@ python fixup_perms () {
fs_perms_table[entry.path] = entry
if entry.path in fs_link_table:
fs_link_table.pop(entry.path)
- f.close()
# Debug -- list out in-memory table
#for dir in fs_perms_table:
@@ -1424,10 +1424,9 @@ fi
pkgdest = d.getVar('PKGDEST')
pkgdatadir = d.getVar('PKGDESTWORK')
- data_file = pkgdatadir + d.expand("/${PN}" )
- f = open(data_file, 'w')
- f.write("PACKAGES: %s\n" % packages)
- f.close()
+ data_file = pkgdatadir + d.expand("/${PN}")
+ with open(data_file, 'w') as fd:
+ fd.write("PACKAGES: %s\n" % packages)
pn = d.getVar('PN')
global_variants = (d.getVar('MULTILIB_GLOBAL_VARIANTS') or "").split()
@@ -1732,8 +1731,6 @@ python package_do_shlibs() {
else:
snap_symlinks = False
- use_ldconfig = bb.utils.contains('DISTRO_FEATURES', 'ldconfig', True, False, d)
-
needed = {}
shlib_provider = oe.package.read_shlib_providers(d)
@@ -1778,22 +1775,21 @@ python package_do_shlibs() {
bb.note("Renaming %s to %s" % (old, new))
os.rename(old, new)
pkgfiles[pkg].remove(old)
-
+
shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
if len(sonames):
- fd = open(shlibs_file, 'w')
- for s in sonames:
- if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]:
- (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]]
- if old_pkg != pkg:
- bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver))
- bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0]))
- fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n')
- if s[0] not in shlib_provider:
- shlib_provider[s[0]] = {}
- shlib_provider[s[0]][s[1]] = (pkg, pkgver)
- fd.close()
- if needs_ldconfig and use_ldconfig:
+ with open(shlibs_file, 'w') as fd:
+ for s in sonames:
+ if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]:
+ (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]]
+ if old_pkg != pkg:
+ bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver))
+ bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0]))
+ fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n')
+ if s[0] not in shlib_provider:
+ shlib_provider[s[0]] = {}
+ shlib_provider[s[0]][s[1]] = (pkg, pkgver)
+ if needs_ldconfig:
bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg)
postinst = d.getVar('pkg_postinst_%s' % pkg)
if not postinst:
@@ -1864,11 +1860,10 @@ python package_do_shlibs() {
deps_file = os.path.join(pkgdest, pkg + ".shlibdeps")
if os.path.exists(deps_file):
os.remove(deps_file)
- if len(deps):
- fd = open(deps_file, 'w')
- for dep in sorted(deps):
- fd.write(dep + '\n')
- fd.close()
+ if deps:
+ with open(deps_file, 'w') as fd:
+ for dep in sorted(deps):
+ fd.write(dep + '\n')
}
python package_do_pkgconfig () {
@@ -1898,9 +1893,8 @@ python package_do_pkgconfig () {
pkgconfig_provided[pkg].append(name)
if not os.access(file, os.R_OK):
continue
- f = open(file, 'r')
- lines = f.readlines()
- f.close()
+ with open(file, 'r') as f:
+ lines = f.readlines()
for l in lines:
m = var_re.match(l)
if m:
@@ -1918,10 +1912,9 @@ python package_do_pkgconfig () {
for pkg in packages.split():
pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
if pkgconfig_provided[pkg] != []:
- f = open(pkgs_file, 'w')
- for p in pkgconfig_provided[pkg]:
- f.write('%s\n' % p)
- f.close()
+ with open(pkgs_file, 'w') as f:
+ for p in pkgconfig_provided[pkg]:
+ f.write('%s\n' % p)
# Go from least to most specific since the last one found wins
for dir in reversed(shlibs_dirs):
@@ -1931,9 +1924,8 @@ python package_do_pkgconfig () {
m = re.match(r'^(.*)\.pclist$', file)
if m:
pkg = m.group(1)
- fd = open(os.path.join(dir, file))
- lines = fd.readlines()
- fd.close()
+ with open(os.path.join(dir, file)) as fd:
+ lines = fd.readlines()
pkgconfig_provided[pkg] = []
for l in lines:
pkgconfig_provided[pkg].append(l.rstrip())
@@ -1951,10 +1943,9 @@ python package_do_pkgconfig () {
bb.note("couldn't find pkgconfig module '%s' in any package" % n)
deps_file = os.path.join(pkgdest, pkg + ".pcdeps")
if len(deps):
- fd = open(deps_file, 'w')
- for dep in deps:
- fd.write(dep + '\n')
- fd.close()
+ with open(deps_file, 'w') as fd:
+ for dep in deps:
+ fd.write(dep + '\n')
}
def read_libdep_files(d):
@@ -1965,9 +1956,8 @@ def read_libdep_files(d):
for extension in ".shlibdeps", ".pcdeps", ".clilibdeps":
depsfile = d.expand("${PKGDEST}/" + pkg + extension)
if os.access(depsfile, os.R_OK):
- fd = open(depsfile)
- lines = fd.readlines()
- fd.close()
+ with open(depsfile) as fd:
+ lines = fd.readlines()
for l in lines:
l.rstrip()
deps = bb.utils.explode_dep_versions2(l)
diff --git a/poky/meta/classes/package_ipk.bbclass b/poky/meta/classes/package_ipk.bbclass
index 9f9da2f91..4f2397703 100644
--- a/poky/meta/classes/package_ipk.bbclass
+++ b/poky/meta/classes/package_ipk.bbclass
@@ -154,7 +154,6 @@ def ipk_write_pkg(pkg, d):
ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' '))
else:
ctrlfile.write(c % tuple(pullData(fs, localdata)))
- # more fields
custom_fields_chunk = get_package_additional_metadata("ipk", localdata)
if custom_fields_chunk is not None:
diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass
index 9fda1c9e7..05cfc1cc1 100644
--- a/poky/meta/classes/populate_sdk_ext.bbclass
+++ b/poky/meta/classes/populate_sdk_ext.bbclass
@@ -21,6 +21,7 @@ SDK_EXT_TYPE ?= "full"
SDK_INCLUDE_PKGDATA ?= "0"
SDK_INCLUDE_TOOLCHAIN ?= "${@'1' if d.getVar('SDK_EXT_TYPE') == 'full' else '0'}"
SDK_INCLUDE_NATIVESDK ?= "0"
+SDK_INCLUDE_BUILDTOOLS ?= '1'
SDK_RECRDEP_TASKS ?= ""
@@ -94,6 +95,7 @@ python write_target_sdk_ext_manifest () {
real_target_multimach = d.getVar('REAL_MULTIMACH_TARGET_SYS')
pkgs = {}
+ os.makedirs(os.path.dirname(d.getVar('SDK_EXT_TARGET_MANIFEST')), exist_ok=True)
with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f:
for fn in extra_info['filesizes']:
info = fn.split(':')
@@ -535,8 +537,12 @@ def get_sdk_required_utilities(buildtools_fn, d):
sanity_required_utilities = (d.getVar('SANITY_REQUIRED_UTILITIES') or '').split()
sanity_required_utilities.append(d.expand('${BUILD_PREFIX}gcc'))
sanity_required_utilities.append(d.expand('${BUILD_PREFIX}g++'))
- buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY'), buildtools_fn)
- filelist, _ = bb.process.run('%s -l' % buildtools_installer)
+ if buildtools_fn:
+ buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY'), buildtools_fn)
+ filelist, _ = bb.process.run('%s -l' % buildtools_installer)
+ else:
+ buildtools_installer = None
+ filelist = ""
localdata = bb.data.createCopy(d)
localdata.setVar('SDKPATH', '.')
sdkpathnative = localdata.getVar('SDKPATHNATIVE')
@@ -579,7 +585,9 @@ install_tools() {
touch ${SDK_OUTPUT}/${SDKPATH}/.devtoolbase
# find latest buildtools-tarball and install it
- install ${SDK_DEPLOY}/${SDK_BUILDTOOLS_INSTALLER} ${SDK_OUTPUT}/${SDKPATH}
+ if [ -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then
+ install ${SDK_DEPLOY}/${SDK_BUILDTOOLS_INSTALLER} ${SDK_OUTPUT}/${SDKPATH}
+ fi
install -m 0644 ${COREBASE}/meta/files/ext-sdk-prepare.py ${SDK_OUTPUT}/${SDKPATH}
}
@@ -629,16 +637,18 @@ sdk_ext_postinst() {
printf "\nExtracting buildtools...\n"
cd $target_sdk_dir
env_setup_script="$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}"
- printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
+ if [ -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then
+ printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
- # Delete the buildtools tar file since it won't be used again
- rm -f ./${SDK_BUILDTOOLS_INSTALLER}
- # We don't need the log either since it succeeded
- rm -f buildtools.log
+ # Delete the buildtools tar file since it won't be used again
+ rm -f ./${SDK_BUILDTOOLS_INSTALLER}
+ # We don't need the log either since it succeeded
+ rm -f buildtools.log
- # Make sure when the user sets up the environment, they also get
- # the buildtools-tarball tools in their path.
- echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script
+ # Make sure when the user sets up the environment, they also get
+ # the buildtools-tarball tools in their path.
+ echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script
+ fi
# Allow bitbake environment setup to be ran as part of this sdk.
echo "export OE_SKIP_SDK_CHECK=1" >> $env_setup_script
@@ -654,7 +664,7 @@ sdk_ext_postinst() {
# Warn if trying to use external bitbake and the ext SDK together
echo "(which bitbake > /dev/null 2>&1 && echo 'WARNING: attempting to use the extensible SDK in an environment set up to run bitbake - this may lead to unexpected results. Please source this script in a new shell session instead.') || true" >> $env_setup_script
- if [ "$prepare_buildsystem" != "no" ]; then
+ if [ "$prepare_buildsystem" != "no" -a -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then
printf "Preparing build system...\n"
# dash which is /bin/sh on Ubuntu will not preserve the
# current working directory when first ran, nor will it set $1 when
@@ -680,7 +690,10 @@ fakeroot python do_populate_sdk_ext() {
bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH'), d.getVar('BUILD_ARCH')))
d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d))
- buildtools_fn = get_current_buildtools(d)
+ if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1':
+ buildtools_fn = get_current_buildtools(d)
+ else:
+ buildtools_fn = None
d.setVar('SDK_REQUIRED_UTILITIES', get_sdk_required_utilities(buildtools_fn, d))
d.setVar('SDK_BUILDTOOLS_INSTALLER', buildtools_fn)
d.setVar('SDKDEPLOYDIR', '${SDKEXTDEPLOYDIR}')
@@ -731,7 +744,7 @@ def get_sdk_ext_rdepends(d):
do_populate_sdk_ext[dirs] = "${@d.getVarFlag('do_populate_sdk', 'dirs', False)}"
do_populate_sdk_ext[depends] = "${@d.getVarFlag('do_populate_sdk', 'depends', False)} \
- buildtools-tarball:do_populate_sdk \
+ ${@'buildtools-tarball:do_populate_sdk' if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1' else ''} \
${@'meta-world-pkgdata:do_collect_packagedata' if d.getVar('SDK_INCLUDE_PKGDATA') == '1' else ''} \
${@'meta-extsdk-toolchain:do_locked_sigs' if d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1' else ''}"
diff --git a/poky/meta/classes/report-error.bbclass b/poky/meta/classes/report-error.bbclass
index ea043b23e..1a12db120 100644
--- a/poky/meta/classes/report-error.bbclass
+++ b/poky/meta/classes/report-error.bbclass
@@ -78,19 +78,15 @@ python errorreport_handler () {
taskdata['task'] = task
if log:
try:
- logFile = codecs.open(log, 'r', 'utf-8')
- logdata = logFile.read()
-
+ with codecs.open(log, encoding='utf-8') as logFile:
+ logdata = logFile.read()
# Replace host-specific paths so the logs are cleaner
for d in ("TOPDIR", "TMPDIR"):
s = e.data.getVar(d)
if s:
logdata = logdata.replace(s, d)
-
- logFile.close()
except:
logdata = "Unable to read log file"
-
else:
logdata = "No Log"
diff --git a/poky/meta/classes/rm_work.bbclass b/poky/meta/classes/rm_work.bbclass
index a6bd3f719..01c2ab1c7 100644
--- a/poky/meta/classes/rm_work.bbclass
+++ b/poky/meta/classes/rm_work.bbclass
@@ -47,30 +47,26 @@ do_rm_work () {
cd `dirname ${STAMP}`
for i in `basename ${STAMP}`*
do
- # By default we'll delete the stamp, unless $i is changed by the inner loop
- # (i=dummy does this)
-
case $i in
*sigdata*|*sigbasedata*)
# Save/skip anything that looks like a signature data file.
- i=dummy
;;
- *do_image_complete_setscene*)
- # Ensure we don't 'stack' setscene extensions to this stamp with the section below
- i=dummy
+ *do_image_complete_setscene*|*do_image_qa_setscene*)
+ # Ensure we don't 'stack' setscene extensions to these stamps with the sections below
;;
*do_image_complete*)
# Promote do_image_complete stamps to setscene versions (ahead of *do_image* below)
mv $i `echo $i | sed -e "s#do_image_complete#do_image_complete_setscene#"`
- i=dummy
+ ;;
+ *do_image_qa*)
+ # Promote do_image_qa stamps to setscene versions (ahead of *do_image* below)
+ mv $i `echo $i | sed -e "s#do_image_qa#do_image_qa_setscene#"`
;;
*do_package_write*|*do_rootfs*|*do_image*|*do_bootimg*|*do_write_qemuboot_conf*|*do_build*)
- i=dummy
;;
*do_addto_recipe_sysroot*)
# Preserve recipe-sysroot-native if do_addto_recipe_sysroot has been used
excludes="$excludes recipe-sysroot-native"
- i=dummy
;;
*do_package|*do_package.*|*do_package_setscene.*)
# We remove do_package entirely, including any
@@ -78,30 +74,24 @@ do_rm_work () {
# such as 'packages' and 'packages-split' and these can be large. No end
# of chain tasks depend directly on do_package anymore.
rm -f $i;
- i=dummy
;;
*_setscene*)
# Skip stamps which are already setscene versions
- i=dummy
;;
+ *)
+ # For everything else: if suitable, promote the stamp to a setscene
+ # version, otherwise remove it
+ for j in ${SSTATETASKS} do_shared_workdir
+ do
+ case $i in
+ *$j|*$j.*)
+ mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"`
+ break
+ ;;
+ esac
+ done
+ rm -f $i
esac
-
- for j in ${SSTATETASKS} do_shared_workdir
- do
- case $i in
- dummy)
- break
- ;;
- *$j|*$j.*)
- # Promote the stamp to a setscene version
- mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"`
- i=dummy
- break
- ;;
- esac
- done
-
- rm -f $i
done
cd ${WORKDIR}
diff --git a/poky/meta/classes/sanity.bbclass b/poky/meta/classes/sanity.bbclass
index 2d3f49eb1..63ab6cf3d 100644
--- a/poky/meta/classes/sanity.bbclass
+++ b/poky/meta/classes/sanity.bbclass
@@ -523,6 +523,7 @@ def check_wsl(d):
# Tar version 1.24 and onwards handle overwriting symlinks correctly
# but earlier versions do not; this needs to work properly for sstate
+# Version 1.28 is needed so opkg-build works correctly when reproducibile builds are enabled
def check_tar_version(sanity_data):
from distutils.version import LooseVersion
import subprocess
@@ -532,7 +533,9 @@ def check_tar_version(sanity_data):
return "Unable to execute tar --version, exit code %d\n%s\n" % (e.returncode, e.output)
version = result.split()[3]
if LooseVersion(version) < LooseVersion("1.24"):
- return "Your version of tar is older than 1.24 and has bugs which will break builds. Please install a newer version of tar.\n"
+ return "Your version of tar is older than 1.24 and has bugs which will break builds. Please install a newer version of tar (1.28+).\n"
+ if LooseVersion(version) < LooseVersion("1.28"):
+ return "Your version of tar is older than 1.28 and does not have the support needed to enable reproducible builds. Please install a newer version of tar (you could use the projects buildtools-tarball from our last release).\n"
return None
# We use git parameters and functionality only found in 1.7.8 or later
@@ -622,13 +625,14 @@ def check_sanity_version_change(status, d):
# In other words, these tests run once in a given build directory and then
# never again until the sanity version or host distrubution id/version changes.
- # Check the python install is complete. glib-2.0-natives requries
- # xml.parsers.expat
+ # Check the python install is complete. Examples that are often removed in
+ # minimal installations: glib-2.0-natives requries # xml.parsers.expat and icu
+ # requires distutils.sysconfig.
try:
import xml.parsers.expat
- except ImportError:
- status.addresult('Your python is not a full install. Please install the module xml.parsers.expat (python-xml on openSUSE and SUSE Linux).\n')
- import stat
+ import distutils.sysconfig
+ except ImportError as e:
+ status.addresult('Your Python 3 is not a full install. Please install the module %s (see the Getting Started guide for further information).\n' % e.name)
status.addresult(check_make_version(d))
status.addresult(check_patch_version(d))
@@ -664,6 +668,7 @@ def check_sanity_version_change(status, d):
status.addresult('Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf\n')
# Check that TMPDIR isn't on a filesystem with limited filename length (eg. eCryptFS)
+ import stat
tmpdir = d.getVar('TMPDIR')
status.addresult(check_create_long_filename(tmpdir, "TMPDIR"))
tmpdirmode = os.stat(tmpdir).st_mode
@@ -798,6 +803,11 @@ def check_sanity_everybuild(status, d):
elif d.getVar('SDK_ARCH', False) == "${BUILD_ARCH}":
status.addresult('SDKMACHINE is set, but SDK_ARCH has not been changed as a result - SDKMACHINE may have been set too late (e.g. in the distro configuration)\n')
+ # If SDK_VENDOR looks like "-my-sdk" then the triples are badly formed so fail early
+ sdkvendor = d.getVar("SDK_VENDOR")
+ if not (sdkvendor.startswith("-") and sdkvendor.count("-") == 1):
+ status.addresult("SDK_VENDOR should be of the form '-foosdk' with a single dash\n")
+
check_supported_distro(d)
omask = os.umask(0o022)
diff --git a/poky/meta/classes/sstate.bbclass b/poky/meta/classes/sstate.bbclass
index b47b9c23b..64808f8e1 100644
--- a/poky/meta/classes/sstate.bbclass
+++ b/poky/meta/classes/sstate.bbclass
@@ -818,7 +818,7 @@ sstate_unpack_package () {
BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
-def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
+def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, **kwargs):
found = set()
missed = set()
extension = ".tgz"
@@ -951,16 +951,17 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
evdata['found'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d)
- # Print some summary statistics about the current task completion and how much sstate
- # reuse there was. Avoid divide by zero errors.
- total = len(sq_data['hash'])
- complete = 0
- if currentcount:
- complete = (len(found) + currentcount) / (total + currentcount) * 100
- match = 0
- if total:
- match = len(found) / total * 100
- bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(found), len(missed), currentcount, match, complete))
+ if summary:
+ # Print some summary statistics about the current task completion and how much sstate
+ # reuse there was. Avoid divide by zero errors.
+ total = len(sq_data['hash'])
+ complete = 0
+ if currentcount:
+ complete = (len(found) + currentcount) / (total + currentcount) * 100
+ match = 0
+ if total:
+ match = len(found) / total * 100
+ bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(found), len(missed), currentcount, match, complete))
if hasattr(bb.parse.siggen, "checkhashes"):
bb.parse.siggen.checkhashes(sq_data, missed, found, d)
diff --git a/poky/meta/classes/staging.bbclass b/poky/meta/classes/staging.bbclass
index 55a9b52ed..cca0b7e0d 100644
--- a/poky/meta/classes/staging.bbclass
+++ b/poky/meta/classes/staging.bbclass
@@ -449,6 +449,7 @@ python extend_recipe_sysroot() {
msg_exists = []
msg_adding = []
+ # Handle all removals first since files may move between recipes
for dep in configuredeps:
c = setscenedeps[dep][0]
if c not in installed:
@@ -459,7 +460,6 @@ python extend_recipe_sysroot() {
if os.path.exists(depdir + "/" + c):
lnk = os.readlink(depdir + "/" + c)
if lnk == c + "." + taskhash and os.path.exists(depdir + "/" + c + ".complete"):
- msg_exists.append(c)
continue
else:
bb.note("%s exists in sysroot, but is stale (%s vs. %s), removing." % (c, lnk, c + "." + taskhash))
@@ -470,6 +470,20 @@ python extend_recipe_sysroot() {
elif os.path.lexists(depdir + "/" + c):
os.unlink(depdir + "/" + c)
+ # Now handle installs
+ for dep in configuredeps:
+ c = setscenedeps[dep][0]
+ if c not in installed:
+ continue
+ taskhash = setscenedeps[dep][5]
+ taskmanifest = depdir + "/" + c + "." + taskhash
+
+ if os.path.exists(depdir + "/" + c):
+ lnk = os.readlink(depdir + "/" + c)
+ if lnk == c + "." + taskhash and os.path.exists(depdir + "/" + c + ".complete"):
+ msg_exists.append(c)
+ continue
+
msg_adding.append(c)
os.symlink(c + "." + taskhash, depdir + "/" + c)
diff --git a/poky/meta/classes/systemd.bbclass b/poky/meta/classes/systemd.bbclass
index 1dca09964..9e8a82c9f 100644
--- a/poky/meta/classes/systemd.bbclass
+++ b/poky/meta/classes/systemd.bbclass
@@ -32,11 +32,7 @@ if type systemctl >/dev/null 2>/dev/null; then
if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then
for service in ${SYSTEMD_SERVICE_ESCAPED}; do
- case "${service}" in
- *@*)
- systemctl ${OPTS} enable "${service}"
- ;;
- esac
+ systemctl ${OPTS} enable "$service"
done
fi
diff --git a/poky/meta/classes/testimage.bbclass b/poky/meta/classes/testimage.bbclass
index 525c5a617..844ed8794 100644
--- a/poky/meta/classes/testimage.bbclass
+++ b/poky/meta/classes/testimage.bbclass
@@ -262,6 +262,24 @@ def testimage_main(d):
# It would be better to find these modules using instrospection.
target_kwargs['target_modules_path'] = d.getVar('BBPATH')
+ # hardware controlled targets might need further access
+ target_kwargs['powercontrol_cmd'] = d.getVar("TEST_POWERCONTROL_CMD") or None
+ target_kwargs['powercontrol_extra_args'] = d.getVar("TEST_POWERCONTROL_EXTRA_ARGS") or ""
+ target_kwargs['serialcontrol_cmd'] = d.getVar("TEST_SERIALCONTROL_CMD") or None
+ target_kwargs['serialcontrol_extra_args'] = d.getVar("TEST_SERIALCONTROL_EXTRA_ARGS") or ""
+
+ def export_ssh_agent(d):
+ import os
+
+ variables = ['SSH_AGENT_PID', 'SSH_AUTH_SOCK']
+ for v in variables:
+ if v not in os.environ.keys():
+ val = d.getVar(v)
+ if val is not None:
+ os.environ[v] = val
+
+ export_ssh_agent(d)
+
# runtime use network for download projects for build
export_proxies(d)
diff --git a/poky/meta/classes/tinderclient.bbclass b/poky/meta/classes/tinderclient.bbclass
deleted file mode 100644
index 00f453cec..000000000
--- a/poky/meta/classes/tinderclient.bbclass
+++ /dev/null
@@ -1,368 +0,0 @@
-def tinder_http_post(server, selector, content_type, body):
- import httplib
- # now post it
- for i in range(0,5):
- try:
- h = httplib.HTTP(server)
- h.putrequest('POST', selector)
- h.putheader('content-type', content_type)
- h.putheader('content-length', str(len(body)))
- h.endheaders()
- h.send(body)
- errcode, errmsg, headers = h.getreply()
- #print(errcode, errmsg, headers)
- return (errcode,errmsg, headers, h.file)
- except:
- print("Error sending the report!")
- # try again
- pass
-
- # return some garbage
- return (-1, "unknown", "unknown", None)
-
-def tinder_form_data(bound, dict, log):
- output = []
- # for each key in the dictionary
- for name in dict:
- assert dict[name]
- output.append( "--" + bound )
- output.append( 'Content-Disposition: form-data; name="%s"' % name )
- output.append( "" )
- output.append( dict[name] )
- if log:
- output.append( "--" + bound )
- output.append( 'Content-Disposition: form-data; name="log"; filename="log.txt"' )
- output.append( '' )
- output.append( log )
- output.append( '--' + bound + '--' )
- output.append( '' )
-
- return "\r\n".join(output)
-
-def tinder_time_string():
- """
- Return the time as GMT
- """
- return ""
-
-def tinder_format_http_post(d,status,log):
- """
- Format the Tinderbox HTTP post with the data needed
- for the tinderbox to be happy.
- """
-
- import random
-
- # the variables we will need to send on this form post
- variables = {
- "tree" : d.getVar('TINDER_TREE'),
- "machine_name" : d.getVar('TINDER_MACHINE'),
- "os" : os.uname()[0],
- "os_version" : os.uname()[2],
- "compiler" : "gcc",
- "clobber" : d.getVar('TINDER_CLOBBER') or "0",
- "srcdate" : d.getVar('SRCDATE'),
- "PN" : d.getVar('PN'),
- "PV" : d.getVar('PV'),
- "PR" : d.getVar('PR'),
- "FILE" : d.getVar('FILE') or "N/A",
- "TARGETARCH" : d.getVar('TARGET_ARCH'),
- "TARGETFPU" : d.getVar('TARGET_FPU') or "Unknown",
- "TARGETOS" : d.getVar('TARGET_OS') or "Unknown",
- "MACHINE" : d.getVar('MACHINE') or "Unknown",
- "DISTRO" : d.getVar('DISTRO') or "Unknown",
- "zecke-rocks" : "sure",
- }
-
- # optionally add the status
- if status:
- variables["status"] = str(status)
-
- # try to load the machine id
- # we only need on build_status.pl but sending it
- # always does not hurt
- try:
- f = open(d.getVar('TMPDIR')+'/tinder-machine.id', 'r')
- id = f.read()
- variables['machine_id'] = id
- except:
- pass
-
- # the boundary we will need
- boundary = "----------------------------------%d" % int(random.random()*1000000000000)
-
- # now format the body
- body = tinder_form_data( boundary, variables, log )
-
- return ("multipart/form-data; boundary=%s" % boundary),body
-
-
-def tinder_build_start(d):
- """
- Inform the tinderbox that a build is starting. We do this
- by posting our name and tree to the build_start.pl script
- on the server.
- """
-
- # get the body and type
- content_type, body = tinder_format_http_post(d,None,None)
- server = d.getVar('TINDER_HOST')
- url = d.getVar('TINDER_URL')
-
- selector = url + "/xml/build_start.pl"
-
- #print("selector %s and url %s" % (selector, url))
-
- # now post it
- errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
- #print(errcode, errmsg, headers)
- report = h_file.read()
-
- # now let us find the machine id that was assigned to us
- search = "<machine id='"
- report = report[report.find(search)+len(search):]
- report = report[0:report.find("'")]
-
- bb.note("Machine ID assigned by tinderbox: %s" % report )
-
- # now we will need to save the machine number
- # we will override any previous numbers
- f = open(d.getVar('TMPDIR')+"/tinder-machine.id", 'w')
- f.write(report)
-
-
-def tinder_send_http(d, status, _log):
- """
- Send this log as build status
- """
-
- # get the body and type
- server = d.getVar('TINDER_HOST')
- url = d.getVar('TINDER_URL')
-
- selector = url + "/xml/build_status.pl"
-
- # now post it - in chunks of 10.000 characters
- new_log = _log
- while len(new_log) > 0:
- content_type, body = tinder_format_http_post(d,status,new_log[0:18000])
- errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
- #print(errcode, errmsg, headers)
- #print(h.file.read())
- new_log = new_log[18000:]
-
-
-def tinder_print_info(d):
- """
- Print the TinderBox Info
- Including informations of the BaseSystem and the Tree
- we use.
- """
-
- # get the local vars
- time = tinder_time_string()
- ops = os.uname()[0]
- version = os.uname()[2]
- url = d.getVar('TINDER_URL')
- tree = d.getVar('TINDER_TREE')
- branch = d.getVar('TINDER_BRANCH')
- srcdate = d.getVar('SRCDATE')
- machine = d.getVar('MACHINE')
- distro = d.getVar('DISTRO')
- bbfiles = d.getVar('BBFILES')
- tarch = d.getVar('TARGET_ARCH')
- fpu = d.getVar('TARGET_FPU')
- oerev = d.getVar('OE_REVISION') or "unknown"
-
- # there is a bug with tipple quoted strings
- # i will work around but will fix the original
- # bug as well
- output = []
- output.append("== Tinderbox Info" )
- output.append("Time: %(time)s" )
- output.append("OS: %(ops)s" )
- output.append("%(version)s" )
- output.append("Compiler: gcc" )
- output.append("Tinderbox Client: 0.1" )
- output.append("Tinderbox Client Last Modified: yesterday" )
- output.append("Tinderbox Protocol: 0.1" )
- output.append("URL: %(url)s" )
- output.append("Tree: %(tree)s" )
- output.append("Config:" )
- output.append("branch = '%(branch)s'" )
- output.append("TARGET_ARCH = '%(tarch)s'" )
- output.append("TARGET_FPU = '%(fpu)s'" )
- output.append("SRCDATE = '%(srcdate)s'" )
- output.append("MACHINE = '%(machine)s'" )
- output.append("DISTRO = '%(distro)s'" )
- output.append("BBFILES = '%(bbfiles)s'" )
- output.append("OEREV = '%(oerev)s'" )
- output.append("== End Tinderbox Client Info" )
-
- # now create the real output
- return "\n".join(output) % vars()
-
-
-def tinder_print_env():
- """
- Print the environment variables of this build
- """
- time_start = tinder_time_string()
- time_end = tinder_time_string()
-
- # build the environment
- env = ""
- for var in os.environ:
- env += "%s=%s\n" % (var, os.environ[var])
-
- output = []
- output.append( "---> TINDERBOX RUNNING env %(time_start)s" )
- output.append( env )
- output.append( "<--- TINDERBOX FINISHED (SUCCESS) %(time_end)s" )
-
- return "\n".join(output) % vars()
-
-def tinder_tinder_start(d, event):
- """
- PRINT the configuration of this build
- """
-
- time_start = tinder_time_string()
- config = tinder_print_info(d)
- #env = tinder_print_env()
- time_end = tinder_time_string()
- packages = " ".join( event.getPkgs() )
-
- output = []
- output.append( "---> TINDERBOX PRINTING CONFIGURATION %(time_start)s" )
- output.append( config )
- #output.append( env )
- output.append( "<--- TINDERBOX FINISHED PRINTING CONFIGURATION %(time_end)s" )
- output.append( "---> TINDERBOX BUILDING '%(packages)s'" )
- output.append( "<--- TINDERBOX STARTING BUILD NOW" )
-
- output.append( "" )
-
- return "\n".join(output) % vars()
-
-def tinder_do_tinder_report(event):
- """
- Report to the tinderbox:
- On the BuildStart we will inform the box directly
- On the other events we will write to the TINDER_LOG and
- when the Task is finished we will send the report.
-
- The above is not yet fully implemented. Currently we send
- information immediately. The caching/queuing needs to be
- implemented. Also sending more or less information is not
- implemented yet.
-
- We have two temporary files stored in the TMP directory. One file
- contains the assigned machine id for the tinderclient. This id gets
- assigned when we connect the box and start the build process the second
- file is used to workaround an EventHandler limitation. If BitBake is ran
- with the continue option we want the Build to fail even if we get the
- BuildCompleted Event. In this case we have to look up the status and
- send it instead of 100/success.
- """
- import glob
-
- # variables
- name = bb.event.getName(event)
- log = ""
- status = 1
- # Check what we need to do Build* shows we start or are done
- if name == "BuildStarted":
- tinder_build_start(event.data)
- log = tinder_tinder_start(event.data,event)
-
- try:
- # truncate the tinder log file
- f = open(event.data.getVar('TINDER_LOG'), 'w')
- f.write("")
- f.close()
- except:
- pass
-
- try:
- # write a status to the file. This is needed for the -k option
- # of BitBake
- g = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w')
- g.write("")
- g.close()
- except IOError:
- pass
-
- # Append the Task-Log (compile,configure...) to the log file
- # we will send to the server
- if name == "TaskSucceeded" or name == "TaskFailed":
- log_file = glob.glob("%s/log.%s.*" % (event.data.getVar('T'), event.task))
-
- if len(log_file) != 0:
- to_file = event.data.getVar('TINDER_LOG')
- log += "".join(open(log_file[0], 'r').readlines())
-
- # set the right 'HEADER'/Summary for the TinderBox
- if name == "TaskStarted":
- log += "---> TINDERBOX Task %s started\n" % event.task
- elif name == "TaskSucceeded":
- log += "<--- TINDERBOX Task %s done (SUCCESS)\n" % event.task
- elif name == "TaskFailed":
- log += "<--- TINDERBOX Task %s failed (FAILURE)\n" % event.task
- elif name == "PkgStarted":
- log += "---> TINDERBOX Package %s started\n" % event.data.getVar('PF')
- elif name == "PkgSucceeded":
- log += "<--- TINDERBOX Package %s done (SUCCESS)\n" % event.data.getVar('PF')
- elif name == "PkgFailed":
- if not event.data.getVar('TINDER_AUTOBUILD') == "0":
- build.exec_task('do_clean', event.data)
- log += "<--- TINDERBOX Package %s failed (FAILURE)\n" % event.data.getVar('PF')
- status = 200
- # remember the failure for the -k case
- h = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w')
- h.write("200")
- elif name == "BuildCompleted":
- log += "Build Completed\n"
- status = 100
- # Check if we have a old status...
- try:
- h = open(event.data.getVar('TMPDIR')+'/tinder-status', 'r')
- status = int(h.read())
- except:
- pass
-
- elif name == "MultipleProviders":
- log += "---> TINDERBOX Multiple Providers\n"
- log += "multiple providers are available (%s);\n" % ", ".join(event.getCandidates())
- log += "consider defining PREFERRED_PROVIDER_%s\n" % event.getItem()
- log += "is runtime: %d\n" % event.isRuntime()
- log += "<--- TINDERBOX Multiple Providers\n"
- elif name == "NoProvider":
- log += "Error: No Provider for: %s\n" % event.getItem()
- log += "Error:Was Runtime: %d\n" % event.isRuntime()
- status = 200
- # remember the failure for the -k case
- h = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w')
- h.write("200")
-
- # now post the log
- if len(log) == 0:
- return
-
- # for now we will use the http post method as it is the only one
- log_post_method = tinder_send_http
- log_post_method(event.data, status, log)
-
-
-# we want to be an event handler
-addhandler tinderclient_eventhandler
-python tinderclient_eventhandler() {
- if e.data is None or bb.event.getName(e) == "MsgNote":
- return
-
- do_tinder_report = e.data.getVar('TINDER_REPORT')
- if do_tinder_report and do_tinder_report == "1":
- tinder_do_tinder_report(e)
-
- return
-}
diff --git a/poky/meta/classes/uninative.bbclass b/poky/meta/classes/uninative.bbclass
index 3326c0db3..9f8645a36 100644
--- a/poky/meta/classes/uninative.bbclass
+++ b/poky/meta/classes/uninative.bbclass
@@ -45,7 +45,7 @@ python uninative_event_fetchloader() {
tarballdir = os.path.join(d.getVar("UNINATIVE_DLDIR"), chksum)
tarballpath = os.path.join(tarballdir, tarball)
- if not os.path.exists(tarballpath):
+ if not os.path.exists(tarballpath + ".done"):
bb.utils.mkdirhier(tarballdir)
if d.getVar("UNINATIVE_URL") == "unset":
bb.fatal("Uninative selected but not configured, please set UNINATIVE_URL")
diff --git a/poky/meta/conf/distro/include/no-static-libs.inc b/poky/meta/conf/distro/include/no-static-libs.inc
index 4141ecb76..a3a865cac 100644
--- a/poky/meta/conf/distro/include/no-static-libs.inc
+++ b/poky/meta/conf/distro/include/no-static-libs.inc
@@ -15,10 +15,6 @@ DISABLE_STATIC_pn-nativesdk-libcap = ""
DISABLE_STATIC_pn-libpcap = ""
# needed by gdb
DISABLE_STATIC_pn-readline = ""
-# needed by pseudo
-DISABLE_STATIC_pn-sqlite3 = ""
-DISABLE_STATIC_pn-sqlite3-native = ""
-DISABLE_STATIC_pn-nativesdk-sqlite3 = ""
# openjade/sgml-common have build issues without static libs
DISABLE_STATIC_pn-sgml-common-native = ""
DISABLE_STATIC_pn-openjade-native = ""
diff --git a/poky/meta/conf/documentation.conf b/poky/meta/conf/documentation.conf
index 550df20b0..fca36f3cf 100644
--- a/poky/meta/conf/documentation.conf
+++ b/poky/meta/conf/documentation.conf
@@ -113,7 +113,7 @@ COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more tar
COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
CONFIG_SITE[doc] = "A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running configure."
-CONFLICT_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that would be in conflict should the recipe be built."
+CONFLICT_DISTRO_FEATURES[doc] = "When a recipe inherits the features_check class, this variable identifies distribution features that would be in conflict should the recipe be built."
CORE_IMAGE_EXTRA_INSTALL[doc] = "Specifies the list of packages to be added to the image. You should only set this variable in the conf/local.conf file in the Build Directory."
COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded Core Metadata layer (i.e. meta)."
CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
@@ -346,7 +346,7 @@ QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for u
RCONFLICTS[doc] = "The list of packages that conflict with another package. Note that the package will not be installed if the conflicting packages are not first removed."
RDEPENDS[doc] = "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN)."
-REQUIRED_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe."
+REQUIRED_DISTRO_FEATURES[doc] = "When a recipe inherits the features_check class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe."
RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
ROOTFS_POSTPROCESS_COMMAND[doc] = "Added by classes to run post processing commands once the OpenEmbedded build system has created the root filesystem."
diff --git a/poky/meta/conf/machine/include/tune-cortexa32.inc b/poky/meta/conf/machine/include/tune-cortexa32.inc
index 9c948f176..3ab1addd9 100644
--- a/poky/meta/conf/machine/include/tune-cortexa32.inc
+++ b/poky/meta/conf/machine/include/tune-cortexa32.inc
@@ -10,9 +10,9 @@ require conf/machine/include/arm/arch-armv8a.inc
AVAILTUNES += "cortexa32 cortexa32-crypto"
ARMPKGARCH_tune-cortexa32 = "cortexa32"
ARMPKGARCH_tune-cortexa32-crypto = "cortexa32"
-TUNE_FEATURES_tune-cortexa32 = "aarch64 cortexa32 crc"
-TUNE_FEATURES_tune-cortexa32-crypto = "aarch64 cortexa32 crc crypto"
+TUNE_FEATURES_tune-cortexa32 = "armv8a cortexa32 crc"
+TUNE_FEATURES_tune-cortexa32-crypto = "armv8a cortexa32 crc crypto"
PACKAGE_EXTRA_ARCHS_tune-cortexa32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
-BASE_LIB_tune-cortexa32 = "lib64"
-BASE_LIB_tune-cortexa32-crypto = "lib64"
+BASE_LIB_tune-cortexa32 = "lib"
+BASE_LIB_tune-cortexa32-crypto = "lib"
diff --git a/poky/meta/conf/machine/qemuriscv64.conf b/poky/meta/conf/machine/qemuriscv64.conf
index 99b48b309..b45fdd556 100644
--- a/poky/meta/conf/machine/qemuriscv64.conf
+++ b/poky/meta/conf/machine/qemuriscv64.conf
@@ -5,5 +5,5 @@
require conf/machine/include/riscv/qemuriscv.inc
EXTRA_IMAGEDEPENDS += "u-boot"
-UBOOT_MACHINE = "qemu-riscv64_defconfig"
+UBOOT_MACHINE = "qemu-riscv64_smode_defconfig"
UBOOT_ELF = "u-boot"
diff --git a/poky/meta/files/common-licenses/Intel b/poky/meta/files/common-licenses/Intel
new file mode 100644
index 000000000..29ddf57a8
--- /dev/null
+++ b/poky/meta/files/common-licenses/Intel
@@ -0,0 +1,105 @@
+1. Copyright Notice
+
+Some or all of this work - Copyright (c) 1999 - 2017, Intel Corp.
+All rights reserved.
+
+2. License
+
+2.1. This is your license from Intel Corp. under its intellectual property
+rights. You may have additional license terms from the party that provided
+you this software, covering your right to use that party's intellectual
+property rights.
+
+2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
+copy of the source code appearing in this file ("Covered Code") an
+irrevocable, perpetual, worldwide license under Intel's copyrights in the
+base code distributed originally by Intel ("Original Intel Code") to copy,
+make derivatives, distribute, use and display any portion of the Covered
+Code in any form, with the right to sublicense such rights; and
+
+2.3. Intel grants Licensee a non-exclusive and non-transferable patent
+license (with the right to sublicense), under only those claims of Intel
+patents that are infringed by the Original Intel Code, to make, use, sell,
+offer to sell, and import the Covered Code and derivative works thereof
+solely to the minimum extent necessary to exercise the above copyright
+license, and in no event shall the patent license extend to any additions
+to or modifications of the Original Intel Code. No other license or right
+is granted directly or by implication, estoppel or otherwise;
+
+The above copyright and patent license is granted only if the following
+conditions are met:
+
+3. Conditions
+
+3.1. Redistribution of Source with Rights to Further Distribute Source.
+Redistribution of source code of any substantial portion of the Covered
+Code or modification with rights to further distribute source must include
+the above Copyright Notice, the above License, this list of Conditions,
+and the following Disclaimer and Export Compliance provision. In addition,
+Licensee must cause all Covered Code to which Licensee contributes to
+contain a file documenting the changes Licensee made to create that Covered
+Code and the date of any change. Licensee must include in that file the
+documentation of any changes made by any predecessor Licensee. Licensee
+must include a prominent statement that the modification is derived,
+directly or indirectly, from Original Intel Code.
+
+3.2. Redistribution of Source with no Rights to Further Distribute Source.
+Redistribution of source code of any substantial portion of the Covered
+Code or modification without rights to further distribute source must
+include the following Disclaimer and Export Compliance provision in the
+documentation and/or other materials provided with distribution. In
+addition, Licensee may not authorize further sublicense of source of any
+portion of the Covered Code, and must include terms to the effect that the
+license from Licensee to its licensee is limited to the intellectual
+property embodied in the software Licensee provides to its licensee, and
+not to intellectual property embodied in modifications its licensee may
+make.
+
+3.3. Redistribution of Executable. Redistribution in executable form of any
+substantial portion of the Covered Code or modification must reproduce the
+above Copyright Notice, and the following Disclaimer and Export Compliance
+provision in the documentation and/or other materials provided with the
+distribution.
+
+3.4. Intel retains all right, title, and interest in and to the Original
+Intel Code.
+
+3.5. Neither the name Intel nor any other trademark owned or controlled by
+Intel shall be used in advertising or otherwise to promote the sale, use or
+other dealings in products derived from or relating to the Covered Code
+without prior written authorization from Intel.
+
+4. Disclaimer and Export Compliance
+
+4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
+HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
+IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
+INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
+UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
+IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
+PARTICULAR PURPOSE.
+
+4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
+OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
+COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
+CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
+HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
+SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
+LIMITED REMEDY.
+
+4.3. Licensee shall not export, either directly or indirectly, any of this
+software or system incorporating such software without first obtaining any
+required license or other approval from the U. S. Department of Commerce or
+any other agency or department of the United States Government. In the
+event Licensee exports any such software from the United States or
+re-exports any such software from a foreign destination, Licensee shall
+ensure that the distribution and export/re-export of the software is in
+compliance with all laws, regulations, orders, or other restrictions of the
+U.S. Export Administration Regulations. Licensee agrees that neither it nor
+any of its subsidiaries will export/re-export any technical data, process,
+software, or service, directly or indirectly, to any country for which the
+United States government or any agency thereof requires an export license,
+other governmental approval, or letter of assurance, without first obtaining
+such license, approval or letter.
+
diff --git a/poky/meta/lib/oe/buildhistory_analysis.py b/poky/meta/lib/oe/buildhistory_analysis.py
index 708e1b388..5b28774c9 100644
--- a/poky/meta/lib/oe/buildhistory_analysis.py
+++ b/poky/meta/lib/oe/buildhistory_analysis.py
@@ -413,7 +413,7 @@ def compare_dict_blobs(path, ablob, bblob, report_all, report_ver):
if abs(percentchg) < monitor_numeric_threshold:
continue
elif (not report_all) and key in list_fields:
- if key == "FILELIST" and path.endswith("-dbg") and bstr.strip() != '':
+ if key == "FILELIST" and (path.endswith("-dbg") or path.endswith("-src")) and bstr.strip() != '':
continue
if key in ['RPROVIDES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RREPLACES', 'RCONFLICTS']:
(depvera, depverb) = compare_pkg_lists(astr, bstr)
diff --git a/poky/meta/lib/oe/package_manager.py b/poky/meta/lib/oe/package_manager.py
index 7c373715a..4ff19cf09 100644
--- a/poky/meta/lib/oe/package_manager.py
+++ b/poky/meta/lib/oe/package_manager.py
@@ -217,7 +217,7 @@ class OpkgIndexer(Indexer):
if not os.path.exists(pkgs_file):
open(pkgs_file, "w").close()
- index_cmds.add('%s -r %s -p %s -m %s' %
+ index_cmds.add('%s --checksum md5 --checksum sha256 -r %s -p %s -m %s' %
(opkg_index_cmd, pkgs_file, pkgs_file, pkgs_dir))
index_sign_files.add(pkgs_file)
@@ -298,7 +298,7 @@ class DpkgIndexer(Indexer):
release.write("Label: %s\n" % arch)
cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive
-
+
index_cmds.append(cmd)
deb_dirs_found = True
@@ -570,6 +570,8 @@ class PackageManager(object, metaclass=ABCMeta):
for lang in split_linguas:
globs += " *-locale-%s" % lang
+ for complementary_linguas in (self.d.getVar('IMAGE_LINGUAS_COMPLEMENTARY') or "").split():
+ globs += (" " + complementary_linguas) % lang
if globs is None:
return
@@ -655,7 +657,7 @@ def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencie
pn = d.getVar("PN")
seendirs = set()
multilibs = {}
-
+
bb.utils.remove(subrepo_dir, recurse=True)
bb.utils.mkdirhier(subrepo_dir)
@@ -1006,8 +1008,8 @@ class RpmPM(PackageManager):
def load_old_install_solution(self):
if not os.path.exists(self.solution_manifest):
return []
-
- return open(self.solution_manifest, 'r').read().split()
+ with open(self.solution_manifest, 'r') as fd:
+ return fd.read().split()
def _script_num_prefix(self, path):
files = os.listdir(path)
diff --git a/poky/meta/lib/oe/packagedata.py b/poky/meta/lib/oe/packagedata.py
index cbde380b0..a82085a79 100644
--- a/poky/meta/lib/oe/packagedata.py
+++ b/poky/meta/lib/oe/packagedata.py
@@ -17,9 +17,8 @@ def read_pkgdatafile(fn):
if os.access(fn, os.R_OK):
import re
- f = open(fn, 'r')
- lines = f.readlines()
- f.close()
+ with open(fn, 'r') as f:
+ lines = f.readlines()
r = re.compile("([^:]+):\s*(.*)")
for l in lines:
m = r.match(l)
diff --git a/poky/meta/lib/oe/types.py b/poky/meta/lib/oe/types.py
index 77ee7ee54..bbbabafbf 100644
--- a/poky/meta/lib/oe/types.py
+++ b/poky/meta/lib/oe/types.py
@@ -154,7 +154,8 @@ def path(value, relativeto='', normalize='true', mustexist='false'):
if boolean(mustexist):
try:
- open(value, 'r')
+ with open(value, 'r'):
+ pass
except IOError as exc:
if exc.errno == errno.ENOENT:
raise ValueError("{0}: {1}".format(value, os.strerror(errno.ENOENT)))
@@ -183,4 +184,3 @@ def qemu_use_kvm(kvm, target_arch):
elif build_arch == target_arch:
use_kvm = True
return use_kvm
-
diff --git a/poky/meta/lib/oeqa/core/decorator/data.py b/poky/meta/lib/oeqa/core/decorator/data.py
index babc9789d..bc4939e87 100644
--- a/poky/meta/lib/oeqa/core/decorator/data.py
+++ b/poky/meta/lib/oeqa/core/decorator/data.py
@@ -18,6 +18,26 @@ def has_feature(td, feature):
return True
return False
+def has_machine(td, machine):
+ """
+ Checks for MACHINE.
+ """
+
+ if (machine in td.get('MACHINE', '')):
+ return True
+ return False
+
+def is_qemu(td, qemu):
+ """
+ Checks if MACHINE is qemu.
+ """
+
+ machine = td.get('MACHINE', '')
+ if (qemu in td.get('MACHINE', '') or
+ machine.startswith('qemu')):
+ return True
+ return False
+
@registerDecorator
class skipIfDataVar(OETestDecorator):
"""
@@ -113,3 +133,90 @@ class skipIfNotFeature(OETestDecorator):
self.logger.debug(msg)
if not has_feature(self.case.td, self.value):
self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfFeature(OETestDecorator):
+ """
+ Skip test based on DISTRO_FEATURES.
+
+ value must not be in distro features or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is not in DISTRO_FEATURES '
+ 'or IMAGE_FEATURES' % (self.value))
+ self.logger.debug(msg)
+ if has_feature(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfNotMachine(OETestDecorator):
+ """
+ Skip test based on MACHINE.
+
+ value must be match MACHINE or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is not this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if not has_machine(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfMachine(OETestDecorator):
+ """
+ Skip test based on Machine.
+
+ value must not be this machine or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if has_machine(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfNotQemu(OETestDecorator):
+ """
+ Skip test based on MACHINE.
+
+ value must be a qemu MACHINE or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is not this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if not is_qemu(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfQemu(OETestDecorator):
+ """
+ Skip test based on Qemu Machine.
+
+ value must not be a qemu machine or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if is_qemu(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
diff --git a/poky/meta/lib/oeqa/manual/bsp-hw.json b/poky/meta/lib/oeqa/manual/bsp-hw.json
index 18cec222f..5c5b9b50b 100644
--- a/poky/meta/lib/oeqa/manual/bsp-hw.json
+++ b/poky/meta/lib/oeqa/manual/bsp-hw.json
@@ -1,32 +1,6 @@
[
{
"test": {
- "@alias": "bsps-hw.bsps-hw.rpm_-__install_dependency_package",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Get a not previously installed RPM package or build one on local machine, which should have run-time dependency.For example, \"mc\" (Midnight Commander, which is a visual file manager) should depend on \"ncurses-terminfo\". \n\n$ bitbake mc \n\n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Copy the package into a system folder (for example /home/root/rpm_packages). \n\n\n",
- "expected_results": ""
- },
- "3": {
- "action": "Run \"rpm -ivh package_name\" and check the output, for example \"rpm -ivh mc.rpm*\" should report the dependency on \"ncurses-terminfo\".\n\n\n\n",
- "expected_results": "3 . rpm command should report message when some RPM installation depends on other packages."
- }
- },
- "summary": "rpm_-__install_dependency_package"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.boot_and_install_from_USB",
"author": [
{
@@ -173,28 +147,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.reboot_system",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": ""
- },
- "2": {
- "action": "launch terminal and run \"reboot\"",
- "expected_results": "System can reboot successfully . "
- }
- },
- "summary": "reboot_system"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.switch_among_multi_applications_and_desktop",
"author": [
{
@@ -225,114 +177,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_mount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Boot system \n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Plug USB stick, it should be mount in /run/media/sd(x) If X-window system does not start and show USB device, then use the terminal to mount it, following the next steps: \na. Locate the usb stick (usually it is on /dev/sdb) \nb. Create a directory with \"mkdir stick\" (so you will have such a path as: /home/root/stick). \nc. Run the command \"mount /dev/sdb /home/root/stick\" to mount USB device on it. \n\n",
- "expected_results": "USB device should be mounted in /run/media/sd(x) \nor in /home/root/stick \n\n"
- },
- "3": {
- "action": "Then you can access USB stick (/home/root/stick) via Terminal or GUI and try various commands and actions like \"cp\", \"mv\", \"touch\" and \"rm\". Type \"dmesg\" command and check for recent mounted devices.",
- "expected_results": "Basic commands work properly. The system sends a notification in \"dmesg\" command, showing that the USB stick is accessible and the device is mounted ."
- }
- },
- "summary": "USB_-_mount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_read_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "view/copy successfully"
- },
- "2": {
- "action": "plug usb stick",
- "expected_results": ""
- },
- "3": {
- "action": "view files in usb by file browser",
- "expected_results": ""
- },
- "4": {
- "action": "copy some files from usb to local hardware",
- "expected_results": ""
- }
- },
- "summary": "USB_-_read_files"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_umount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "usb directory in file browser automatically missed"
- },
- "2": {
- "action": "plug usb stick",
- "expected_results": ""
- },
- "3": {
- "action": "view files in usb by file browser \n4.unplug usb",
- "expected_results": ""
- }
- },
- "summary": "USB_-_umount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_write_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "create/copy successfully"
- },
- "2": {
- "action": "plug usb stick",
- "expected_results": ""
- },
- "3": {
- "action": "create files in usb \n4.copy some files from local hardware to usb",
- "expected_results": ""
- }
- },
- "summary": "USB_-_write_files"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.ethernet_static_ip_set_in_connman",
"author": [
{
@@ -613,136 +457,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.check_bash_in_image",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "After system is up, check if bash command exists with command \"which bash\"",
- "expected_results": "bash command should exist in image giving something as below \"/bin/bash\""
- }
- },
- "summary": "check_bash_in_image"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__mount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "system notify that MicroSDis accessible"
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__mount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__read_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "view/copy successfully"
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- },
- "3": {
- "action": "view files inMicroSD by file browser",
- "expected_results": ""
- },
- "4": {
- "action": "copy some files fromMicroSD to local hardware",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__read_files"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__umount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "MicroSD in file browser automatically missed . "
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- },
- "3": {
- "action": "view files in MicroSDby file browser",
- "expected_results": ""
- },
- "4": {
- "action": "unplug MicroSD",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__umount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__write_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "create/copy successfully"
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- },
- "3": {
- "action": "create files in MicroSD",
- "expected_results": ""
- },
- "4": {
- "action": "copy some files from local hardware to MicroSD",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__write_files"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.video_-_libva_check_(ogg_video_play)",
"author": [
{
@@ -1283,4 +997,4 @@
"summary": "Boot_from_JFFS2_image"
}
}
-] \ No newline at end of file
+]
diff --git a/poky/meta/lib/oeqa/manual/bsp-qemu.json b/poky/meta/lib/oeqa/manual/bsp-qemu.json
deleted file mode 100644
index cf51b6ab1..000000000
--- a/poky/meta/lib/oeqa/manual/bsp-qemu.json
+++ /dev/null
@@ -1,222 +0,0 @@
-[
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.qemu_can_be_started_with_KVM_enabled",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Build a kernel with KVM enabled \n\nIn Local.conf add \n\nQEMU_USE_KVM = \"${@ '1' if os.access('/dev/kvm', os.R_OK|os.W_OK) else '0' }\" \n\n ",
- "expected_results": ""
- },
- "2": {
- "action": "Start qemu with option \"kvm\" with runqemu \n a. If you start qemu with kvm failed, maybe it is because host not install kvm and vhost_net module. Follow below link to install them. \n b. vhost_test refer: https://wiki.yoctoproject.org/wiki/Running_an_x86_Yocto_Linux_image_under_QEMU_KVM \n c. kvm refer: https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu",
- "expected_results": ""
- },
- "3": {
- "action": "Check if qemu starts up and if kvm_intel module is used",
- "expected_results": ""
- },
- "4": {
- "action": "If kvm_intel module is not used when starting qemu, it will show 0 in \"Used by\" column when you run \"lsmod | grep kvm_intel\" ",
- "expected_results": "KVM enabled with qemu \nExecute \"lsmod | grep kvm_intel\" from your host twice, before and after you \nstart the qemu with kvm option. Before start, the number should be 0, \nafter start, the number should bigger than 0."
- }
- },
- "summary": "qemu_can_be_started_with_KVM_enabled"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.Post-installation_logging",
- "author": [
- {
- "email": "yi.zhao@windriver.com",
- "name": "yi.zhao@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Download the poky source and set environment \n",
- "expected_results": "The /var/log/postinstall.log should exist in the first boot. The content of this log is like below: \n\nRunning postinst /etc/rpm-postinsts/man... \nList directory to check the output log \nbin \nboot \ndev \netc \nhome \nlib \nlost+found \nmedia \nmnt \nproc \nrun \nsbin \nsys \ntmp \nusr \nvar \nList nonexist directory to check the stderr redirection log \nls: /nonexist: No such file or directory "
- },
- "2": {
- "action": "Add the following lines to a .bb file. For expample, meta/recipes-connectivity/openssh/openssh_6.2p2.bb: \n\npkg_postinst_ontarget_${PN} () { \n #!/bin/sh -e \n if [ x\"$D\" = \"x\" ]; then \n echo \"List directory to check the output log\" \n ls / \n echo \"List nonexist directory to check the stderr redirection log\" \n ls /nonexist \n else \n exit 1 \n fi \n} \n\nMake sure the feature \"debug-tweaks\" is added in conf/local.conf \n",
- "expected_results": ""
- },
- "3": {
- "action": "Add ssh-server-openssh to EXTRA_IMAGE_FEATURES in local.conf \n",
- "expected_results": ""
- },
- "4": {
- "action": "Build core-image-minimal \n",
- "expected_results": ""
- },
- "5": {
- "action": "Boot up the image and check the /var/log/postinstall.log ",
- "expected_results": ""
- }
- },
- "summary": "Post-installation_logging"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.Add_user_with_cleartext_type_password_during_filesystem_construction",
- "author": [
- {
- "email": "ke.zou@windriver.com",
- "name": "ke.zou@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Download the poky source and set the environment \n\n",
- "expected_results": "No error during image building procedure. \n"
- },
- "2": {
- "action": "Add the following lines in conf/local.conf \n\nINHERIT += \"extrausers\" \n\nEXTRA_USERS_PARAMS = \"\\ \nuseradd -s /bin/sh -P 'tester3' tester3;\\ \n\" \n\nThe above settings do the following things: \na. Add a user tester3 with cleartext password 'tester3' ",
- "expected_results": "Image can boot up \n"
- },
- "3": {
- "action": "Build the image\n ",
- "expected_results": "Login with user name \"tester3\" and password \"tester3\" "
- }
- },
- "summary": "Add_user_with_cleartext_type_password_during_filesystem_construction"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.rpm_-__install_dependency_package",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Get a not previously installed RPM package or build one on local machine, which should have run-time dependency.For example, \"mc\" (Midnight Commander, which is a visual file manager) should depend on \"ncurses-terminfo\". \n\n$ bitbake mc \n\n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Copy the package into a system folder (for example /home/root/rpm_packages). \n\n\n",
- "expected_results": ""
- },
- "3": {
- "action": "Run \"rpm -ivh package_name\" and check the output, for example \"rpm -ivh mc.rpm*\" should report the dependency on \"ncurses-terminfo\".\n\n\n\n",
- "expected_results": "3 . rpm command should report message when some RPM installation depends on other packages."
- }
- },
- "summary": "rpm_-__install_dependency_package"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.Check_rpm_install/removal_log_file_size(auto)",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Get some rpm or other kind of installation packages. \n\n",
- "expected_results": "Steps 1- 4 (more than 2.3) \nEach file will occupy around 10MB, and there should be some method to keep rpm log in a small size. (the size of the db of RPMs must not be taking so much space) \nStep 5 (less than or equal to 2.3)\nThe size on /var/lib/rpm/ must keep around 30MB"
- },
- "2": {
- "action": "After system is up, check the size of log file named as \"log.xxxxxx\" on /var/lib/rpm/log \n\n",
- "expected_results": ""
- },
- "3": {
- "action": "After several install/removal of packages, with either of the install/removal commands (rpm/smart/zypper/dnf install/removal), check again the size of log file. \n\n",
- "expected_results": ""
- },
- "4": {
- "action": "For packages installation, there will be some database files under /var/lib/rpm/, named as \"__db.xxx\" and there will be some log files \nunder /var/lib/rpm/log, named as \"\"log.xxxxxx\"\". \n\nNote: You will only see the log.xxxx on /var/lib/rpm/log mentioned above if the poky version is minor than 2.3.For poky 2.3 or major versions this has been modified and the package RPM4 does not show the logs.xxxx. if major, follow the next step. \n\n",
- "expected_results": ""
- },
- "5": {
- "action": "Repeat steps (1 and 3) and check the size of /var/lib/rpm/ \n\nMore info: https://bugzilla.yoctoproject.org/show_bug.cgi?id=9259",
- "expected_results": ""
- }
- },
- "summary": "Check_rpm_install/removal_log_file_size"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-runtime.only_one_connmand_in_background(auto)",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Boot system",
- "expected_results": ""
- },
- "2": {
- "action": "Run \"ps aux |grep connmand\" or \"ps -ef | grep connmand\" or \"ps | grep connmand\"",
- "expected_results": "Connmand (connection manager, used to manage internet connections) should be shown as an active process \n\n"
- },
- "3": {
- "action": "Run command \"connmand\" to try to launch to a second connmand process",
- "expected_results": ""
- },
- "4": {
- "action": "Check, with \"ps\" connmand if a second connmand can be generated ",
- "expected_results": "There should be only one connmand process instance in background ."
- }
- },
- "summary": "only_one_connmand_in_background"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-runtime.X_server_can_start_up_with_runlevel_5_boot",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot up system with default runlevel \n\n",
- "expected_results": "X server can start up well and desktop display has no problem . \n\n"
- },
- "2": {
- "action": "type runlevel at command prompt",
- "expected_results": "Output:N 5"
- }
- },
- "summary": "X_server_can_start_up_with_runlevel_5_boot"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-runtime.check_bash_in_image",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "After system is up, check if bash command exists with command \"which bash\"",
- "expected_results": "bash command should exist in image giving something as below \"/bin/bash\""
- }
- },
- "summary": "check_bash_in_image"
- }
- }
-]
diff --git a/poky/meta/lib/oeqa/manual/compliance-test.json b/poky/meta/lib/oeqa/manual/compliance-test.json
deleted file mode 100644
index 367a416f0..000000000
--- a/poky/meta/lib/oeqa/manual/compliance-test.json
+++ /dev/null
@@ -1,76 +0,0 @@
-[
- {
- "test": {
- "@alias": "compliance-test.compliance-test.stress_test_-_Genericx86-64",
- "author": [
- {
- "email": "corneliux.stoicescu@intel.com",
- "name": "corneliux.stoicescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Bootup with core-image-sato-sdk image",
- "expected_results": ""
- },
- "2": {
- "action": "Execute the crashme test with below command \n\n./opt/ltp/runltp f crashme",
- "expected_results": "The stress testing should not make the target crash. Check CPU usage and basic functionality of the system after the tests are over. "
- }
- },
- "summary": "stress_test_-_Genericx86-64"
- }
- },
- {
- "test": {
- "@alias": "compliance-test.compliance-test.stress_test_-_- crashme_-_-Beaglebone",
- "author": [
- {
- "email": "corneliux.stoicescu@intel.com",
- "name": "corneliux.stoicescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": " Get crashme from http://people.delphiforums.com/gjc/crashme.html",
- "expected_results": ""
- },
- "2": {
- "action": "Follow the setup steps on above URL, build crashme in target",
- "expected_results": ""
- },
- "3": {
- "action": " Run crashme for 24 hours",
- "expected_results": "Target should not crash with the program."
- }
- },
- "summary": "stress_test_-_crashme_-Beaglebone"
- }
- },
- {
- "test": {
- "@alias": "compliance-test.compliance-test.stress_test_-_ltp_-Beaglebone",
- "author": [
- {
- "email": "corneliux.stoicescu@intel.com",
- "name": "corneliux.stoicescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Build LTP with toolchain or in sdk image",
- "expected_results": ""
- },
- "2": {
- "action": "Copy LTP folder into target, for example, /opt/ltp. Modify script, testscripts/ltpstress.sh, set Iostat=1, NO_NETWORK=1",
- "expected_results": ""
- },
- "3": {
- "action": "cd testscripts/ && ./ltpstress.sh",
- "expected_results": "This stress case will run for 24 hours Check the result\ntarget should not crash with the program "
- }
- },
- "summary": "stress_test_-_-ltp_-Beaglebone"
- }
- }
-]
diff --git a/poky/meta/lib/oeqa/manual/oe-core.json b/poky/meta/lib/oeqa/manual/oe-core.json
index 3ee0aa95f..fb47c5ec3 100644
--- a/poky/meta/lib/oeqa/manual/oe-core.json
+++ b/poky/meta/lib/oeqa/manual/oe-core.json
@@ -1,82 +1,6 @@
[
{
"test": {
- "@alias": "oe-core.scripts.Crosstap_script_check",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Create the trace_open.stp script as follows in the host machine: \n\n\nprobe syscall.open \n\n{ \n\n\n printf (\"%s(%d) open (%s)\\n\", execname(), pid(), argstr) \n\n} \n\n\n\nif the above failed, then create the below instead. \n\nprobe syscall.open \n{ \n printf (\"%s(%d) open\\n\", execname(), pid()) \n\n} \n \n",
- "expected_results": ""
- },
- "2": {
- "action": "Add 'tools-profile' and 'ssh-server-openssh' to EXTRA_IMAGE_FEATURES in local.conf \n\n\n",
- "expected_results": ""
- },
- "3": {
- "action": "Build a core-image-minimal image, build systemtap-native. Start the image under qemu. \n\n",
- "expected_results": ""
- },
- "4": {
- "action": "Make sure that the ssh service is started on the Qemu machine. \n\n",
- "expected_results": ""
- },
- "5": {
- "action": "From the host machine poky build_dir, run \"crosstap root@192.168.7.2 trace_open.stp\".",
- "expected_results": ""
- },
- "6": {
- "action": "In QEMU, try to open some applications, such as open a terminal, input some command, \n\n",
- "expected_results": ""
- },
- "7": {
- "action": "Check the host machine, \"crosstap\" has related output. \n\n\n\nNOTE: Do not build the kernel from shared state(sstate-cache) for this to work.",
- "expected_results": "The script should successfully connect to the qemu machine and there \nshould be presented a list of services(pid, process name) which run on \nthe qemu machine. "
- }
- },
- "summary": "Crosstap_script_check"
- }
- },
- {
- "test": {
- "@alias": "oe-core.scripts.List_all_the_PACKAGECONFIG's_flags",
- "author": [
- {
- "email": "yi.zhao@windriver.com",
- "name": "yi.zhao@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": " Download the poky source and setup the environment. ",
- "expected_results": ""
- },
- "2": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py\" ",
- "expected_results": "In step 2, will list available pkgs which have PACKAGECONFIG flags: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n============================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \n"
- },
- "3": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -f\" ",
- "expected_results": "In step 3, will list available PACKAGECONFIG flags and all affected pkgs \nPACKAGECONFIG FLAG PACKAGE NAMES (or RECIPE NAMES) \n==================================== \n3g connman-1.16 \n \navahi cups-1.6.3 pulseaudio-4.0 \nbeecrypt rpm-5.4.9 rpm-native-5.4.9 \n"
- },
- "4": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -a\" ",
- "expected_results": "In step 4, will list all pkgs and PACKAGECONFIG information: \n================================================== \ngtk+-2.24.18 \n/home/jiahongxu/yocto/poky/meta/recipes-gnome/gtk+/gtk+_2.24.18.bb \nPACKAGECONFIG x11 \nPACKAGECONFIG[x11] --with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS} \nxf86-video-intel-2.21.9 \n/home/jiahongxu/yocto/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.9.bb \nPACKAGECONFIG None \nPACKAGECONFIG[xvmc] --enable-xvmc,--disable-xvmc,libxvmc \nPACKAGECONFIG[sna] --enable-sna,--disable-sna \n"
- },
- "5": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -p\" ",
- "expected_results": "In step 5, will list pkgs with preferred version: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n=================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \nbluez5-5.7 alsa defaultval obex-profiles \n\n\n\n "
- }
- },
- "summary": "List_all_the_PACKAGECONFIG's_flags"
- }
- },
- {
- "test": {
"@alias": "oe-core.bitbake.Test_bitbake_menuconfig",
"author": [
{
@@ -231,4 +155,4 @@
"summary": "test_bitbake_sane_error_for_invalid_layer"
}
}
-] \ No newline at end of file
+]
diff --git a/poky/meta/lib/oeqa/runtime/cases/boot.py b/poky/meta/lib/oeqa/runtime/cases/boot.py
new file mode 100644
index 000000000..2142f400a
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/boot.py
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+from subprocess import Popen, PIPE
+import time
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.core.decorator.oetimeout import OETimeout
+from oeqa.core.decorator.data import skipIfQemu
+
+class BootTest(OERuntimeTestCase):
+
+ @OETimeout(120)
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_reboot(self):
+ output = ''
+ count = 0
+ (status, output) = self.target.run('reboot -h')
+ while count < 5:
+ time.sleep(5)
+ cmd = 'ping -c 1 %s' % self.target.ip
+ proc = Popen(cmd, shell=True, stdout=PIPE)
+ output += proc.communicate()[0].decode('utf-8')
+ if proc.poll() == 0:
+ count += 1
+ else:
+ count = 0
+ msg = ('Expected 5 consecutive, got %d.\n'
+ 'ping output is:\n%s' % (count,output))
+ self.assertEqual(count, 5, msg = msg)
diff --git a/poky/meta/lib/oeqa/runtime/cases/df.py b/poky/meta/lib/oeqa/runtime/cases/df.py
index d8d79f32e..89fd0fb90 100644
--- a/poky/meta/lib/oeqa/runtime/cases/df.py
+++ b/poky/meta/lib/oeqa/runtime/cases/df.py
@@ -11,7 +11,7 @@ class DfTest(OERuntimeTestCase):
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['coreutils', 'busybox'])
def test_df(self):
- cmd = "df / | sed -n '2p' | awk '{print $4}'"
+ cmd = "df -P / | sed -n '2p' | awk '{print $4}'"
(status,output) = self.target.run(cmd)
msg = 'Not enough space on image. Current size is %s' % output
self.assertTrue(int(output)>5120, msg=msg)
diff --git a/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py b/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py
new file mode 100644
index 000000000..2445ffbc9
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py
@@ -0,0 +1,98 @@
+# LTP Stress runtime
+#
+# Copyright (c) 2019 MontaVista Software, LLC
+#
+# SPDX-License-Identifier: MIT
+#
+
+import time
+import datetime
+import pprint
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+from oeqa.core.decorator.data import skipIfQemu
+from oeqa.utils.logparser import LtpParser
+
+class LtpStressBase(OERuntimeTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ cls.ltp_startup()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.ltp_finishup()
+
+ @classmethod
+ def ltp_startup(cls):
+ cls.sections = {}
+ cls.failmsg = ""
+ test_log_dir = os.path.join(cls.td.get('WORKDIR', ''), 'testimage')
+ timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
+
+ cls.ltptest_log_dir_link = os.path.join(test_log_dir, 'ltpstress_log')
+ cls.ltptest_log_dir = '%s.%s' % (cls.ltptest_log_dir_link, timestamp)
+ os.makedirs(cls.ltptest_log_dir)
+
+ cls.tc.target.run("mkdir -p /opt/ltp/results")
+
+ if not hasattr(cls.tc, "extraresults"):
+ cls.tc.extraresults = {}
+ cls.extras = cls.tc.extraresults
+ cls.extras['ltpstressresult.rawlogs'] = {'log': ""}
+
+
+ @classmethod
+ def ltp_finishup(cls):
+ cls.extras['ltpstressresult.sections'] = cls.sections
+
+ # update symlink to ltp_log
+ if os.path.exists(cls.ltptest_log_dir_link):
+ os.remove(cls.ltptest_log_dir_link)
+
+ os.symlink(os.path.basename(cls.ltptest_log_dir), cls.ltptest_log_dir_link)
+
+ if cls.failmsg:
+ cls.fail(cls.failmsg)
+
+class LtpStressTest(LtpStressBase):
+
+ def runltp(self, stress_group):
+ cmd = '/opt/ltp/runltp -f %s -p -q 2>@1 | tee /opt/ltp/results/%s' % (stress_group, stress_group)
+ starttime = time.time()
+ (status, output) = self.target.run(cmd)
+ endtime = time.time()
+ with open(os.path.join(self.ltptest_log_dir, "%s" % stress_group), 'w') as f:
+ f.write(output)
+
+ self.extras['ltpstressresult.rawlogs']['log'] = self.extras['ltpstressresult.rawlogs']['log'] + output
+
+ parser = LtpParser()
+ results, sections = parser.parse(os.path.join(self.ltptest_log_dir, "%s" % stress_group))
+
+ runtime = int(endtime-starttime)
+ sections['duration'] = runtime
+ self.sections[stress_group] = sections
+
+ failed_tests = {}
+ for test in results:
+ result = results[test]
+ testname = ("ltpstressresult." + stress_group + "." + test)
+ self.extras[testname] = {'status': result}
+ if result == 'FAILED':
+ failed_tests[stress_group] = test
+
+ if failed_tests:
+ self.failmsg = self.failmsg + "Failed ptests:\n%s" % pprint.pformat(failed_tests)
+
+ # LTP stress runtime tests
+ #
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ @OEHasPackage(["ltp"])
+ def test_ltp_stress(self):
+ self.tc.target.run("sed -i -r 's/^fork12.*//' /opt/ltp/runtest/crashme")
+ self.runltp('crashme')
diff --git a/poky/meta/lib/oeqa/runtime/cases/opkg.py b/poky/meta/lib/oeqa/runtime/cases/opkg.py
index bb8b6d99d..750706161 100644
--- a/poky/meta/lib/oeqa/runtime/cases/opkg.py
+++ b/poky/meta/lib/oeqa/runtime/cases/opkg.py
@@ -5,7 +5,7 @@
import os
from oeqa.utils.httpserver import HTTPService
from oeqa.runtime.case import OERuntimeTestCase
-from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature
+from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature, skipIfFeature
from oeqa.runtime.decorator.package import OEHasPackage
class OpkgTest(OERuntimeTestCase):
@@ -45,6 +45,8 @@ class OpkgRepoTest(OpkgTest):
'Test requires package-management to be in IMAGE_FEATURES')
@skipIfNotDataVar('IMAGE_PKGTYPE', 'ipk',
'IPK is not the primary package manager')
+ @skipIfFeature('read-only-rootfs',
+ 'Test does not work with read-only-rootfs in IMAGE_FEATURES')
@OEHasPackage(['opkg'])
def test_opkg_install_from_repo(self):
self.setup_source_config_for_package_install()
diff --git a/poky/meta/lib/oeqa/runtime/cases/storage.py b/poky/meta/lib/oeqa/runtime/cases/storage.py
new file mode 100644
index 000000000..166d26b25
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/storage.py
@@ -0,0 +1,149 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import re
+import time
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.core.decorator.data import skipIfQemu
+
+class StorageBase(OERuntimeTestCase):
+ def storage_mount(cls, tmo=1):
+
+ (status, output) = cls.target.run('mkdir -p %s' % cls.mount_point)
+ (status, output) = cls.target.run('mount %s %s' % (cls.device, cls.mount_point))
+ msg = ('Mount failed: %s.' % status)
+ cls.assertFalse(output, msg = msg)
+ time.sleep(tmo)
+ (status, output) = cls.target.run('cat /proc/mounts')
+ match = re.search('%s' % cls.device, output)
+ if match:
+ msg = ('Device %s not mounted.' % cls.device)
+ cls.assertTrue(match, msg = msg)
+
+ (status, output) = cls.target.run('mkdir -p %s' % cls.test_dir)
+
+ (status, output) = cls.target.run('rm -f %s/*' % cls.test_dir)
+ msg = ('Failed to cleanup files @ %s/*' % cls.test_dir)
+ cls.assertFalse(output, msg = msg)
+
+
+ def storage_basic(cls):
+ # create file on device
+ (status, output) = cls.target.run('touch %s/%s' % (cls.test_dir, cls.test_file))
+ msg = ('File %s not created on %s' % (cls.test_file, cls.device))
+ cls.assertFalse(status, msg = msg)
+ # move file
+ (status, output) = cls.target.run('mv %s/%s %s/%s1' %
+ (cls.test_dir, cls.test_file, cls.test_dir, cls.test_file))
+ msg = ('File %s not moved to %s' % (cls.test_file, cls.device))
+ cls.assertFalse(status, msg = msg)
+ # remove file
+ (status, output) = cls.target.run('rm %s/%s1' % (cls.test_dir, cls.test_file))
+ msg = ('File %s not removed on %s' % (cls.test_file, cls.device))
+ cls.assertFalse(status, msg = msg)
+
+ def storage_read(cls):
+ # check if message is in file
+ (status, output) = cls.target.run('cat %s/%s' %
+ (cls.test_dir, cls.test_file))
+
+ match = re.search('%s' % cls.test_msg, output)
+ msg = ('Test message %s not in file %s.' % (cls.test_msg, cls.test_file))
+ cls.assertEqual(status, 0, msg = msg)
+
+ def storage_write(cls):
+ # create test message in file on device
+ (status, output) = cls.target.run('echo "%s" > %s/%s' %
+ (cls.test_msg, cls.test_dir, cls.test_file))
+ msg = ('File %s not create test message on %s' % (cls.test_file, cls.device))
+ cls.assertEqual(status, 0, msg = msg)
+
+ def storage_umount(cls, tmo=1):
+ time.sleep(tmo)
+ (status, output) = cls.target.run('umount %s' % cls.mount_point)
+
+ if status == 32:
+ # already unmounted, should it fail?
+ return
+ else:
+ msg = ('Device not unmount %s' % cls.mount_point)
+ cls.assertEqual(status, 0, msg = msg)
+
+ (status, output) = cls.target.run('cat /proc/mounts')
+ match = re.search('%s' % cls.device, output)
+ if match:
+ msg = ('Device %s still mounted.' % cls.device)
+ cls.assertTrue(match, msg = msg)
+
+
+class UsbTest(StorageBase):
+ '''
+ This is to mimic the usb test previously done in manual bsp-hw.json
+ '''
+ @classmethod
+ def setUpClass(self):
+ self.test_msg = "Hello World - USB"
+ self.mount_point = "/media/usb"
+ self.device = "/dev/sda1"
+ self.test_file = "usb.tst"
+ self.test_dir = os.path.join(self.mount_point, "oeqa")
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_usb_mount(self):
+ self.storage_umount(2)
+ self.storage_mount(5)
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.UsbTest.test_usb_mount'])
+ def test_usb_basic_operations(self):
+ self.storage_basic()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.UsbTest.test_usb_basic_operations'])
+ def test_usb_basic_rw(self):
+ self.storage_write()
+ self.storage_read()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.UsbTest.test_usb_mount'])
+ def test_usb_umount(self):
+ self.storage_umount(2)
+
+
+class MMCTest(StorageBase):
+ '''
+ This is to mimic the usb test previously done in manual bsp-hw.json
+ '''
+ @classmethod
+ def setUpClass(self):
+ self.test_msg = "Hello World - MMC"
+ self.mount_point = "/media/mmc"
+ self.device = "/dev/mmcblk1p1"
+ self.test_file = "mmc.tst"
+ self.test_dir = os.path.join(self.mount_point, "oeqa")
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_mmc_mount(self):
+ self.storage_umount(2)
+ self.storage_mount()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.MMCTest.test_mmc_mount'])
+ def test_mmc_basic_operations(self):
+ self.storage_basic()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.MMCTest.test_mmc_basic_operations'])
+ def test_mmc_basic_rw(self):
+ self.storage_write()
+ self.storage_read()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.MMCTest.test_mmc_mount'])
+ def test_mmc_umount(self):
+ self.storage_umount(2)
diff --git a/poky/meta/lib/oeqa/runtime/cases/systemd.py b/poky/meta/lib/oeqa/runtime/cases/systemd.py
index c11fa49b0..7c44abe8e 100644
--- a/poky/meta/lib/oeqa/runtime/cases/systemd.py
+++ b/poky/meta/lib/oeqa/runtime/cases/systemd.py
@@ -9,7 +9,7 @@ from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.depends import OETestDepends
from oeqa.core.decorator.data import skipIfDataVar, skipIfNotDataVar
from oeqa.runtime.decorator.package import OEHasPackage
-from oeqa.core.decorator.data import skipIfNotFeature
+from oeqa.core.decorator.data import skipIfNotFeature, skipIfFeature
class SystemdTest(OERuntimeTestCase):
@@ -114,12 +114,26 @@ class SystemdServiceTests(SystemdTest):
self.systemctl('is-active', 'avahi-daemon.service', verbose=True)
@OETestDepends(['systemd.SystemdServiceTests.test_systemd_status'])
+ @skipIfFeature('read-only-rootfs',
+ 'Test is only meant to run without read-only-rootfs in IMAGE_FEATURES')
def test_systemd_disable_enable(self):
self.systemctl('disable', 'avahi-daemon.service')
self.systemctl('is-enabled', 'avahi-daemon.service', expected=1)
self.systemctl('enable', 'avahi-daemon.service')
self.systemctl('is-enabled', 'avahi-daemon.service')
+ @OETestDepends(['systemd.SystemdServiceTests.test_systemd_status'])
+ @skipIfNotFeature('read-only-rootfs',
+ 'Test is only meant to run with read-only-rootfs in IMAGE_FEATURES')
+ def test_systemd_disable_enable_ro(self):
+ status = self.target.run('mount -orw,remount /')[0]
+ self.assertTrue(status == 0, msg='Remounting / as r/w failed')
+ try:
+ self.test_systemd_disable_enable()
+ finally:
+ status = self.target.run('mount -oro,remount /')[0]
+ self.assertTrue(status == 0, msg='Remounting / as r/o failed')
+
class SystemdJournalTests(SystemdTest):
@OETestDepends(['systemd.SystemdBasicTests.test_systemd_basic'])
diff --git a/poky/meta/lib/oeqa/runtime/context.py b/poky/meta/lib/oeqa/runtime/context.py
index 77d58eefa..ef738a335 100644
--- a/poky/meta/lib/oeqa/runtime/context.py
+++ b/poky/meta/lib/oeqa/runtime/context.py
@@ -138,7 +138,7 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
def add_controller_list(path):
if not os.path.exists(os.path.join(path, '__init__.py')):
raise OSError('Controllers directory %s exists but is missing __init__.py' % path)
- files = sorted([f for f in os.listdir(path) if f.endswith('.py') and not f.startswith('_')])
+ files = sorted([f for f in os.listdir(path) if f.endswith('.py') and not f.startswith('_') and not f.startswith('.#')])
for f in files:
module = 'oeqa.controllers.' + f[:-3]
if module not in controllerslist:
diff --git a/poky/meta/lib/oeqa/selftest/cases/bblayers.py b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
index 954488dfd..f131d9856 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bblayers.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
@@ -14,21 +14,21 @@ class BitbakeLayers(OESelftestTestCase):
def test_bitbakelayers_showcrossdepends(self):
result = runCmd('bitbake-layers show-cross-depends')
- self.assertTrue('aspell' in result.output, msg = "No dependencies were shown. bitbake-layers show-cross-depends output: %s" % result.output)
+ self.assertIn('aspell', result.output)
def test_bitbakelayers_showlayers(self):
result = runCmd('bitbake-layers show-layers')
- self.assertTrue('meta-selftest' in result.output, msg = "No layers were shown. bitbake-layers show-layers output: %s" % result.output)
+ self.assertIn('meta-selftest', result.output)
def test_bitbakelayers_showappends(self):
recipe = "xcursor-transparent-theme"
bb_file = self.get_recipe_basename(recipe)
result = runCmd('bitbake-layers show-appends')
- self.assertTrue(bb_file in result.output, msg="%s file was not recognised. bitbake-layers show-appends output: %s" % (bb_file, result.output))
+ self.assertIn(bb_file, result.output)
def test_bitbakelayers_showoverlayed(self):
result = runCmd('bitbake-layers show-overlayed')
- self.assertTrue('aspell' in result.output, msg="aspell overlayed recipe was not recognised bitbake-layers show-overlayed %s" % result.output)
+ self.assertIn('aspell', result.output)
def test_bitbakelayers_flatten(self):
recipe = "xcursor-transparent-theme"
diff --git a/poky/meta/lib/oeqa/selftest/cases/bbtests.py b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
index 9461c7ed1..dc423ec43 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bbtests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
@@ -44,7 +44,7 @@ class BitbakeTests(OESelftestTestCase):
find_build_completed = re.search(r"Tasks Summary:.*(\n.*)*NOTE: Test for bb\.event\.BuildCompleted", result.output)
self.assertTrue(find_build_started, msg = "Match failed in:\n%s" % result.output)
self.assertTrue(find_build_completed, msg = "Match failed in:\n%s" % result.output)
- self.assertFalse('Test for bb.event.InvalidEvent' in result.output, msg = "\"Test for bb.event.InvalidEvent\" message found during bitbake process. bitbake output: %s" % result.output)
+ self.assertNotIn('Test for bb.event.InvalidEvent', result.output)
def test_local_sstate(self):
bitbake('m4-native')
@@ -59,7 +59,7 @@ class BitbakeTests(OESelftestTestCase):
def test_bitbake_invalid_target(self):
result = bitbake('asdf', ignore_status=True)
- self.assertTrue("ERROR: Nothing PROVIDES 'asdf'" in result.output, msg = "Though no 'asdf' target exists, bitbake didn't output any err. message. bitbake output: %s" % result.output)
+ self.assertIn("ERROR: Nothing PROVIDES 'asdf'", result.output)
def test_warnings_errors(self):
result = bitbake('-b asdf', ignore_status=True)
@@ -123,7 +123,7 @@ class BitbakeTests(OESelftestTestCase):
for f in ['pn-buildlist', 'task-depends.dot']:
self.addCleanup(os.remove, f)
self.assertTrue('Task dependencies saved to \'task-depends.dot\'' in result.output, msg = "No task dependency \"task-depends.dot\" file was generated for the given task target. bitbake output: %s" % result.output)
- self.assertTrue(recipe in ftools.read_file(os.path.join(self.builddir, 'task-depends.dot')), msg = "No \"%s\" dependency found in task-depends.dot file." % recipe)
+ self.assertIn(recipe, ftools.read_file(os.path.join(self.builddir, 'task-depends.dot')))
def test_image_manifest(self):
bitbake('core-image-minimal')
@@ -147,8 +147,7 @@ INHERIT_remove = \"report-error\"
bitbake('-ccleanall man-db')
self.delete_recipeinc('man-db')
self.assertEqual(result.status, 1, msg="Command succeded when it should have failed. bitbake output: %s" % result.output)
- self.assertTrue('Fetcher failure: Unable to find file file://invalid anywhere. The paths that were searched were:' in result.output, msg = "\"invalid\" file \
-doesn't exist, yet no error message encountered. bitbake output: %s" % result.output)
+ self.assertIn('Fetcher failure: Unable to find file file://invalid anywhere. The paths that were searched were:', result.output)
line = self.getline(result, 'Fetcher failure for URL: \'file://invalid\'. Unable to fetch URL from any source.')
self.assertTrue(line and line.startswith("ERROR:"), msg = "\"invalid\" file \
doesn't exist, yet fetcher didn't report any error. bitbake output: %s" % result.output)
@@ -173,7 +172,7 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
def test_environment(self):
self.write_config("TEST_ENV=\"localconf\"")
result = runCmd('bitbake -e | grep TEST_ENV=')
- self.assertTrue('localconf' in result.output, msg = "bitbake didn't report any value for TEST_ENV variable. To test, run 'bitbake -e | grep TEST_ENV='")
+ self.assertIn('localconf', result.output)
def test_dry_run(self):
result = runCmd('bitbake -n m4-native')
@@ -193,10 +192,10 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
self.track_for_cleanup(preconf)
ftools.write_file(preconf ,"TEST_PREFILE=\"prefile\"")
result = runCmd('bitbake -r conf/prefile.conf -e | grep TEST_PREFILE=')
- self.assertTrue('prefile' in result.output, "Preconfigure file \"prefile.conf\"was not taken into consideration. ")
+ self.assertIn('prefile', result.output)
self.write_config("TEST_PREFILE=\"localconf\"")
result = runCmd('bitbake -r conf/prefile.conf -e | grep TEST_PREFILE=')
- self.assertTrue('localconf' in result.output, "Preconfigure file \"prefile.conf\"was not taken into consideration.")
+ self.assertIn('localconf', result.output)
def test_postfile(self):
postconf = os.path.join(self.builddir, 'conf/postfile.conf')
@@ -204,7 +203,7 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
ftools.write_file(postconf , "TEST_POSTFILE=\"postfile\"")
self.write_config("TEST_POSTFILE=\"localconf\"")
result = runCmd('bitbake -R conf/postfile.conf -e | grep TEST_POSTFILE=')
- self.assertTrue('postfile' in result.output, "Postconfigure file \"postfile.conf\"was not taken into consideration.")
+ self.assertIn('postfile', result.output)
def test_checkuri(self):
result = runCmd('bitbake -c checkuri m4')
diff --git a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
index 6a5378d3f..e91f0bd18 100644
--- a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -143,7 +143,7 @@ class BuildhistoryTests(BuildhistoryBase):
def test_buildhistory_buildtime_pr_backwards(self):
target = 'xcursor-transparent-theme'
- error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds from (.*-r1.* to .*-r0.*)" % target
+ error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds \(from .*-r1.* to .*-r0.*\)" % target
self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index 3a25da203..57e6662e4 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -137,6 +137,7 @@ class DevtoolBase(OESelftestTestCase):
with open(recipefile, 'r') as f:
invar = None
invalue = None
+ inherits = set()
for line in f:
var = None
if invar:
@@ -158,7 +159,7 @@ class DevtoolBase(OESelftestTestCase):
invar = var
continue
elif line.startswith('inherit '):
- inherits = line.split()[1:]
+ inherits.update(line.split()[1:])
if var and var in checkvars:
needvalue = checkvars.pop(var)
@@ -1496,11 +1497,13 @@ class DevtoolUpgradeTests(DevtoolBase):
recipedir = os.path.dirname(oldrecipefile)
olddir = os.path.join(recipedir, recipe + '-' + oldversion)
patchfn = '0001-Add-a-note-line-to-the-quick-reference.patch'
+ backportedpatchfn = 'backported.patch'
self.assertExists(os.path.join(olddir, patchfn), 'Original patch file does not exist')
- return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn
+ self.assertExists(os.path.join(olddir, backportedpatchfn), 'Backported patch file does not exist')
+ return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn
def test_devtool_finish_upgrade_origlayer(self):
- recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade()
+ recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade()
# Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
self.assertIn('/meta-selftest/', recipedir)
# Try finish to the original layer
@@ -1511,14 +1514,23 @@ class DevtoolUpgradeTests(DevtoolBase):
self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish')
self.assertNotExists(oldrecipefile, 'Old recipe file should have been deleted but wasn\'t')
self.assertNotExists(os.path.join(olddir, patchfn), 'Old patch file should have been deleted but wasn\'t')
+ self.assertNotExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should have been deleted but wasn\'t')
newrecipefile = os.path.join(recipedir, '%s_%s.bb' % (recipe, newversion))
newdir = os.path.join(recipedir, recipe + '-' + newversion)
self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t')
self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t')
+ self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was')
self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t')
+ with open(newrecipefile, 'r') as f:
+ newcontent = f.read()
+ self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't")
+ self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was")
+ self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't")
+ self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI")
+
def test_devtool_finish_upgrade_otherlayer(self):
- recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade()
+ recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade()
# Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
self.assertIn('/meta-selftest/', recipedir)
# Try finish to a different layer - should create a bbappend
@@ -1534,10 +1546,18 @@ class DevtoolUpgradeTests(DevtoolBase):
self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish')
self.assertExists(oldrecipefile, 'Old recipe file should not have been deleted')
self.assertExists(os.path.join(olddir, patchfn), 'Old patch file should not have been deleted')
+ self.assertExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should not have been deleted')
newdir = os.path.join(newrecipedir, recipe + '-' + newversion)
self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t')
self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t')
+ self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was')
self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t')
+ with open(newrecipefile, 'r') as f:
+ newcontent = f.read()
+ self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't")
+ self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was")
+ self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't")
+ self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI")
def _setup_test_devtool_finish_modify(self):
# Check preconditions
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index cf2a42aab..ef2eefa86 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -124,7 +124,7 @@ class ImageFeatures(OESelftestTestCase):
# check if result image is sparse
image_stat = os.stat(image_path)
- self.assertTrue(image_stat.st_size > image_stat.st_blocks * 512)
+ self.assertGreater(image_stat.st_size, image_stat.st_blocks * 512)
# check if the resulting gzip is valid
self.assertTrue(runCmd('gzip -t %s' % gzip_path))
diff --git a/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py b/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py
index 424a9e69c..904b5b409 100644
--- a/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py
@@ -73,3 +73,21 @@ INCOMPATIBLE_LICENSE_pn-core-image-minimal = "GPL-3.0 LGPL-3.0"
bitbake('core-image-minimal')
+class NoGPL3InImagesTests(OESelftestTestCase):
+ def test_core_image_minimal(self):
+ self.write_config("""
+INCOMPATIBLE_LICENSE_pn-core-image-minimal = "GPL-3.0 LGPL-3.0"
+""")
+ bitbake('core-image-minimal')
+
+ def test_core_image_full_cmdline(self):
+ self.write_config("""
+INHERIT += "testimage"\n
+INCOMPATIBLE_LICENSE_pn-core-image-full-cmdline = "GPL-3.0 LGPL-3.0"\n
+RDEPENDS_packagegroup-core-full-cmdline-utils_remove = "bash bc coreutils cpio ed findutils gawk grep mc mc-fish mc-helpers mc-helpers-perl sed tar time"\n
+RDEPENDS_packagegroup-core-full-cmdline-dev-utils_remove = "diffutils m4 make patch"\n
+RDEPENDS_packagegroup-core-full-cmdline-multiuser_remove = "gzip"\n
+""")
+ bitbake('core-image-full-cmdline')
+ bitbake('-c testimage core-image-full-cmdline')
+
diff --git a/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/poky/meta/lib/oeqa/selftest/cases/oescripts.py
index c169885cf..41cbe0480 100644
--- a/poky/meta/lib/oeqa/selftest/cases/oescripts.py
+++ b/poky/meta/lib/oeqa/selftest/cases/oescripts.py
@@ -65,6 +65,7 @@ class OEPybootchartguyTests(OEScriptTests):
runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f pdf' % (self.scripts_dir, self.buildstats, self.tmpdir))
self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf"))
+
class OEGitproxyTests(OESelftestTestCase):
scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts')
@@ -121,3 +122,67 @@ class OEGitproxyTests(OESelftestTestCase):
if dash is None:
self.skipTest("No \"dash\" found on test system.")
self.run_oegitproxy(custom_shell=dash)
+
+class OeRunNativeTest(OESelftestTestCase):
+ def test_oe_run_native(self):
+ bitbake("qemu-helper-native -c addto_recipe_sysroot")
+ result = runCmd("oe-run-native qemu-helper-native tunctl -h")
+ self.assertIn("Delete: tunctl -d device-name [-f tun-clone-device]", result.output)
+
+class OEListPackageconfigTests(OEScriptTests):
+ #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags
+ def check_endlines(self, results, expected_endlines):
+ for line in results.output.splitlines():
+ for el in expected_endlines:
+ if line == el:
+ expected_endlines.remove(el)
+ break
+
+ if expected_endlines:
+ self.fail('Missing expected listings:\n %s' % '\n '.join(expected_endlines))
+
+
+ #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags
+ def test_packageconfig_flags_help(self):
+ runCmd('%s/contrib/list-packageconfig-flags.py -h' % self.scripts_dir)
+
+ def test_packageconfig_flags_default(self):
+ results = runCmd('%s/contrib/list-packageconfig-flags.py' % self.scripts_dir)
+ expected_endlines = []
+ expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS")
+ expected_endlines.append("pinentry gtk2 libcap ncurses qt secret")
+ expected_endlines.append("tar acl")
+
+ self.check_endlines(results, expected_endlines)
+
+
+ def test_packageconfig_flags_option_flags(self):
+ results = runCmd('%s/contrib/list-packageconfig-flags.py -f' % self.scripts_dir)
+ expected_endlines = []
+ expected_endlines.append("PACKAGECONFIG FLAG RECIPE NAMES")
+ expected_endlines.append("qt nativesdk-pinentry pinentry pinentry-native")
+ expected_endlines.append("secret nativesdk-pinentry pinentry pinentry-native")
+
+ self.check_endlines(results, expected_endlines)
+
+ def test_packageconfig_flags_option_all(self):
+ results = runCmd('%s/contrib/list-packageconfig-flags.py -a' % self.scripts_dir)
+ expected_endlines = []
+ expected_endlines.append("pinentry-1.1.0")
+ expected_endlines.append("PACKAGECONFIG ncurses libcap")
+ expected_endlines.append("PACKAGECONFIG[qt] --enable-pinentry-qt, --disable-pinentry-qt, qtbase-native qtbase")
+ expected_endlines.append("PACKAGECONFIG[gtk2] --enable-pinentry-gtk2, --disable-pinentry-gtk2, gtk+ glib-2.0")
+ expected_endlines.append("PACKAGECONFIG[libcap] --with-libcap, --without-libcap, libcap")
+ expected_endlines.append("PACKAGECONFIG[ncurses] --enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses")
+ expected_endlines.append("PACKAGECONFIG[secret] --enable-libsecret, --disable-libsecret, libsecret")
+
+ self.check_endlines(results, expected_endlines)
+
+ def test_packageconfig_flags_optiins_preferred_only(self):
+ results = runCmd('%s/contrib/list-packageconfig-flags.py -p' % self.scripts_dir)
+ expected_endlines = []
+ expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS")
+ expected_endlines.append("pinentry gtk2 libcap ncurses qt secret")
+
+ self.check_endlines(results, expected_endlines)
+
diff --git a/poky/meta/lib/oeqa/selftest/cases/recipetool.py b/poky/meta/lib/oeqa/selftest/cases/recipetool.py
index 1c701a40b..c1562c63b 100644
--- a/poky/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -685,7 +685,9 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
self._test_appendsrcfile(testrecipe, filepath, srcdir=subdir)
bitbake('%s:do_unpack' % testrecipe)
- self.assertEqual(open(self.testfile, 'r').read(), open(os.path.join(srcdir, filepath), 'r').read())
+ with open(self.testfile, 'r') as testfile:
+ with open(os.path.join(srcdir, filepath), 'r') as makefilein:
+ self.assertEqual(testfile.read(), makefilein.read())
def test_recipetool_appendsrcfiles_basic(self, destdir=None):
newfiles = [self.testfile]
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index c235c139e..a9110565a 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -5,11 +5,16 @@
from oeqa.selftest.case import OESelftestTestCase
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+import bb.utils
import functools
import multiprocessing
import textwrap
import json
import unittest
+import tempfile
+import shutil
+import stat
+import os
MISSING = 'MISSING'
DIFFERENT = 'DIFFERENT'
@@ -74,6 +79,7 @@ def compare_file(reference, test, diffutils_sysroot):
class ReproducibleTests(OESelftestTestCase):
package_classes = ['deb', 'ipk']
images = ['core-image-minimal']
+ save_results = False
def setUpLocal(self):
super().setUpLocal()
@@ -117,9 +123,18 @@ class ReproducibleTests(OESelftestTestCase):
self.extrasresults['reproducible']['files'].setdefault(package_class, {})[name] = [
{'reference': p.reference, 'test': p.test} for p in packages]
+ def copy_file(self, source, dest):
+ bb.utils.mkdirhier(os.path.dirname(dest))
+ shutil.copyfile(source, dest)
+
def test_reproducible_builds(self):
capture_vars = ['DEPLOY_DIR_' + c.upper() for c in self.package_classes]
+ if self.save_results:
+ save_dir = tempfile.mkdtemp(prefix='oe-reproducible-')
+ os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
+ self.logger.info('Non-reproducible packages will be copied to %s', save_dir)
+
# Build native utilities
self.write_config('')
bitbake("diffutils-native -c addto_recipe_sysroot")
@@ -176,6 +191,11 @@ class ReproducibleTests(OESelftestTestCase):
self.write_package_list(package_class, 'different', result.different)
self.write_package_list(package_class, 'same', result.same)
+ if self.save_results:
+ for d in result.different:
+ self.copy_file(d.reference, '/'.join([save_dir, d.reference]))
+ self.copy_file(d.test, '/'.join([save_dir, d.test]))
+
if result.missing or result.different:
self.fail("The following %s packages are missing or different: %s" %
(c, ' '.join(r.test for r in (result.missing + result.different))))
diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
index 3f212bd0e..4b56e5bec 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -179,6 +179,8 @@ class TestImage(OESelftestTestCase):
distro = oe.lsb.distro_identifier()
if distro and distro == 'debian-8':
self.skipTest('virgl isn\'t working with Debian 8')
+ if distro and distro == 'centos-7':
+ self.skipTest('virgl isn\'t working with Centos 7')
qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-system-native')
features = 'INHERIT += "testimage"\n'
@@ -320,3 +322,80 @@ class Postinst(OESelftestTestCase):
self.assertFalse(os.path.isfile(os.path.join(hosttestdir, "rootfs-after-failure")),
"rootfs-after-failure file was created")
+class SystemTap(OESelftestTestCase):
+ """
+ Summary: The purpose of this test case is to verify native crosstap
+ works while talking to a target.
+ Expected: The script should successfully connect to the qemu machine
+ and run some systemtap examples on a qemu machine.
+ """
+
+ @classmethod
+ def setUpClass(cls):
+ super(SystemTap, cls).setUpClass()
+ cls.image = "core-image-minimal"
+
+ def default_config(self):
+ return """
+# These aren't the actual IP addresses but testexport class needs something defined
+TEST_SERVER_IP = "192.168.7.1"
+TEST_TARGET_IP = "192.168.7.2"
+
+EXTRA_IMAGE_FEATURES += "tools-profile dbg-pkgs"
+IMAGE_FEATURES_append = " ssh-server-dropbear"
+
+# enables kernel debug symbols
+KERNEL_EXTRA_FEATURES_append = " features/debug/debug-kernel.scc"
+KERNEL_EXTRA_FEATURES_append = " features/systemtap/systemtap.scc"
+
+# add systemtap run-time into target image if it is not there yet
+IMAGE_INSTALL_append = " systemtap"
+"""
+
+ def test_crosstap_helloworld(self):
+ self.write_config(self.default_config())
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/general/helloworld.stp " % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap helloworld returned a non 0 status:%s' % result.output)
+
+ def test_crosstap_pstree(self):
+ self.write_config(self.default_config())
+
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/process/pstree.stp" % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap pstree returned a non 0 status:%s' % result.output)
+
+ def test_crosstap_syscalls_by_proc(self):
+ self.write_config(self.default_config())
+
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_proc.stp" % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap syscalls_by_proc returned a non 0 status:%s' % result.output)
+
+ def test_crosstap_syscalls_by_pid(self):
+ self.write_config(self.default_config())
+
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_pid.stp" % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap syscalls_by_pid returned a non 0 status:%s' % result.output)
+
diff --git a/poky/meta/lib/oeqa/selftest/cases/signing.py b/poky/meta/lib/oeqa/selftest/cases/signing.py
index 5c4e01b2c..93b15ae68 100644
--- a/poky/meta/lib/oeqa/selftest/cases/signing.py
+++ b/poky/meta/lib/oeqa/selftest/cases/signing.py
@@ -3,7 +3,7 @@
#
from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, create_temp_layer
import os
import oe
import glob
@@ -185,8 +185,6 @@ class LockedSignatures(OESelftestTestCase):
test_recipe = 'ed'
locked_sigs_file = 'locked-sigs.inc'
- self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file))
-
bitbake(test_recipe)
# Generate locked sigs include file
bitbake('-S none %s' % test_recipe)
@@ -198,16 +196,23 @@ class LockedSignatures(OESelftestTestCase):
# Build a locked recipe
bitbake(test_recipe)
+ templayerdir = tempfile.mkdtemp(prefix='signingqa')
+ create_temp_layer(templayerdir, 'selftestsigning')
+ runCmd('bitbake-layers add-layer %s' % templayerdir)
+
# Make a change that should cause the locked task signature to change
# Use uuid so hash equivalance server isn't triggered
recipe_append_file = test_recipe + '_' + get_bb_var('PV', test_recipe) + '.bbappend'
- recipe_append_path = os.path.join(self.testlayer_path, 'recipes-test', test_recipe, recipe_append_file)
+ recipe_append_path = os.path.join(templayerdir, 'recipes-test', test_recipe, recipe_append_file)
feature = 'SUMMARY_${PN} = "test locked signature%s"\n' % uuid.uuid4()
- os.mkdir(os.path.join(self.testlayer_path, 'recipes-test', test_recipe))
+ os.mkdir(os.path.join(templayerdir, 'recipes-test'))
+ os.mkdir(os.path.join(templayerdir, 'recipes-test', test_recipe))
write_file(recipe_append_path, feature)
- self.add_command_to_tearDown('rm -rf %s' % os.path.join(self.testlayer_path, 'recipes-test', test_recipe))
+ self.add_command_to_tearDown('bitbake-layers remove-layer %s' % templayerdir)
+ self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file))
+ self.add_command_to_tearDown('rm -rf %s' % templayerdir)
# Build the recipe again
ret = bitbake(test_recipe)
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index 2867cb78a..6757a0ec6 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -255,6 +255,7 @@ BUILD_ARCH = "x86_64"
BUILD_OS = "linux"
SDKMACHINE = "x86_64"
PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none")
@@ -266,6 +267,7 @@ BUILD_ARCH = "i686"
BUILD_OS = "linux"
SDKMACHINE = "i686"
PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("core-image-sato -S none")
@@ -298,6 +300,7 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
NATIVELSBSTRING = \"DistroA\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none")
@@ -305,6 +308,7 @@ NATIVELSBSTRING = \"DistroA\"
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
NATIVELSBSTRING = \"DistroB\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("core-image-sato -S none")
@@ -332,11 +336,13 @@ NATIVELSBSTRING = \"DistroB\"
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86-64\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
configB = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemuarm\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
self.sstate_allarch_samesigs(configA, configB)
@@ -352,6 +358,7 @@ MACHINE = \"qemux86-64\"
require conf/multilib.conf
MULTILIBS = \"multilib:lib32\"
DEFAULTTUNE_virtclass-multilib-lib32 = \"x86\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
configB = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
@@ -359,6 +366,7 @@ TCLIBCAPPEND = \"\"
MACHINE = \"qemuarm\"
require conf/multilib.conf
MULTILIBS = \"\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
self.sstate_allarch_samesigs(configA, configB)
@@ -404,6 +412,7 @@ MACHINE = \"qemux86\"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("world meta-toolchain -S none")
@@ -414,6 +423,7 @@ MACHINE = \"qemux86copy\"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("world meta-toolchain -S none")
@@ -452,6 +462,7 @@ TIME = "111111"
DATE = "20161111"
INHERIT_remove = "buildstats-summary buildhistory uninative"
http_proxy = ""
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
self.track_for_cleanup(self.topdir + "/download1")
@@ -468,6 +479,7 @@ DATE = "20161212"
INHERIT_remove = "uninative"
INHERIT += "buildstats-summary buildhistory"
http_proxy = "http://example.com/"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
self.track_for_cleanup(self.topdir + "/download2")
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index ea7530040..0c03b4b02 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -1025,3 +1025,10 @@ class Wic2(WicTestCase):
# check if it's removed
result = runCmd("wic ls %s:2/etc/ -n %s" % (images[0], sysroot))
self.assertTrue('fstab' not in [line.split()[-1] for line in result.output.split('\n') if line])
+
+ # remove non-empty directory
+ runCmd("wic rm -r %s:2/etc/ -n %s" % (images[0], sysroot))
+
+ # check if it's removed
+ result = runCmd("wic ls %s:2/ -n %s" % (images[0], sysroot))
+ self.assertTrue('etc' not in [line.split()[-1] for line in result.output.split('\n') if line])
diff --git a/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch b/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
index a9806cfdf..8a0138bbe 100644
--- a/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
+++ b/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
@@ -19,25 +19,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
[Rebased for 3.0.8]
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- gnuefi/Makefile | 3 ++-
- lib/Makefile | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-diff --git a/gnuefi/Makefile b/gnuefi/Makefile
-index 2a61699..89b560a 100644
---- a/gnuefi/Makefile
-+++ b/gnuefi/Makefile
-@@ -54,7 +54,8 @@ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a
-
- all: $(TARGETS)
-
--libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS))
-+libgnuefi.a: $(OBJS)
-+ $(AR) $(ARFLAGS) $@ $(OBJS)
-
- clean:
- rm -f $(TARGETS) *~ *.o $(OBJS)
diff --git a/lib/Makefile b/lib/Makefile
index 0e6410d..048751a 100644
--- a/lib/Makefile
diff --git a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb
index 6d4c30335..9954d7f57 100644
--- a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb
+++ b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb
@@ -18,8 +18,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
file://gnu-efi-3.0.9-fix-clang-build.patch \
"
-SRC_URI[md5sum] = "32af17b917545a693e549af2439c4a99"
-SRC_URI[sha256sum] = "6715ea7eae1c7e4fc5041034bd3f107ec2911962ed284a081e491646b12277f0"
+SRC_URI[md5sum] = "21148bbcccec385a9bfdf5f678959577"
+SRC_URI[sha256sum] = "f28da792a2532e91e18e0101468811739a22cde9eee5eacfd0efb9bf3a61d6b9"
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
COMPATIBLE_HOST_armv4 = 'null'
diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.4.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.5.bb
index b03043668..759bbbfda 100644
--- a/poky/meta/recipes-bsp/opensbi/opensbi_0.4.bb
+++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.5.bb
@@ -8,7 +8,7 @@ require opensbi-payloads.inc
inherit autotools-brokensep deploy
-SRCREV = "ce228ee0919deb9957192d723eecc8aaae2697c6"
+SRCREV = "be92da280d87c38a2e0adc5d3f43bab7b5468f09"
SRC_URI = "git://github.com/riscv/opensbi.git \
file://0001-Makefile-Don-t-specify-mabi-or-march.patch \
"
diff --git a/poky/meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch b/poky/meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch
deleted file mode 100644
index 1a5d1eb99..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 39a759494f734c4cdc3e2b919671bfb3134b41ae Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:03 -0700
-Subject: [PATCH 1/9] CVE-2019-13103: disk: stop infinite recursion in DOS
- Partitions
-
-part_get_info_extended and print_partition_extended can recurse infinitely
-while parsing a self-referential filesystem or one with a silly number of
-extended partitions. This patch adds a limit to the number of recursive
-partitions.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=232e2f4fd9a24bf08215ddc8c53ccadffc841fb5]
-
-CVE: CVE-2019-13103
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- disk/part_dos.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/disk/part_dos.c b/disk/part_dos.c
-index 936cee0d36..aae9d95906 100644
---- a/disk/part_dos.c
-+++ b/disk/part_dos.c
-@@ -23,6 +23,10 @@
-
- #define DOS_PART_DEFAULT_SECTOR 512
-
-+/* should this be configurable? It looks like it's not very common at all
-+ * to use large numbers of partitions */
-+#define MAX_EXT_PARTS 256
-+
- /* Convert char[4] in little endian format to the host format integer
- */
- static inline unsigned int le32_to_int(unsigned char *le32)
-@@ -126,6 +130,13 @@ static void print_partition_extended(struct blk_desc *dev_desc,
- dos_partition_t *pt;
- int i;
-
-+ /* set a maximum recursion level */
-+ if (part_num > MAX_EXT_PARTS)
-+ {
-+ printf("** Nested DOS partitions detected, stopping **\n");
-+ return;
-+ }
-+
- if (blk_dread(dev_desc, ext_part_sector, 1, (ulong *)buffer) != 1) {
- printf ("** Can't read partition table on %d:" LBAFU " **\n",
- dev_desc->devnum, ext_part_sector);
-@@ -191,6 +202,13 @@ static int part_get_info_extended(struct blk_desc *dev_desc,
- int i;
- int dos_type;
-
-+ /* set a maximum recursion level */
-+ if (part_num > MAX_EXT_PARTS)
-+ {
-+ printf("** Nested DOS partitions detected, stopping **\n");
-+ return -1;
-+ }
-+
- if (blk_dread(dev_desc, ext_part_sector, 1, (ulong *)buffer) != 1) {
- printf ("** Can't read partition table on %d:" LBAFU " **\n",
- dev_desc->devnum, ext_part_sector);
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0001-include-env.h-Ensure-ulong-is-defined.patch b/poky/meta/recipes-bsp/u-boot/files/0001-include-env.h-Ensure-ulong-is-defined.patch
new file mode 100644
index 000000000..b9118164d
--- /dev/null
+++ b/poky/meta/recipes-bsp/u-boot/files/0001-include-env.h-Ensure-ulong-is-defined.patch
@@ -0,0 +1,31 @@
+From 0565a080d153d5baaaacfeb5045a832e126f4f9e Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 14 Oct 2019 17:37:30 -0700
+Subject: [PATCH] include/env.h: Ensure ulong is defined
+
+To fix these failures when building with musl:
+ include/env.h:166:1: error: unknown type name 'ulong'; did you mean 'long'?
+ensure that ulong is defined.
+
+Upstream-Status: Pending
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ include/env.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/env.h b/include/env.h
+index b72239f6a5..5ca49a3456 100644
+--- a/include/env.h
++++ b/include/env.h
+@@ -13,6 +13,8 @@
+ #include <stdbool.h>
+ #include <linux/types.h>
+
++typedef unsigned long ulong;
++
+ struct environment_s;
+
+ /* Value for environment validity */
+--
+2.23.0
+
diff --git a/poky/meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch b/poky/meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch
deleted file mode 100644
index de122b27d..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 1d36545e43003f4b1bb3a303a3b468abd482fa2f Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:05 -0700
-Subject: [PATCH 2/9] CVE-2019-13104: ext4: check for underflow in
- ext4fs_read_file
-
-in ext4fs_read_file, it is possible for a broken/malicious file
-system to cause a memcpy of a negative number of bytes, which
-overflows all memory. This patch fixes the issue by checking for
-a negative length.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=878269dbe74229005dd7f27aca66c554e31dad8e]
-
-CVE: CVE-2019-13104
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- fs/ext4/ext4fs.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
-index 26db677a1f..c8c8655ed8 100644
---- a/fs/ext4/ext4fs.c
-+++ b/fs/ext4/ext4fs.c
-@@ -66,13 +66,15 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
-
- ext_cache_init(&cache);
-
-- if (blocksize <= 0)
-- return -1;
--
- /* Adjust len so it we can't read past the end of the file. */
- if (len + pos > filesize)
- len = (filesize - pos);
-
-+ if (blocksize <= 0 || len <= 0) {
-+ ext_cache_fini(&cache);
-+ return -1;
-+ }
-+
- blockcnt = lldiv(((len + pos) + blocksize - 1), blocksize);
-
- for (i = lldiv(pos, blocksize); i < blockcnt; i++) {
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch b/poky/meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch
deleted file mode 100644
index f525147e5..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4e937d0de669ee69cf41c20494cbf66c339c3174 Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:04 -0700
-Subject: [PATCH 3/9] CVE-2019-13105: ext4: fix double-free in ext4_cache_read
-
-ext_cache_read doesn't null cache->buf, after freeing, which results
-in a later function double-freeing it. This patch fixes
-ext_cache_read to call ext_cache_fini instead of free.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=6e5a79de658cb1c8012c86e0837379aa6eabd024]
-
-CVE: CVE-2019-13105
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- fs/ext4/ext4fs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
-index c8c8655ed8..e2b740cac4 100644
---- a/fs/ext4/ext4fs.c
-+++ b/fs/ext4/ext4fs.c
-@@ -288,7 +288,7 @@ int ext_cache_read(struct ext_block_cache *cache, lbaint_t block, int size)
- if (!cache->buf)
- return 0;
- if (!ext4fs_devread(block, 0, size, cache->buf)) {
-- free(cache->buf);
-+ ext_cache_fini(cache);
- return 0;
- }
- cache->block = block;
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch b/poky/meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch
deleted file mode 100644
index 8e1a1a994..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 1307dabf5422372483f840dda3963f9dbd2e8e6f Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:07 -0700
-Subject: [PATCH 4/9] CVE-2019-13106: ext4: fix out-of-bounds memset
-
-In ext4fs_read_file in ext4fs.c, a memset can overwrite the bounds of
-the destination memory region. This patch adds a check to disallow
-this.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=e205896c5383c938274262524adceb2775fb03ba]
-
-CVE: CVE-2019-13106
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- fs/ext4/ext4fs.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
-index e2b740cac4..37b31d9f0f 100644
---- a/fs/ext4/ext4fs.c
-+++ b/fs/ext4/ext4fs.c
-@@ -61,6 +61,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
- lbaint_t delayed_skipfirst = 0;
- lbaint_t delayed_next = 0;
- char *delayed_buf = NULL;
-+ char *start_buf = buf;
- short status;
- struct ext_block_cache cache;
-
-@@ -139,6 +140,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
- }
- } else {
- int n;
-+ int n_left;
- if (previous_block_number != -1) {
- /* spill */
- status = ext4fs_devread(delayed_start,
-@@ -153,8 +155,9 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
- }
- /* Zero no more than `len' bytes. */
- n = blocksize - skipfirst;
-- if (n > len)
-- n = len;
-+ n_left = len - ( buf - start_buf );
-+ if (n > n_left)
-+ n = n_left;
- memset(buf, 0, n);
- }
- buf += blocksize - skipfirst;
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch b/poky/meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch
deleted file mode 100644
index a19545a2d..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e8e602f4a4b2aacfb3da32bb8a838be15ea70e7b Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:33 +0000
-Subject: [PATCH 5/9] CVE: net: fix unbounded memcpy of UDP packet
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to udp_len to fix unbounded memcpy for
-CVE-2019-14192, CVE-2019-14193 and CVE-2019-14199.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=fe7288069d2e6659117049f7d27e261b550bb725]
-
-CVE: CVE-2019-14192, CVE-2019-14193 and CVE-2019-14199
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/net.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/net.c b/net/net.c
-index 58b0417cbe..38105f1142 100644
---- a/net/net.c
-+++ b/net/net.c
-@@ -1252,6 +1252,9 @@ void net_process_received_packet(uchar *in_packet, int len)
- return;
- }
-
-+ if (ntohs(ip->udp_len) < UDP_HDR_SIZE || ntohs(ip->udp_len) > ntohs(ip->ip_len))
-+ return;
-+
- debug_cond(DEBUG_DEV_PKT,
- "received UDP (to=%pI4, from=%pI4, len=%d)\n",
- &dst_ip, &src_ip, len);
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch b/poky/meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch
deleted file mode 100644
index 04a09e46d..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 261658ddaf24bb35edd477cf09ec055569fd9894 Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:40 +0000
-Subject: [PATCH 6/9] CVE: nfs: fix stack-based buffer overflow in some
- nfs_handler reply helper functions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to nfs_handler to fix buffer overflow for CVE-2019-14197,
-CVE-2019-14200, CVE-2019-14201, CVE-2019-14202, CVE-2019-14203 and CVE-2019-14204.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=741a8a08ebe5bc3ccfe3cde6c2b44ee53891af21]
-
-CVE: CVE-2019-14197, CVE-2019-14200, CVE-2019-14201, CVE-2019-14202,
- CVE-2019-14203 and CVE-2019-14204
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index d6a7f8e827..b7cf3b3a18 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -732,6 +732,9 @@ static void nfs_handler(uchar *pkt, unsigned dest, struct in_addr sip,
-
- debug("%s\n", __func__);
-
-+ if (len > sizeof(struct rpc_t))
-+ return;
-+
- if (dest != nfs_our_port)
- return;
-
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch b/poky/meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch
deleted file mode 100644
index b3e3b72eb..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From fb6dc193bf2685b7574b218f7ca558aa54659e11 Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:48 +0000
-Subject: [PATCH 7/9] CVE-2019-14194/CVE-2019-14198: nfs: fix unbounded memcpy
- with a failed length check at nfs_read_reply
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to rpc_pkt.u.reply.data at nfs_read_reply.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=aa207cf3a6d68f39d64cd29057a4fb63943e9078]
-
-CVE: CVE-2019-14194 and CVE-2019-14198
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index b7cf3b3a18..11941fad1a 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -701,6 +701,9 @@ static int nfs_read_reply(uchar *pkt, unsigned len)
- &(rpc_pkt.u.reply.data[4 + nfsv3_data_offset]);
- }
-
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + rlen) > len)
-+ return -9999;
-+
- if (store_block(data_ptr, nfs_offset, rlen))
- return -9999;
-
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch b/poky/meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch
deleted file mode 100644
index bf9fb0ef5..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 2236973b8a173ff54ae1ebf8ec2300928e69bd1b Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:54 +0000
-Subject: [PATCH 8/9] CVE-2019-14195: nfs: fix unbounded memcpy with
- unvalidated length at nfs_readlink_reply
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to rpc_pkt.u.reply.data at nfs_readlink_reply.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=cf3a4f1e86ecdd24f87b615051b49d8e1968c230]
-
-CVE: CVE-2019-14195
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index 11941fad1a..915acd95cf 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -634,6 +634,9 @@ static int nfs_readlink_reply(uchar *pkt, unsigned len)
- /* new path length */
- rlen = ntohl(rpc_pkt.u.reply.data[1 + nfsv3_data_offset]);
-
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + rlen) > len)
-+ return -NFS_RPC_DROP;
-+
- if (*((char *)&(rpc_pkt.u.reply.data[2 + nfsv3_data_offset])) != '/') {
- int pathlen;
-
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch b/poky/meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch
deleted file mode 100644
index f06e02529..000000000
--- a/poky/meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 74c468caa95c86cdb12c4b8073e154c435ac0bf7 Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:48:02 +0000
-Subject: [PATCH 9/9] CVE-2019-14196: nfs: fix unbounded memcpy with a failed
- length check at nfs_lookup_reply
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to rpc_pkt.u.reply.data at nfs_lookup_reply.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=5d14ee4e53a81055d34ba280cb8fd90330f22a96]
-
-CVE: CVE-2019-14196
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index 915acd95cf..89952aeb66 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -566,11 +566,15 @@ static int nfs_lookup_reply(uchar *pkt, unsigned len)
- }
-
- if (supported_nfs_versions & NFSV2_FLAG) {
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + NFS_FHSIZE) > len)
-+ return -NFS_RPC_DROP;
- memcpy(filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);
- } else { /* NFSV3_FLAG */
- filefh3_length = ntohl(rpc_pkt.u.reply.data[1]);
- if (filefh3_length > NFS3_FHSIZE)
- filefh3_length = NFS3_FHSIZE;
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + filefh3_length) > len)
-+ return -NFS_RPC_DROP;
- memcpy(filefh, rpc_pkt.u.reply.data + 2, filefh3_length);
- }
-
---
-2.17.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
index f63dfa3b7..c3e458e92 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,18 +12,9 @@ PE = "1"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
-SRCREV = "e5aee22e4be75e75a854ab64503fc80598bc2004"
+SRCREV = "61ba1244b548463dbfb3c5285b6b22e7c772c5bd"
SRC_URI = "git://git.denx.de/u-boot.git \
- file://0001-CVE-2019-13103.patch \
- file://0002-CVE-2019-13104.patch \
- file://0003-CVE-2019-13105.patch \
- file://0004-CVE-2019-13106.patch \
- file://0005-CVE-2019-14192-14193-14199.patch \
- file://0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch \
- file://0007-CVE-2019-14194-14198.patch \
- file://0008-CVE-2019-14195.patch \
- file://0009-CVE-2019-14196.patch \
-"
+ "
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.07.bb b/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.10.bb
index b5ce56847..04321b7b6 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.07.bb
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.10.bb
@@ -3,6 +3,8 @@ require u-boot-common.inc
SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
DEPENDS += "mtd-utils"
+SRC_URI += "file://0001-include-env.h-Ensure-ulong-is-defined.patch"
+
INSANE_SKIP_${PN} = "already-stripped"
EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1'
EXTRA_OEMAKE_class-cross = 'HOSTCC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.07.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.10.bb
index bede984ef..bede984ef 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.07.bb
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2019.10.bb
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2019.07.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2019.10.bb
index 02d67c0db..02d67c0db 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot_2019.07.bb
+++ b/poky/meta/recipes-bsp/u-boot/u-boot_2019.10.bb
diff --git a/poky/meta/recipes-bsp/usbutils/usbutils_012.bb b/poky/meta/recipes-bsp/usbutils/usbutils_012.bb
index 0213e7af6..b670fa4ab 100644
--- a/poky/meta/recipes-bsp/usbutils/usbutils_012.bb
+++ b/poky/meta/recipes-bsp/usbutils/usbutils_012.bb
@@ -15,7 +15,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/usb/usbutils/usbutils-${PV}.tar.gz \
SRC_URI[md5sum] = "7484445cbcf04b3eacac892fe58f8d9f"
SRC_URI[sha256sum] = "ae2e10aad530d95839b6f4d46cd41715eae6f0f1789310d793e9be21b3e7ae20"
-inherit autotools pkgconfig distro_features_check update-alternatives
+inherit autotools pkgconfig features_check update-alternatives
ALTERNATIVE_${PN} = "lsusb"
ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb b/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb
index 1c6e46aab..1510a0ef4 100644
--- a/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb
+++ b/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb
@@ -1,6 +1,6 @@
require avahi.inc
-inherit distro_features_check
+inherit features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
DEPENDS += "avahi"
diff --git a/poky/meta/recipes-connectivity/bind/bind/0001-bind-fix-CVE-2019-6471.patch b/poky/meta/recipes-connectivity/bind/bind/0001-bind-fix-CVE-2019-6471.patch
new file mode 100644
index 000000000..2fed99e1b
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0001-bind-fix-CVE-2019-6471.patch
@@ -0,0 +1,64 @@
+Backport patch to fix CVE-2019-6471.
+
+Ref:
+https://security-tracker.debian.org/tracker/CVE-2019-6471
+
+CVE: CVE-2019-6471
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/3a9c7bb]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 3a9c7bb80d4a609b86427406d9dd783199920b5b Mon Sep 17 00:00:00 2001
+From: Mark Andrews <marka@isc.org>
+Date: Tue, 19 Mar 2019 14:14:21 +1100
+Subject: [PATCH] move item_out test inside lock in dns_dispatch_getnext()
+
+(cherry picked from commit 60c42f849d520564ed42e5ed0ba46b4b69c07712)
+---
+ lib/dns/dispatch.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c
+index 408beda367..3278db4a07 100644
+--- a/lib/dns/dispatch.c
++++ b/lib/dns/dispatch.c
+@@ -134,7 +134,7 @@ struct dns_dispentry {
+ isc_task_t *task;
+ isc_taskaction_t action;
+ void *arg;
+- bool item_out;
++ bool item_out;
+ dispsocket_t *dispsocket;
+ ISC_LIST(dns_dispatchevent_t) items;
+ ISC_LINK(dns_dispentry_t) link;
+@@ -3422,13 +3422,14 @@ dns_dispatch_getnext(dns_dispentry_t *resp, dns_dispatchevent_t **sockevent) {
+ disp = resp->disp;
+ REQUIRE(VALID_DISPATCH(disp));
+
+- REQUIRE(resp->item_out == true);
+- resp->item_out = false;
+-
+ ev = *sockevent;
+ *sockevent = NULL;
+
+ LOCK(&disp->lock);
++
++ REQUIRE(resp->item_out == true);
++ resp->item_out = false;
++
+ if (ev->buffer.base != NULL)
+ free_buffer(disp, ev->buffer.base, ev->buffer.length);
+ free_devent(disp, ev);
+@@ -3573,6 +3574,9 @@ dns_dispatch_removeresponse(dns_dispentry_t **resp,
+ isc_task_send(disp->task[0], &disp->ctlevent);
+ }
+
++/*
++ * disp must be locked.
++ */
+ static void
+ do_cancel(dns_dispatch_t *disp) {
+ dns_dispatchevent_t *ev;
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind/0001-fix-enforcement-of-tcp-clients-v1.patch b/poky/meta/recipes-connectivity/bind/bind/0001-fix-enforcement-of-tcp-clients-v1.patch
new file mode 100644
index 000000000..48ae125f8
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0001-fix-enforcement-of-tcp-clients-v1.patch
@@ -0,0 +1,60 @@
+Backport patch to fix CVE-2018-5743.
+
+Ref:
+https://security-tracker.debian.org/tracker/CVE-2018-5743
+
+CVE: CVE-2018-5743
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/ec2d50d]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From ec2d50da8d81814640e28593d912f4b96c7efece Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Witold=20Kr=C4=99cicki?= <wpk@isc.org>
+Date: Thu, 3 Jan 2019 14:17:43 +0100
+Subject: [PATCH 1/6] fix enforcement of tcp-clients (v1)
+
+tcp-clients settings could be exceeded in some cases by
+creating more and more active TCP clients that are over
+the set quota limit, which in the end could lead to a
+DoS attack by e.g. exhaustion of file descriptors.
+
+If TCP client we're closing went over the quota (so it's
+not attached to a quota) mark it as mortal - so that it
+will be destroyed and not set up to listen for new
+connections - unless it's the last client for a specific
+interface.
+
+(cherry picked from commit f97131d21b97381cef72b971b157345c1f9b4115)
+(cherry picked from commit 9689ffc485df8f971f0ad81ab8ab1f5389493776)
+---
+ bin/named/client.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/bin/named/client.c b/bin/named/client.c
+index d482da7121..0739dd48af 100644
+--- a/bin/named/client.c
++++ b/bin/named/client.c
+@@ -421,8 +421,19 @@ exit_check(ns_client_t *client) {
+ isc_socket_detach(&client->tcpsocket);
+ }
+
+- if (client->tcpquota != NULL)
++ if (client->tcpquota != NULL) {
+ isc_quota_detach(&client->tcpquota);
++ } else {
++ /*
++ * We went over quota with this client, we don't
++ * want to restart listening unless this is the
++ * last client on this interface, which is
++ * checked later.
++ */
++ if (TCP_CLIENT(client)) {
++ client->mortal = true;
++ }
++ }
+
+ if (client->timerset) {
+ (void)isc_timer_reset(client->timer,
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind/0002-tcp-clients-could-still-be-exceeded-v2.patch b/poky/meta/recipes-connectivity/bind/bind/0002-tcp-clients-could-still-be-exceeded-v2.patch
new file mode 100644
index 000000000..ca4e8b1a6
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0002-tcp-clients-could-still-be-exceeded-v2.patch
@@ -0,0 +1,670 @@
+Backport patch to fix CVE-2018-5743.
+
+Ref:
+https://security-tracker.debian.org/tracker/CVE-2018-5743
+
+CVE: CVE-2018-5743
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/719f604]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 719f604e3fad5b7479bd14e2fa0ef4413f0a8fdc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Witold=20Kr=C4=99cicki?= <wpk@isc.org>
+Date: Fri, 4 Jan 2019 12:50:51 +0100
+Subject: [PATCH 2/6] tcp-clients could still be exceeded (v2)
+
+the TCP client quota could still be ineffective under some
+circumstances. this change:
+
+- improves quota accounting to ensure that TCP clients are
+ properly limited, while still guaranteeing that at least one client
+ is always available to serve TCP connections on each interface.
+- uses more descriptive names and removes one (ntcptarget) that
+ was no longer needed
+- adds comments
+
+(cherry picked from commit 924651f1d5e605cd186d03f4f7340bcc54d77cc2)
+(cherry picked from commit 55a7a458e30e47874d34bdf1079eb863a0512396)
+---
+ bin/named/client.c | 311 ++++++++++++++++++++-----
+ bin/named/include/named/client.h | 14 +-
+ bin/named/include/named/interfacemgr.h | 11 +-
+ bin/named/interfacemgr.c | 8 +-
+ 4 files changed, 267 insertions(+), 77 deletions(-)
+
+diff --git a/bin/named/client.c b/bin/named/client.c
+index 0739dd48af..a7b49a0f71 100644
+--- a/bin/named/client.c
++++ b/bin/named/client.c
+@@ -246,10 +246,11 @@ static void ns_client_dumpmessage(ns_client_t *client, const char *reason);
+ static isc_result_t get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+ dns_dispatch_t *disp, bool tcp);
+ static isc_result_t get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp,
+- isc_socket_t *sock);
++ isc_socket_t *sock, ns_client_t *oldclient);
+ static inline bool
+-allowed(isc_netaddr_t *addr, dns_name_t *signer, isc_netaddr_t *ecs_addr,
+- uint8_t ecs_addrlen, uint8_t *ecs_scope, dns_acl_t *acl);
++allowed(isc_netaddr_t *addr, dns_name_t *signer,
++ isc_netaddr_t *ecs_addr, uint8_t ecs_addrlen,
++ uint8_t *ecs_scope, dns_acl_t *acl)
+ static void compute_cookie(ns_client_t *client, uint32_t when,
+ uint32_t nonce, const unsigned char *secret,
+ isc_buffer_t *buf);
+@@ -405,8 +406,11 @@ exit_check(ns_client_t *client) {
+ */
+ INSIST(client->recursionquota == NULL);
+ INSIST(client->newstate <= NS_CLIENTSTATE_READY);
+- if (client->nreads > 0)
++
++ if (client->nreads > 0) {
+ dns_tcpmsg_cancelread(&client->tcpmsg);
++ }
++
+ if (client->nreads != 0) {
+ /* Still waiting for read cancel completion. */
+ return (true);
+@@ -416,25 +420,58 @@ exit_check(ns_client_t *client) {
+ dns_tcpmsg_invalidate(&client->tcpmsg);
+ client->tcpmsg_valid = false;
+ }
++
+ if (client->tcpsocket != NULL) {
+ CTRACE("closetcp");
+ isc_socket_detach(&client->tcpsocket);
++
++ if (client->tcpactive) {
++ LOCK(&client->interface->lock);
++ INSIST(client->interface->ntcpactive > 0);
++ client->interface->ntcpactive--;
++ UNLOCK(&client->interface->lock);
++ client->tcpactive = false;
++ }
+ }
+
+ if (client->tcpquota != NULL) {
+- isc_quota_detach(&client->tcpquota);
+- } else {
+ /*
+- * We went over quota with this client, we don't
+- * want to restart listening unless this is the
+- * last client on this interface, which is
+- * checked later.
++ * If we are not in a pipeline group, or
++ * we are the last client in the group, detach from
++ * tcpquota; otherwise, transfer the quota to
++ * another client in the same group.
+ */
+- if (TCP_CLIENT(client)) {
+- client->mortal = true;
++ if (!ISC_LINK_LINKED(client, glink) ||
++ (client->glink.next == NULL &&
++ client->glink.prev == NULL))
++ {
++ isc_quota_detach(&client->tcpquota);
++ } else if (client->glink.next != NULL) {
++ INSIST(client->glink.next->tcpquota == NULL);
++ client->glink.next->tcpquota = client->tcpquota;
++ client->tcpquota = NULL;
++ } else {
++ INSIST(client->glink.prev->tcpquota == NULL);
++ client->glink.prev->tcpquota = client->tcpquota;
++ client->tcpquota = NULL;
+ }
+ }
+
++ /*
++ * Unlink from pipeline group.
++ */
++ if (ISC_LINK_LINKED(client, glink)) {
++ if (client->glink.next != NULL) {
++ client->glink.next->glink.prev =
++ client->glink.prev;
++ }
++ if (client->glink.prev != NULL) {
++ client->glink.prev->glink.next =
++ client->glink.next;
++ }
++ ISC_LINK_INIT(client, glink);
++ }
++
+ if (client->timerset) {
+ (void)isc_timer_reset(client->timer,
+ isc_timertype_inactive,
+@@ -455,15 +492,16 @@ exit_check(ns_client_t *client) {
+ * that already. Check whether this client needs to remain
+ * active and force it to go inactive if not.
+ *
+- * UDP clients go inactive at this point, but TCP clients
+- * may remain active if we have fewer active TCP client
+- * objects than desired due to an earlier quota exhaustion.
++ * UDP clients go inactive at this point, but a TCP client
++ * will needs to remain active if no other clients are
++ * listening for TCP requests on this interface, to
++ * prevent this interface from going nonresponsive.
+ */
+ if (client->mortal && TCP_CLIENT(client) && !ns_g_clienttest) {
+ LOCK(&client->interface->lock);
+- if (client->interface->ntcpcurrent <
+- client->interface->ntcptarget)
++ if (client->interface->ntcpaccepting == 0) {
+ client->mortal = false;
++ }
+ UNLOCK(&client->interface->lock);
+ }
+
+@@ -472,15 +510,17 @@ exit_check(ns_client_t *client) {
+ * queue for recycling.
+ */
+ if (client->mortal) {
+- if (client->newstate > NS_CLIENTSTATE_INACTIVE)
++ if (client->newstate > NS_CLIENTSTATE_INACTIVE) {
+ client->newstate = NS_CLIENTSTATE_INACTIVE;
++ }
+ }
+
+ if (NS_CLIENTSTATE_READY == client->newstate) {
+ if (TCP_CLIENT(client)) {
+ client_accept(client);
+- } else
++ } else {
+ client_udprecv(client);
++ }
+ client->newstate = NS_CLIENTSTATE_MAX;
+ return (true);
+ }
+@@ -492,41 +532,57 @@ exit_check(ns_client_t *client) {
+ /*
+ * We are trying to enter the inactive state.
+ */
+- if (client->naccepts > 0)
++ if (client->naccepts > 0) {
+ isc_socket_cancel(client->tcplistener, client->task,
+ ISC_SOCKCANCEL_ACCEPT);
++ }
+
+ /* Still waiting for accept cancel completion. */
+- if (! (client->naccepts == 0))
++ if (! (client->naccepts == 0)) {
+ return (true);
++ }
+
+ /* Accept cancel is complete. */
+- if (client->nrecvs > 0)
++ if (client->nrecvs > 0) {
+ isc_socket_cancel(client->udpsocket, client->task,
+ ISC_SOCKCANCEL_RECV);
++ }
+
+ /* Still waiting for recv cancel completion. */
+- if (! (client->nrecvs == 0))
++ if (! (client->nrecvs == 0)) {
+ return (true);
++ }
+
+ /* Still waiting for control event to be delivered */
+- if (client->nctls > 0)
++ if (client->nctls > 0) {
+ return (true);
+-
+- /* Deactivate the client. */
+- if (client->interface)
+- ns_interface_detach(&client->interface);
++ }
+
+ INSIST(client->naccepts == 0);
+ INSIST(client->recursionquota == NULL);
+- if (client->tcplistener != NULL)
++ if (client->tcplistener != NULL) {
+ isc_socket_detach(&client->tcplistener);
+
+- if (client->udpsocket != NULL)
++ if (client->tcpactive) {
++ LOCK(&client->interface->lock);
++ INSIST(client->interface->ntcpactive > 0);
++ client->interface->ntcpactive--;
++ UNLOCK(&client->interface->lock);
++ client->tcpactive = false;
++ }
++ }
++ if (client->udpsocket != NULL) {
+ isc_socket_detach(&client->udpsocket);
++ }
+
+- if (client->dispatch != NULL)
++ /* Deactivate the client. */
++ if (client->interface != NULL) {
++ ns_interface_detach(&client->interface);
++ }
++
++ if (client->dispatch != NULL) {
+ dns_dispatch_detach(&client->dispatch);
++ }
+
+ client->attributes = 0;
+ client->mortal = false;
+@@ -551,10 +607,13 @@ exit_check(ns_client_t *client) {
+ client->newstate = NS_CLIENTSTATE_MAX;
+ if (!ns_g_clienttest && manager != NULL &&
+ !manager->exiting)
++ {
+ ISC_QUEUE_PUSH(manager->inactive, client,
+ ilink);
+- if (client->needshutdown)
++ }
++ if (client->needshutdown) {
+ isc_task_shutdown(client->task);
++ }
+ return (true);
+ }
+ }
+@@ -675,7 +734,6 @@ client_start(isc_task_t *task, isc_event_t *event) {
+ }
+ }
+
+-
+ /*%
+ * The client's task has received a shutdown event.
+ */
+@@ -2507,17 +2565,12 @@ client_request(isc_task_t *task, isc_event_t *event) {
+ /*
+ * Pipeline TCP query processing.
+ */
+- if (client->message->opcode != dns_opcode_query)
++ if (client->message->opcode != dns_opcode_query) {
+ client->pipelined = false;
++ }
+ if (TCP_CLIENT(client) && client->pipelined) {
+- result = isc_quota_reserve(&ns_g_server->tcpquota);
+- if (result == ISC_R_SUCCESS)
+- result = ns_client_replace(client);
++ result = ns_client_replace(client);
+ if (result != ISC_R_SUCCESS) {
+- ns_client_log(client, NS_LOGCATEGORY_CLIENT,
+- NS_LOGMODULE_CLIENT, ISC_LOG_WARNING,
+- "no more TCP clients(read): %s",
+- isc_result_totext(result));
+ client->pipelined = false;
+ }
+ }
+@@ -3087,6 +3140,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
+ client->filter_aaaa = dns_aaaa_ok;
+ #endif
+ client->needshutdown = ns_g_clienttest;
++ client->tcpactive = false;
+
+ ISC_EVENT_INIT(&client->ctlevent, sizeof(client->ctlevent), 0, NULL,
+ NS_EVENT_CLIENTCONTROL, client_start, client, client,
+@@ -3100,6 +3154,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
+ client->formerrcache.id = 0;
+ ISC_LINK_INIT(client, link);
+ ISC_LINK_INIT(client, rlink);
++ ISC_LINK_INIT(client, glink);
+ ISC_QLINK_INIT(client, ilink);
+ client->keytag = NULL;
+ client->keytag_len = 0;
+@@ -3193,12 +3248,19 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+
+ INSIST(client->state == NS_CLIENTSTATE_READY);
+
++ /*
++ * The accept() was successful and we're now establishing a new
++ * connection. We need to make note of it in the client and
++ * interface objects so client objects can do the right thing
++ * when going inactive in exit_check() (see comments in
++ * client_accept() for details).
++ */
+ INSIST(client->naccepts == 1);
+ client->naccepts--;
+
+ LOCK(&client->interface->lock);
+- INSIST(client->interface->ntcpcurrent > 0);
+- client->interface->ntcpcurrent--;
++ INSIST(client->interface->ntcpaccepting > 0);
++ client->interface->ntcpaccepting--;
+ UNLOCK(&client->interface->lock);
+
+ /*
+@@ -3232,6 +3294,9 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
+ "accept failed: %s",
+ isc_result_totext(nevent->result));
++ if (client->tcpquota != NULL) {
++ isc_quota_detach(&client->tcpquota);
++ }
+ }
+
+ if (exit_check(client))
+@@ -3270,18 +3335,12 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ * deny service to legitimate TCP clients.
+ */
+ client->pipelined = false;
+- result = isc_quota_attach(&ns_g_server->tcpquota,
+- &client->tcpquota);
+- if (result == ISC_R_SUCCESS)
+- result = ns_client_replace(client);
+- if (result != ISC_R_SUCCESS) {
+- ns_client_log(client, NS_LOGCATEGORY_CLIENT,
+- NS_LOGMODULE_CLIENT, ISC_LOG_WARNING,
+- "no more TCP clients(accept): %s",
+- isc_result_totext(result));
+- } else if (ns_g_server->keepresporder == NULL ||
+- !allowed(&netaddr, NULL, NULL, 0, NULL,
+- ns_g_server->keepresporder)) {
++ result = ns_client_replace(client);
++ if (result == ISC_R_SUCCESS &&
++ (client->sctx->keepresporder == NULL ||
++ !allowed(&netaddr, NULL, NULL, 0, NULL,
++ ns_g_server->keepresporder)))
++ {
+ client->pipelined = true;
+ }
+
+@@ -3298,12 +3357,80 @@ client_accept(ns_client_t *client) {
+
+ CTRACE("accept");
+
++ /*
++ * The tcpquota object can only be simultaneously referenced a
++ * pre-defined number of times; this is configured by 'tcp-clients'
++ * in named.conf. If we can't attach to it here, that means the TCP
++ * client quota has been exceeded.
++ */
++ result = isc_quota_attach(&client->sctx->tcpquota,
++ &client->tcpquota);
++ if (result != ISC_R_SUCCESS) {
++ bool exit;
++
++ ns_client_log(client, NS_LOGCATEGORY_CLIENT,
++ NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
++ "no more TCP clients: %s",
++ isc_result_totext(result));
++
++ /*
++ * We have exceeded the system-wide TCP client
++ * quota. But, we can't just block this accept
++ * in all cases, because if we did, a heavy TCP
++ * load on other interfaces might cause this
++ * interface to be starved, with no clients able
++ * to accept new connections.
++ *
++ * So, we check here to see if any other client
++ * is already servicing TCP queries on this
++ * interface (whether accepting, reading, or
++ * processing).
++ *
++ * If so, then it's okay *not* to call
++ * accept - we can let this client to go inactive
++ * and the other one handle the next connection
++ * when it's ready.
++ *
++ * But if not, then we need to be a little bit
++ * flexible about the quota. We allow *one* extra
++ * TCP client through, to ensure we're listening on
++ * every interface.
++ *
++ * (Note: In practice this means that the *real*
++ * TCP client quota is tcp-clients plus the number
++ * of interfaces.)
++ */
++ LOCK(&client->interface->lock);
++ exit = (client->interface->ntcpactive > 0);
++ UNLOCK(&client->interface->lock);
++
++ if (exit) {
++ client->newstate = NS_CLIENTSTATE_INACTIVE;
++ (void)exit_check(client);
++ return;
++ }
++ }
++
++ /*
++ * By incrementing the interface's ntcpactive counter we signal
++ * that there is at least one client servicing TCP queries for the
++ * interface.
++ *
++ * We also make note of the fact in the client itself with the
++ * tcpactive flag. This ensures proper accounting by preventing
++ * us from accidentally incrementing or decrementing ntcpactive
++ * more than once per client object.
++ */
++ if (!client->tcpactive) {
++ LOCK(&client->interface->lock);
++ client->interface->ntcpactive++;
++ UNLOCK(&client->interface->lock);
++ client->tcpactive = true;
++ }
++
+ result = isc_socket_accept(client->tcplistener, client->task,
+ client_newconn, client);
+ if (result != ISC_R_SUCCESS) {
+- UNEXPECTED_ERROR(__FILE__, __LINE__,
+- "isc_socket_accept() failed: %s",
+- isc_result_totext(result));
+ /*
+ * XXXRTH What should we do? We're trying to accept but
+ * it didn't work. If we just give up, then TCP
+@@ -3311,12 +3438,39 @@ client_accept(ns_client_t *client) {
+ *
+ * For now, we just go idle.
+ */
++ UNEXPECTED_ERROR(__FILE__, __LINE__,
++ "isc_socket_accept() failed: %s",
++ isc_result_totext(result));
++ if (client->tcpquota != NULL) {
++ isc_quota_detach(&client->tcpquota);
++ }
+ return;
+ }
++
++ /*
++ * The client's 'naccepts' counter indicates that this client has
++ * called accept() and is waiting for a new connection. It should
++ * never exceed 1.
++ */
+ INSIST(client->naccepts == 0);
+ client->naccepts++;
++
++ /*
++ * The interface's 'ntcpaccepting' counter is incremented when
++ * any client calls accept(), and decremented in client_newconn()
++ * once the connection is established.
++ *
++ * When the client object is shutting down after handling a TCP
++ * request (see exit_check()), it looks to see whether this value is
++ * non-zero. If so, that means another client has already called
++ * accept() and is waiting to establish the next connection, which
++ * means the first client is free to go inactive. Otherwise,
++ * the first client must come back and call accept() again; this
++ * guarantees there will always be at least one client listening
++ * for new TCP connections on each interface.
++ */
+ LOCK(&client->interface->lock);
+- client->interface->ntcpcurrent++;
++ client->interface->ntcpaccepting++;
+ UNLOCK(&client->interface->lock);
+ }
+
+@@ -3390,13 +3544,14 @@ ns_client_replace(ns_client_t *client) {
+ tcp = TCP_CLIENT(client);
+ if (tcp && client->pipelined) {
+ result = get_worker(client->manager, client->interface,
+- client->tcpsocket);
++ client->tcpsocket, client);
+ } else {
+ result = get_client(client->manager, client->interface,
+ client->dispatch, tcp);
+ }
+- if (result != ISC_R_SUCCESS)
++ if (result != ISC_R_SUCCESS) {
+ return (result);
++ }
+
+ /*
+ * The responsibility for listening for new requests is hereby
+@@ -3585,6 +3740,7 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+ client->attributes |= NS_CLIENTATTR_TCP;
+ isc_socket_attach(ifp->tcpsocket,
+ &client->tcplistener);
++
+ } else {
+ isc_socket_t *sock;
+
+@@ -3602,7 +3758,8 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+ }
+
+ static isc_result_t
+-get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock)
++get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock,
++ ns_client_t *oldclient)
+ {
+ isc_result_t result = ISC_R_SUCCESS;
+ isc_event_t *ev;
+@@ -3610,6 +3767,7 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock)
+ MTRACE("get worker");
+
+ REQUIRE(manager != NULL);
++ REQUIRE(oldclient != NULL);
+
+ if (manager->exiting)
+ return (ISC_R_SHUTTINGDOWN);
+@@ -3642,7 +3800,28 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock)
+ ns_interface_attach(ifp, &client->interface);
+ client->newstate = client->state = NS_CLIENTSTATE_WORKING;
+ INSIST(client->recursionquota == NULL);
+- client->tcpquota = &ns_g_server->tcpquota;
++
++ /*
++ * Transfer TCP quota to the new client.
++ */
++ INSIST(client->tcpquota == NULL);
++ INSIST(oldclient->tcpquota != NULL);
++ client->tcpquota = oldclient->tcpquota;
++ oldclient->tcpquota = NULL;
++
++ /*
++ * Link to a pipeline group, creating it if needed.
++ */
++ if (!ISC_LINK_LINKED(oldclient, glink)) {
++ oldclient->glink.next = NULL;
++ oldclient->glink.prev = NULL;
++ }
++ client->glink.next = oldclient->glink.next;
++ client->glink.prev = oldclient;
++ if (oldclient->glink.next != NULL) {
++ oldclient->glink.next->glink.prev = client;
++ }
++ oldclient->glink.next = client;
+
+ client->dscp = ifp->dscp;
+
+@@ -3656,6 +3835,12 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock)
+ (void)isc_socket_getpeername(client->tcpsocket, &client->peeraddr);
+ client->peeraddr_valid = true;
+
++ LOCK(&client->interface->lock);
++ client->interface->ntcpactive++;
++ UNLOCK(&client->interface->lock);
++
++ client->tcpactive = true;
++
+ INSIST(client->tcpmsg_valid == false);
+ dns_tcpmsg_init(client->mctx, client->tcpsocket, &client->tcpmsg);
+ client->tcpmsg_valid = true;
+diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h
+index b23a7b191d..1f7973f9c5 100644
+--- a/bin/named/include/named/client.h
++++ b/bin/named/include/named/client.h
+@@ -94,7 +94,8 @@ struct ns_client {
+ int nupdates;
+ int nctls;
+ int references;
+- bool needshutdown; /*
++ bool tcpactive;
++ bool needshutdown; /*
+ * Used by clienttest to get
+ * the client to go from
+ * inactive to free state
+@@ -130,9 +131,9 @@ struct ns_client {
+ isc_stdtime_t now;
+ isc_time_t tnow;
+ dns_name_t signername; /*%< [T]SIG key name */
+- dns_name_t * signer; /*%< NULL if not valid sig */
+- bool mortal; /*%< Die after handling request */
+- bool pipelined; /*%< TCP queries not in sequence */
++ dns_name_t *signer; /*%< NULL if not valid sig */
++ bool mortal; /*%< Die after handling request */
++ bool pipelined; /*%< TCP queries not in sequence */
+ isc_quota_t *tcpquota;
+ isc_quota_t *recursionquota;
+ ns_interface_t *interface;
+@@ -143,8 +144,8 @@ struct ns_client {
+ isc_sockaddr_t destsockaddr;
+
+ isc_netaddr_t ecs_addr; /*%< EDNS client subnet */
+- uint8_t ecs_addrlen;
+- uint8_t ecs_scope;
++ uint8_t ecs_addrlen;
++ uint8_t ecs_scope;
+
+ struct in6_pktinfo pktinfo;
+ isc_dscp_t dscp;
+@@ -166,6 +167,7 @@ struct ns_client {
+
+ ISC_LINK(ns_client_t) link;
+ ISC_LINK(ns_client_t) rlink;
++ ISC_LINK(ns_client_t) glink;
+ ISC_QLINK(ns_client_t) ilink;
+ unsigned char cookie[8];
+ uint32_t expire;
+diff --git a/bin/named/include/named/interfacemgr.h b/bin/named/include/named/interfacemgr.h
+index 7d1883e1e8..61b08826a6 100644
+--- a/bin/named/include/named/interfacemgr.h
++++ b/bin/named/include/named/interfacemgr.h
+@@ -77,9 +77,14 @@ struct ns_interface {
+ /*%< UDP dispatchers. */
+ isc_socket_t * tcpsocket; /*%< TCP socket. */
+ isc_dscp_t dscp; /*%< "listen-on" DSCP value */
+- int ntcptarget; /*%< Desired number of concurrent
+- TCP accepts */
+- int ntcpcurrent; /*%< Current ditto, locked */
++ int ntcpaccepting; /*%< Number of clients
++ ready to accept new
++ TCP connections on this
++ interface */
++ int ntcpactive; /*%< Number of clients
++ servicing TCP queries
++ (whether accepting or
++ connected) */
+ int nudpdispatch; /*%< Number of UDP dispatches */
+ ns_clientmgr_t * clientmgr; /*%< Client manager. */
+ ISC_LINK(ns_interface_t) link;
+diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c
+index 419927bf54..955096ef47 100644
+--- a/bin/named/interfacemgr.c
++++ b/bin/named/interfacemgr.c
+@@ -386,8 +386,8 @@ ns_interface_create(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr,
+ * connections will be handled in parallel even though there is
+ * only one client initially.
+ */
+- ifp->ntcptarget = 1;
+- ifp->ntcpcurrent = 0;
++ ifp->ntcpaccepting = 0;
++ ifp->ntcpactive = 0;
+ ifp->nudpdispatch = 0;
+
+ ifp->dscp = -1;
+@@ -522,9 +522,7 @@ ns_interface_accepttcp(ns_interface_t *ifp) {
+ */
+ (void)isc_socket_filter(ifp->tcpsocket, "dataready");
+
+- result = ns_clientmgr_createclients(ifp->clientmgr,
+- ifp->ntcptarget, ifp,
+- true);
++ result = ns_clientmgr_createclients(ifp->clientmgr, 1, ifp, true);
+ if (result != ISC_R_SUCCESS) {
+ UNEXPECTED_ERROR(__FILE__, __LINE__,
+ "TCP ns_clientmgr_createclients(): %s",
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind/0003-use-reference-counter-for-pipeline-groups-v3.patch b/poky/meta/recipes-connectivity/bind/bind/0003-use-reference-counter-for-pipeline-groups-v3.patch
new file mode 100644
index 000000000..032cfb8c4
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0003-use-reference-counter-for-pipeline-groups-v3.patch
@@ -0,0 +1,278 @@
+Backport patch to fix CVE-2018-5743.
+
+Ref:
+https://security-tracker.debian.org/tracker/CVE-2018-5743
+
+CVE: CVE-2018-5743
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/366b4e1]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 366b4e1ede8aed690e981e07137cb1cb77879c36 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= <michal@isc.org>
+Date: Thu, 17 Jan 2019 15:53:38 +0100
+Subject: [PATCH 3/6] use reference counter for pipeline groups (v3)
+
+Track pipeline groups using a shared reference counter
+instead of a linked list.
+
+(cherry picked from commit 513afd33eb17d5dc41a3f0d2d38204ef8c5f6f91)
+(cherry picked from commit 9446629b730c59c4215f08d37fbaf810282fbccb)
+---
+ bin/named/client.c | 171 ++++++++++++++++++++-----------
+ bin/named/include/named/client.h | 2 +-
+ 2 files changed, 110 insertions(+), 63 deletions(-)
+
+diff --git a/bin/named/client.c b/bin/named/client.c
+index a7b49a0f71..277656cef0 100644
+--- a/bin/named/client.c
++++ b/bin/named/client.c
+@@ -299,6 +299,75 @@ ns_client_settimeout(ns_client_t *client, unsigned int seconds) {
+ }
+ }
+
++/*%
++ * Allocate a reference counter that will track the number of client structures
++ * using the TCP connection that 'client' called accept() for. This counter
++ * will be shared between all client structures associated with this TCP
++ * connection.
++ */
++static void
++pipeline_init(ns_client_t *client) {
++ isc_refcount_t *refs;
++
++ REQUIRE(client->pipeline_refs == NULL);
++
++ /*
++ * A global memory context is used for the allocation as different
++ * client structures may have different memory contexts assigned and a
++ * reference counter allocated here might need to be freed by a
++ * different client. The performance impact caused by memory context
++ * contention here is expected to be negligible, given that this code
++ * is only executed for TCP connections.
++ */
++ refs = isc_mem_allocate(client->sctx->mctx, sizeof(*refs));
++ isc_refcount_init(refs, 1);
++ client->pipeline_refs = refs;
++}
++
++/*%
++ * Increase the count of client structures using the TCP connection that
++ * 'source' is associated with and put a pointer to that count in 'target',
++ * thus associating it with the same TCP connection.
++ */
++static void
++pipeline_attach(ns_client_t *source, ns_client_t *target) {
++ int old_refs;
++
++ REQUIRE(source->pipeline_refs != NULL);
++ REQUIRE(target->pipeline_refs == NULL);
++
++ old_refs = isc_refcount_increment(source->pipeline_refs);
++ INSIST(old_refs > 0);
++ target->pipeline_refs = source->pipeline_refs;
++}
++
++/*%
++ * Decrease the count of client structures using the TCP connection that
++ * 'client' is associated with. If this is the last client using this TCP
++ * connection, free the reference counter and return true; otherwise, return
++ * false.
++ */
++static bool
++pipeline_detach(ns_client_t *client) {
++ isc_refcount_t *refs;
++ int old_refs;
++
++ REQUIRE(client->pipeline_refs != NULL);
++
++ refs = client->pipeline_refs;
++ client->pipeline_refs = NULL;
++
++ old_refs = isc_refcount_decrement(refs);
++ INSIST(old_refs > 0);
++
++ if (old_refs == 1) {
++ isc_mem_free(client->sctx->mctx, refs);
++ return (true);
++ }
++
++ return (false);
++}
++
+ /*%
+ * Check for a deactivation or shutdown request and take appropriate
+ * action. Returns true if either is in progress; in this case
+@@ -421,6 +490,40 @@ exit_check(ns_client_t *client) {
+ client->tcpmsg_valid = false;
+ }
+
++ if (client->tcpquota != NULL) {
++ if (client->pipeline_refs == NULL ||
++ pipeline_detach(client))
++ {
++ /*
++ * Only detach from the TCP client quota if
++ * there are no more client structures using
++ * this TCP connection.
++ *
++ * Note that we check 'pipeline_refs' and not
++ * 'pipelined' because in some cases (e.g.
++ * after receiving a request with an opcode
++ * different than QUERY) 'pipelined' is set to
++ * false after the reference counter gets
++ * allocated in pipeline_init() and we must
++ * still drop our reference as failing to do so
++ * would prevent the reference counter itself
++ * from being freed.
++ */
++ isc_quota_detach(&client->tcpquota);
++ } else {
++ /*
++ * There are other client structures using this
++ * TCP connection, so we cannot detach from the
++ * TCP client quota to prevent excess TCP
++ * connections from being accepted. However,
++ * this client structure might later be reused
++ * for accepting new connections and thus must
++ * have its 'tcpquota' field set to NULL.
++ */
++ client->tcpquota = NULL;
++ }
++ }
++
+ if (client->tcpsocket != NULL) {
+ CTRACE("closetcp");
+ isc_socket_detach(&client->tcpsocket);
+@@ -434,44 +537,6 @@ exit_check(ns_client_t *client) {
+ }
+ }
+
+- if (client->tcpquota != NULL) {
+- /*
+- * If we are not in a pipeline group, or
+- * we are the last client in the group, detach from
+- * tcpquota; otherwise, transfer the quota to
+- * another client in the same group.
+- */
+- if (!ISC_LINK_LINKED(client, glink) ||
+- (client->glink.next == NULL &&
+- client->glink.prev == NULL))
+- {
+- isc_quota_detach(&client->tcpquota);
+- } else if (client->glink.next != NULL) {
+- INSIST(client->glink.next->tcpquota == NULL);
+- client->glink.next->tcpquota = client->tcpquota;
+- client->tcpquota = NULL;
+- } else {
+- INSIST(client->glink.prev->tcpquota == NULL);
+- client->glink.prev->tcpquota = client->tcpquota;
+- client->tcpquota = NULL;
+- }
+- }
+-
+- /*
+- * Unlink from pipeline group.
+- */
+- if (ISC_LINK_LINKED(client, glink)) {
+- if (client->glink.next != NULL) {
+- client->glink.next->glink.prev =
+- client->glink.prev;
+- }
+- if (client->glink.prev != NULL) {
+- client->glink.prev->glink.next =
+- client->glink.next;
+- }
+- ISC_LINK_INIT(client, glink);
+- }
+-
+ if (client->timerset) {
+ (void)isc_timer_reset(client->timer,
+ isc_timertype_inactive,
+@@ -3130,6 +3195,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
+ dns_name_init(&client->signername, NULL);
+ client->mortal = false;
+ client->pipelined = false;
++ client->pipeline_refs = NULL;
+ client->tcpquota = NULL;
+ client->recursionquota = NULL;
+ client->interface = NULL;
+@@ -3154,7 +3220,6 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
+ client->formerrcache.id = 0;
+ ISC_LINK_INIT(client, link);
+ ISC_LINK_INIT(client, rlink);
+- ISC_LINK_INIT(client, glink);
+ ISC_QLINK_INIT(client, ilink);
+ client->keytag = NULL;
+ client->keytag_len = 0;
+@@ -3341,6 +3406,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ !allowed(&netaddr, NULL, NULL, 0, NULL,
+ ns_g_server->keepresporder)))
+ {
++ pipeline_init(client);
+ client->pipelined = true;
+ }
+
+@@ -3800,35 +3866,16 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock,
+ ns_interface_attach(ifp, &client->interface);
+ client->newstate = client->state = NS_CLIENTSTATE_WORKING;
+ INSIST(client->recursionquota == NULL);
+-
+- /*
+- * Transfer TCP quota to the new client.
+- */
+- INSIST(client->tcpquota == NULL);
+- INSIST(oldclient->tcpquota != NULL);
+- client->tcpquota = oldclient->tcpquota;
+- oldclient->tcpquota = NULL;
+-
+- /*
+- * Link to a pipeline group, creating it if needed.
+- */
+- if (!ISC_LINK_LINKED(oldclient, glink)) {
+- oldclient->glink.next = NULL;
+- oldclient->glink.prev = NULL;
+- }
+- client->glink.next = oldclient->glink.next;
+- client->glink.prev = oldclient;
+- if (oldclient->glink.next != NULL) {
+- oldclient->glink.next->glink.prev = client;
+- }
+- oldclient->glink.next = client;
++ client->tcpquota = &client->sctx->tcpquota;
+
+ client->dscp = ifp->dscp;
+
+ client->attributes |= NS_CLIENTATTR_TCP;
+- client->pipelined = true;
+ client->mortal = true;
+
++ pipeline_attach(oldclient, client);
++ client->pipelined = true;
++
+ isc_socket_attach(ifp->tcpsocket, &client->tcplistener);
+ isc_socket_attach(sock, &client->tcpsocket);
+ isc_socket_setname(client->tcpsocket, "worker-tcp", NULL);
+diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h
+index 1f7973f9c5..aeed9ccdda 100644
+--- a/bin/named/include/named/client.h
++++ b/bin/named/include/named/client.h
+@@ -134,6 +134,7 @@ struct ns_client {
+ dns_name_t *signer; /*%< NULL if not valid sig */
+ bool mortal; /*%< Die after handling request */
+ bool pipelined; /*%< TCP queries not in sequence */
++ isc_refcount_t *pipeline_refs;
+ isc_quota_t *tcpquota;
+ isc_quota_t *recursionquota;
+ ns_interface_t *interface;
+@@ -167,7 +168,6 @@ struct ns_client {
+
+ ISC_LINK(ns_client_t) link;
+ ISC_LINK(ns_client_t) rlink;
+- ISC_LINK(ns_client_t) glink;
+ ISC_QLINK(ns_client_t) ilink;
+ unsigned char cookie[8];
+ uint32_t expire;
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind/0004-better-tcpquota-accounting-and-client-mortality-chec.patch b/poky/meta/recipes-connectivity/bind/bind/0004-better-tcpquota-accounting-and-client-mortality-chec.patch
new file mode 100644
index 000000000..034ab1330
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0004-better-tcpquota-accounting-and-client-mortality-chec.patch
@@ -0,0 +1,512 @@
+Backport patch to fix CVE-2018-5743.
+
+Ref:
+https://security-tracker.debian.org/tracker/CVE-2018-5743
+
+CVE: CVE-2018-5743
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/2ab8a08]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 2ab8a085b3c666f28f1f9229bd6ecb59915b26c3 Mon Sep 17 00:00:00 2001
+From: Evan Hunt <each@isc.org>
+Date: Fri, 5 Apr 2019 16:12:18 -0700
+Subject: [PATCH 4/6] better tcpquota accounting and client mortality checks
+
+- ensure that tcpactive is cleaned up correctly when accept() fails.
+- set 'client->tcpattached' when the client is attached to the tcpquota.
+ carry this value on to new clients sharing the same pipeline group.
+ don't call isc_quota_detach() on the tcpquota unless tcpattached is
+ set. this way clients that were allowed to accept TCP connections
+ despite being over quota (and therefore, were never attached to the
+ quota) will not inadvertently detach from it and mess up the
+ accounting.
+- simplify the code for tcpquota disconnection by using a new function
+ tcpquota_disconnect().
+- before deciding whether to reject a new connection due to quota
+ exhaustion, check to see whether there are at least two active
+ clients. previously, this was "at least one", but that could be
+ insufficient if there was one other client in READING state (waiting
+ for messages on an open connection) but none in READY (listening
+ for new connections).
+- before deciding whether a TCP client object can to go inactive, we
+ must ensure there are enough other clients to maintain service
+ afterward -- both accepting new connections and reading/processing new
+ queries. A TCP client can't shut down unless at least one
+ client is accepting new connections and (in the case of pipelined
+ clients) at least one additional client is waiting to read.
+
+(cherry picked from commit c7394738b2445c16f728a88394864dd61baad900)
+(cherry picked from commit e965d5f11d3d0f6d59704e614fceca2093cb1856)
+(cherry picked from commit 87d431161450777ea093821212abfb52d51b36e3)
+---
+ bin/named/client.c | 244 +++++++++++++++++++------------
+ bin/named/include/named/client.h | 3 +-
+ 2 files changed, 152 insertions(+), 95 deletions(-)
+
+diff --git a/bin/named/client.c b/bin/named/client.c
+index 277656cef0..61e96dd28c 100644
+--- a/bin/named/client.c
++++ b/bin/named/client.c
+@@ -244,13 +244,14 @@ static void client_start(isc_task_t *task, isc_event_t *event);
+ static void client_request(isc_task_t *task, isc_event_t *event);
+ static void ns_client_dumpmessage(ns_client_t *client, const char *reason);
+ static isc_result_t get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+- dns_dispatch_t *disp, bool tcp);
++ dns_dispatch_t *disp, ns_client_t *oldclient,
++ bool tcp);
+ static isc_result_t get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp,
+ isc_socket_t *sock, ns_client_t *oldclient);
+ static inline bool
+ allowed(isc_netaddr_t *addr, dns_name_t *signer,
+ isc_netaddr_t *ecs_addr, uint8_t ecs_addrlen,
+- uint8_t *ecs_scope, dns_acl_t *acl)
++ uint8_t *ecs_scope, dns_acl_t *acl);
+ static void compute_cookie(ns_client_t *client, uint32_t when,
+ uint32_t nonce, const unsigned char *secret,
+ isc_buffer_t *buf);
+@@ -319,7 +320,7 @@ pipeline_init(ns_client_t *client) {
+ * contention here is expected to be negligible, given that this code
+ * is only executed for TCP connections.
+ */
+- refs = isc_mem_allocate(client->sctx->mctx, sizeof(*refs));
++ refs = isc_mem_allocate(ns_g_mctx, sizeof(*refs));
+ isc_refcount_init(refs, 1);
+ client->pipeline_refs = refs;
+ }
+@@ -331,13 +332,13 @@ pipeline_init(ns_client_t *client) {
+ */
+ static void
+ pipeline_attach(ns_client_t *source, ns_client_t *target) {
+- int old_refs;
++ int refs;
+
+ REQUIRE(source->pipeline_refs != NULL);
+ REQUIRE(target->pipeline_refs == NULL);
+
+- old_refs = isc_refcount_increment(source->pipeline_refs);
+- INSIST(old_refs > 0);
++ isc_refcount_increment(source->pipeline_refs, &refs);
++ INSIST(refs > 1);
+ target->pipeline_refs = source->pipeline_refs;
+ }
+
+@@ -349,25 +350,51 @@ pipeline_attach(ns_client_t *source, ns_client_t *target) {
+ */
+ static bool
+ pipeline_detach(ns_client_t *client) {
+- isc_refcount_t *refs;
+- int old_refs;
++ isc_refcount_t *refcount;
++ int refs;
+
+ REQUIRE(client->pipeline_refs != NULL);
+
+- refs = client->pipeline_refs;
++ refcount = client->pipeline_refs;
+ client->pipeline_refs = NULL;
+
+- old_refs = isc_refcount_decrement(refs);
+- INSIST(old_refs > 0);
++ isc_refcount_decrement(refcount, refs);
+
+- if (old_refs == 1) {
+- isc_mem_free(client->sctx->mctx, refs);
++ if (refs == 0) {
++ isc_mem_free(ns_g_mctx, refs);
+ return (true);
+ }
+
+ return (false);
+ }
+
++/*
++ * Detach a client from the TCP client quota if appropriate, and set
++ * the quota pointer to NULL.
++ *
++ * Sometimes when the TCP client quota is exhausted but there are no other
++ * clients servicing the interface, a client will be allowed to continue
++ * running despite not having been attached to the quota. In this event,
++ * the TCP quota was never attached to the client, so when the client (or
++ * associated pipeline group) shuts down, the quota must NOT be detached.
++ *
++ * Otherwise, if the quota pointer is set, it should be detached. If not
++ * set at all, we just return without doing anything.
++ */
++static void
++tcpquota_disconnect(ns_client_t *client) {
++ if (client->tcpquota == NULL) {
++ return;
++ }
++
++ if (client->tcpattached) {
++ isc_quota_detach(&client->tcpquota);
++ client->tcpattached = false;
++ } else {
++ client->tcpquota = NULL;
++ }
++}
++
+ /*%
+ * Check for a deactivation or shutdown request and take appropriate
+ * action. Returns true if either is in progress; in this case
+@@ -490,38 +517,31 @@ exit_check(ns_client_t *client) {
+ client->tcpmsg_valid = false;
+ }
+
+- if (client->tcpquota != NULL) {
+- if (client->pipeline_refs == NULL ||
+- pipeline_detach(client))
+- {
+- /*
+- * Only detach from the TCP client quota if
+- * there are no more client structures using
+- * this TCP connection.
+- *
+- * Note that we check 'pipeline_refs' and not
+- * 'pipelined' because in some cases (e.g.
+- * after receiving a request with an opcode
+- * different than QUERY) 'pipelined' is set to
+- * false after the reference counter gets
+- * allocated in pipeline_init() and we must
+- * still drop our reference as failing to do so
+- * would prevent the reference counter itself
+- * from being freed.
+- */
+- isc_quota_detach(&client->tcpquota);
+- } else {
+- /*
+- * There are other client structures using this
+- * TCP connection, so we cannot detach from the
+- * TCP client quota to prevent excess TCP
+- * connections from being accepted. However,
+- * this client structure might later be reused
+- * for accepting new connections and thus must
+- * have its 'tcpquota' field set to NULL.
+- */
+- client->tcpquota = NULL;
+- }
++ /*
++ * Detach from pipeline group and from TCP client quota,
++ * if appropriate.
++ *
++ * - If no pipeline group is active, attempt to
++ * detach from the TCP client quota.
++ *
++ * - If a pipeline group is active, detach from it;
++ * if the return code indicates that there no more
++ * clients left if this pipeline group, we also detach
++ * from the TCP client quota.
++ *
++ * - Otherwise we don't try to detach, we just set the
++ * TCP quota pointer to NULL if it wasn't NULL already.
++ *
++ * tcpquota_disconnect() will set tcpquota to NULL, either
++ * by detaching it or by assignment, depending on the
++ * needs of the client. See the comments on that function
++ * for further information.
++ */
++ if (client->pipeline_refs == NULL || pipeline_detach(client)) {
++ tcpquota_disconnect(client);
++ } else {
++ client->tcpquota = NULL;
++ client->tcpattached = false;
+ }
+
+ if (client->tcpsocket != NULL) {
+@@ -544,8 +564,6 @@ exit_check(ns_client_t *client) {
+ client->timerset = false;
+ }
+
+- client->pipelined = false;
+-
+ client->peeraddr_valid = false;
+
+ client->state = NS_CLIENTSTATE_READY;
+@@ -558,18 +576,27 @@ exit_check(ns_client_t *client) {
+ * active and force it to go inactive if not.
+ *
+ * UDP clients go inactive at this point, but a TCP client
+- * will needs to remain active if no other clients are
+- * listening for TCP requests on this interface, to
+- * prevent this interface from going nonresponsive.
++ * may need to remain active and go into ready state if
++ * no other clients are available to listen for TCP
++ * requests on this interface or (in the case of pipelined
++ * clients) to read for additional messages on the current
++ * connection.
+ */
+ if (client->mortal && TCP_CLIENT(client) && !ns_g_clienttest) {
+ LOCK(&client->interface->lock);
+- if (client->interface->ntcpaccepting == 0) {
++ if ((client->interface->ntcpaccepting == 0 ||
++ (client->pipelined &&
++ client->interface->ntcpactive < 2)) &&
++ client->newstate != NS_CLIENTSTATE_FREED)
++ {
+ client->mortal = false;
++ client->newstate = NS_CLIENTSTATE_READY;
+ }
+ UNLOCK(&client->interface->lock);
+ }
+
++ client->pipelined = false;
++
+ /*
+ * We don't need the client; send it to the inactive
+ * queue for recycling.
+@@ -2634,6 +2661,18 @@ client_request(isc_task_t *task, isc_event_t *event) {
+ client->pipelined = false;
+ }
+ if (TCP_CLIENT(client) && client->pipelined) {
++ /*
++ * We're pipelining. Replace the client; the
++ * the replacement can read the TCP socket looking
++ * for new messages and this client can process the
++ * current message asynchronously.
++ *
++ * There are now at least three clients using this
++ * TCP socket - one accepting new connections,
++ * one reading an existing connection to get new
++ * messages, and one answering the message already
++ * received.
++ */
+ result = ns_client_replace(client);
+ if (result != ISC_R_SUCCESS) {
+ client->pipelined = false;
+@@ -3197,6 +3236,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
+ client->pipelined = false;
+ client->pipeline_refs = NULL;
+ client->tcpquota = NULL;
++ client->tcpattached = false;
+ client->recursionquota = NULL;
+ client->interface = NULL;
+ client->peeraddr_valid = false;
+@@ -3359,9 +3399,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
+ "accept failed: %s",
+ isc_result_totext(nevent->result));
+- if (client->tcpquota != NULL) {
+- isc_quota_detach(&client->tcpquota);
+- }
++ tcpquota_disconnect(client);
+ }
+
+ if (exit_check(client))
+@@ -3402,7 +3440,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ client->pipelined = false;
+ result = ns_client_replace(client);
+ if (result == ISC_R_SUCCESS &&
+- (client->sctx->keepresporder == NULL ||
++ (ns_g_server->keepresporder == NULL ||
+ !allowed(&netaddr, NULL, NULL, 0, NULL,
+ ns_g_server->keepresporder)))
+ {
+@@ -3429,7 +3467,7 @@ client_accept(ns_client_t *client) {
+ * in named.conf. If we can't attach to it here, that means the TCP
+ * client quota has been exceeded.
+ */
+- result = isc_quota_attach(&client->sctx->tcpquota,
++ result = isc_quota_attach(&ns_g_server->tcpquota,
+ &client->tcpquota);
+ if (result != ISC_R_SUCCESS) {
+ bool exit;
+@@ -3447,27 +3485,27 @@ client_accept(ns_client_t *client) {
+ * interface to be starved, with no clients able
+ * to accept new connections.
+ *
+- * So, we check here to see if any other client
+- * is already servicing TCP queries on this
++ * So, we check here to see if any other clients
++ * are already servicing TCP queries on this
+ * interface (whether accepting, reading, or
+- * processing).
+- *
+- * If so, then it's okay *not* to call
+- * accept - we can let this client to go inactive
+- * and the other one handle the next connection
+- * when it's ready.
++ * processing). If there are at least two
++ * (one reading and one processing a request)
++ * then it's okay *not* to call accept - we
++ * can let this client go inactive and another
++ * one will resume accepting when it's done.
+ *
+- * But if not, then we need to be a little bit
+- * flexible about the quota. We allow *one* extra
+- * TCP client through, to ensure we're listening on
+- * every interface.
++ * If there aren't enough active clients on the
++ * interface, then we can be a little bit
++ * flexible about the quota. We'll allow *one*
++ * extra client through to ensure we're listening
++ * on every interface.
+ *
+- * (Note: In practice this means that the *real*
+- * TCP client quota is tcp-clients plus the number
+- * of interfaces.)
++ * (Note: In practice this means that the real
++ * TCP client quota is tcp-clients plus the
++ * number of listening interfaces plus 2.)
+ */
+ LOCK(&client->interface->lock);
+- exit = (client->interface->ntcpactive > 0);
++ exit = (client->interface->ntcpactive > 1);
+ UNLOCK(&client->interface->lock);
+
+ if (exit) {
+@@ -3475,6 +3513,9 @@ client_accept(ns_client_t *client) {
+ (void)exit_check(client);
+ return;
+ }
++
++ } else {
++ client->tcpattached = true;
+ }
+
+ /*
+@@ -3507,9 +3548,16 @@ client_accept(ns_client_t *client) {
+ UNEXPECTED_ERROR(__FILE__, __LINE__,
+ "isc_socket_accept() failed: %s",
+ isc_result_totext(result));
+- if (client->tcpquota != NULL) {
+- isc_quota_detach(&client->tcpquota);
++
++ tcpquota_disconnect(client);
++
++ if (client->tcpactive) {
++ LOCK(&client->interface->lock);
++ client->interface->ntcpactive--;
++ UNLOCK(&client->interface->lock);
++ client->tcpactive = false;
+ }
++
+ return;
+ }
+
+@@ -3527,13 +3575,12 @@ client_accept(ns_client_t *client) {
+ * once the connection is established.
+ *
+ * When the client object is shutting down after handling a TCP
+- * request (see exit_check()), it looks to see whether this value is
+- * non-zero. If so, that means another client has already called
+- * accept() and is waiting to establish the next connection, which
+- * means the first client is free to go inactive. Otherwise,
+- * the first client must come back and call accept() again; this
+- * guarantees there will always be at least one client listening
+- * for new TCP connections on each interface.
++ * request (see exit_check()), if this value is at least one, that
++ * means another client has called accept() and is waiting to
++ * establish the next connection. That means the client may be
++ * be free to become inactive; otherwise it may need to start
++ * listening for connections itself to prevent the interface
++ * going dead.
+ */
+ LOCK(&client->interface->lock);
+ client->interface->ntcpaccepting++;
+@@ -3613,19 +3660,19 @@ ns_client_replace(ns_client_t *client) {
+ client->tcpsocket, client);
+ } else {
+ result = get_client(client->manager, client->interface,
+- client->dispatch, tcp);
++ client->dispatch, client, tcp);
++
++ /*
++ * The responsibility for listening for new requests is hereby
++ * transferred to the new client. Therefore, the old client
++ * should refrain from listening for any more requests.
++ */
++ client->mortal = true;
+ }
+ if (result != ISC_R_SUCCESS) {
+ return (result);
+ }
+
+- /*
+- * The responsibility for listening for new requests is hereby
+- * transferred to the new client. Therefore, the old client
+- * should refrain from listening for any more requests.
+- */
+- client->mortal = true;
+-
+ return (ISC_R_SUCCESS);
+ }
+
+@@ -3759,7 +3806,7 @@ ns_clientmgr_destroy(ns_clientmgr_t **managerp) {
+
+ static isc_result_t
+ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+- dns_dispatch_t *disp, bool tcp)
++ dns_dispatch_t *disp, ns_client_t *oldclient, bool tcp)
+ {
+ isc_result_t result = ISC_R_SUCCESS;
+ isc_event_t *ev;
+@@ -3803,6 +3850,16 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+ client->dscp = ifp->dscp;
+
+ if (tcp) {
++ client->tcpattached = false;
++ if (oldclient != NULL) {
++ client->tcpattached = oldclient->tcpattached;
++ }
++
++ LOCK(&client->interface->lock);
++ client->interface->ntcpactive++;
++ UNLOCK(&client->interface->lock);
++ client->tcpactive = true;
++
+ client->attributes |= NS_CLIENTATTR_TCP;
+ isc_socket_attach(ifp->tcpsocket,
+ &client->tcplistener);
+@@ -3866,7 +3923,8 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock,
+ ns_interface_attach(ifp, &client->interface);
+ client->newstate = client->state = NS_CLIENTSTATE_WORKING;
+ INSIST(client->recursionquota == NULL);
+- client->tcpquota = &client->sctx->tcpquota;
++ client->tcpquota = &ns_g_server->tcpquota;
++ client->tcpattached = oldclient->tcpattached;
+
+ client->dscp = ifp->dscp;
+
+@@ -3885,7 +3943,6 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock,
+ LOCK(&client->interface->lock);
+ client->interface->ntcpactive++;
+ UNLOCK(&client->interface->lock);
+-
+ client->tcpactive = true;
+
+ INSIST(client->tcpmsg_valid == false);
+@@ -3913,7 +3970,8 @@ ns_clientmgr_createclients(ns_clientmgr_t *manager, unsigned int n,
+ MTRACE("createclients");
+
+ for (disp = 0; disp < n; disp++) {
+- result = get_client(manager, ifp, ifp->udpdispatch[disp], tcp);
++ result = get_client(manager, ifp, ifp->udpdispatch[disp],
++ NULL, tcp);
+ if (result != ISC_R_SUCCESS)
+ break;
+ }
+diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h
+index aeed9ccdda..e2c40acd28 100644
+--- a/bin/named/include/named/client.h
++++ b/bin/named/include/named/client.h
+@@ -9,8 +9,6 @@
+ * information regarding copyright ownership.
+ */
+
+-/* $Id: client.h,v 1.96 2012/01/31 23:47:31 tbox Exp $ */
+-
+ #ifndef NAMED_CLIENT_H
+ #define NAMED_CLIENT_H 1
+
+@@ -136,6 +134,7 @@ struct ns_client {
+ bool pipelined; /*%< TCP queries not in sequence */
+ isc_refcount_t *pipeline_refs;
+ isc_quota_t *tcpquota;
++ bool tcpattached;
+ isc_quota_t *recursionquota;
+ ns_interface_t *interface;
+
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind/0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch b/poky/meta/recipes-connectivity/bind/bind/0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch
new file mode 100644
index 000000000..987e75bc0
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch
@@ -0,0 +1,911 @@
+Backport patch to fix CVE-2018-5743.
+
+Ref:
+https://security-tracker.debian.org/tracker/CVE-2018-5743
+
+CVE: CVE-2018-5743
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/c47ccf6]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From c47ccf630f147378568b33e8fdb7b754f228c346 Mon Sep 17 00:00:00 2001
+From: Evan Hunt <each@isc.org>
+Date: Fri, 5 Apr 2019 16:26:05 -0700
+Subject: [PATCH 5/6] refactor tcpquota and pipeline refs; allow special-case
+ overrun in isc_quota
+
+- if the TCP quota has been exceeded but there are no clients listening
+ for new connections on the interface, we can now force attachment to the
+ quota using isc_quota_force(), instead of carrying on with the quota not
+ attached.
+- the TCP client quota is now referenced via a reference-counted
+ 'ns_tcpconn' object, one of which is created whenever a client begins
+ listening for new connections, and attached to by members of that
+ client's pipeline group. when the last reference to the tcpconn
+ object is detached, it is freed and the TCP quota slot is released.
+- reduce code duplication by adding mark_tcp_active() function.
+- convert counters to atomic.
+
+(cherry picked from commit 7e8222378ca24f1302a0c1c638565050ab04681b)
+(cherry picked from commit 4939451275722bfda490ea86ca13e84f6bc71e46)
+(cherry picked from commit 13f7c918b8720d890408f678bd73c20e634539d9)
+---
+ bin/named/client.c | 444 +++++++++++--------------
+ bin/named/include/named/client.h | 12 +-
+ bin/named/include/named/interfacemgr.h | 6 +-
+ bin/named/interfacemgr.c | 1 +
+ lib/isc/include/isc/quota.h | 7 +
+ lib/isc/quota.c | 33 +-
+ lib/isc/win32/libisc.def.in | 1 +
+ 7 files changed, 236 insertions(+), 268 deletions(-)
+
+diff --git a/bin/named/client.c b/bin/named/client.c
+index 61e96dd28c..d826ab32bf 100644
+--- a/bin/named/client.c
++++ b/bin/named/client.c
+@@ -244,8 +244,7 @@ static void client_start(isc_task_t *task, isc_event_t *event);
+ static void client_request(isc_task_t *task, isc_event_t *event);
+ static void ns_client_dumpmessage(ns_client_t *client, const char *reason);
+ static isc_result_t get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+- dns_dispatch_t *disp, ns_client_t *oldclient,
+- bool tcp);
++ dns_dispatch_t *disp, bool tcp);
+ static isc_result_t get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp,
+ isc_socket_t *sock, ns_client_t *oldclient);
+ static inline bool
+@@ -301,16 +300,32 @@ ns_client_settimeout(ns_client_t *client, unsigned int seconds) {
+ }
+
+ /*%
+- * Allocate a reference counter that will track the number of client structures
+- * using the TCP connection that 'client' called accept() for. This counter
+- * will be shared between all client structures associated with this TCP
+- * connection.
++ * Allocate a reference-counted object that will maintain a single pointer to
++ * the (also reference-counted) TCP client quota, shared between all the
++ * clients processing queries on a single TCP connection, so that all
++ * clients sharing the one socket will together consume only one slot in
++ * the 'tcp-clients' quota.
+ */
+-static void
+-pipeline_init(ns_client_t *client) {
+- isc_refcount_t *refs;
++static isc_result_t
++tcpconn_init(ns_client_t *client, bool force) {
++ isc_result_t result;
++ isc_quota_t *quota = NULL;
++ ns_tcpconn_t *tconn = NULL;
+
+- REQUIRE(client->pipeline_refs == NULL);
++ REQUIRE(client->tcpconn == NULL);
++
++ /*
++ * Try to attach to the quota first, so we won't pointlessly
++ * allocate memory for a tcpconn object if we can't get one.
++ */
++ if (force) {
++ result = isc_quota_force(&ns_g_server->tcpquota, &quota);
++ } else {
++ result = isc_quota_attach(&ns_g_server->tcpquota, &quota);
++ }
++ if (result != ISC_R_SUCCESS) {
++ return (result);
++ }
+
+ /*
+ * A global memory context is used for the allocation as different
+@@ -320,78 +335,80 @@ pipeline_init(ns_client_t *client) {
+ * contention here is expected to be negligible, given that this code
+ * is only executed for TCP connections.
+ */
+- refs = isc_mem_allocate(ns_g_mctx, sizeof(*refs));
+- isc_refcount_init(refs, 1);
+- client->pipeline_refs = refs;
++ tconn = isc_mem_allocate(ns_g_mctx, sizeof(*tconn));
++
++ isc_refcount_init(&tconn->refs, 1);
++ tconn->tcpquota = quota;
++ quota = NULL;
++ tconn->pipelined = false;
++
++ client->tcpconn = tconn;
++
++ return (ISC_R_SUCCESS);
+ }
+
+ /*%
+- * Increase the count of client structures using the TCP connection that
+- * 'source' is associated with and put a pointer to that count in 'target',
+- * thus associating it with the same TCP connection.
++ * Increase the count of client structures sharing the TCP connection
++ * that 'source' is associated with; add a pointer to the same tcpconn
++ * to 'target', thus associating it with the same TCP connection.
+ */
+ static void
+-pipeline_attach(ns_client_t *source, ns_client_t *target) {
++tcpconn_attach(ns_client_t *source, ns_client_t *target) {
+ int refs;
+
+- REQUIRE(source->pipeline_refs != NULL);
+- REQUIRE(target->pipeline_refs == NULL);
++ REQUIRE(source->tcpconn != NULL);
++ REQUIRE(target->tcpconn == NULL);
++ REQUIRE(source->tcpconn->pipelined);
+
+- isc_refcount_increment(source->pipeline_refs, &refs);
++ isc_refcount_increment(&source->tcpconn->refs, &refs);
+ INSIST(refs > 1);
+- target->pipeline_refs = source->pipeline_refs;
++ target->tcpconn = source->tcpconn;
+ }
+
+ /*%
+- * Decrease the count of client structures using the TCP connection that
++ * Decrease the count of client structures sharing the TCP connection that
+ * 'client' is associated with. If this is the last client using this TCP
+- * connection, free the reference counter and return true; otherwise, return
+- * false.
++ * connection, we detach from the TCP quota and free the tcpconn
++ * object. Either way, client->tcpconn is set to NULL.
+ */
+-static bool
+-pipeline_detach(ns_client_t *client) {
+- isc_refcount_t *refcount;
++static void
++tcpconn_detach(ns_client_t *client) {
++ ns_tcpconn_t *tconn = NULL;
+ int refs;
+
+- REQUIRE(client->pipeline_refs != NULL);
+-
+- refcount = client->pipeline_refs;
+- client->pipeline_refs = NULL;
++ REQUIRE(client->tcpconn != NULL);
+
+- isc_refcount_decrement(refcount, refs);
++ tconn = client->tcpconn;
++ client->tcpconn = NULL;
+
++ isc_refcount_decrement(&tconn->refs, &refs);
+ if (refs == 0) {
+- isc_mem_free(ns_g_mctx, refs);
+- return (true);
++ isc_quota_detach(&tconn->tcpquota);
++ isc_mem_free(ns_g_mctx, tconn);
+ }
+-
+- return (false);
+ }
+
+-/*
+- * Detach a client from the TCP client quota if appropriate, and set
+- * the quota pointer to NULL.
+- *
+- * Sometimes when the TCP client quota is exhausted but there are no other
+- * clients servicing the interface, a client will be allowed to continue
+- * running despite not having been attached to the quota. In this event,
+- * the TCP quota was never attached to the client, so when the client (or
+- * associated pipeline group) shuts down, the quota must NOT be detached.
++/*%
++ * Mark a client as active and increment the interface's 'ntcpactive'
++ * counter, as a signal that there is at least one client servicing
++ * TCP queries for the interface. If we reach the TCP client quota at
++ * some point, this will be used to determine whether a quota overrun
++ * should be permitted.
+ *
+- * Otherwise, if the quota pointer is set, it should be detached. If not
+- * set at all, we just return without doing anything.
++ * Marking the client active with the 'tcpactive' flag ensures proper
++ * accounting, by preventing us from incrementing or decrementing
++ * 'ntcpactive' more than once per client.
+ */
+ static void
+-tcpquota_disconnect(ns_client_t *client) {
+- if (client->tcpquota == NULL) {
+- return;
+- }
+-
+- if (client->tcpattached) {
+- isc_quota_detach(&client->tcpquota);
+- client->tcpattached = false;
+- } else {
+- client->tcpquota = NULL;
++mark_tcp_active(ns_client_t *client, bool active) {
++ if (active && !client->tcpactive) {
++ isc_atomic_xadd(&client->interface->ntcpactive, 1);
++ client->tcpactive = active;
++ } else if (!active && client->tcpactive) {
++ uint32_t old =
++ isc_atomic_xadd(&client->interface->ntcpactive, -1);
++ INSIST(old > 0);
++ client->tcpactive = active;
+ }
+ }
+
+@@ -484,7 +501,8 @@ exit_check(ns_client_t *client) {
+ INSIST(client->recursionquota == NULL);
+
+ if (NS_CLIENTSTATE_READING == client->newstate) {
+- if (!client->pipelined) {
++ INSIST(client->tcpconn != NULL);
++ if (!client->tcpconn->pipelined) {
+ client_read(client);
+ client->newstate = NS_CLIENTSTATE_MAX;
+ return (true); /* We're done. */
+@@ -507,8 +525,8 @@ exit_check(ns_client_t *client) {
+ dns_tcpmsg_cancelread(&client->tcpmsg);
+ }
+
+- if (client->nreads != 0) {
+- /* Still waiting for read cancel completion. */
++ /* Still waiting for read cancel completion. */
++ if (client->nreads > 0) {
+ return (true);
+ }
+
+@@ -518,43 +536,45 @@ exit_check(ns_client_t *client) {
+ }
+
+ /*
+- * Detach from pipeline group and from TCP client quota,
+- * if appropriate.
++ * Soon the client will be ready to accept a new TCP
++ * connection or UDP request, but we may have enough
++ * clients doing that already. Check whether this client
++ * needs to remain active and allow it go inactive if
++ * not.
+ *
+- * - If no pipeline group is active, attempt to
+- * detach from the TCP client quota.
++ * UDP clients always go inactive at this point, but a TCP
++ * client may need to stay active and return to READY
++ * state if no other clients are available to listen
++ * for TCP requests on this interface.
+ *
+- * - If a pipeline group is active, detach from it;
+- * if the return code indicates that there no more
+- * clients left if this pipeline group, we also detach
+- * from the TCP client quota.
+- *
+- * - Otherwise we don't try to detach, we just set the
+- * TCP quota pointer to NULL if it wasn't NULL already.
+- *
+- * tcpquota_disconnect() will set tcpquota to NULL, either
+- * by detaching it or by assignment, depending on the
+- * needs of the client. See the comments on that function
+- * for further information.
++ * Regardless, if we're going to FREED state, that means
++ * the system is shutting down and we don't need to
++ * retain clients.
+ */
+- if (client->pipeline_refs == NULL || pipeline_detach(client)) {
+- tcpquota_disconnect(client);
+- } else {
+- client->tcpquota = NULL;
+- client->tcpattached = false;
++ if (client->mortal && TCP_CLIENT(client) &&
++ client->newstate != NS_CLIENTSTATE_FREED &&
++ !ns_g_clienttest &&
++ isc_atomic_xadd(&client->interface->ntcpaccepting, 0) == 0)
++ {
++ /* Nobody else is accepting */
++ client->mortal = false;
++ client->newstate = NS_CLIENTSTATE_READY;
++ }
++
++ /*
++ * Detach from TCP connection and TCP client quota,
++ * if appropriate. If this is the last reference to
++ * the TCP connection in our pipeline group, the
++ * TCP quota slot will be released.
++ */
++ if (client->tcpconn) {
++ tcpconn_detach(client);
+ }
+
+ if (client->tcpsocket != NULL) {
+ CTRACE("closetcp");
+ isc_socket_detach(&client->tcpsocket);
+-
+- if (client->tcpactive) {
+- LOCK(&client->interface->lock);
+- INSIST(client->interface->ntcpactive > 0);
+- client->interface->ntcpactive--;
+- UNLOCK(&client->interface->lock);
+- client->tcpactive = false;
+- }
++ mark_tcp_active(client, false);
+ }
+
+ if (client->timerset) {
+@@ -567,35 +587,6 @@ exit_check(ns_client_t *client) {
+ client->peeraddr_valid = false;
+
+ client->state = NS_CLIENTSTATE_READY;
+- INSIST(client->recursionquota == NULL);
+-
+- /*
+- * Now the client is ready to accept a new TCP connection
+- * or UDP request, but we may have enough clients doing
+- * that already. Check whether this client needs to remain
+- * active and force it to go inactive if not.
+- *
+- * UDP clients go inactive at this point, but a TCP client
+- * may need to remain active and go into ready state if
+- * no other clients are available to listen for TCP
+- * requests on this interface or (in the case of pipelined
+- * clients) to read for additional messages on the current
+- * connection.
+- */
+- if (client->mortal && TCP_CLIENT(client) && !ns_g_clienttest) {
+- LOCK(&client->interface->lock);
+- if ((client->interface->ntcpaccepting == 0 ||
+- (client->pipelined &&
+- client->interface->ntcpactive < 2)) &&
+- client->newstate != NS_CLIENTSTATE_FREED)
+- {
+- client->mortal = false;
+- client->newstate = NS_CLIENTSTATE_READY;
+- }
+- UNLOCK(&client->interface->lock);
+- }
+-
+- client->pipelined = false;
+
+ /*
+ * We don't need the client; send it to the inactive
+@@ -630,7 +621,7 @@ exit_check(ns_client_t *client) {
+ }
+
+ /* Still waiting for accept cancel completion. */
+- if (! (client->naccepts == 0)) {
++ if (client->naccepts > 0) {
+ return (true);
+ }
+
+@@ -641,7 +632,7 @@ exit_check(ns_client_t *client) {
+ }
+
+ /* Still waiting for recv cancel completion. */
+- if (! (client->nrecvs == 0)) {
++ if (client->nrecvs > 0) {
+ return (true);
+ }
+
+@@ -654,14 +645,7 @@ exit_check(ns_client_t *client) {
+ INSIST(client->recursionquota == NULL);
+ if (client->tcplistener != NULL) {
+ isc_socket_detach(&client->tcplistener);
+-
+- if (client->tcpactive) {
+- LOCK(&client->interface->lock);
+- INSIST(client->interface->ntcpactive > 0);
+- client->interface->ntcpactive--;
+- UNLOCK(&client->interface->lock);
+- client->tcpactive = false;
+- }
++ mark_tcp_active(client, false);
+ }
+ if (client->udpsocket != NULL) {
+ isc_socket_detach(&client->udpsocket);
+@@ -816,7 +800,7 @@ client_start(isc_task_t *task, isc_event_t *event) {
+ return;
+
+ if (TCP_CLIENT(client)) {
+- if (client->pipelined) {
++ if (client->tcpconn != NULL) {
+ client_read(client);
+ } else {
+ client_accept(client);
+@@ -2470,6 +2454,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
+ client->nrecvs--;
+ } else {
+ INSIST(TCP_CLIENT(client));
++ INSIST(client->tcpconn != NULL);
+ REQUIRE(event->ev_type == DNS_EVENT_TCPMSG);
+ REQUIRE(event->ev_sender == &client->tcpmsg);
+ buffer = &client->tcpmsg.buffer;
+@@ -2657,17 +2642,19 @@ client_request(isc_task_t *task, isc_event_t *event) {
+ /*
+ * Pipeline TCP query processing.
+ */
+- if (client->message->opcode != dns_opcode_query) {
+- client->pipelined = false;
++ if (TCP_CLIENT(client) &&
++ client->message->opcode != dns_opcode_query)
++ {
++ client->tcpconn->pipelined = false;
+ }
+- if (TCP_CLIENT(client) && client->pipelined) {
++ if (TCP_CLIENT(client) && client->tcpconn->pipelined) {
+ /*
+ * We're pipelining. Replace the client; the
+- * the replacement can read the TCP socket looking
+- * for new messages and this client can process the
++ * replacement can read the TCP socket looking
++ * for new messages and this one can process the
+ * current message asynchronously.
+ *
+- * There are now at least three clients using this
++ * There will now be at least three clients using this
+ * TCP socket - one accepting new connections,
+ * one reading an existing connection to get new
+ * messages, and one answering the message already
+@@ -2675,7 +2662,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
+ */
+ result = ns_client_replace(client);
+ if (result != ISC_R_SUCCESS) {
+- client->pipelined = false;
++ client->tcpconn->pipelined = false;
+ }
+ }
+
+@@ -3233,10 +3220,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
+ client->signer = NULL;
+ dns_name_init(&client->signername, NULL);
+ client->mortal = false;
+- client->pipelined = false;
+- client->pipeline_refs = NULL;
+- client->tcpquota = NULL;
+- client->tcpattached = false;
++ client->tcpconn = NULL;
+ client->recursionquota = NULL;
+ client->interface = NULL;
+ client->peeraddr_valid = false;
+@@ -3341,9 +3325,10 @@ client_read(ns_client_t *client) {
+
+ static void
+ client_newconn(isc_task_t *task, isc_event_t *event) {
++ isc_result_t result;
+ ns_client_t *client = event->ev_arg;
+ isc_socket_newconnev_t *nevent = (isc_socket_newconnev_t *)event;
+- isc_result_t result;
++ uint32_t old;
+
+ REQUIRE(event->ev_type == ISC_SOCKEVENT_NEWCONN);
+ REQUIRE(NS_CLIENT_VALID(client));
+@@ -3363,10 +3348,8 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ INSIST(client->naccepts == 1);
+ client->naccepts--;
+
+- LOCK(&client->interface->lock);
+- INSIST(client->interface->ntcpaccepting > 0);
+- client->interface->ntcpaccepting--;
+- UNLOCK(&client->interface->lock);
++ old = isc_atomic_xadd(&client->interface->ntcpaccepting, -1);
++ INSIST(old > 0);
+
+ /*
+ * We must take ownership of the new socket before the exit
+@@ -3399,7 +3382,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
+ "accept failed: %s",
+ isc_result_totext(nevent->result));
+- tcpquota_disconnect(client);
++ tcpconn_detach(client);
+ }
+
+ if (exit_check(client))
+@@ -3437,15 +3420,13 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ * telnetting to port 53 (once per CPU) will
+ * deny service to legitimate TCP clients.
+ */
+- client->pipelined = false;
+ result = ns_client_replace(client);
+ if (result == ISC_R_SUCCESS &&
+ (ns_g_server->keepresporder == NULL ||
+ !allowed(&netaddr, NULL, NULL, 0, NULL,
+ ns_g_server->keepresporder)))
+ {
+- pipeline_init(client);
+- client->pipelined = true;
++ client->tcpconn->pipelined = true;
+ }
+
+ client_read(client);
+@@ -3462,78 +3443,59 @@ client_accept(ns_client_t *client) {
+ CTRACE("accept");
+
+ /*
+- * The tcpquota object can only be simultaneously referenced a
+- * pre-defined number of times; this is configured by 'tcp-clients'
+- * in named.conf. If we can't attach to it here, that means the TCP
+- * client quota has been exceeded.
++ * Set up a new TCP connection. This means try to attach to the
++ * TCP client quota (tcp-clients), but fail if we're over quota.
+ */
+- result = isc_quota_attach(&ns_g_server->tcpquota,
+- &client->tcpquota);
++ result = tcpconn_init(client, false);
+ if (result != ISC_R_SUCCESS) {
+- bool exit;
++ bool exit;
+
+- ns_client_log(client, NS_LOGCATEGORY_CLIENT,
+- NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
+- "no more TCP clients: %s",
+- isc_result_totext(result));
+-
+- /*
+- * We have exceeded the system-wide TCP client
+- * quota. But, we can't just block this accept
+- * in all cases, because if we did, a heavy TCP
+- * load on other interfaces might cause this
+- * interface to be starved, with no clients able
+- * to accept new connections.
+- *
+- * So, we check here to see if any other clients
+- * are already servicing TCP queries on this
+- * interface (whether accepting, reading, or
+- * processing). If there are at least two
+- * (one reading and one processing a request)
+- * then it's okay *not* to call accept - we
+- * can let this client go inactive and another
+- * one will resume accepting when it's done.
+- *
+- * If there aren't enough active clients on the
+- * interface, then we can be a little bit
+- * flexible about the quota. We'll allow *one*
+- * extra client through to ensure we're listening
+- * on every interface.
+- *
+- * (Note: In practice this means that the real
+- * TCP client quota is tcp-clients plus the
+- * number of listening interfaces plus 2.)
+- */
+- LOCK(&client->interface->lock);
+- exit = (client->interface->ntcpactive > 1);
+- UNLOCK(&client->interface->lock);
++ ns_client_log(client, NS_LOGCATEGORY_CLIENT,
++ NS_LOGMODULE_CLIENT, ISC_LOG_WARNING,
++ "TCP client quota reached: %s",
++ isc_result_totext(result));
+
+- if (exit) {
+- client->newstate = NS_CLIENTSTATE_INACTIVE;
+- (void)exit_check(client);
+- return;
+- }
++ /*
++ * We have exceeded the system-wide TCP client quota. But,
++ * we can't just block this accept in all cases, because if
++ * we did, a heavy TCP load on other interfaces might cause
++ * this interface to be starved, with no clients able to
++ * accept new connections.
++ *
++ * So, we check here to see if any other clients are
++ * already servicing TCP queries on this interface (whether
++ * accepting, reading, or processing). If we find at least
++ * one, then it's okay *not* to call accept - we can let this
++ * client go inactive and another will take over when it's
++ * done.
++ *
++ * If there aren't enough active clients on the interface,
++ * then we can be a little bit flexible about the quota.
++ * We'll allow *one* extra client through to ensure we're
++ * listening on every interface; we do this by setting the
++ * 'force' option to tcpconn_init().
++ *
++ * (Note: In practice this means that the real TCP client
++ * quota is tcp-clients plus the number of listening
++ * interfaces plus 1.)
++ */
++ exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) > 0);
++ if (exit) {
++ client->newstate = NS_CLIENTSTATE_INACTIVE;
++ (void)exit_check(client);
++ return;
++ }
+
+- } else {
+- client->tcpattached = true;
++ result = tcpconn_init(client, true);
++ RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ }
+
+ /*
+- * By incrementing the interface's ntcpactive counter we signal
+- * that there is at least one client servicing TCP queries for the
+- * interface.
+- *
+- * We also make note of the fact in the client itself with the
+- * tcpactive flag. This ensures proper accounting by preventing
+- * us from accidentally incrementing or decrementing ntcpactive
+- * more than once per client object.
++ * If this client was set up using get_client() or get_worker(),
++ * then TCP is already marked active. However, if it was restarted
++ * from exit_check(), it might not be, so we take care of it now.
+ */
+- if (!client->tcpactive) {
+- LOCK(&client->interface->lock);
+- client->interface->ntcpactive++;
+- UNLOCK(&client->interface->lock);
+- client->tcpactive = true;
+- }
++ mark_tcp_active(client, true);
+
+ result = isc_socket_accept(client->tcplistener, client->task,
+ client_newconn, client);
+@@ -3549,15 +3511,8 @@ client_accept(ns_client_t *client) {
+ "isc_socket_accept() failed: %s",
+ isc_result_totext(result));
+
+- tcpquota_disconnect(client);
+-
+- if (client->tcpactive) {
+- LOCK(&client->interface->lock);
+- client->interface->ntcpactive--;
+- UNLOCK(&client->interface->lock);
+- client->tcpactive = false;
+- }
+-
++ tcpconn_detach(client);
++ mark_tcp_active(client, false);
+ return;
+ }
+
+@@ -3582,9 +3537,7 @@ client_accept(ns_client_t *client) {
+ * listening for connections itself to prevent the interface
+ * going dead.
+ */
+- LOCK(&client->interface->lock);
+- client->interface->ntcpaccepting++;
+- UNLOCK(&client->interface->lock);
++ isc_atomic_xadd(&client->interface->ntcpaccepting, 1);
+ }
+
+ static void
+@@ -3655,24 +3608,25 @@ ns_client_replace(ns_client_t *client) {
+ REQUIRE(client->manager != NULL);
+
+ tcp = TCP_CLIENT(client);
+- if (tcp && client->pipelined) {
++ if (tcp && client->tcpconn != NULL && client->tcpconn->pipelined) {
+ result = get_worker(client->manager, client->interface,
+ client->tcpsocket, client);
+ } else {
+ result = get_client(client->manager, client->interface,
+- client->dispatch, client, tcp);
++ client->dispatch, tcp);
+
+- /*
+- * The responsibility for listening for new requests is hereby
+- * transferred to the new client. Therefore, the old client
+- * should refrain from listening for any more requests.
+- */
+- client->mortal = true;
+ }
+ if (result != ISC_R_SUCCESS) {
+ return (result);
+ }
+
++ /*
++ * The responsibility for listening for new requests is hereby
++ * transferred to the new client. Therefore, the old client
++ * should refrain from listening for any more requests.
++ */
++ client->mortal = true;
++
+ return (ISC_R_SUCCESS);
+ }
+
+@@ -3806,7 +3760,7 @@ ns_clientmgr_destroy(ns_clientmgr_t **managerp) {
+
+ static isc_result_t
+ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+- dns_dispatch_t *disp, ns_client_t *oldclient, bool tcp)
++ dns_dispatch_t *disp, bool tcp)
+ {
+ isc_result_t result = ISC_R_SUCCESS;
+ isc_event_t *ev;
+@@ -3850,15 +3804,7 @@ get_client(ns_clientmgr_t *manager, ns_interface_t *ifp,
+ client->dscp = ifp->dscp;
+
+ if (tcp) {
+- client->tcpattached = false;
+- if (oldclient != NULL) {
+- client->tcpattached = oldclient->tcpattached;
+- }
+-
+- LOCK(&client->interface->lock);
+- client->interface->ntcpactive++;
+- UNLOCK(&client->interface->lock);
+- client->tcpactive = true;
++ mark_tcp_active(client, true);
+
+ client->attributes |= NS_CLIENTATTR_TCP;
+ isc_socket_attach(ifp->tcpsocket,
+@@ -3923,16 +3869,14 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock,
+ ns_interface_attach(ifp, &client->interface);
+ client->newstate = client->state = NS_CLIENTSTATE_WORKING;
+ INSIST(client->recursionquota == NULL);
+- client->tcpquota = &ns_g_server->tcpquota;
+- client->tcpattached = oldclient->tcpattached;
+
+ client->dscp = ifp->dscp;
+
+ client->attributes |= NS_CLIENTATTR_TCP;
+ client->mortal = true;
+
+- pipeline_attach(oldclient, client);
+- client->pipelined = true;
++ tcpconn_attach(oldclient, client);
++ mark_tcp_active(client, true);
+
+ isc_socket_attach(ifp->tcpsocket, &client->tcplistener);
+ isc_socket_attach(sock, &client->tcpsocket);
+@@ -3940,11 +3884,6 @@ get_worker(ns_clientmgr_t *manager, ns_interface_t *ifp, isc_socket_t *sock,
+ (void)isc_socket_getpeername(client->tcpsocket, &client->peeraddr);
+ client->peeraddr_valid = true;
+
+- LOCK(&client->interface->lock);
+- client->interface->ntcpactive++;
+- UNLOCK(&client->interface->lock);
+- client->tcpactive = true;
+-
+ INSIST(client->tcpmsg_valid == false);
+ dns_tcpmsg_init(client->mctx, client->tcpsocket, &client->tcpmsg);
+ client->tcpmsg_valid = true;
+@@ -3970,8 +3909,7 @@ ns_clientmgr_createclients(ns_clientmgr_t *manager, unsigned int n,
+ MTRACE("createclients");
+
+ for (disp = 0; disp < n; disp++) {
+- result = get_client(manager, ifp, ifp->udpdispatch[disp],
+- NULL, tcp);
++ result = get_client(manager, ifp, ifp->udpdispatch[disp], tcp);
+ if (result != ISC_R_SUCCESS)
+ break;
+ }
+diff --git a/bin/named/include/named/client.h b/bin/named/include/named/client.h
+index e2c40acd28..969ee4c08f 100644
+--- a/bin/named/include/named/client.h
++++ b/bin/named/include/named/client.h
+@@ -78,6 +78,13 @@
+ *** Types
+ ***/
+
++/*% reference-counted TCP connection object */
++typedef struct ns_tcpconn {
++ isc_refcount_t refs;
++ isc_quota_t *tcpquota;
++ bool pipelined;
++} ns_tcpconn_t;
++
+ /*% nameserver client structure */
+ struct ns_client {
+ unsigned int magic;
+@@ -131,10 +138,7 @@ struct ns_client {
+ dns_name_t signername; /*%< [T]SIG key name */
+ dns_name_t *signer; /*%< NULL if not valid sig */
+ bool mortal; /*%< Die after handling request */
+- bool pipelined; /*%< TCP queries not in sequence */
+- isc_refcount_t *pipeline_refs;
+- isc_quota_t *tcpquota;
+- bool tcpattached;
++ ns_tcpconn_t *tcpconn;
+ isc_quota_t *recursionquota;
+ ns_interface_t *interface;
+
+diff --git a/bin/named/include/named/interfacemgr.h b/bin/named/include/named/interfacemgr.h
+index 61b08826a6..3535ef22a8 100644
+--- a/bin/named/include/named/interfacemgr.h
++++ b/bin/named/include/named/interfacemgr.h
+@@ -9,8 +9,6 @@
+ * information regarding copyright ownership.
+ */
+
+-/* $Id: interfacemgr.h,v 1.35 2011/07/28 23:47:58 tbox Exp $ */
+-
+ #ifndef NAMED_INTERFACEMGR_H
+ #define NAMED_INTERFACEMGR_H 1
+
+@@ -77,11 +75,11 @@ struct ns_interface {
+ /*%< UDP dispatchers. */
+ isc_socket_t * tcpsocket; /*%< TCP socket. */
+ isc_dscp_t dscp; /*%< "listen-on" DSCP value */
+- int ntcpaccepting; /*%< Number of clients
++ int32_t ntcpaccepting; /*%< Number of clients
+ ready to accept new
+ TCP connections on this
+ interface */
+- int ntcpactive; /*%< Number of clients
++ int32_t ntcpactive; /*%< Number of clients
+ servicing TCP queries
+ (whether accepting or
+ connected) */
+diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c
+index 955096ef47..d9f6df5802 100644
+--- a/bin/named/interfacemgr.c
++++ b/bin/named/interfacemgr.c
+@@ -388,6 +388,7 @@ ns_interface_create(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr,
+ */
+ ifp->ntcpaccepting = 0;
+ ifp->ntcpactive = 0;
++
+ ifp->nudpdispatch = 0;
+
+ ifp->dscp = -1;
+diff --git a/lib/isc/include/isc/quota.h b/lib/isc/include/isc/quota.h
+index b9bf59877a..36c5830242 100644
+--- a/lib/isc/include/isc/quota.h
++++ b/lib/isc/include/isc/quota.h
+@@ -100,6 +100,13 @@ isc_quota_attach(isc_quota_t *quota, isc_quota_t **p);
+ * quota if successful (ISC_R_SUCCESS or ISC_R_SOFTQUOTA).
+ */
+
++isc_result_t
++isc_quota_force(isc_quota_t *quota, isc_quota_t **p);
++/*%<
++ * Like isc_quota_attach, but will attach '*p' to the quota
++ * even if the hard quota has been exceeded.
++ */
++
+ void
+ isc_quota_detach(isc_quota_t **p);
+ /*%<
+diff --git a/lib/isc/quota.c b/lib/isc/quota.c
+index 3ddff0d875..556a61f21d 100644
+--- a/lib/isc/quota.c
++++ b/lib/isc/quota.c
+@@ -74,20 +74,39 @@ isc_quota_release(isc_quota_t *quota) {
+ UNLOCK(&quota->lock);
+ }
+
+-isc_result_t
+-isc_quota_attach(isc_quota_t *quota, isc_quota_t **p)
+-{
++static isc_result_t
++doattach(isc_quota_t *quota, isc_quota_t **p, bool force) {
+ isc_result_t result;
+- INSIST(p != NULL && *p == NULL);
++ REQUIRE(p != NULL && *p == NULL);
++
+ result = isc_quota_reserve(quota);
+- if (result == ISC_R_SUCCESS || result == ISC_R_SOFTQUOTA)
++ if (result == ISC_R_SUCCESS || result == ISC_R_SOFTQUOTA) {
++ *p = quota;
++ } else if (result == ISC_R_QUOTA && force) {
++ /* attach anyway */
++ LOCK(&quota->lock);
++ quota->used++;
++ UNLOCK(&quota->lock);
++
+ *p = quota;
++ result = ISC_R_SUCCESS;
++ }
++
+ return (result);
+ }
+
++isc_result_t
++isc_quota_attach(isc_quota_t *quota, isc_quota_t **p) {
++ return (doattach(quota, p, false));
++}
++
++isc_result_t
++isc_quota_force(isc_quota_t *quota, isc_quota_t **p) {
++ return (doattach(quota, p, true));
++}
++
+ void
+-isc_quota_detach(isc_quota_t **p)
+-{
++isc_quota_detach(isc_quota_t **p) {
+ INSIST(p != NULL && *p != NULL);
+ isc_quota_release(*p);
+ *p = NULL;
+diff --git a/lib/isc/win32/libisc.def.in b/lib/isc/win32/libisc.def.in
+index a82facec0f..7b9f23d776 100644
+--- a/lib/isc/win32/libisc.def.in
++++ b/lib/isc/win32/libisc.def.in
+@@ -519,6 +519,7 @@ isc_portset_removerange
+ isc_quota_attach
+ isc_quota_destroy
+ isc_quota_detach
++isc_quota_force
+ isc_quota_init
+ isc_quota_max
+ isc_quota_release
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind/0006-restore-allowance-for-tcp-clients-interfaces.patch b/poky/meta/recipes-connectivity/bind/bind/0006-restore-allowance-for-tcp-clients-interfaces.patch
new file mode 100644
index 000000000..3821d1850
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0006-restore-allowance-for-tcp-clients-interfaces.patch
@@ -0,0 +1,80 @@
+Backport patch to fix CVE-2018-5743.
+
+Ref:
+https://security-tracker.debian.org/tracker/CVE-2018-5743
+
+CVE: CVE-2018-5743
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/59434b9]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 59434b987e8eb436b08c24e559ee094c4e939daa Mon Sep 17 00:00:00 2001
+From: Evan Hunt <each@isc.org>
+Date: Fri, 5 Apr 2019 16:26:19 -0700
+Subject: [PATCH 6/6] restore allowance for tcp-clients < interfaces
+
+in the "refactor tcpquota and pipeline refs" commit, the counting
+of active interfaces was tightened in such a way that named could
+fail to listen on an interface if there were more interfaces than
+tcp-clients. when checking the quota to start accepting on an
+interface, if the number of active clients was above zero, then
+it was presumed that some other client was able to handle accepting
+new connections. this, however, ignored the fact that the current client
+could be included in that count, so if the quota was already exceeded
+before all the interfaces were listening, some interfaces would never
+listen.
+
+we now check whether the current client has been marked active; if so,
+then the number of active clients on the interface must be greater
+than 1, not 0.
+
+(cherry picked from commit 0b4e2cd4c3192ba88569dd344f542a8cc43742b5)
+(cherry picked from commit d01023aaac35543daffbdf48464e320150235d41)
+---
+ bin/named/client.c | 8 +++++---
+ doc/arm/Bv9ARM-book.xml | 3 ++-
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/bin/named/client.c b/bin/named/client.c
+index d826ab32bf..845326abc0 100644
+--- a/bin/named/client.c
++++ b/bin/named/client.c
+@@ -3464,8 +3464,9 @@ client_accept(ns_client_t *client) {
+ *
+ * So, we check here to see if any other clients are
+ * already servicing TCP queries on this interface (whether
+- * accepting, reading, or processing). If we find at least
+- * one, then it's okay *not* to call accept - we can let this
++ * accepting, reading, or processing). If we find that at
++ * least one client other than this one is active, then
++ * it's okay *not* to call accept - we can let this
+ * client go inactive and another will take over when it's
+ * done.
+ *
+@@ -3479,7 +3480,8 @@ client_accept(ns_client_t *client) {
+ * quota is tcp-clients plus the number of listening
+ * interfaces plus 1.)
+ */
+- exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) > 0);
++ exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) >
++ (client->tcpactive ? 1 : 0));
+ if (exit) {
+ client->newstate = NS_CLIENTSTATE_INACTIVE;
+ (void)exit_check(client);
+diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml
+index 381768d540..9c76d3cd6f 100644
+--- a/doc/arm/Bv9ARM-book.xml
++++ b/doc/arm/Bv9ARM-book.xml
+@@ -8493,7 +8493,8 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
+ <para>
+ The number of file descriptors reserved for TCP, stdio,
+ etc. This needs to be big enough to cover the number of
+- interfaces <command>named</command> listens on, <command>tcp-clients</command> as well as
++ interfaces <command>named</command> listens on plus
++ <command>tcp-clients</command>, as well as
+ to provide room for outgoing TCP queries and incoming zone
+ transfers. The default is <literal>512</literal>.
+ The minimum value is <literal>128</literal> and the
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind/0007-Replace-atomic-operations-in-bin-named-client.c-with.patch b/poky/meta/recipes-connectivity/bind/bind/0007-Replace-atomic-operations-in-bin-named-client.c-with.patch
new file mode 100644
index 000000000..1a84eca58
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bind/bind/0007-Replace-atomic-operations-in-bin-named-client.c-with.patch
@@ -0,0 +1,140 @@
+Backport commit to fix compile error on arm caused by commits which are
+to fix CVE-2018-5743.
+
+CVE: CVE-2018-5743
+Upstream-Status: Backport [https://gitlab.isc.org/isc-projects/bind9/commit/ef49780]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From ef49780d30d3ddc5735cfc32561b678a634fa72f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej@sury.org>
+Date: Wed, 17 Apr 2019 15:22:27 +0200
+Subject: [PATCH] Replace atomic operations in bin/named/client.c with
+ isc_refcount reference counting
+
+---
+ bin/named/client.c | 18 +++++++-----------
+ bin/named/include/named/interfacemgr.h | 5 +++--
+ bin/named/interfacemgr.c | 7 +++++--
+ 3 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/bin/named/client.c b/bin/named/client.c
+index 845326abc0..29fecadca8 100644
+--- a/bin/named/client.c
++++ b/bin/named/client.c
+@@ -402,12 +402,10 @@ tcpconn_detach(ns_client_t *client) {
+ static void
+ mark_tcp_active(ns_client_t *client, bool active) {
+ if (active && !client->tcpactive) {
+- isc_atomic_xadd(&client->interface->ntcpactive, 1);
++ isc_refcount_increment0(&client->interface->ntcpactive, NULL);
+ client->tcpactive = active;
+ } else if (!active && client->tcpactive) {
+- uint32_t old =
+- isc_atomic_xadd(&client->interface->ntcpactive, -1);
+- INSIST(old > 0);
++ isc_refcount_decrement(&client->interface->ntcpactive, NULL);
+ client->tcpactive = active;
+ }
+ }
+@@ -554,7 +552,7 @@ exit_check(ns_client_t *client) {
+ if (client->mortal && TCP_CLIENT(client) &&
+ client->newstate != NS_CLIENTSTATE_FREED &&
+ !ns_g_clienttest &&
+- isc_atomic_xadd(&client->interface->ntcpaccepting, 0) == 0)
++ isc_refcount_current(&client->interface->ntcpaccepting) == 0)
+ {
+ /* Nobody else is accepting */
+ client->mortal = false;
+@@ -3328,7 +3326,6 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ isc_result_t result;
+ ns_client_t *client = event->ev_arg;
+ isc_socket_newconnev_t *nevent = (isc_socket_newconnev_t *)event;
+- uint32_t old;
+
+ REQUIRE(event->ev_type == ISC_SOCKEVENT_NEWCONN);
+ REQUIRE(NS_CLIENT_VALID(client));
+@@ -3348,8 +3345,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
+ INSIST(client->naccepts == 1);
+ client->naccepts--;
+
+- old = isc_atomic_xadd(&client->interface->ntcpaccepting, -1);
+- INSIST(old > 0);
++ isc_refcount_decrement(&client->interface->ntcpaccepting, NULL);
+
+ /*
+ * We must take ownership of the new socket before the exit
+@@ -3480,8 +3476,8 @@ client_accept(ns_client_t *client) {
+ * quota is tcp-clients plus the number of listening
+ * interfaces plus 1.)
+ */
+- exit = (isc_atomic_xadd(&client->interface->ntcpactive, 0) >
+- (client->tcpactive ? 1 : 0));
++ exit = (isc_refcount_current(&client->interface->ntcpactive) >
++ (client->tcpactive ? 1U : 0U));
+ if (exit) {
+ client->newstate = NS_CLIENTSTATE_INACTIVE;
+ (void)exit_check(client);
+@@ -3539,7 +3535,7 @@ client_accept(ns_client_t *client) {
+ * listening for connections itself to prevent the interface
+ * going dead.
+ */
+- isc_atomic_xadd(&client->interface->ntcpaccepting, 1);
++ isc_refcount_increment0(&client->interface->ntcpaccepting, NULL);
+ }
+
+ static void
+diff --git a/bin/named/include/named/interfacemgr.h b/bin/named/include/named/interfacemgr.h
+index 3535ef22a8..6e10f210fd 100644
+--- a/bin/named/include/named/interfacemgr.h
++++ b/bin/named/include/named/interfacemgr.h
+@@ -45,6 +45,7 @@
+ #include <isc/magic.h>
+ #include <isc/mem.h>
+ #include <isc/socket.h>
++#include <isc/refcount.h>
+
+ #include <dns/result.h>
+
+@@ -75,11 +76,11 @@ struct ns_interface {
+ /*%< UDP dispatchers. */
+ isc_socket_t * tcpsocket; /*%< TCP socket. */
+ isc_dscp_t dscp; /*%< "listen-on" DSCP value */
+- int32_t ntcpaccepting; /*%< Number of clients
++ isc_refcount_t ntcpaccepting; /*%< Number of clients
+ ready to accept new
+ TCP connections on this
+ interface */
+- int32_t ntcpactive; /*%< Number of clients
++ isc_refcount_t ntcpactive; /*%< Number of clients
+ servicing TCP queries
+ (whether accepting or
+ connected) */
+diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c
+index d9f6df5802..135533be6b 100644
+--- a/bin/named/interfacemgr.c
++++ b/bin/named/interfacemgr.c
+@@ -386,8 +386,8 @@ ns_interface_create(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr,
+ * connections will be handled in parallel even though there is
+ * only one client initially.
+ */
+- ifp->ntcpaccepting = 0;
+- ifp->ntcpactive = 0;
++ isc_refcount_init(&ifp->ntcpaccepting, 0);
++ isc_refcount_init(&ifp->ntcpactive, 0);
+
+ ifp->nudpdispatch = 0;
+
+@@ -618,6 +618,9 @@ ns_interface_destroy(ns_interface_t *ifp) {
+
+ ns_interfacemgr_detach(&ifp->mgr);
+
++ isc_refcount_destroy(&ifp->ntcpactive);
++ isc_refcount_destroy(&ifp->ntcpaccepting);
++
+ ifp->magic = 0;
+ isc_mem_put(mctx, ifp, sizeof(*ifp));
+ }
+--
+2.20.1
+
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb b/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb
index f4e985036..089770634 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb
@@ -20,6 +20,14 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \
file://0001-configure.in-remove-useless-L-use_openssl-lib.patch \
file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \
file://0001-avoid-start-failure-with-bind-user.patch \
+ file://0001-bind-fix-CVE-2019-6471.patch \
+ file://0001-fix-enforcement-of-tcp-clients-v1.patch \
+ file://0002-tcp-clients-could-still-be-exceeded-v2.patch \
+ file://0003-use-reference-counter-for-pipeline-groups-v3.patch \
+ file://0004-better-tcpquota-accounting-and-client-mortality-chec.patch \
+ file://0005-refactor-tcpquota-and-pipeline-refs-allow-special-ca.patch \
+ file://0006-restore-allowance-for-tcp-clients-interfaces.patch \
+ file://0007-Replace-atomic-operations-in-bin-named-client.c-with.patch \
"
SRC_URI[md5sum] = "8ddab4b61fa4516fe404679c74e37960"
@@ -29,6 +37,10 @@ UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
# stay at 9.11 until 9.16, from 9.16 follow the ESV versions divisible by 4
UPSTREAM_CHECK_REGEX = "(?P<pver>9.(11|16|20|24|28)(\.\d+)+(-P\d+)*)/"
+# BIND >= 9.11.2 need dhcpd >= 4.4.0,
+# don't report it here since dhcpd is already recent enough.
+CVE_CHECK_WHITELIST += "CVE-2019-6470"
+
inherit autotools update-rc.d systemd useradd pkgconfig multilib_script
MULTILIB_SCRIPTS = "${PN}:${bindir}/bind9-config ${PN}:${bindir}/isc-config.sh"
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
index f582a07e2..484509350 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -58,12 +58,13 @@ SRC_URI = "\
file://CVE-2018-10910.patch \
file://gcc9-fixes.patch \
file://0001-tools-Fix-build-after-y2038-changes-in-glibc.patch \
+ file://0001-tools-btpclient.c-include-signal.h.patch \
"
S = "${WORKDIR}/bluez-${PV}"
CVE_PRODUCT = "bluez"
-inherit autotools pkgconfig systemd update-rc.d distro_features_check ptest gobject-introspection-data
+inherit autotools pkgconfig systemd update-rc.d features_check ptest gobject-introspection-data
EXTRA_OECONF = "\
--enable-test \
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch
index 3c227a8ea..b6cb97839 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch
@@ -1,32 +1,30 @@
-From 048e1844092cb4b3afd23f16fc2cc70dd2e122b7 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Mon, 24 Dec 2018 17:57:14 -0800
-Subject: [PATCH] Makefile.am: Fix a race issue for tools
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
-Fixed:
-cp ../bluez-5.50/tools/hid2hci.rules tools/97-hid2hci.rules
-cp: cannot create regular file tools/97-hid2hci.rules: No such file or directory
-make[1]: *** [tools/97-hid2hci.rules] Error 1
+From 117c41242c01e057295aed80ed973c6dc7e35fe2 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Tue, 8 Oct 2019 11:01:56 +0100
+Subject: [PATCH BlueZ] Makefile.am: add missing mkdir in rules generation
-Upstream-Status: Submitted[https://www.spinics.net/lists/linux-bluetooth/msg78361.html]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+In parallel out-of-tree builds it's possible that tools/*.rules are
+generated before the target directory has been implicitly created. Solve this by
+creating the directory before writing into it.
---
Makefile.am | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.am b/Makefile.am
-index 6d1ff11..35a01f2 100644
+index 2ac28b23d..e7bcd2366 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -504,6 +504,7 @@ src/builtin.h: src/genbuiltin $(builtin_sources)
+@@ -589,6 +589,7 @@ src/builtin.h: src/genbuiltin $(builtin_sources)
$(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@
tools/%.rules:
-+ [ -e tools ] || $(MKDIR_P) tools
++ $(AM_V_at)$(MKDIR_P) tools
$(AM_V_GEN)cp $(srcdir)/$(subst 97-,,$@) $@
$(lib_libbluetooth_la_OBJECTS): $(local_headers)
--
-2.10.2
+2.20.1
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-btpclient.c-include-signal.h.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-btpclient.c-include-signal.h.patch
new file mode 100644
index 000000000..620aaabc6
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-tools-btpclient.c-include-signal.h.patch
@@ -0,0 +1,30 @@
+From 0b1766514f6847c7367fce07f19a750ec74c11a6 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 26 Sep 2019 16:19:34 +0800
+Subject: [PATCH] tools/btpclient.c: include signal.h
+
+Fix compile failure when configure --enable-btpclient:
+btpclient.c:2834:7: error: 'SIGINT' undeclared (first use in this function)
+
+Upstream-Status: Backport [A subset of the full fix that went upstream]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ tools/btpclient.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/btpclient.c b/tools/btpclient.c
+index b217df5..aece7fe 100644
+--- a/tools/btpclient.c
++++ b/tools/btpclient.c
+@@ -29,6 +29,7 @@
+ #include <stdlib.h>
+ #include <assert.h>
+ #include <getopt.h>
++#include <signal.h>
+
+ #include <ell/ell.h>
+
+--
+2.7.4
+
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
index 3ee79d704..76ed77925 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
@@ -7,7 +7,7 @@ In parallel out-of-tree builds it's possible that obexd/src/builtin.h is
generated before the target directory has been implicitly created. Solve this by
creating the directory before writing into it.
-Upstream-Status: Submitted
+Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
Makefile.obexd | 1 +
diff --git a/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
index a56bd3751..778bf5019 100644
--- a/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -20,7 +20,7 @@ SRC_URI = "git://github.com/connectivity/connman-gnome.git \
S = "${WORKDIR}/git"
-inherit autotools-brokensep gtk-icon-cache pkgconfig distro_features_check
+inherit autotools-brokensep gtk-icon-cache pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
RDEPENDS_${PN} = "connman"
diff --git a/poky/meta/recipes-connectivity/connman/connman.inc b/poky/meta/recipes-connectivity/connman/connman.inc
index ee0047992..fb38ab4fc 100644
--- a/poky/meta/recipes-connectivity/connman/connman.inc
+++ b/poky/meta/recipes-connectivity/connman/connman.inc
@@ -59,7 +59,7 @@ INITSCRIPT_NAME = "connman"
INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ."
python __anonymous () {
- systemd_packages = "${PN}"
+ systemd_packages = "${PN} ${PN}-wait-online"
pkgconfig = d.getVar('PACKAGECONFIG')
if ('openvpn' or 'vpnc' or 'l2tp' or 'pptp') in pkgconfig.split():
systemd_packages += " ${PN}-vpn"
diff --git a/poky/meta/recipes-connectivity/dhcp/dhcp.inc b/poky/meta/recipes-connectivity/dhcp/dhcp.inc
index 18bbaf884..c4697beaf 100644
--- a/poky/meta/recipes-connectivity/dhcp/dhcp.inc
+++ b/poky/meta/recipes-connectivity/dhcp/dhcp.inc
@@ -43,7 +43,7 @@ INITSCRIPT_PACKAGES = "dhcp-server"
INITSCRIPT_NAME_dhcp-server = "dhcp-server"
INITSCRIPT_PARAMS_dhcp-server = "defaults"
-TARGET_CFLAGS += "-D_GNU_SOURCE"
+CFLAGS += "-D_GNU_SOURCE"
EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \
--with-srv6-lease-file=${localstatedir}/lib/dhcp/dhcpd6.leases \
--with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \
diff --git a/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch b/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch
new file mode 100644
index 000000000..2359381b9
--- /dev/null
+++ b/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch
@@ -0,0 +1,65 @@
+From eec0503cfc36f63d777f5cb3f2719cecedcb8468 Mon Sep 17 00:00:00 2001
+From: Haris Okanovic <haris.okanovic@ni.com>
+Date: Mon, 7 Jan 2019 13:22:09 -0600
+Subject: [PATCH] Workaround busybox limitation in Linux dhclient-script
+
+Busybox is a lightweight implementation of coreutils commonly used on
+space-constrained embedded Linux distributions. It's implementation of
+chown and chmod doesn't provide a "--reference" option added to
+client/scripts/linux as of commit 9261cb14. This change works around
+that limitation by using stat to read ownership and permissions flags
+and simple chown/chmod calls supported in both coreutils and busybox.
+
+ modified: client/scripts/linux
+
+Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
+Upstream-Status: Pending [ISC-Bugs #48771]
+---
+ client/scripts/linux | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+diff --git a/client/scripts/linux b/client/scripts/linux
+index 0c429697..2435a44b 100755
+--- a/client/scripts/linux
++++ b/client/scripts/linux
+@@ -32,6 +32,17 @@
+ # if your system holds ip tool in a non-standard location.
+ ip=/sbin/ip
+
++chown_chmod_by_reference() {
++ local reference_file="$1"
++ local target_file="$2"
++
++ local owner=$(stat -c "%u:%g" "$reference_file")
++ local perm=$(stat -c "%a" "$reference_file")
++
++ chown "$owner" "$target_file"
++ chmod "$perm" "$target_file"
++}
++
+ # update /etc/resolv.conf based on received values
+ # This updated version mostly follows Debian script by Andrew Pollock et al.
+ make_resolv_conf() {
+@@ -74,8 +85,7 @@ make_resolv_conf() {
+ fi
+
+ if [ -f /etc/resolv.conf ]; then
+- chown --reference=/etc/resolv.conf $new_resolv_conf
+- chmod --reference=/etc/resolv.conf $new_resolv_conf
++ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
+ fi
+ mv -f $new_resolv_conf /etc/resolv.conf
+ # DHCPv6
+@@ -101,8 +111,7 @@ make_resolv_conf() {
+ fi
+
+ if [ -f /etc/resolv.conf ]; then
+- chown --reference=/etc/resolv.conf $new_resolv_conf
+- chmod --reference=/etc/resolv.conf $new_resolv_conf
++ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
+ fi
+ mv -f $new_resolv_conf /etc/resolv.conf
+ fi
+--
+2.20.0
+
diff --git a/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb b/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb
index 275961a60..020777b8f 100644
--- a/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb
+++ b/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb
@@ -11,6 +11,7 @@ SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.pat
file://0013-fixup_use_libbind.patch \
file://0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch \
file://0001-Fix-a-NSUPDATE-compiling-issue.patch \
+ file://0001-workaround-busybox-limitation-in-linux-dhclient-script.patch \
"
SRC_URI[md5sum] = "18c7f4dcbb0a63df25098216d47b1ede"
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.2.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.3.0.bb
index 1728cd69a..8a86cbf78 100644
--- a/poky/meta/recipes-connectivity/iproute2/iproute2_5.2.0.bb
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2_5.3.0.bb
@@ -4,8 +4,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
file://0001-libc-compat.h-add-musl-workaround.patch \
"
-SRC_URI[md5sum] = "0cb2736e7bc2f56254a363d3d23703b7"
-SRC_URI[sha256sum] = "a5b95dec26353fc71dba9bb403e9343fad2a06bd69fb154a22a2aa2914f74da8"
+SRC_URI[md5sum] = "227404413c8d6db649d6188ead1e5a6e"
+SRC_URI[sha256sum] = "cb1c1e45993a3bd2438543fd4332d70f1726a6e6ff97dc613a8258c993117b3f"
# CFLAGS are computed in Makefile and reference CCOPTS
#
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
index d5e9c38a9..0f5747cc6 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
@@ -107,7 +107,7 @@ stop_nfsd(){
#FIXME: need to create the /var/lib/nfs/... directories
case "$1" in
start)
- exportfs -r
+ test -r /etc/exports && exportfs -r
start_nfsd "$NFS_SERVERS"
start_mountd
test -r /etc/exports && exportfs -a;;
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb
index 7e80354e4..eb32bccb5 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84"
# util-linux for libblkid
DEPENDS = "libcap libevent util-linux sqlite3 libtirpc"
-RDEPENDS_${PN} = "${PN}-client bash"
+RDEPENDS_${PN} = "${PN}-client"
RRECOMMENDS_${PN} = "kernel-module-nfsd"
inherit useradd
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.30.bb b/poky/meta/recipes-connectivity/ofono/ofono_1.30.bb
deleted file mode 100644
index c916cb1b2..000000000
--- a/poky/meta/recipes-connectivity/ofono/ofono_1.30.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require ofono.inc
-
-SRC_URI = "\
- ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
- file://ofono \
- file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
-"
-SRC_URI[md5sum] = "2b1ce11a4db1f4b5c8cd96eb7e96ba0c"
-SRC_URI[sha256sum] = "8079735efc5d7f33be9e792e791f2f7ff75c31ce67d477b994673e32319eec5c"
diff --git a/poky/meta/recipes-connectivity/ofono/ofono.inc b/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb
index bdbb0b5bc..7d0976ad7 100644
--- a/poky/meta/recipes-connectivity/ofono/ofono.inc
+++ b/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb
@@ -1,28 +1,35 @@
-HOMEPAGE = "http://www.ofono.org"
-SUMMARY = "open source telephony"
+SUMMARY = "open source telephony"
DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux. oFono supports speaking to telephony devices through specific drivers, or with generic AT commands."
-LICENSE = "GPLv2"
+HOMEPAGE = "http://www.ofono.org"
+BUGTRACKER = "https://01.org/jira/browse/OF"
+LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"
+DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell"
-inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
+SRC_URI = "\
+ ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
+ file://ofono \
+ file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
+"
+SRC_URI[md5sum] = "1c26340e3c6ed132cc812595081bb3dc"
+SRC_URI[sha256sum] = "a15c5d28096c10eb30e47a68b6dc2e7c4a5a99d7f4cfedf0b69624f33d859e9b"
-DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell"
+inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
INITSCRIPT_NAME = "ofono"
INITSCRIPT_PARAMS = "defaults 22"
+SYSTEMD_SERVICE_${PN} = "ofono.service"
PACKAGECONFIG ??= "\
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
- "
+"
PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5"
EXTRA_OECONF += "--enable-test --enable-external-ell"
-SYSTEMD_SERVICE_${PN} = "ofono.service"
-
do_install_append() {
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
@@ -30,10 +37,14 @@ do_install_append() {
PACKAGES =+ "${PN}-tests"
-RDEPENDS_${PN} += "dbus"
-RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"
-
FILES_${PN} += "${systemd_unitdir}"
FILES_${PN}-tests = "${libdir}/${BPN}/test"
-RDEPENDS_${PN}-tests = "python3-core python3-dbus"
-RDEPENDS_${PN}-tests += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)}"
+
+RDEPENDS_${PN} += "dbus"
+RDEPENDS_${PN}-tests = "\
+ python3-core \
+ python3-dbus \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)} \
+"
+
+RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"
diff --git a/poky/meta/recipes-connectivity/openssh/openssh/0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch b/poky/meta/recipes-connectivity/openssh/openssh/0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch
new file mode 100644
index 000000000..3265be348
--- /dev/null
+++ b/poky/meta/recipes-connectivity/openssh/openssh/0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch
@@ -0,0 +1,40 @@
+From 2014fad3d28090b59d2f8a0971166c06e5fa6da6 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 18 Oct 2019 14:56:58 +0800
+Subject: [PATCH] upstream: fix integer overflow in XMSS private key parsing.
+
+Reported by Adam Zabrocki via SecuriTeam's SSH program.
+
+Note that this code is experimental and not compiled by default.
+
+ok markus@
+
+OpenBSD-Commit-ID: cd0361896d15e8a1bac495ac583ff065ffca2be1
+
+Signed-off-by: "djm@openbsd.org" <djm@openbsd.org>
+
+Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/a546b17bbaeb12beac4c9aeed56f74a42b18a93a]
+CVE: CVE-2019-16905
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ sshkey-xmss.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sshkey-xmss.c b/sshkey-xmss.c
+index aaae702..c57681a 100644
+--- a/sshkey-xmss.c
++++ b/sshkey-xmss.c
+@@ -977,7 +977,8 @@ sshkey_xmss_decrypt_state(const struct sshkey *k, struct sshbuf *encoded,
+ goto out;
+ }
+ /* check that an appropriate amount of auth data is present */
+- if (sshbuf_len(encoded) < encrypted_len + authlen) {
++ if (sshbuf_len(encoded) < authlen ||
++ sshbuf_len(encoded) - authlen < encrypted_len) {
+ r = SSH_ERR_INVALID_FORMAT;
+ goto out;
+ }
+--
+2.7.4
+
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
index 01eaecd4e..2ffbc9a95 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
@@ -24,6 +24,7 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \
file://sshd_check_keys \
file://add-test-support-for-busybox.patch \
+ file://0001-upstream-fix-integer-overflow-in-XMSS-private-key-pa.patch \
"
SRC_URI[md5sum] = "bf050f002fe510e1daecd39044e1122d"
SRC_URI[sha256sum] = "bd943879e69498e8031eb6b7f44d08cdc37d59a7ab689aa0b437320c3481fd68"
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb
index 072f727e0..8819e19ec 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb
@@ -148,7 +148,7 @@ do_install_append_class-native () {
OPENSSL_CONF=${libdir}/ssl-1.1/openssl.cnf \
SSL_CERT_DIR=${libdir}/ssl-1.1/certs \
SSL_CERT_FILE=${libdir}/ssl-1.1/cert.pem \
- OPENSSL_ENGINES=${libdir}/ssl-1.1/engines
+ OPENSSL_ENGINES=${libdir}/engines-1.1
}
do_install_append_class-nativesdk () {
diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch
new file mode 100644
index 000000000..7b0713cf6
--- /dev/null
+++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch
@@ -0,0 +1,82 @@
+hostapd before 2.10 and wpa_supplicant before 2.10 allow an incorrect indication
+of disconnection in certain situations because source address validation is
+mishandled. This is a denial of service that should have been prevented by PMF
+(aka management frame protection). The attacker must send a crafted 802.11 frame
+from a location that is within the 802.11 communications range.
+
+CVE: CVE-2019-16275
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From 8c07fa9eda13e835f3f968b2e1c9a8be3a851ff9 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Thu, 29 Aug 2019 11:52:04 +0300
+Subject: [PATCH] AP: Silently ignore management frame from unexpected source
+ address
+
+Do not process any received Management frames with unexpected/invalid SA
+so that we do not add any state for unexpected STA addresses or end up
+sending out frames to unexpected destination. This prevents unexpected
+sequences where an unprotected frame might end up causing the AP to send
+out a response to another device and that other device processing the
+unexpected response.
+
+In particular, this prevents some potential denial of service cases
+where the unexpected response frame from the AP might result in a
+connected station dropping its association.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/ap/drv_callbacks.c | 13 +++++++++++++
+ src/ap/ieee802_11.c | 12 ++++++++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c
+index 31587685fe3b..34ca379edc3d 100644
+--- a/src/ap/drv_callbacks.c
++++ b/src/ap/drv_callbacks.c
+@@ -131,6 +131,19 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
+ "hostapd_notif_assoc: Skip event with no address");
+ return -1;
+ }
++
++ if (is_multicast_ether_addr(addr) ||
++ is_zero_ether_addr(addr) ||
++ os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) {
++ /* Do not process any frames with unexpected/invalid SA so that
++ * we do not add any state for unexpected STA addresses or end
++ * up sending out frames to unexpected destination. */
++ wpa_printf(MSG_DEBUG, "%s: Invalid SA=" MACSTR
++ " in received indication - ignore this indication silently",
++ __func__, MAC2STR(addr));
++ return 0;
++ }
++
+ random_add_randomness(addr, ETH_ALEN);
+
+ hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211,
+diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
+index c85a28db44b7..e7065372e158 100644
+--- a/src/ap/ieee802_11.c
++++ b/src/ap/ieee802_11.c
+@@ -4626,6 +4626,18 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len,
+ fc = le_to_host16(mgmt->frame_control);
+ stype = WLAN_FC_GET_STYPE(fc);
+
++ if (is_multicast_ether_addr(mgmt->sa) ||
++ is_zero_ether_addr(mgmt->sa) ||
++ os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) {
++ /* Do not process any frames with unexpected/invalid SA so that
++ * we do not add any state for unexpected STA addresses or end
++ * up sending out frames to unexpected destination. */
++ wpa_printf(MSG_DEBUG, "MGMT: Invalid SA=" MACSTR
++ " in received frame - ignore this frame silently",
++ MAC2STR(mgmt->sa));
++ return 0;
++ }
++
+ if (stype == WLAN_FC_STYPE_BEACON) {
+ handle_beacon(hapd, mgmt, len, fi);
+ return 1;
+--
+2.20.1
diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
index ad9e6ea4b..3e92427bb 100644
--- a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
+++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
@@ -25,6 +25,7 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
file://wpa_supplicant.conf-sane \
file://99_wpa_supplicant \
file://0001-replace-systemd-install-Alias-with-WantedBy.patch \
+ file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \
"
SRC_URI[md5sum] = "2d2958c782576dc9901092fbfecb4190"
SRC_URI[sha256sum] = "fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17"
diff --git a/poky/meta/recipes-core/coreutils/coreutils_8.31.bb b/poky/meta/recipes-core/coreutils/coreutils_8.31.bb
index 4a74f619a..57b2c1bdb 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_8.31.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_8.31.bb
@@ -49,7 +49,7 @@ bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname
env expand expr factor fmt fold groups head hostid id install \
join link logname md5sum mkfifo nl nohup nproc od paste pathchk \
pinky pr printf ptx readlink realpath runcon seq sha1sum sha224sum sha256sum \
- sha384sum sha512sum shred shuf sort split stdbuf sum tac tail tee test timeout \
+ sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \
tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes"
# hostname gets a special treatment and is not included in this
@@ -58,6 +58,10 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill l
sbindir_progs= "chroot"
+PACKAGE_BEFORE_PN_class-target += "coreutils-stdbuf"
+FILES_coreutils-stdbuf = "${bindir}/stdbuf ${libdir}/coreutils/libstdbuf.so"
+RDEPENDS_coreutils_class-target += "coreutils-stdbuf"
+
# Let aclocal use the relative path for the m4 file rather than the
# absolute since coreutils has a lot of m4 files, otherwise there might
# be an "Argument list too long" error when it is built in a long/deep
diff --git a/poky/meta/recipes-core/dbus/dbus/dbus-1.init b/poky/meta/recipes-core/dbus/dbus/dbus-1.init
index 42c86297c..90e167e57 100644
--- a/poky/meta/recipes-core/dbus/dbus/dbus-1.init
+++ b/poky/meta/recipes-core/dbus/dbus/dbus-1.init
@@ -21,8 +21,8 @@
DAEMON=@bindir@/dbus-daemon
NAME=dbus
-DAEMONUSER=messagebus # must match /etc/dbus-1/system.conf
-PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
+DAEMONUSER=messagebus # must match /usr/share/dbus-1/system.conf
+PIDFILE=/var/run/dbus/pid # must match /usr/share/dbus-1/system.conf
UUIDDIR=/var/lib/dbus
DESC="system message bus"
EVENTDIR=/etc/dbus-1/event.d
diff --git a/poky/meta/recipes-core/dbus/dbus_1.12.16.bb b/poky/meta/recipes-core/dbus/dbus_1.12.16.bb
index f4fec2365..96b503687 100644
--- a/poky/meta/recipes-core/dbus/dbus_1.12.16.bb
+++ b/poky/meta/recipes-core/dbus/dbus_1.12.16.bb
@@ -32,7 +32,6 @@ python __anonymous() {
}
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r netdev"
USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
--no-create-home --shell /bin/false \
--user-group messagebus"
diff --git a/poky/meta/recipes-core/ell/ell_0.22.bb b/poky/meta/recipes-core/ell/ell_0.26.bb
index b3942fc30..f1f252ce4 100644
--- a/poky/meta/recipes-core/ell/ell_0.22.bb
+++ b/poky/meta/recipes-core/ell/ell_0.26.bb
@@ -14,8 +14,8 @@ DEPENDS = "dbus"
inherit autotools pkgconfig
SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "a4e7d74404f11e71775b89f53a8f1c33"
-SRC_URI[sha256sum] = "3c1d6d997e17dfcbe4ebcd1331d9a7be5c64f2f0a0813bc223790e570d8da2e3"
+SRC_URI[md5sum] = "4660e25541071e933a2bb02ef2f94e7d"
+SRC_URI[sha256sum] = "7855b4b8f271ba6ee67d87d0965b975a9a8dbeaa616665ca2248afa3b5fcbc77"
do_configure_prepend () {
mkdir -p ${S}/build-aux
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.1.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.2.bb
index 7897170a7..27a15a9b1 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.1.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.2.bb
@@ -20,5 +20,5 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
SRC_URI_append_class-native = " file://relocate-modules.patch"
SRC_URI_append_class-target = " file://glib-meson.cross"
-SRC_URI[md5sum] = "64c14b4fe46c478992560c2f48a5b649"
-SRC_URI[sha256sum] = "3dd9024e1d0872a6da7ac509937ccf997161b11d7d35be337c7e829cbae0f9df"
+SRC_URI[md5sum] = "bed3a70397a019965efac0c49f9c8164"
+SRC_URI[sha256sum] = "698824a413f76df039739c2a78f45b10939d526ae7495bab4e694e6730deb3f1"
diff --git a/poky/meta/recipes-core/glib-2.0/glib.inc b/poky/meta/recipes-core/glib-2.0/glib.inc
index 8b95f2120..e811b42d7 100644
--- a/poky/meta/recipes-core/glib-2.0/glib.inc
+++ b/poky/meta/recipes-core/glib-2.0/glib.inc
@@ -28,7 +28,7 @@ PACKAGES += "${PN}-codegen ${PN}-utils"
LEAD_SONAME = "libglib-2.0.*"
-inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages distro_features_check
+inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages features_check
GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/poky/meta/recipes-core/glibc/glibc-package.inc b/poky/meta/recipes-core/glibc/glibc-package.inc
index d7037c5cc..9dd5a0d40 100644
--- a/poky/meta/recipes-core/glibc/glibc-package.inc
+++ b/poky/meta/recipes-core/glibc/glibc-package.inc
@@ -1,6 +1,6 @@
INHIBIT_SYSROOT_STRIP = "1"
-PACKAGES = "${PN}-dbg catchsegv sln nscd ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
+PACKAGES = "${PN}-dbg catchsegv sln nscd ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc ldconfig"
# The ld.so in this glibc supports the GNU_HASH
RPROVIDES_${PN} = "eglibc rtld(GNU_HASH)"
@@ -23,7 +23,9 @@ ARCH_DYNAMIC_LOADER_aarch64 = "ld-linux-${TARGET_ARCH}.so.1"
libc_baselibs_append = " ${@oe.utils.conditional('ARCH_DYNAMIC_LOADER', '', '', '${root_prefix}/lib/${ARCH_DYNAMIC_LOADER}', d)}"
INSANE_SKIP_${PN}_append_aarch64 = " libdir"
-FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf"
+FILES_${PN} = "${libc_baselibs} ${libexecdir}/*"
+RRECOMMENDS_${PN} = "${@bb.utils.filter('DISTRO_FEATURES', 'ldconfig', d)}"
+FILES_ldconfig = "${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf"
FILES_ldd = "${bindir}/ldd"
FILES_libsegfault = "${base_libdir}/libSegFault*"
FILES_libcidn = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.so.*"
@@ -107,11 +109,6 @@ do_install_append () {
}
do_install_append_class-target() {
- if ! ${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', 'true', 'false', d)}; then
- # The distro doesn't want these files so let's not install them
- rm -f ${D}${sysconfdir}/ld.so.conf
- rm -f ${D}${base_sbindir}/ldconfig
- fi
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d /run/nscd 755 root root -" \
diff --git a/poky/meta/recipes-core/glibc/glibc.inc b/poky/meta/recipes-core/glibc/glibc.inc
index 252fd56c1..ea9a04ac7 100644
--- a/poky/meta/recipes-core/glibc/glibc.inc
+++ b/poky/meta/recipes-core/glibc/glibc.inc
@@ -6,7 +6,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc-initial linux-libc-headers"
PROVIDES = "virtual/libc"
PROVIDES += "virtual/libintl virtual/libiconv"
-inherit autotools texinfo distro_features_check systemd
+inherit autotools texinfo features_check systemd
LEAD_SONAME = "libc.so"
diff --git a/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh b/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
index f5b5b9904..4871ee94e 100644
--- a/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
+++ b/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
@@ -26,6 +26,10 @@ if [ -e /sys/kernel/config ] && grep -q configfs /proc/filesystems; then
mount -t configfs configfs /sys/kernel/config
fi
+if [ -e /sys/firmware/efi/efivars ] && grep -q efivarfs /proc/filesystems; then
+ mount -t efivarfs efivarfs /sys/firmware/efi/efivars
+fi
+
if ! [ -e /dev/zero ] && [ -e /dev ] && grep -q devtmpfs /proc/filesystems; then
mount -n -t devtmpfs devtmpfs /dev
fi
diff --git a/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb b/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb
index c38f883e4..5a7e098f3 100644
--- a/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb
+++ b/poky/meta/recipes-core/libxml/libxml2_2.9.9.bb
@@ -35,7 +35,7 @@ PACKAGECONFIG ??= "python \
PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-inherit autotools pkgconfig binconfig-disabled ptest distro_features_check
+inherit autotools pkgconfig binconfig-disabled ptest features_check
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
diff --git a/poky/meta/recipes-core/meta/buildtools-tarball.bb b/poky/meta/recipes-core/meta/buildtools-tarball.bb
index 91df6f1ae..9c5c2cc8d 100644
--- a/poky/meta/recipes-core/meta/buildtools-tarball.bb
+++ b/poky/meta/recipes-core/meta/buildtools-tarball.bb
@@ -72,6 +72,7 @@ create_sdk_files_append () {
toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS}
echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
+ echo 'export OPENSSL_CONF="${SDKPATHNATIVE}${sysconfdir}/ssl/openssl.cnf"' >>$script
if [ "${SDKMACHINE}" = "i686" ]; then
echo 'export NO32LIBS="0"' >>$script
diff --git a/poky/meta/recipes-core/meta/cve-update-db-native.bb b/poky/meta/recipes-core/meta/cve-update-db-native.bb
index 2c427a588..db1d69a28 100644
--- a/poky/meta/recipes-core/meta/cve-update-db-native.bb
+++ b/poky/meta/recipes-core/meta/cve-update-db-native.bb
@@ -21,26 +21,26 @@ python do_populate_cve_db() {
"""
Update NVD database with json data feed
"""
-
+ import bb.utils
import sqlite3, urllib, urllib.parse, shutil, gzip
from datetime import date
+ bb.utils.export_proxies(d)
+
BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-"
YEAR_START = 2002
- db_dir = os.path.join(d.getVar("DL_DIR"), 'CVE_CHECK')
- db_file = os.path.join(db_dir, 'nvdcve_1.0.db')
+ db_file = d.getVar("CVE_CHECK_DB_FILE")
+ db_dir = os.path.dirname(db_file)
json_tmpfile = os.path.join(db_dir, 'nvd.json.gz')
- proxy = d.getVar("https_proxy")
- if proxy:
- # instantiate an opener but do not install it as the global
- # opener unless if we're really sure it's applicable for all
- # urllib requests
- proxy_handler = urllib.request.ProxyHandler({'https': proxy})
- proxy_opener = urllib.request.build_opener(proxy_handler)
- else:
- proxy_opener = None
+ # Don't refresh the database more than once an hour
+ try:
+ import time
+ if time.time() - os.path.getmtime(db_file) < (60*60):
+ return
+ except OSError:
+ pass
cve_f = open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a')
@@ -59,15 +59,7 @@ python do_populate_cve_db() {
json_url = year_url + ".json.gz"
# Retrieve meta last modified date
-
- response = None
-
- if proxy_opener:
- response = proxy_opener.open(meta_url)
- else:
- req = urllib.request.Request(meta_url)
- response = urllib.request.urlopen(req)
-
+ response = urllib.request.urlopen(meta_url)
if response:
for l in response.read().decode("utf-8").splitlines():
key, value = l.split(":", 1)
@@ -87,12 +79,7 @@ python do_populate_cve_db() {
# Update db with current year json file
try:
- if proxy_opener:
- response = proxy_opener.open(json_url)
- else:
- req = urllib.request.Request(json_url)
- response = urllib.request.urlopen(req)
-
+ response = urllib.request.urlopen(json_url)
if response:
update_db(c, gzip.decompress(response.read()).decode('utf-8'))
c.execute("insert or replace into META values (?, ?)", [year, last_modified])
@@ -112,11 +99,14 @@ python do_populate_cve_db() {
def initialize_db(c):
c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
+
c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)")
+
c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
VERSION_END TEXT, OPERATOR_END TEXT)")
+ c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);")
def parse_node_and_insert(c, node, cveId):
# Parse children node if needed
diff --git a/poky/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch b/poky/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch
new file mode 100644
index 000000000..7870c4ba3
--- /dev/null
+++ b/poky/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch
@@ -0,0 +1,169 @@
+From 064b77f173337aa790f1cec0d741bfbc61a33d31 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <trevor.gamblin@windriver.com>
+Date: Fri, 18 Oct 2019 09:57:43 -0400
+Subject: [PATCH] ncurses: selective backport of 20191012 patch
+
+Upstream-Status: Backport [https://salsa.debian.org/debian/ncurses/commit/243908b1e3d81]
+
+Contents of the upstream patch that are not applied to comp_hash.c,
+parse_entry.c, or dump_entry.c have been omitted.
+
+CVE: CVE-2019-17594
+CVE: CVE-2019-17595
+
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+
+---
+ ncurses/tinfo/comp_hash.c | 14 ++++++++++----
+ ncurses/tinfo/parse_entry.c | 32 ++++++++++++++++----------------
+ progs/dump_entry.c | 7 ++++---
+ 3 files changed, 30 insertions(+), 23 deletions(-)
+
+diff --git a/ncurses/tinfo/comp_hash.c b/ncurses/tinfo/comp_hash.c
+index 21f165ca..a62d38f9 100644
+--- a/ncurses/tinfo/comp_hash.c
++++ b/ncurses/tinfo/comp_hash.c
+@@ -44,7 +44,7 @@
+ #include <tic.h>
+ #include <hashsize.h>
+
+-MODULE_ID("$Id: comp_hash.c,v 1.49 2019/03/10 00:06:48 tom Exp $")
++MODULE_ID("$Id: comp_hash.c,v 1.51 2019/10/12 16:32:13 tom Exp $")
+
+ /*
+ * Finds the entry for the given string in the hash table if present.
+@@ -63,7 +63,9 @@ _nc_find_entry(const char *string,
+
+ hashvalue = data->hash_of(string);
+
+- if (data->table_data[hashvalue] >= 0) {
++ if (hashvalue >= 0
++ && (unsigned) hashvalue < data->table_size
++ && data->table_data[hashvalue] >= 0) {
+
+ real_table = _nc_get_table(termcap);
+ ptr = real_table + data->table_data[hashvalue];
+@@ -96,7 +98,9 @@ _nc_find_type_entry(const char *string,
+ const HashData *data = _nc_get_hash_info(termcap);
+ int hashvalue = data->hash_of(string);
+
+- if (data->table_data[hashvalue] >= 0) {
++ if (hashvalue >= 0
++ && (unsigned) hashvalue < data->table_size
++ && data->table_data[hashvalue] >= 0) {
+ const struct name_table_entry *const table = _nc_get_table(termcap);
+
+ ptr = table + data->table_data[hashvalue];
+@@ -124,7 +128,9 @@ _nc_find_user_entry(const char *string)
+
+ hashvalue = data->hash_of(string);
+
+- if (data->table_data[hashvalue] >= 0) {
++ if (hashvalue >= 0
++ && (unsigned) hashvalue < data->table_size
++ && data->table_data[hashvalue] >= 0) {
+
+ real_table = _nc_get_userdefs_table();
+ ptr = real_table + data->table_data[hashvalue];
+diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c
+index f8cca8b5..064376c5 100644
+--- a/ncurses/tinfo/parse_entry.c
++++ b/ncurses/tinfo/parse_entry.c
+@@ -47,7 +47,7 @@
+ #include <ctype.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: parse_entry.c,v 1.97 2019/08/03 23:10:38 tom Exp $")
++MODULE_ID("$Id: parse_entry.c,v 1.98 2019/10/12 00:50:31 tom Exp $")
+
+ #ifdef LINT
+ static short const parametrized[] =
+@@ -654,12 +654,12 @@ _nc_capcmp(const char *s, const char *t)
+ }
+
+ static void
+-append_acs0(string_desc * dst, int code, int src)
++append_acs0(string_desc * dst, int code, char *src, size_t off)
+ {
+- if (src != 0) {
++ if (src != 0 && off < strlen(src)) {
+ char temp[3];
+ temp[0] = (char) code;
+- temp[1] = (char) src;
++ temp[1] = src[off];
+ temp[2] = 0;
+ _nc_safe_strcat(dst, temp);
+ }
+@@ -669,7 +669,7 @@ static void
+ append_acs(string_desc * dst, int code, char *src)
+ {
+ if (VALID_STRING(src) && strlen(src) == 1) {
+- append_acs0(dst, code, *src);
++ append_acs0(dst, code, src, 0);
+ }
+ }
+
+@@ -1038,17 +1038,17 @@ postprocess_terminfo(TERMTYPE2 *tp)
+ _nc_str_init(&result, buf2, sizeof(buf2));
+ _nc_safe_strcat(&result, acs_chars);
+
+- append_acs0(&result, 'l', box_chars_1[0]); /* ACS_ULCORNER */
+- append_acs0(&result, 'q', box_chars_1[1]); /* ACS_HLINE */
+- append_acs0(&result, 'k', box_chars_1[2]); /* ACS_URCORNER */
+- append_acs0(&result, 'x', box_chars_1[3]); /* ACS_VLINE */
+- append_acs0(&result, 'j', box_chars_1[4]); /* ACS_LRCORNER */
+- append_acs0(&result, 'm', box_chars_1[5]); /* ACS_LLCORNER */
+- append_acs0(&result, 'w', box_chars_1[6]); /* ACS_TTEE */
+- append_acs0(&result, 'u', box_chars_1[7]); /* ACS_RTEE */
+- append_acs0(&result, 'v', box_chars_1[8]); /* ACS_BTEE */
+- append_acs0(&result, 't', box_chars_1[9]); /* ACS_LTEE */
+- append_acs0(&result, 'n', box_chars_1[10]); /* ACS_PLUS */
++ append_acs0(&result, 'l', box_chars_1, 0); /* ACS_ULCORNER */
++ append_acs0(&result, 'q', box_chars_1, 1); /* ACS_HLINE */
++ append_acs0(&result, 'k', box_chars_1, 2); /* ACS_URCORNER */
++ append_acs0(&result, 'x', box_chars_1, 3); /* ACS_VLINE */
++ append_acs0(&result, 'j', box_chars_1, 4); /* ACS_LRCORNER */
++ append_acs0(&result, 'm', box_chars_1, 5); /* ACS_LLCORNER */
++ append_acs0(&result, 'w', box_chars_1, 6); /* ACS_TTEE */
++ append_acs0(&result, 'u', box_chars_1, 7); /* ACS_RTEE */
++ append_acs0(&result, 'v', box_chars_1, 8); /* ACS_BTEE */
++ append_acs0(&result, 't', box_chars_1, 9); /* ACS_LTEE */
++ append_acs0(&result, 'n', box_chars_1, 10); /* ACS_PLUS */
+
+ if (buf2[0]) {
+ acs_chars = _nc_save_str(buf2);
+diff --git a/progs/dump_entry.c b/progs/dump_entry.c
+index d0e420ec..8a47084a 100644
+--- a/progs/dump_entry.c
++++ b/progs/dump_entry.c
+@@ -39,7 +39,7 @@
+ #include "termsort.c" /* this C file is generated */
+ #include <parametrized.h> /* so is this */
+
+-MODULE_ID("$Id: dump_entry.c,v 1.173 2019/05/11 21:02:24 tom Exp $")
++MODULE_ID("$Id: dump_entry.c,v 1.175 2019/10/12 15:59:07 tom Exp $")
+
+ #define DISCARD(string) string = ABSENT_STRING
+ #define PRINTF (void) printf
+@@ -1136,7 +1136,8 @@ fmt_entry(TERMTYPE2 *tterm,
+ *d++ = '\\';
+ *d = ':';
+ } else if (*d == '\\') {
+- *++d = *s++;
++ if ((*++d = *s++) == '\0')
++ break;
+ }
+ d++;
+ *d = '\0';
+@@ -1396,7 +1397,7 @@ one_one_mapping(const char *mapping)
+
+ if (VALID_STRING(mapping)) {
+ int n = 0;
+- while (mapping[n] != '\0') {
++ while (mapping[n] != '\0' && mapping[n + 1] != '\0') {
+ if (isLine(mapping[n]) &&
+ mapping[n] != mapping[n + 1]) {
+ result = FALSE;
+--
+2.17.1
+
diff --git a/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb b/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
index a44d78e4f..e638a3737 100644
--- a/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
+++ b/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
@@ -3,6 +3,7 @@ require ncurses.inc
SRC_URI += "file://0001-tic-hang.patch \
file://0002-configure-reproducible.patch \
file://config.cache \
+ file://0001-ncurses-selective-backport-of-20191012-patch.patch \
"
# commit id corresponds to the revision in package version
SRCREV = "3c9b2677c96c645496997321bf2fe465a5e7e21f"
diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index 3b5a05e51..ff2b2a530 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -29,10 +29,7 @@ PARALLEL_MAKE = ""
S = "${WORKDIR}/git"
-DEPENDS_class-native="util-linux-native iasl-native"
-DEPENDS_class-target="ovmf-native bc-native"
-
-DEPENDS_append = " nasm-native"
+DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native"
EDK_TOOLS_DIR="edk2_basetools"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index ee9d0636f..0aab23e3e 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -8,7 +8,7 @@ PR = "r13"
PACKAGE_ARCH = "${TUNE_PKGARCH}"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on libx11-dev
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-core/psplash/files/psplash-init b/poky/meta/recipes-core/psplash/files/psplash-init
index dcb751907..4bee866b0 100755
--- a/poky/meta/recipes-core/psplash/files/psplash-init
+++ b/poky/meta/recipes-core/psplash/files/psplash-init
@@ -25,7 +25,7 @@ done
export TMPDIR=/mnt/.psplash
[ -d $TMPDIR ] || mkdir -p $TMPDIR
-if [ ! mountpoint -q $TMPDIR ]; then
+if ! mountpoint -q $TMPDIR; then
mount tmpfs -t tmpfs $TMPDIR -o,size=40k
fi
diff --git a/poky/meta/recipes-core/systemd/systemd-compat-units.bb b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
index d228a51c1..faa428b58 100644
--- a/poky/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -8,7 +8,7 @@ PACKAGE_WRITE_DEPS += "systemd-systemctl-native"
S = "${WORKDIR}"
-inherit distro_features_check
+inherit features_check
ALLOW_EMPTY_${PN} = "1"
diff --git a/poky/meta/recipes-core/systemd/systemd-serialgetty.bb b/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
index 65a931f41..044c6c5b6 100644
--- a/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
+++ b/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
@@ -12,7 +12,7 @@ SRC_URI = "file://serial-getty@.service"
S = "${WORKDIR}"
# As this package is tied to systemd, only build it when we're also building systemd.
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "systemd"
do_install() {
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-pstore-fix-use-after-free.patch b/poky/meta/recipes-core/systemd/systemd/0001-pstore-fix-use-after-free.patch
new file mode 100644
index 000000000..fd147a18b
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0001-pstore-fix-use-after-free.patch
@@ -0,0 +1,39 @@
+From 1b3156edd291e0882d80a695d035dd30521345d1 Mon Sep 17 00:00:00 2001
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 6 Sep 2019 15:04:01 +0200
+Subject: [PATCH] pstore: fix use after free
+
+The memory is still needed in the sd_journal_sendv() after the 'if' block.
+
+(cherry picked from commit 1e19f5ac0d680a63eccae7ef1fc6ce225dca0bbf)
+
+Upstream-Status: Backport
+
+Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
+---
+ src/pstore/pstore.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/pstore/pstore.c b/src/pstore/pstore.c
+index c760b3e899..8ffe523830 100644
+--- a/src/pstore/pstore.c
++++ b/src/pstore/pstore.c
+@@ -117,6 +117,7 @@ static int compare_pstore_entries(const void *_a, const void *_b) {
+
+ static int move_file(PStoreEntry *pe, const char *subdir) {
+ _cleanup_free_ char *ifd_path = NULL, *ofd_path = NULL;
++ _cleanup_free_ void *field = NULL;
+ const char *suffix, *message;
+ struct iovec iovec[2];
+ int n_iovec = 0, r;
+@@ -138,7 +139,6 @@ static int move_file(PStoreEntry *pe, const char *subdir) {
+ iovec[n_iovec++] = IOVEC_MAKE_STRING(message);
+
+ if (pe->content_size > 0) {
+- _cleanup_free_ void *field = NULL;
+ size_t field_size;
+
+ field_size = strlen("FILE=") + pe->content_size;
+--
+2.14.4
+
diff --git a/poky/meta/recipes-core/systemd/systemd_243.bb b/poky/meta/recipes-core/systemd/systemd_243.bb
index 6e7f95693..b31d0b5ed 100644
--- a/poky/meta/recipes-core/systemd/systemd_243.bb
+++ b/poky/meta/recipes-core/systemd/systemd_243.bb
@@ -8,7 +8,7 @@ DEPENDS = "intltool-native gperf-native libcap util-linux"
SECTION = "base/shell"
-inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages distro_features_check
+inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages features_check
# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
# that we don't build both udev and systemd in world builds.
@@ -24,6 +24,7 @@ SRC_URI += "file://touchscreen.rules \
file://0005-rules-watch-metadata-changes-in-ide-devices.patch \
file://0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch \
file://99-default.preset \
+ file://0001-pstore-fix-use-after-free.patch \
"
# patches needed by musl
@@ -139,7 +140,7 @@ PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false"
PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
-PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false"
+PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig"
PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn"
PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
@@ -316,7 +317,6 @@ PACKAGES =+ "\
${PN}-rpm-macros \
${PN}-binfmt \
${PN}-zsh-completion \
- ${PN}-xorg-xinitrc \
${PN}-container \
${PN}-journal-gatewayd \
${PN}-journal-upload \
@@ -378,8 +378,6 @@ FILES_${PN}-kernel-install = "${bindir}/kernel-install \
FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
"
-FILES_${PN}-xorg-xinitrc = "${sysconfdir}/X11/xinit/xinitrc.d/*"
-
FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions"
FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
@@ -528,6 +526,7 @@ FILES_${PN} = " ${base_bindir}/* \
${sysconfdir}/xdg/ \
${sysconfdir}/init.d/README \
${sysconfdir}/resolv-conf.systemd \
+ ${sysconfdir}/X11/xinit/xinitrc.d/* \
${rootlibexecdir}/systemd/* \
${systemd_unitdir}/* \
${base_libdir}/security/*.so \
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
index bfc1283f7..8fd6df9d6 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
+++ b/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
@@ -29,7 +29,7 @@ SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5
S = "${WORKDIR}/sysvinit-${PV}"
B = "${S}/src"
-inherit update-alternatives distro_features_check
+inherit update-alternatives features_check
DEPENDS_append = " update-rc.d-native base-passwd virtual/crypt"
REQUIRED_DISTRO_FEATURES = "sysvinit"
diff --git a/poky/meta/recipes-core/udev/eudev_3.2.8.bb b/poky/meta/recipes-core/udev/eudev_3.2.8.bb
index eecf64e55..08729e14c 100644
--- a/poky/meta/recipes-core/udev/eudev_3.2.8.bb
+++ b/poky/meta/recipes-core/udev/eudev_3.2.8.bb
@@ -23,7 +23,7 @@ SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \
SRC_URI[md5sum] = "ce166b3fdd910c2a4a840378f48fedaf"
SRC_URI[sha256sum] = "61e4948e9e51271c3cce2bb5311a30b206dd03ef011062e6c627fb007e43f6b8"
-inherit autotools update-rc.d qemu pkgconfig distro_features_check
+inherit autotools update-rc.d qemu pkgconfig features_check
CONFLICT_DISTRO_FEATURES = "systemd"
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch
new file mode 100644
index 000000000..5d4c148fb
--- /dev/null
+++ b/poky/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch
@@ -0,0 +1,36 @@
+From e3bb9bfb76c17b1d05814436ced62c05c4011f48 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Thu, 27 Jun 2019 09:22:18 +0200
+Subject: [PATCH] lsblk: force to print PKNAME for partition
+
+PKNAME (parent kernel device name) is based on printed tree according
+to parent -> child relationship. The tree is optional and not printed
+if partition specified (.e.g "lsblk -o+PKNAME /dev/sda1"), but old
+versions print the PKNAME also in this case.
+
+Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/e3bb9bfb76c17b1d05814436ced62c05c4011f48]
+
+Addresses: https://github.com/karelzak/util-linux/issues/813
+Signed-off-by: Karel Zak <kzak@redhat.com>
+Signed-off-by: Liwei Song <liwei.song@windriver.com>
+---
+ misc-utils/lsblk.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c
+index e95af7af0256..3ce6da730264 100644
+--- a/misc-utils/lsblk.c
++++ b/misc-utils/lsblk.c
+@@ -1019,6 +1019,9 @@ static void device_to_scols(
+ DBG(DEV, ul_debugobj(dev, "add '%s' to scols", dev->name));
+ ON_DBG(DEV, if (ul_path_isopen_dirfd(dev->sysfs)) ul_debugobj(dev, " %s ---> is open!", dev->name));
+
++ if (!parent && dev->wholedisk)
++ parent = dev->wholedisk;
++
+ /* Do not print device more than one in --list mode */
+ if (!(lsblk->flags & LSBLK_TREE) && dev->is_printed)
+ return;
+--
+2.17.1
+
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.34.bb b/poky/meta/recipes-core/util-linux/util-linux_2.34.bb
index 262f4bacb..e9c2d80e9 100644
--- a/poky/meta/recipes-core/util-linux/util-linux_2.34.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux_2.34.bb
@@ -7,6 +7,7 @@ SRC_URI += "file://configure-sbindir.patch \
file://run-ptest \
file://display_testname_for_subtest.patch \
file://avoid_parallel_tests.patch \
+ file://0001-lsblk-force-to-print-PKNAME-for-partition.patch \
"
SRC_URI[md5sum] = "a78cbeaed9c39094b96a48ba8f891d50"
SRC_URI[sha256sum] = "743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5"
diff --git a/poky/meta/recipes-core/volatile-binds/volatile-binds.bb b/poky/meta/recipes-core/volatile-binds/volatile-binds.bb
index d861a71a6..b273293e9 100644
--- a/poky/meta/recipes-core/volatile-binds/volatile-binds.bb
+++ b/poky/meta/recipes-core/volatile-binds/volatile-binds.bb
@@ -11,7 +11,7 @@ SRC_URI = "\
S = "${WORKDIR}"
-inherit allarch systemd distro_features_check
+inherit allarch systemd features_check
REQUIRED_DISTRO_FEATURES = "systemd"
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.32.inc b/poky/meta/recipes-devtools/binutils/binutils-2.32.inc
index 19baf8a88..349c3e115 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.32.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.32.inc
@@ -49,6 +49,8 @@ SRC_URI = "\
file://CVE-2019-12972.patch \
file://CVE-2019-14250.patch \
file://CVE-2019-14444.patch \
+ file://CVE-2019-17450.patch \
+ file://CVE-2019-17451.patch \
"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17450.patch b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17450.patch
new file mode 100644
index 000000000..a6ce0b9a8
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17450.patch
@@ -0,0 +1,99 @@
+From 09dd135df9ebc7a4b640537e23e26a03a288a789 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Wed, 9 Oct 2019 00:07:29 +1030
+Subject: [PATCH] PR25078, stack overflow in function find_abstract_instance
+
+Selectively backporting fix for bfd/dwarf2.c, but not the ChangeLog
+file. There are newer versions of binutils, but none of them contain the
+commit fixing CVE-2019-17450, so backport it to master and zeus.
+
+Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=063c511bd79]
+CVE: CVE-2019-17450
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+
+ PR 25078
+ * dwarf2.c (find_abstract_instance): Delete orig_info_ptr, add
+ recur_count. Error on recur_count reaching 100 rather than
+ info_ptr matching orig_info_ptr. Adjust calls.
+
+---
+ bfd/dwarf2.c | 35 +++++++++++++++++------------------
+ 1 file changed, 17 insertions(+), 18 deletions(-)
+
+diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
+index 0b4e485582..20ec9e2e56 100644
+--- a/bfd/dwarf2.c
++++ b/bfd/dwarf2.c
+@@ -2803,13 +2803,13 @@ lookup_symbol_in_variable_table (struct comp_unit *unit,
+ }
+
+ static bfd_boolean
+-find_abstract_instance (struct comp_unit * unit,
+- bfd_byte * orig_info_ptr,
+- struct attribute * attr_ptr,
+- const char ** pname,
+- bfd_boolean * is_linkage,
+- char ** filename_ptr,
+- int * linenumber_ptr)
++find_abstract_instance (struct comp_unit *unit,
++ struct attribute *attr_ptr,
++ unsigned int recur_count,
++ const char **pname,
++ bfd_boolean *is_linkage,
++ char **filename_ptr,
++ int *linenumber_ptr)
+ {
+ bfd *abfd = unit->abfd;
+ bfd_byte *info_ptr;
+@@ -2820,6 +2820,14 @@ find_abstract_instance (struct comp_unit * unit,
+ struct attribute attr;
+ const char *name = NULL;
+
++ if (recur_count == 100)
++ {
++ _bfd_error_handler
++ (_("DWARF error: abstract instance recursion detected"));
++ bfd_set_error (bfd_error_bad_value);
++ return FALSE;
++ }
++
+ /* DW_FORM_ref_addr can reference an entry in a different CU. It
+ is an offset from the .debug_info section, not the current CU. */
+ if (attr_ptr->form == DW_FORM_ref_addr)
+@@ -2939,15 +2947,6 @@ find_abstract_instance (struct comp_unit * unit,
+ info_ptr, info_ptr_end);
+ if (info_ptr == NULL)
+ break;
+- /* It doesn't ever make sense for DW_AT_specification to
+- refer to the same DIE. Stop simple recursion. */
+- if (info_ptr == orig_info_ptr)
+- {
+- _bfd_error_handler
+- (_("DWARF error: abstract instance recursion detected"));
+- bfd_set_error (bfd_error_bad_value);
+- return FALSE;
+- }
+ switch (attr.name)
+ {
+ case DW_AT_name:
+@@ -2961,7 +2960,7 @@ find_abstract_instance (struct comp_unit * unit,
+ }
+ break;
+ case DW_AT_specification:
+- if (!find_abstract_instance (unit, info_ptr, &attr,
++ if (!find_abstract_instance (unit, &attr, recur_count + 1,
+ &name, is_linkage,
+ filename_ptr, linenumber_ptr))
+ return FALSE;
+@@ -3175,7 +3174,7 @@ scan_unit_for_symbols (struct comp_unit *unit)
+
+ case DW_AT_abstract_origin:
+ case DW_AT_specification:
+- if (!find_abstract_instance (unit, info_ptr, &attr,
++ if (!find_abstract_instance (unit, &attr, 0,
+ &func->name,
+ &func->is_linkage,
+ &func->file,
+--
+2.23.0
+
diff --git a/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17451.patch b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17451.patch
new file mode 100644
index 000000000..b36a53266
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-17451.patch
@@ -0,0 +1,51 @@
+From 0192438051a7e781585647d5581a2a6f62fda362 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Wed, 9 Oct 2019 10:47:13 +1030
+Subject: [PATCH] PR25070, SEGV in function _bfd_dwarf2_find_nearest_line
+
+Selectively backporting fix for bfd/dwarf2.c, but not the ChangeLog
+file. There are newer versions of binutils, but none of them contain the
+commit fixing CVE-2019-17451, so backport it to master and zeus.
+
+Upstream-Status: Backport
+[https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=336bfbeb1848]
+CVE: CVE-2019-17451
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+
+
+Evil testcase with two debug info sections, with sizes of 2aaaabac4ec1
+and ffffd5555453b140 result in a total size of 1. Reading the first
+section of course overflows the buffer and tramples on other memory.
+
+ PR 25070
+ * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Catch overflow of
+ total_size calculation.
+---
+ bfd/dwarf2.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
+index 0b4e485582..a91597b1d0 100644
+--- a/bfd/dwarf2.c
++++ b/bfd/dwarf2.c
+@@ -4426,7 +4426,16 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd, bfd *debug_bfd,
+ for (total_size = 0;
+ msec;
+ msec = find_debug_info (debug_bfd, debug_sections, msec))
+- total_size += msec->size;
++ {
++ /* Catch PR25070 testcase overflowing size calculation here. */
++ if (total_size + msec->size < total_size
++ || total_size + msec->size < msec->size)
++ {
++ bfd_set_error (bfd_error_no_memory);
++ return FALSE;
++ }
++ total_size += msec->size;
++ }
+
+ stash->info_ptr_memory = (bfd_byte *) bfd_malloc (total_size);
+ if (stash->info_ptr_memory == NULL)
+--
+2.23.0
+
diff --git a/poky/meta/recipes-devtools/bison/bison_3.4.1.bb b/poky/meta/recipes-devtools/bison/bison_3.4.2.bb
index 7946e20c5..46f0f908d 100644
--- a/poky/meta/recipes-devtools/bison/bison_3.4.1.bb
+++ b/poky/meta/recipes-devtools/bison/bison_3.4.2.bb
@@ -17,8 +17,8 @@ SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
# No point in hardcoding path to m4, just use PATH
EXTRA_OECONF += "M4=m4"
-SRC_URI[md5sum] = "201286a573b12da109df96282fe4ff4a"
-SRC_URI[sha256sum] = "27159ac5ebf736dffd5636fd2cd625767c9e437de65baa63cb0de83570bd820d"
+SRC_URI[md5sum] = "d1ceb9dfde2d03b24a4c1137f7f1b572"
+SRC_URI[sha256sum] = "27d05534699735dc69e86add5b808d6cb35900ad3fd63fa82e3eb644336abfa0"
inherit autotools gettext texinfo
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.2.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.3.1.bb
index 6b73c01dc..a44c0bc87 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.2.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.3.1.bb
@@ -14,7 +14,7 @@ DEPENDS = "util-linux attr e2fsprogs lzo acl"
DEPENDS_append_class-target = " udev"
RDEPENDS_${PN} = "libgcc"
-SRCREV = "55a8c9626fb906c20c3206f8fd39b9a8fb259b79"
+SRCREV = "f82e569b33c3c1cfd4f8f405085ff8d439a0a915"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
"
diff --git a/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb b/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
index 78e1565e4..1c602e7ce 100644
--- a/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
+++ b/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
@@ -7,7 +7,10 @@ SECTION = "console/utils"
LICENSE = "GPLv2 & CDDL-1.0 & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=32f68170be424c2cd64804337726b312"
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${REALPV}.tar.bz2"
+SRC_URI = " \
+ ${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${REALPV}.tar.bz2 \
+ file://0001-Don-t-set-uid-gid-during-install.patch \
+ "
UPSTREAM_VERSION_UNKNOWN = "1"
SRC_URI[md5sum] = "7d45c5b7e1f78d85d1583b361aee6e8b"
diff --git a/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch b/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch
new file mode 100644
index 000000000..9d38294b4
--- /dev/null
+++ b/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch
@@ -0,0 +1,27 @@
+From 529cd5b007aa681c3ca14e5ab1e30469dd51646b Mon Sep 17 00:00:00 2001
+From: Paul Barker <paul@betafive.co.uk>
+Date: Tue, 12 Nov 2019 22:17:19 +0000
+Subject: [PATCH] Don't set uid/gid during install
+
+Signed-off-by: Paul Barker <paul@betafive.co.uk>
+Upstream-Status: Inappropriate [native]
+---
+ RULES/rules.prg | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/RULES/rules.prg b/RULES/rules.prg
+index 023555c..f70f1a7 100644
+--- a/RULES/rules.prg
++++ b/RULES/rules.prg
+@@ -94,7 +94,7 @@ INSGRP= $(__DEFINSGRP:$(_UNIQ)%=%)
+
+ LD= @echo " ==> LINKING \"$@\""; ld
+ LOCALIZE= @echo " ==> LOCALIZING \"$@\""; $(RM_F) $@; cp
+-INSTALL= @echo " ==> INSTALLING \"$@\""; sh $(SRCROOT)/conf/install-sh -c -m $(INSMODEINS) -o $(INSUSR) -g $(INSGRP)
++INSTALL= @echo " ==> INSTALLING \"$@\""; sh $(SRCROOT)/conf/install-sh -c -m $(INSMODEINS)
+ CHMOD= @echo " ==> SETTING PERMISSIONS ON \"$@\""; chmod
+ CHOWN= @echo " ==> SETTING OWNER ON \"$@\""; chown
+ CHGRP= @echo " ==> SETTING GROUP ON \"$@\""; chgrp
+--
+2.24.0
+
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.3.bb b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb
index fdc9454b5..90db71df0 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.3.bb
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb
@@ -11,7 +11,7 @@ SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permissio
file://quiet-debugfs.patch \
"
-SRCREV = "1f56fb81236fe3e25e2c60c1e89ea0aa7cb36260"
+SRCREV = "984ff8d6a0a1d5dc300505f67b38ed5047d51dac"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb
index 818794266..e7740c7fb 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.177.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://sourceware.org/elfutils"
SECTION = "base"
LICENSE = "GPLv2 & LGPLv3+ & GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "bzip2 zlib virtual/libintl"
+DEPENDS = "zlib virtual/libintl"
DEPENDS_append_libc-musl = " argp-standalone fts musl-obstack "
# The Debian patches below are from:
# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz
@@ -46,8 +46,15 @@ SRC_URI[sha256sum] = "fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc
inherit autotools gettext ptest
-EXTRA_OECONF = "--program-prefix=eu- --without-lzma"
-EXTRA_OECONF_append_class-native = " --without-bzlib"
+EXTRA_OECONF = "--program-prefix=eu-"
+
+DEPENDS_BZIP2 = "bzip2-replacement-native"
+DEPENDS_BZIP2_class-target = "bzip2"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}"
+PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
+
RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils"
EXTRA_OECONF_append_class-target += "--disable-tests-rpath"
diff --git a/poky/meta/recipes-devtools/file/file/CVE-2019-18218.patch b/poky/meta/recipes-devtools/file/file/CVE-2019-18218.patch
new file mode 100644
index 000000000..3d02c5ad4
--- /dev/null
+++ b/poky/meta/recipes-devtools/file/file/CVE-2019-18218.patch
@@ -0,0 +1,55 @@
+cdf_read_property_info in cdf.c in file through 5.37 does not restrict the
+number of CDF_VECTOR elements, which allows a heap-based buffer overflow (4-byte
+out-of-bounds write).
+
+CVE: CVE-2019-18218
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From 46a8443f76cec4b41ec736eca396984c74664f84 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Mon, 26 Aug 2019 14:31:39 +0000
+Subject: [PATCH] Limit the number of elements in a vector (found by oss-fuzz)
+
+---
+ src/cdf.c | 9 ++++-----
+ src/cdf.h | 1 +
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/cdf.c b/src/cdf.c
+index 9d6396742..bb81d6374 100644
+--- a/src/cdf.c
++++ b/src/cdf.c
+@@ -1016,8 +1016,9 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h,
+ goto out;
+ }
+ nelements = CDF_GETUINT32(q, 1);
+- if (nelements == 0) {
+- DPRINTF(("CDF_VECTOR with nelements == 0\n"));
++ if (nelements > CDF_ELEMENT_LIMIT || nelements == 0) {
++ DPRINTF(("CDF_VECTOR with nelements == %"
++ SIZE_T_FORMAT "u\n", nelements));
+ goto out;
+ }
+ slen = 2;
+@@ -1060,8 +1061,6 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h,
+ goto out;
+ inp += nelem;
+ }
+- DPRINTF(("nelements = %" SIZE_T_FORMAT "u\n",
+- nelements));
+ for (j = 0; j < nelements && i < sh.sh_properties;
+ j++, i++)
+ {
+diff --git a/src/cdf.h b/src/cdf.h
+index 2f7e554b7..05056668f 100644
+--- a/src/cdf.h
++++ b/src/cdf.h
+@@ -48,6 +48,7 @@
+ typedef int32_t cdf_secid_t;
+
+ #define CDF_LOOP_LIMIT 10000
++#define CDF_ELEMENT_LIMIT 100000
+
+ #define CDF_SECID_NULL 0
+ #define CDF_SECID_FREE -1
diff --git a/poky/meta/recipes-devtools/file/file_5.37.bb b/poky/meta/recipes-devtools/file/file_5.37.bb
index a840dbc01..a96ccc0d3 100644
--- a/poky/meta/recipes-devtools/file/file_5.37.bb
+++ b/poky/meta/recipes-devtools/file/file_5.37.bb
@@ -11,16 +11,16 @@ LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdd
DEPENDS = "zlib file-replacement-native"
DEPENDS_class-native = "zlib-native"
-# Blacklist a bogus tag in upstream check
-UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P<pver>(?!6_23).+)"
-
-SRC_URI = "git://github.com/file/file.git"
+SRC_URI = "git://github.com/file/file.git \
+ file://CVE-2019-18218.patch"
SRCREV = "a0d5b0e4e9f97d74a9911e95cedd579852e25398"
S = "${WORKDIR}/git"
inherit autotools update-alternatives
+EXTRA_OECONF += "--disable-libseccomp"
+
ALTERNATIVE_${PN} = "file"
ALTERNATIVE_LINK_NAME[file] = "${bindir}/file"
@@ -29,6 +29,10 @@ EXTRA_OEMAKE_append_class-nativesdk = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/
FILES_${PN} += "${datadir}/misc/*.mgc"
+do_compile_append_class-native() {
+ oe_runmake check
+}
+
do_install_append_class-native() {
create_cmdline_wrapper ${D}/${bindir}/file \
--magic-file ${datadir}/misc/magic.mgc
diff --git a/poky/meta/recipes-devtools/gcc/gcc-8.3/CVE-2019-14250.patch b/poky/meta/recipes-devtools/gcc/gcc-8.3/CVE-2019-14250.patch
deleted file mode 100644
index e327684e1..000000000
--- a/poky/meta/recipes-devtools/gcc/gcc-8.3/CVE-2019-14250.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a4f1b58eb48b349a5f353bc69c30be553506d33b Mon Sep 17 00:00:00 2001
-From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Thu, 25 Jul 2019 10:48:26 +0000
-Subject: [PATCH] 2019-07-25 Richard Biener <rguenther@suse.de>
-
- PR lto/90924
- Backport from mainline
- 2019-07-12 Ren Kimura <rkx1209dev@gmail.com>
-
- * simple-object-elf.c (simple_object_elf_match): Check zero value
- shstrndx.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@273794 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-Affectes: < 9.2
-CVE: CVE-2019-14250
-Dropped changelog
-Signed-off-by: Armin Kuster <Akustre@mvista.com>
-
----
- libiberty/simple-object-elf.c | 8 ++++++++
- 2 files changed, 17 insertions(+)
-
-Index: gcc-8.2.0/libiberty/simple-object-elf.c
-===================================================================
---- gcc-8.2.0.orig/libiberty/simple-object-elf.c
-+++ gcc-8.2.0/libiberty/simple-object-elf.c
-@@ -549,6 +549,14 @@ simple_object_elf_match (unsigned char h
- return NULL;
- }
-
-+ if (eor->shstrndx == 0)
-+ {
-+ *errmsg = "invalid ELF shstrndx == 0";
-+ *err = 0;
-+ XDELETE (eor);
-+ return NULL;
-+ }
-+
- return (void *) eor;
- }
-
diff --git a/poky/meta/recipes-devtools/git/git.inc b/poky/meta/recipes-devtools/git/git.inc
index 6e137432f..95ab397f6 100644
--- a/poky/meta/recipes-devtools/git/git.inc
+++ b/poky/meta/recipes-devtools/git/git.inc
@@ -39,12 +39,12 @@ do_compile_prepend () {
do_install () {
oe_runmake install DESTDIR="${D}" bindir=${bindir} \
template_dir=${datadir}/git-core/templates
- install -d ${D}/${mandir}/man1
- install -d ${D}/${mandir}/man5
- install -d ${D}/${mandir}/man7
- install -t ${D}/${mandir}/man1 ${WORKDIR}/man1/*
- install -t ${D}/${mandir}/man5 ${WORKDIR}/man5/*
- install -t ${D}/${mandir}/man7 ${WORKDIR}/man7/*
+
+ for section in man1 man5 man7; do
+ install -d ${D}/${mandir}/$section
+ install -t ${D}/${mandir}/$section ${WORKDIR}/$section/*
+ done
+
install -d ${D}/${datadir}/bash-completion/completions/
install -m 644 ${S}/contrib/completion/git-completion.bash ${D}/${datadir}/bash-completion/completions/git
}
@@ -94,19 +94,15 @@ do_install_append_class-nativesdk() {
FILES_${PN} += "${datadir}/git-core ${libexecdir}/git-core/"
PERLTOOLS = " \
+ ${bindir}/git-cvsserver \
${libexecdir}/git-core/git-add--interactive \
${libexecdir}/git-core/git-archimport \
${libexecdir}/git-core/git-cvsexportcommit \
${libexecdir}/git-core/git-cvsimport \
${libexecdir}/git-core/git-cvsserver \
- ${bindir}/git-cvsserver \
- ${libexecdir}/git-core/git-difftool \
${libexecdir}/git-core/git-send-email \
${libexecdir}/git-core/git-svn \
${libexecdir}/git-core/git-instaweb \
- ${libexecdir}/git-core/git-submodule \
- ${libexecdir}/git-core/git-am \
- ${libexecdir}/git-core/git-request-pull \
${datadir}/gitweb/gitweb.cgi \
${datadir}/git-core/templates/hooks/prepare-commit-msg.sample \
${datadir}/git-core/templates/hooks/pre-rebase.sample \
diff --git a/poky/meta/recipes-devtools/git/git_2.23.0.bb b/poky/meta/recipes-devtools/git/git_2.23.0.bb
deleted file mode 100644
index 1539182a9..000000000
--- a/poky/meta/recipes-devtools/git/git_2.23.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require git.inc
-
-EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
- ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
- "
-EXTRA_OEMAKE += "NO_GETTEXT=1"
-
-SRC_URI[tarball.md5sum] = "203c238ffdcef76f9bd6c67cfbaf949f"
-SRC_URI[tarball.sha256sum] = "e3396c90888111a01bf607346db09b0fbf49a95bc83faf9506b61195936f0cfe"
-SRC_URI[manpages.md5sum] = "90a72e553de712d798d68b15b57bc928"
-SRC_URI[manpages.sha256sum] = "a5b0998f95c2290386d191d34780d145ea67e527fac98541e0350749bf76be75"
diff --git a/poky/meta/recipes-devtools/git/git_2.24.0.bb b/poky/meta/recipes-devtools/git/git_2.24.0.bb
new file mode 100644
index 000000000..e9cb382f6
--- /dev/null
+++ b/poky/meta/recipes-devtools/git/git_2.24.0.bb
@@ -0,0 +1,11 @@
+require git.inc
+
+EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
+ ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
+ "
+EXTRA_OEMAKE += "NO_GETTEXT=1"
+
+SRC_URI[tarball.md5sum] = "ed39361a3ae362c8af852d1a06992bc2"
+SRC_URI[tarball.sha256sum] = "ad11030d2eac656ee9e8862f56d1610550f7867181beff814c7712a99192e99d"
+SRC_URI[manpages.md5sum] = "57465e83f13ba910a178b717d93958c0"
+SRC_URI[manpages.sha256sum] = "ce995f86f441b56ab1fd0788a94786904ae2e2989e7191fd68060003011366d7"
diff --git a/poky/meta/recipes-devtools/go/go-1.12.inc b/poky/meta/recipes-devtools/go/go-1.12.inc
index 39157ff88..ed14b175e 100644
--- a/poky/meta/recipes-devtools/go/go-1.12.inc
+++ b/poky/meta/recipes-devtools/go/go-1.12.inc
@@ -16,6 +16,7 @@ SRC_URI += "\
file://0006-cmd-dist-separate-host-and-target-builds.patch \
file://0007-cmd-go-make-GOROOT-precious-by-default.patch \
file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
+ file://0001-release-branch.go1.12-security-net-textproto-don-t-n.patch \
"
SRC_URI_append_libc-musl = " file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch"
diff --git a/poky/meta/recipes-devtools/go/go-1.12/0001-release-branch.go1.12-security-net-textproto-don-t-n.patch b/poky/meta/recipes-devtools/go/go-1.12/0001-release-branch.go1.12-security-net-textproto-don-t-n.patch
new file mode 100644
index 000000000..7b39dbd73
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.12/0001-release-branch.go1.12-security-net-textproto-don-t-n.patch
@@ -0,0 +1,163 @@
+From 265b691ac440bfb711d8de323346f7d72e620efe Mon Sep 17 00:00:00 2001
+From: Filippo Valsorda <filippo@golang.org>
+Date: Thu, 12 Sep 2019 12:37:36 -0400
+Subject: [PATCH] [release-branch.go1.12-security] net/textproto: don't
+ normalize headers with spaces before the colon
+
+RFC 7230 is clear about headers with a space before the colon, like
+
+X-Answer : 42
+
+being invalid, but we've been accepting and normalizing them for compatibility
+purposes since CL 5690059 in 2012.
+
+On the client side, this is harmless and indeed most browsers behave the same
+to this day. On the server side, this becomes a security issue when the
+behavior doesn't match that of a reverse proxy sitting in front of the server.
+
+For example, if a WAF accepts them without normalizing them, it might be
+possible to bypass its filters, because the Go server would interpret the
+header differently. Worse, if the reverse proxy coalesces requests onto a
+single HTTP/1.1 connection to a Go server, the understanding of the request
+boundaries can get out of sync between them, allowing an attacker to tack an
+arbitrary method and path onto a request by other clients, including
+authentication headers unknown to the attacker.
+
+This was recently presented at multiple security conferences:
+https://portswigger.net/blog/http-desync-attacks-request-smuggling-reborn
+
+net/http servers already reject header keys with invalid characters.
+Simply stop normalizing extra spaces in net/textproto, let it return them
+unchanged like it does for other invalid headers, and let net/http enforce
+RFC 7230, which is HTTP specific. This loses us normalization on the client
+side, but there's no right answer on the client side anyway, and hiding the
+issue sounds worse than letting the application decide.
+
+Fixes CVE-2019-16276
+
+Change-Id: I6d272de827e0870da85d93df770d6a0e161bbcf1
+Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/549719
+Reviewed-by: Brad Fitzpatrick <bradfitz@google.com>
+(cherry picked from commit 1280b868e82bf173ea3e988be3092d160ee66082)
+Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/558776
+Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
+
+CVE: CVE-2019-16276
+
+Upstream-Status: Backport [https://github.com/golang/go/commit/6e6f4aaf70c8b1cc81e65a26332aa9409de03ad8]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/net/http/serve_test.go | 4 ++++
+ src/net/http/transport_test.go | 27 +++++++++++++++++++++++++++
+ src/net/textproto/reader.go | 10 ++--------
+ src/net/textproto/reader_test.go | 13 ++++++-------
+ 4 files changed, 39 insertions(+), 15 deletions(-)
+
+diff --git a/src/net/http/serve_test.go b/src/net/http/serve_test.go
+index 6eb0088a96..89bfdfbb82 100644
+--- a/src/net/http/serve_test.go
++++ b/src/net/http/serve_test.go
+@@ -4748,6 +4748,10 @@ func TestServerValidatesHeaders(t *testing.T) {
+ {"foo\xffbar: foo\r\n", 400}, // binary in header
+ {"foo\x00bar: foo\r\n", 400}, // binary in header
+ {"Foo: " + strings.Repeat("x", 1<<21) + "\r\n", 431}, // header too large
++ // Spaces between the header key and colon are not allowed.
++ // See RFC 7230, Section 3.2.4.
++ {"Foo : bar\r\n", 400},
++ {"Foo\t: bar\r\n", 400},
+
+ {"foo: foo foo\r\n", 200}, // LWS space is okay
+ {"foo: foo\tfoo\r\n", 200}, // LWS tab is okay
+diff --git a/src/net/http/transport_test.go b/src/net/http/transport_test.go
+index 5c329543e2..5e5438a708 100644
+--- a/src/net/http/transport_test.go
++++ b/src/net/http/transport_test.go
+@@ -5133,3 +5133,30 @@ func TestTransportIgnores408(t *testing.T) {
+ }
+ t.Fatalf("timeout after %v waiting for Transport connections to die off", time.Since(t0))
+ }
++
++func TestInvalidHeaderResponse(t *testing.T) {
++ setParallel(t)
++ defer afterTest(t)
++ cst := newClientServerTest(t, h1Mode, HandlerFunc(func(w ResponseWriter, r *Request) {
++ conn, buf, _ := w.(Hijacker).Hijack()
++ buf.Write([]byte("HTTP/1.1 200 OK\r\n" +
++ "Date: Wed, 30 Aug 2017 19:09:27 GMT\r\n" +
++ "Content-Type: text/html; charset=utf-8\r\n" +
++ "Content-Length: 0\r\n" +
++ "Foo : bar\r\n\r\n"))
++ buf.Flush()
++ conn.Close()
++ }))
++ defer cst.close()
++ res, err := cst.c.Get(cst.ts.URL)
++ if err != nil {
++ t.Fatal(err)
++ }
++ defer res.Body.Close()
++ if v := res.Header.Get("Foo"); v != "" {
++ t.Errorf(`unexpected "Foo" header: %q`, v)
++ }
++ if v := res.Header.Get("Foo "); v != "bar" {
++ t.Errorf(`bad "Foo " header value: %q, want %q`, v, "bar")
++ }
++}
+diff --git a/src/net/textproto/reader.go b/src/net/textproto/reader.go
+index 2c4f25d5ae..1a5e364cf7 100644
+--- a/src/net/textproto/reader.go
++++ b/src/net/textproto/reader.go
+@@ -493,18 +493,12 @@ func (r *Reader) ReadMIMEHeader() (MIMEHeader, error) {
+ return m, err
+ }
+
+- // Key ends at first colon; should not have trailing spaces
+- // but they appear in the wild, violating specs, so we remove
+- // them if present.
++ // Key ends at first colon.
+ i := bytes.IndexByte(kv, ':')
+ if i < 0 {
+ return m, ProtocolError("malformed MIME header line: " + string(kv))
+ }
+- endKey := i
+- for endKey > 0 && kv[endKey-1] == ' ' {
+- endKey--
+- }
+- key := canonicalMIMEHeaderKey(kv[:endKey])
++ key := canonicalMIMEHeaderKey(kv[:i])
+
+ // As per RFC 7230 field-name is a token, tokens consist of one or more chars.
+ // We could return a ProtocolError here, but better to be liberal in what we
+diff --git a/src/net/textproto/reader_test.go b/src/net/textproto/reader_test.go
+index f85fbdc36d..b92fdcd3c7 100644
+--- a/src/net/textproto/reader_test.go
++++ b/src/net/textproto/reader_test.go
+@@ -188,11 +188,10 @@ func TestLargeReadMIMEHeader(t *testing.T) {
+ }
+ }
+
+-// Test that we read slightly-bogus MIME headers seen in the wild,
+-// with spaces before colons, and spaces in keys.
++// TestReadMIMEHeaderNonCompliant checks that we don't normalize headers
++// with spaces before colons, and accept spaces in keys.
+ func TestReadMIMEHeaderNonCompliant(t *testing.T) {
+- // Invalid HTTP response header as sent by an Axis security
+- // camera: (this is handled by IE, Firefox, Chrome, curl, etc.)
++ // These invalid headers will be rejected by net/http according to RFC 7230.
+ r := reader("Foo: bar\r\n" +
+ "Content-Language: en\r\n" +
+ "SID : 0\r\n" +
+@@ -202,9 +201,9 @@ func TestReadMIMEHeaderNonCompliant(t *testing.T) {
+ want := MIMEHeader{
+ "Foo": {"bar"},
+ "Content-Language": {"en"},
+- "Sid": {"0"},
+- "Audio Mode": {"None"},
+- "Privilege": {"127"},
++ "SID ": {"0"},
++ "Audio Mode ": {"None"},
++ "Privilege ": {"127"},
+ }
+ if !reflect.DeepEqual(m, want) || err != nil {
+ t.Fatalf("ReadMIMEHeader =\n%v, %v; want:\n%v", m, err, want)
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch b/poky/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch
new file mode 100644
index 000000000..ddfd5e41d
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch
@@ -0,0 +1,38 @@
+From 9e3dc44cdfa58d96504d0a789dc82617dd5bef55 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:01:13 +0430
+Subject: [PATCH 1/9] cmd/go: Allow CC and CXX to have multiple words
+
+Upstream-Status: Inappropriate [OE specific]
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+
+---
+ src/cmd/go/internal/envcmd/env.go | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
+index 17852de..7b5ec5e 100644
+--- a/src/cmd/go/internal/envcmd/env.go
++++ b/src/cmd/go/internal/envcmd/env.go
+@@ -100,11 +100,11 @@ func MkEnv() []cfg.EnvVar {
+
+ cc := cfg.DefaultCC(cfg.Goos, cfg.Goarch)
+ if env := strings.Fields(cfg.Getenv("CC")); len(env) > 0 {
+- cc = env[0]
++ cc = strings.Join(env, " ")
+ }
+ cxx := cfg.DefaultCXX(cfg.Goos, cfg.Goarch)
+ if env := strings.Fields(cfg.Getenv("CXX")); len(env) > 0 {
+- cxx = env[0]
++ cxx = strings.Join(env, " ")
+ }
+ env = append(env, cfg.EnvVar{Name: "AR", Value: envOr("AR", "ar")})
+ env = append(env, cfg.EnvVar{Name: "CC", Value: cc})
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch b/poky/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
new file mode 100644
index 000000000..4eddd3980
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
@@ -0,0 +1,226 @@
+From a13ae484e41139094505d2834437e9262a5315f7 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:14:22 +0430
+Subject: [PATCH 2/9] cmd/go: make content-based hash generation less pedantic
+
+Upstream-Status: Inappropriate [OE specific]
+
+Go 1.10's build tool now uses content-based hashes to
+determine when something should be built or re-built.
+This same mechanism is used to maintain a built-artifact
+cache for speeding up builds.
+
+However, the hashes it generates include information that
+doesn't work well with OE, nor with using a shared runtime
+library.
+
+First, it embeds path names to source files, unless
+building within GOROOT. This prevents the building
+of a package in GOPATH for later staging into GOROOT.
+
+This patch adds support for the environment variable
+GOPATH_OMIT_IN_ACTIONID. If present, path name
+embedding is disabled.
+
+Second, if cgo is enabled, the build ID for cgo-related
+packages will include the current value of the environment
+variables for invoking the compiler (CC, CXX, FC) and
+any CGO_xxFLAGS variables. Only if the settings used
+during a compilation exactly match, character for character,
+the values used for compiling runtime/cgo or any other
+cgo-enabled package being imported, will the tool
+decide that the imported package is up-to-date.
+
+This is done to help ensure correctness, but is overly
+simplistic and effectively prevents the reuse of built
+artifacts that use cgo (or shared runtime, which includes
+runtime/cgo).
+
+This patch filters out all compiler flags except those
+beginning with '-m'. The default behavior can be restored
+by setting the CGO_PEDANTIC environment variable.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/go/internal/envcmd/env.go | 2 +-
+ src/cmd/go/internal/work/exec.go | 66 ++++++++++++++++++++++---------
+ 2 files changed, 49 insertions(+), 19 deletions(-)
+
+diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
+index 7b5ec5e..292f117 100644
+--- a/src/cmd/go/internal/envcmd/env.go
++++ b/src/cmd/go/internal/envcmd/env.go
+@@ -154,7 +154,7 @@ func ExtraEnvVars() []cfg.EnvVar {
+ func ExtraEnvVarsCostly() []cfg.EnvVar {
+ var b work.Builder
+ b.Init()
+- cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{})
++ cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}, false)
+ if err != nil {
+ // Should not happen - b.CFlags was given an empty package.
+ fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
+diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
+index 7dd9a90..ccebaf8 100644
+--- a/src/cmd/go/internal/work/exec.go
++++ b/src/cmd/go/internal/work/exec.go
+@@ -32,6 +32,8 @@ import (
+ "time"
+ )
+
++var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != ""
++
+ // actionList returns the list of actions in the dag rooted at root
+ // as visited in a depth-first post-order traversal.
+ func actionList(root *Action) []*Action {
+@@ -205,7 +207,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+ // The compiler hides the exact value of $GOROOT
+ // when building things in GOROOT.
+ // Assume b.WorkDir is being trimmed properly.
+- if !p.Goroot && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
++ if !p.Goroot && !omitGopath && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
+ fmt.Fprintf(h, "dir %s\n", p.Dir)
+ }
+ fmt.Fprintf(h, "goos %s goarch %s\n", cfg.Goos, cfg.Goarch)
+@@ -219,13 +221,13 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+ }
+ if len(p.CgoFiles)+len(p.SwigFiles) > 0 {
+ fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
+- cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p)
+- fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(), cppflags, cflags, ldflags)
++ cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true)
++ fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(true), cppflags, cflags, ldflags)
+ if len(p.CXXFiles)+len(p.SwigFiles) > 0 {
+- fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(), cxxflags)
++ fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(true), cxxflags)
+ }
+ if len(p.FFiles) > 0 {
+- fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(), fflags)
++ fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(true), fflags)
+ }
+ // TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions?
+ }
+@@ -2229,33 +2231,48 @@ var (
+ // gccCmd returns a gcc command line prefix
+ // defaultCC is defined in zdefaultcc.go, written by cmd/dist.
+ func (b *Builder) GccCmd(incdir, workdir string) []string {
+- return b.compilerCmd(b.ccExe(), incdir, workdir)
++ return b.compilerCmd(b.ccExe(false), incdir, workdir)
+ }
+
+ // gxxCmd returns a g++ command line prefix
+ // defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
+ func (b *Builder) GxxCmd(incdir, workdir string) []string {
+- return b.compilerCmd(b.cxxExe(), incdir, workdir)
++ return b.compilerCmd(b.cxxExe(false), incdir, workdir)
+ }
+
+ // gfortranCmd returns a gfortran command line prefix.
+ func (b *Builder) gfortranCmd(incdir, workdir string) []string {
+- return b.compilerCmd(b.fcExe(), incdir, workdir)
++ return b.compilerCmd(b.fcExe(false), incdir, workdir)
+ }
+
+ // ccExe returns the CC compiler setting without all the extra flags we add implicitly.
+-func (b *Builder) ccExe() []string {
+- return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch))
++func (b *Builder) ccExe(filtered bool) []string {
++ return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch), filtered)
+ }
+
+ // cxxExe returns the CXX compiler setting without all the extra flags we add implicitly.
+-func (b *Builder) cxxExe() []string {
+- return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch))
++func (b *Builder) cxxExe(filtered bool) []string {
++ return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch), filtered)
+ }
+
+ // fcExe returns the FC compiler setting without all the extra flags we add implicitly.
+-func (b *Builder) fcExe() []string {
+- return b.compilerExe(cfg.Getenv("FC"), "gfortran")
++func (b *Builder) fcExe(filtered bool) []string {
++ return b.compilerExe(os.Getenv("FC"), "gfortran", filtered)
++}
++
++var filterFlags = os.Getenv("CGO_PEDANTIC") == ""
++
++func filterCompilerFlags(flags []string) []string {
++ var newflags []string
++ if !filterFlags {
++ return flags
++ }
++ for _, flag := range flags {
++ if strings.HasPrefix(flag, "-m") {
++ newflags = append(newflags, flag)
++ }
++ }
++ return newflags
+ }
+
+ // compilerExe returns the compiler to use given an
+@@ -2264,11 +2281,16 @@ func (b *Builder) fcExe() []string {
+ // of the compiler but can have additional arguments if they
+ // were present in the environment value.
+ // For example if CC="gcc -DGOPHER" then the result is ["gcc", "-DGOPHER"].
+-func (b *Builder) compilerExe(envValue string, def string) []string {
++func (b *Builder) compilerExe(envValue string, def string, filtered bool) []string {
+ compiler := strings.Fields(envValue)
+ if len(compiler) == 0 {
+ compiler = []string{def}
+ }
++
++ if filtered {
++ return append(compiler[0:1], filterCompilerFlags(compiler[1:])...)
++ }
++
+ return compiler
+ }
+
+@@ -2429,7 +2451,7 @@ func envList(key, def string) []string {
+ }
+
+ // CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo.
+-func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
++func (b *Builder) CFlags(p *load.Package, filtered bool) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
+ defaults := "-g -O2"
+
+ if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
+@@ -2448,6 +2470,14 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
+ return
+ }
+
++ if filtered {
++ cppflags = filterCompilerFlags(cppflags)
++ cflags = filterCompilerFlags(cflags)
++ cxxflags = filterCompilerFlags(cxxflags)
++ fflags = filterCompilerFlags(fflags)
++ ldflags = filterCompilerFlags(ldflags)
++ }
++
+ return
+ }
+
+@@ -2462,7 +2492,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
+
+ func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
+ p := a.Package
+- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p)
++ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false)
+ if err != nil {
+ return nil, nil, err
+ }
+@@ -2821,7 +2851,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
+
+ // Run SWIG on one SWIG input file.
+ func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
+- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p)
++ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false)
+ if err != nil {
+ return "", "", err
+ }
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/poky/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
new file mode 100644
index 000000000..9aa0119ae
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
@@ -0,0 +1,54 @@
+From 28ada8896b76d620240bafc22aa395071d601482 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:15:37 +0430
+Subject: [PATCH 3/9] cmd/go: Allow GOTOOLDIR to be overridden in the environment
+
+to allow for split host/target build roots
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/dist/build.go | 4 +++-
+ src/cmd/go/internal/cfg/cfg.go | 6 +++++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
+index 9e50311..683ca6f 100644
+--- a/src/cmd/dist/build.go
++++ b/src/cmd/dist/build.go
+@@ -244,7 +244,9 @@ func xinit() {
+ workdir = xworkdir()
+ xatexit(rmworkdir)
+
+- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
++ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
++ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
++ }
+ }
+
+ // compilerEnv returns a map from "goos/goarch" to the
+diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
+index a3277a6..db96350 100644
+--- a/src/cmd/go/internal/cfg/cfg.go
++++ b/src/cmd/go/internal/cfg/cfg.go
+@@ -60,7 +60,11 @@ func defaultContext() build.Context {
+ // variables. This matches the initialization of ToolDir in
+ // go/build, except for using ctxt.GOROOT rather than
+ // runtime.GOROOT.
+- build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
++ if s := os.Getenv("GOTOOLDIR"); s != "" {
++ build.ToolDir = filepath.Clean(s)
++ } else {
++ build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
++ }
+ }
+
+ ctxt.GOPATH = envOr("GOPATH", ctxt.GOPATH)
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch b/poky/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch
new file mode 100644
index 000000000..40763ad5b
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch
@@ -0,0 +1,50 @@
+From bf5cf5301ae5914498454c87293d1df2e1d8489f Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:16:32 +0430
+Subject: [PATCH 4/9] ld: add soname to shareable objects
+
+so that OE's shared library dependency handling
+can find them.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/link/internal/ld/lib.go | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
+index 3fa258d..f96fb02 100644
+--- a/src/cmd/link/internal/ld/lib.go
++++ b/src/cmd/link/internal/ld/lib.go
+@@ -1215,6 +1215,7 @@ func (ctxt *Link) hostlink() {
+ argv = append(argv, "-Wl,-z,relro")
+ }
+ argv = append(argv, "-shared")
++ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
+ if ctxt.HeadType != objabi.Hwindows {
+ // Pass -z nodelete to mark the shared library as
+ // non-closeable: a dlclose will do nothing.
+@@ -1226,6 +1227,7 @@ func (ctxt *Link) hostlink() {
+ argv = append(argv, "-Wl,-z,relro")
+ }
+ argv = append(argv, "-shared")
++ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
+ case BuildModePlugin:
+ if ctxt.HeadType == objabi.Hdarwin {
+ argv = append(argv, "-dynamiclib")
+@@ -1234,6 +1236,7 @@ func (ctxt *Link) hostlink() {
+ argv = append(argv, "-Wl,-z,relro")
+ }
+ argv = append(argv, "-shared")
++ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
+ }
+ }
+
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch b/poky/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
new file mode 100644
index 000000000..4f2a46c6c
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
@@ -0,0 +1,44 @@
+From f05ef3ded52b98537c10efd0b15cd9612471524d Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:17:16 +0430
+Subject: [PATCH 5/9] make.bash: override CC when building dist and
+ go_bootstrap
+
+for handling OE cross-canadian builds.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/make.bash | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/make.bash b/src/make.bash
+index 92d1481..0c2822f 100755
+--- a/src/make.bash
++++ b/src/make.bash
+@@ -177,7 +177,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
+ exit 1
+ fi
+ rm -f cmd/dist/dist
+-GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
+
+ # -e doesn't propagate out of eval, so check success by hand.
+ eval $(./cmd/dist/dist env -p || echo FAIL=true)
+@@ -208,7 +208,7 @@ fi
+ # Run dist bootstrap to complete make.bash.
+ # Bootstrap installs a proper cmd/dist, built with the new toolchain.
+ # Throw ours, built with Go 1.4, away after bootstrap.
+-./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@"
++CC="${BUILD_CC:-${CC}}" ./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@"
+ rm -f ./cmd/dist/dist
+
+ # DO NOT ADD ANY NEW CODE HERE.
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch b/poky/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch
new file mode 100644
index 000000000..354aaca3a
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch
@@ -0,0 +1,279 @@
+From 10735bb84df17ba657f76835f483cd8543a879c1 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:18:12 +0430
+Subject: [PATCH 6/9] cmd/dist: separate host and target builds
+
+Upstream-Status: Inappropriate [OE specific]
+
+Change the dist tool to allow for OE-style cross-
+and cross-canadian builds:
+
+ - command flags --host-only and --target only are added;
+ if one is present, the other changes mentioned below
+ take effect, and arguments may also be specified on
+ the command line to enumerate the package(s) to be
+ built.
+
+ - for OE cross builds, go_bootstrap is always built for
+ the current build host, and is moved, along with the supporting
+ toolchain (asm, compile, etc.) to a separate 'native_native'
+ directory under GOROOT/pkg/tool.
+
+ - go_bootstrap is not automatically removed after the build,
+ so it can be reused later (e.g., building both static and
+ shared runtime).
+
+Note that for --host-only builds, it would be nice to specify
+just the "cmd" package to build only the go commands/tools,
+the staleness checks in the dist tool will fail if the "std"
+library has not also been built. So host-only builds have to
+build everything anyway.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/dist/build.go | 155 ++++++++++++++++++++++++++++++------------
+ 1 file changed, 112 insertions(+), 43 deletions(-)
+
+diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
+index 683ca6f..0ad082b 100644
+--- a/src/cmd/dist/build.go
++++ b/src/cmd/dist/build.go
+@@ -41,6 +41,7 @@ var (
+ goldflags string
+ workdir string
+ tooldir string
++ build_tooldir string
+ oldgoos string
+ oldgoarch string
+ exe string
+@@ -53,6 +54,7 @@ var (
+
+ rebuildall bool
+ defaultclang bool
++ crossBuild bool
+
+ vflag int // verbosity
+ )
+@@ -247,6 +249,8 @@ func xinit() {
+ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
+ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
+ }
++
++ build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
+ }
+
+ // compilerEnv returns a map from "goos/goarch" to the
+@@ -478,8 +482,10 @@ func setup() {
+ p := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
+ if rebuildall {
+ xremoveall(p)
++ xremoveall(build_tooldir)
+ }
+ xmkdirall(p)
++ xmkdirall(build_tooldir)
+
+ if goos != gohostos || goarch != gohostarch {
+ p := pathf("%s/pkg/%s_%s", goroot, goos, goarch)
+@@ -1207,12 +1213,29 @@ func cmdbootstrap() {
+
+ var noBanner bool
+ var debug bool
++ var hostOnly bool
++ var targetOnly bool
++ var toBuild = []string{"std", "cmd"}
++
+ flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
+ flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
+ flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner")
++ flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target")
++ flag.BoolVar(&targetOnly, "target-only", targetOnly, "build only target binaries, not host")
+
+- xflagparse(0)
++ xflagparse(-1)
+
++ if hostOnly && targetOnly {
++ fatalf("specify only one of --host-only or --target-only\n")
++ }
++ crossBuild = hostOnly || targetOnly
++ if flag.NArg() > 0 {
++ if crossBuild {
++ toBuild = flag.Args()
++ } else {
++ fatalf("package names not permitted without --host-only or --target-only\n")
++ }
++ }
+ // Set GOPATH to an internal directory. We shouldn't actually
+ // need to store files here, since the toolchain won't
+ // depend on modules outside of vendor directories, but if
+@@ -1266,8 +1289,13 @@ func cmdbootstrap() {
+ xprintf("\n")
+ }
+
+- gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
+- goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
++ // For split host/target cross/cross-canadian builds, we don't
++ // want to be setting these flags until after we have compiled
++ // the toolchain that runs on the build host.
++ if !crossBuild {
++ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
++ goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
++ }
+ goBootstrap := pathf("%s/go_bootstrap", tooldir)
+ cmdGo := pathf("%s/go", gobin)
+ if debug {
+@@ -1296,7 +1324,11 @@ func cmdbootstrap() {
+ xprintf("\n")
+ }
+ xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
+- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++ if crossBuild {
++ os.Setenv("CC", defaultcc[""])
++ } else {
++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++ }
+ goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...)
+ if debug {
+ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
+@@ -1333,50 +1365,84 @@ func cmdbootstrap() {
+ }
+ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
+
+- if goos == oldgoos && goarch == oldgoarch {
+- // Common case - not setting up for cross-compilation.
+- timelog("build", "toolchain")
+- if vflag > 0 {
+- xprintf("\n")
++ if crossBuild {
++ gogcflags = os.Getenv("GO_GCFLAGS")
++ goldflags = os.Getenv("GO_LDFLAGS")
++ tool_files, _ := filepath.Glob(pathf("%s/*", tooldir))
++ for _, f := range tool_files {
++ copyfile(pathf("%s/%s", build_tooldir, filepath.Base(f)), f, writeExec)
++ xremove(f)
++ }
++ os.Setenv("GOTOOLDIR", build_tooldir)
++ goBootstrap = pathf("%s/go_bootstrap", build_tooldir)
++ if hostOnly {
++ timelog("build", "host toolchain")
++ if vflag > 0 {
++ xprintf("\n")
++ }
++ xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
++ goInstall(goBootstrap, toBuild...)
++ checkNotStale(goBootstrap, toBuild...)
++ // Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary
++
++ timelog("build", "target toolchain")
++ if vflag > 0 {
++ xprintf("\n")
++ }
++ } else if targetOnly {
++ goos = oldgoos
++ goarch = oldgoarch
++ os.Setenv("GOOS", goos)
++ os.Setenv("GOARCH", goarch)
++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++ xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
++ goInstall(goBootstrap, toBuild...)
++ checkNotStale(goBootstrap, toBuild...)
++ // Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary
+ }
+- xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
+ } else {
+- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
+- // Finish GOHOSTOS/GOHOSTARCH installation and then
+- // run GOOS/GOARCH installation.
+- timelog("build", "host toolchain")
+- if vflag > 0 {
+- xprintf("\n")
+- }
+- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
++
++ if goos == oldgoos && goarch == oldgoarch {
++ // Common case - not setting up for cross-compilation.
++ timelog("build", "toolchain")
++ if vflag > 0 {
++ xprintf("\n")
++ }
++ xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
++ } else {
++ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
++ // Finish GOHOSTOS/GOHOSTARCH installation and then
++ // run GOOS/GOARCH installation.
++ timelog("build", "host toolchain")
++ if vflag > 0 {
++ xprintf("\n")
++ }
++ xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
++ goInstall(goBootstrap, "std", "cmd")
++ checkNotStale(goBootstrap, "std", "cmd")
++ checkNotStale(cmdGo, "std", "cmd")
++
++ timelog("build", "target toolchain")
++ if vflag > 0 {
++ xprintf("\n")
++ }
++ goos = oldgoos
++ goarch = oldgoarch
++ os.Setenv("GOOS", goos)
++ os.Setenv("GOARCH", goarch)
++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
++ }
+ goInstall(goBootstrap, "std", "cmd")
+ checkNotStale(goBootstrap, "std", "cmd")
+ checkNotStale(cmdGo, "std", "cmd")
+
+- timelog("build", "target toolchain")
+- if vflag > 0 {
+- xprintf("\n")
++ if debug {
++ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
++ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
++ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
++ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
+ }
+- goos = oldgoos
+- goarch = oldgoarch
+- os.Setenv("GOOS", goos)
+- os.Setenv("GOARCH", goarch)
+- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
+- xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
+- }
+- targets := []string{"std", "cmd"}
+- if goos == "js" && goarch == "wasm" {
+- // Skip the cmd tools for js/wasm. They're not usable.
+- targets = targets[:1]
+- }
+- goInstall(goBootstrap, targets...)
+- checkNotStale(goBootstrap, targets...)
+- checkNotStale(cmdGo, targets...)
+- if debug {
+- run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
+- run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
+- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
+- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
+ }
+
+ // Check that there are no new files in $GOROOT/bin other than
+@@ -1393,8 +1459,11 @@ func cmdbootstrap() {
+ }
+ }
+
+- // Remove go_bootstrap now that we're done.
+- xremove(pathf("%s/go_bootstrap", tooldir))
++ // Except that for split host/target cross-builds, we need to
++ // keep it.
++ if !crossBuild {
++ xremove(pathf("%s/go_bootstrap", tooldir))
++ }
+
+ if goos == "android" {
+ // Make sure the exec wrapper will sync a fresh $GOROOT to the device.
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch b/poky/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch
new file mode 100644
index 000000000..e232c7919
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch
@@ -0,0 +1,113 @@
+From 9ba507e076c744f4d394418e4a849e68cd426a4a Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:18:56 +0430
+Subject: [PATCH 7/9] cmd/go: make GOROOT precious by default
+
+Upstream-Status: Inappropriate [OE specific]
+
+The go build tool normally rebuilds whatever it detects is
+stale. This can be a problem when GOROOT is intended to
+be read-only and the go runtime has been built as a shared
+library, since we don't want every application to be rebuilding
+the shared runtime - particularly in cross-build/packaging
+setups, since that would lead to 'abi mismatch' runtime errors.
+
+This patch prevents the install and linkshared actions from
+installing to GOROOT unless overridden with the GOROOT_OVERRIDE
+environment variable.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/go/internal/work/action.go | 3 +++
+ src/cmd/go/internal/work/build.go | 6 ++++++
+ src/cmd/go/internal/work/exec.go | 25 +++++++++++++++++++++++++
+ 3 files changed, 34 insertions(+)
+
+diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go
+index 33b7818..7617b4c 100644
+--- a/src/cmd/go/internal/work/action.go
++++ b/src/cmd/go/internal/work/action.go
+@@ -662,6 +662,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
+ if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] {
+ continue
+ }
++ if goRootPrecious && (p1.Standard || p1.Goroot) {
++ continue
++ }
+ haveShlib[filepath.Base(p1.Shlib)] = true
+ // TODO(rsc): The use of ModeInstall here is suspect, but if we only do ModeBuild,
+ // we'll end up building an overall library or executable that depends at runtime
+diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
+index 9305b2d..6560317 100644
+--- a/src/cmd/go/internal/work/build.go
++++ b/src/cmd/go/internal/work/build.go
+@@ -155,6 +155,8 @@ See also: go install, go get, go clean.
+
+ const concurrentGCBackendCompilationEnabledByDefault = true
+
++var goRootPrecious bool = true
++
+ func init() {
+ // break init cycle
+ CmdBuild.Run = runBuild
+@@ -167,6 +169,10 @@ func init() {
+
+ AddBuildFlags(CmdBuild)
+ AddBuildFlags(CmdInstall)
++
++ if x := os.Getenv("GOROOT_OVERRIDE"); x != "" {
++ goRootPrecious = false
++ }
+ }
+
+ // Note that flags consulted by other parts of the code
+diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
+index ccebaf8..59450d7 100644
+--- a/src/cmd/go/internal/work/exec.go
++++ b/src/cmd/go/internal/work/exec.go
+@@ -455,6 +455,23 @@ func (b *Builder) build(a *Action) (err error) {
+ return errors.New("binary-only packages are no longer supported")
+ }
+
++ if goRootPrecious && (a.Package.Standard || a.Package.Goroot) {
++ _, err := os.Stat(a.Package.Target)
++ if err == nil {
++ a.built = a.Package.Target
++ a.Target = a.Package.Target
++ a.buildID = b.fileHash(a.Package.Target)
++ a.Package.Stale = false
++ a.Package.StaleReason = "GOROOT-resident package"
++ return nil
++ }
++ a.Package.Stale = true
++ a.Package.StaleReason = "missing or invalid GOROOT-resident package"
++ if b.IsCmdList {
++ return nil
++ }
++ }
++
+ if err := b.Mkdir(a.Objdir); err != nil {
+ return err
+ }
+@@ -1499,6 +1516,14 @@ func BuildInstallFunc(b *Builder, a *Action) (err error) {
+ return nil
+ }
+
++ if goRootPrecious && a.Package != nil {
++ p := a.Package
++ if p.Standard || p.Goroot {
++ err := fmt.Errorf("attempting to install package %s into read-only GOROOT", p.ImportPath)
++ return err
++ }
++ }
++
+ if err := b.Mkdir(a.Objdir); err != nil {
+ return err
+ }
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch b/poky/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch
new file mode 100644
index 000000000..68e132f30
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch
@@ -0,0 +1,47 @@
+From 971b5626339ce0c4d57f9721c9a81af566c5a044 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:19:26 +0430
+Subject: [PATCH 8/9] cmd/go: Use GOBUILDMODE to set buildmode
+
+Upstream-Status: Denied [upstream choose antoher solution: `17a256b
+cmd/go: -buildmode=pie for android/arm']
+
+While building go itself, the go build system does not support
+to set `-buildmode=pie' from environment.
+
+Add GOBUILDMODE to support it which make PIE executables the default
+build mode, as PIE executables are required as of Yocto
+
+Refers: https://groups.google.com/forum/#!topic/golang-dev/gRCe5URKewI
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Hongxu Jia <hongxu.jia@windriver.com>
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/go/internal/work/build.go | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
+index 6560317..5f3a988 100644
+--- a/src/cmd/go/internal/work/build.go
++++ b/src/cmd/go/internal/work/build.go
+@@ -231,7 +231,13 @@ func AddBuildFlags(cmd *base.Command) {
+
+ cmd.Flag.Var(&load.BuildAsmflags, "asmflags", "")
+ cmd.Flag.Var(buildCompiler{}, "compiler", "")
+- cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", "default", "")
++
++ if bm := os.Getenv("GOBUILDMODE"); bm != "" {
++ cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", bm, "")
++ } else {
++ cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", "default", "")
++ }
++
+ cmd.Flag.Var(&load.BuildGcflags, "gcflags", "")
+ cmd.Flag.Var(&load.BuildGccgoflags, "gccgoflags", "")
+ cmd.Flag.StringVar(&cfg.BuildMod, "mod", "", "")
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch b/poky/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch
new file mode 100644
index 000000000..4bb1106f0
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch
@@ -0,0 +1,134 @@
+From 973251ae0c69a35721f6115345d3f57b2847979f Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:20:13 +0430
+Subject: [PATCH 9/9] ld: replace glibc dynamic linker with musl
+
+Rework of patch by Khem Raj <raj.khem@gmail.com>
+for go 1.10. Should be applied conditionally on
+musl being the system C library.
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+Upstream-Status: Inappropriate [Real fix should be portable across libcs]
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/link/internal/amd64/obj.go | 2 +-
+ src/cmd/link/internal/arm/obj.go | 2 +-
+ src/cmd/link/internal/arm64/obj.go | 2 +-
+ src/cmd/link/internal/mips/obj.go | 2 +-
+ src/cmd/link/internal/mips64/obj.go | 2 +-
+ src/cmd/link/internal/ppc64/obj.go | 2 +-
+ src/cmd/link/internal/s390x/obj.go | 2 +-
+ src/cmd/link/internal/x86/obj.go | 2 +-
+ 8 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/cmd/link/internal/amd64/obj.go b/src/cmd/link/internal/amd64/obj.go
+index 23741eb..8e74576 100644
+--- a/src/cmd/link/internal/amd64/obj.go
++++ b/src/cmd/link/internal/amd64/obj.go
+@@ -62,7 +62,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ PEreloc1: pereloc1,
+ TLSIEtoLE: tlsIEtoLE,
+
+- Linuxdynld: "/lib64/ld-linux-x86-64.so.2",
++ Linuxdynld: "/lib64/ld-musl-x86-64.so.1",
+ Freebsddynld: "/libexec/ld-elf.so.1",
+ Openbsddynld: "/usr/libexec/ld.so",
+ Netbsddynld: "/libexec/ld.elf_so",
+diff --git a/src/cmd/link/internal/arm/obj.go b/src/cmd/link/internal/arm/obj.go
+index 45a406e..724d3e3 100644
+--- a/src/cmd/link/internal/arm/obj.go
++++ b/src/cmd/link/internal/arm/obj.go
+@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ Machoreloc1: machoreloc1,
+ PEreloc1: pereloc1,
+
+- Linuxdynld: "/lib/ld-linux.so.3", // 2 for OABI, 3 for EABI
++ Linuxdynld: "/lib/ld-musl-armhf.so.1",
+ Freebsddynld: "/usr/libexec/ld-elf.so.1",
+ Openbsddynld: "/usr/libexec/ld.so",
+ Netbsddynld: "/libexec/ld.elf_so",
+diff --git a/src/cmd/link/internal/arm64/obj.go b/src/cmd/link/internal/arm64/obj.go
+index 7c66623..d8b1db1 100644
+--- a/src/cmd/link/internal/arm64/obj.go
++++ b/src/cmd/link/internal/arm64/obj.go
+@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ Gentext: gentext,
+ Machoreloc1: machoreloc1,
+
+- Linuxdynld: "/lib/ld-linux-aarch64.so.1",
++ Linuxdynld: "/lib/ld-musl-aarch64.so.1",
+
+ Freebsddynld: "XXX",
+ Openbsddynld: "/usr/libexec/ld.so",
+diff --git a/src/cmd/link/internal/mips/obj.go b/src/cmd/link/internal/mips/obj.go
+index 231e1ff..631dd7a 100644
+--- a/src/cmd/link/internal/mips/obj.go
++++ b/src/cmd/link/internal/mips/obj.go
+@@ -60,7 +60,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ Gentext: gentext,
+ Machoreloc1: machoreloc1,
+
+- Linuxdynld: "/lib/ld.so.1",
++ Linuxdynld: "/lib/ld-musl-mipsle.so.1",
+
+ Freebsddynld: "XXX",
+ Openbsddynld: "XXX",
+diff --git a/src/cmd/link/internal/mips64/obj.go b/src/cmd/link/internal/mips64/obj.go
+index 9604208..5ef3ffc 100644
+--- a/src/cmd/link/internal/mips64/obj.go
++++ b/src/cmd/link/internal/mips64/obj.go
+@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ Gentext: gentext,
+ Machoreloc1: machoreloc1,
+
+- Linuxdynld: "/lib64/ld64.so.1",
++ Linuxdynld: "/lib64/ld-musl-mips64le.so.1",
+ Freebsddynld: "XXX",
+ Openbsddynld: "XXX",
+ Netbsddynld: "XXX",
+diff --git a/src/cmd/link/internal/ppc64/obj.go b/src/cmd/link/internal/ppc64/obj.go
+index 51d1791..b15da85 100644
+--- a/src/cmd/link/internal/ppc64/obj.go
++++ b/src/cmd/link/internal/ppc64/obj.go
+@@ -63,7 +63,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ Xcoffreloc1: xcoffreloc1,
+
+ // TODO(austin): ABI v1 uses /usr/lib/ld.so.1,
+- Linuxdynld: "/lib64/ld64.so.1",
++ Linuxdynld: "/lib64/ld-musl-powerpc64le.so.1",
+
+ Freebsddynld: "XXX",
+ Openbsddynld: "XXX",
+diff --git a/src/cmd/link/internal/s390x/obj.go b/src/cmd/link/internal/s390x/obj.go
+index 3454476..42cc346 100644
+--- a/src/cmd/link/internal/s390x/obj.go
++++ b/src/cmd/link/internal/s390x/obj.go
+@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ Gentext: gentext,
+ Machoreloc1: machoreloc1,
+
+- Linuxdynld: "/lib64/ld64.so.1",
++ Linuxdynld: "/lib64/ld-musl-s390x.so.1",
+
+ // not relevant for s390x
+ Freebsddynld: "XXX",
+diff --git a/src/cmd/link/internal/x86/obj.go b/src/cmd/link/internal/x86/obj.go
+index f1fad20..d2ca10c 100644
+--- a/src/cmd/link/internal/x86/obj.go
++++ b/src/cmd/link/internal/x86/obj.go
+@@ -58,7 +58,7 @@ func Init() (*sys.Arch, ld.Arch) {
+ Machoreloc1: machoreloc1,
+ PEreloc1: pereloc1,
+
+- Linuxdynld: "/lib/ld-linux.so.2",
++ Linuxdynld: "/lib/ld-musl-i386.so.1",
+ Freebsddynld: "/usr/libexec/ld-elf.so.1",
+ Openbsddynld: "/usr/libexec/ld.so",
+ Netbsddynld: "/usr/libexec/ld.elf_so",
+--
+2.17.1 (Apple Git-112)
+
diff --git a/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb b/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb
index dcbd05aed..c5761170a 100644
--- a/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb
+++ b/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb
@@ -31,6 +31,7 @@ FILES_${PN}-misc = "${sbindir}/i2c-stub-from-dump \
RDEPENDS_${PN}-misc = "${PN} perl perl-module-posix \
perl-module-constant perl-module-file-basename \
perl-module-fcntl perl-module-strict perl-module-vars \
+ perl-module-carp \
"
ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
index 053945ebb..231c1c20e 100644
--- a/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
+++ b/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
@@ -34,3 +34,5 @@ do_install() {
}
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS_${PN}_class-nativesdk = "patchelf"
diff --git a/poky/meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch b/poky/meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch
deleted file mode 100644
index 7e54ac97e..000000000
--- a/poky/meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ef1fa9bef497d9491a51017f3cad0135a23bb0b4 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 20 Aug 2019 17:33:15 +0800
-Subject: [PATCH] readline.c: fix cannot get history
-
-if history_offset not increate when add history,
-it will make current history event not align with offset,
-and cannot get history correctly.
-
-Upstream-Status: Submitted [tech-userlevel@NetBSD.org]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- src/readline.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/readline.c b/src/readline.c
-index 43ac5bd..54b0548 100644
---- a/src/readline.c
-+++ b/src/readline.c
-@@ -1476,7 +1476,10 @@ add_history(const char *line)
- if (ev.num == history_length)
- history_base++;
- else
-+ {
-+ history_offset++;
- history_length = ev.num;
-+ }
- return 0;
- }
-
---
-2.7.4
-
diff --git a/poky/meta/recipes-devtools/libedit/libedit_20190324-3.1.bb b/poky/meta/recipes-devtools/libedit/libedit_20191025-3.1.bb
index 25667ccce..f810013a6 100644
--- a/poky/meta/recipes-devtools/libedit/libedit_20190324-3.1.bb
+++ b/poky/meta/recipes-devtools/libedit/libedit_20191025-3.1.bb
@@ -12,9 +12,8 @@ inherit autotools
SRC_URI = "http://www.thrysoee.dk/editline/${BP}.tar.gz \
file://stdc-predef.patch \
- file://0001-readline.c-fix-cannot-get-history.patch \
"
-SRC_URI[md5sum] = "bec755c8044ad84b752dfe49a0b371d8"
-SRC_URI[sha256sum] = "ac8f0f51c1cf65492e4d1e3ed2be360bda41e54633444666422fbf393bba1bae"
+SRC_URI[md5sum] = "2d6568467080cfd75e715d045102b544"
+SRC_URI[sha256sum] = "6dff036660d478bfaa14e407fc5de26d22da1087118c897b1a3ad2e90cb7bf39"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-Do-not-generate-gtkdoc-or-python-bindings.patch b/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-Do-not-generate-gtkdoc-or-python-bindings.patch
deleted file mode 100644
index d950ad586..000000000
--- a/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-Do-not-generate-gtkdoc-or-python-bindings.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 71c51206e037c0bb5759e01b307b7ce1d5934703 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 6 Sep 2019 17:07:00 +0200
-Subject: [PATCH] Do not generate gtkdoc or python bindings
-
-All of these really need a configuration option.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- meson.build | 12 ------------
- modulemd/meson.build | 8 --------
- 2 files changed, 20 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 155c9e7..fe35d5e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -51,25 +51,13 @@ gnome = import('gnome')
- pkg = import('pkgconfig')
- gobject = dependency('gobject-2.0')
- yaml = dependency('yaml-0.1')
--gtkdoc = dependency('gtk-doc')
-
- glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
--glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
-
- sh = find_program('sh')
- sed = find_program('sed')
- test = find_program('test')
-
--ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
--if ret.returncode() != 0
-- error('Missing documentation for GLib.')
--endif
--
--ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
--if ret.returncode() != 0
-- error('Missing documentation for GObject.')
--endif
--
- python_name = get_option('python_name')
-
- if python_name != ''
-diff --git a/modulemd/meson.build b/modulemd/meson.build
-index 9a164b5..349c982 100644
---- a/modulemd/meson.build
-+++ b/modulemd/meson.build
-@@ -523,11 +523,3 @@ configure_file(
- configuration : xcdata
- )
-
--gnome.gtkdoc(
-- 'modulemd-1.0',
-- install_dir: 'modulemd-1.0',
-- src_dir : './modulemd',
-- main_xml : 'modulemd-docs.xml',
-- install : true,
--)
--
diff --git a/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb b/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb
index 9790470f4..5409051d7 100644
--- a/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb
+++ b/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb
@@ -4,18 +4,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=25a3927bff3ee4f5b21bcb0ed3fcd6bb"
SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https;branch=1.x-maint \
file://0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch \
- file://0001-Do-not-generate-gtkdoc-or-python-bindings.patch \
"
-PV = "1.8.15"
-SRCREV = "2d461725f781c6fdcf32893d8dcfa40bcef8dda5"
+PV = "1.8.16"
+SRCREV = "d0dcf7b373b3cf85cd39eb3bc23d31e06195a75a"
UPSTREAM_CHECK_GITTAGREGEX = "libmodulemd-(?P<pver>1.*\d)"
S = "${WORKDIR}/git"
inherit meson gobject-introspection
-EXTRA_OEMESON = "-Ddeveloper_build=false"
+EXTRA_OEMESON = "-Ddeveloper_build=false -Dwith_docs=false"
DEPENDS += "glib-2.0 libyaml glib-2.0-native python3"
diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.10.6.bb b/poky/meta/recipes-devtools/librepo/librepo_1.11.0.bb
index cf4de22c4..30c8a5c55 100644
--- a/poky/meta/recipes-devtools/librepo/librepo_1.10.6.bb
+++ b/poky/meta/recipes-devtools/librepo/librepo_1.11.0.bb
@@ -8,7 +8,7 @@ SRC_URI = "git://github.com/rpm-software-management/librepo.git \
file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \
"
-SRCREV = "2ec349f1c686c1704dc83da6c118035ff57c8dea"
+SRCREV = "497f5eb2293662835bed6bdb0f43521788b2cebe"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
index d75c94e9e..d02b7ba6a 100644
--- a/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
+++ b/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
@@ -1,3 +1,6 @@
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
From dbeecdb307be8b783b42cbc89dcb9c5e7f528989 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 21 May 2016 00:33:20 +0000
diff --git a/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
index 58dce513c..b01b8647c 100644
--- a/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
+++ b/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
@@ -1,3 +1,6 @@
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001
From: Martin Kelly <mkelly@xevo.com>
Date: Fri, 19 May 2017 00:22:57 -0700
diff --git a/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c b/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c
index cba768141..32b987293 100644
--- a/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c
+++ b/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c
@@ -230,7 +230,7 @@ static void add_new_directory(char *name, char *path,
unsigned long uid, unsigned long gid, unsigned long mode)
{
if (trace)
- fprintf(stderr, "Directory: %s %s UID: %ld GID %ld MODE: %04lo", path, name, uid, gid, mode);
+ fprintf(stderr, "Directory: %s %s UID: %lu GID %lu MODE: %04lo", path, name, uid, gid, mode);
if (mkdir(path, mode) < 0) {
if (EEXIST == errno) {
@@ -251,7 +251,7 @@ static void add_new_device(char *name, char *path, unsigned long uid,
struct stat sb;
if (trace) {
- fprintf(stderr, "Device: %s %s UID: %ld GID: %ld MODE: %04lo MAJOR: %d MINOR: %d",
+ fprintf(stderr, "Device: %s %s UID: %lu GID: %lu MODE: %04lo MAJOR: %d MINOR: %d",
path, name, uid, gid, mode, (short)(rdev >> 8), (short)(rdev & 0xff));
}
@@ -292,7 +292,7 @@ static void add_new_file(char *name, char *path, unsigned long uid,
unsigned long gid, unsigned long mode)
{
if (trace) {
- fprintf(stderr, "File: %s %s UID: %ld GID: %ld MODE: %04lo\n",
+ fprintf(stderr, "File: %s %s UID: %lu GID: %lu MODE: %04lo\n",
path, name, gid, uid, mode);
}
@@ -311,7 +311,7 @@ static void add_new_fifo(char *name, char *path, unsigned long uid,
unsigned long gid, unsigned long mode)
{
if (trace) {
- printf("Fifo: %s %s UID: %ld GID: %ld MODE: %04lo\n",
+ printf("Fifo: %s %s UID: %lu GID: %lu MODE: %04lo\n",
path, name, gid, uid, mode);
}
@@ -360,7 +360,7 @@ static int interpret_table_entry(char *line)
unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
unsigned long start = 0, increment = 1, count = 0;
- if (0 > sscanf(line, "%4095s %c %lo %40s %40s %lu %lu %lu %lu %lu", path,
+ if (0 > sscanf(line, "%4095s %c %lo %39s %39s %lu %lu %lu %lu %lu", path,
&type, &mode, usr_buf, grp_buf, &major, &minor, &start,
&increment, &count))
{
diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc
index ae0091c05..84bcc8409 100644
--- a/poky/meta/recipes-devtools/meson/meson.inc
+++ b/poky/meta/recipes-devtools/meson/meson.inc
@@ -16,6 +16,7 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
file://cross-prop-default.patch \
file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \
file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
+ file://dbc9e971bd320f3df15c1ee74f54858e6792b183.patch \
"
SRC_URI[sha256sum] = "d60f75f0dedcc4fd249dbc7519d6f3ce6df490033d276ef1cf27453ef4938d32"
SRC_URI[md5sum] = "7ea7772414dda8ae11072244bf7ba991"
diff --git a/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch b/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch
new file mode 100644
index 000000000..7ea8a133e
--- /dev/null
+++ b/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch
@@ -0,0 +1,95 @@
+From dbc9e971bd320f3df15c1ee74f54858e6792b183 Mon Sep 17 00:00:00 2001
+From: Xavier Claessens <xavier.claessens@collabora.com>
+Date: Fri, 11 Oct 2019 11:01:22 -0400
+Subject: [PATCH] Remove duplicated object files in static libraries
+
+When a static library link_whole to a bunch of other static libraries,
+we have to extract all their objects recursively. But that could
+introduce duplicated objects. ar is dumb enough to allow this without
+error, but once the resulting static library is linked into an
+executable or shared library, the linker will complain about duplicated
+symbols.
+
+Upstream-Status: Backport
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+---
+ mesonbuild/backend/backends.py | 3 ++-
+ test cases/unit/69 static link/lib/func17.c | 4 ++++
+ test cases/unit/69 static link/lib/func18.c | 6 ++++++
+ test cases/unit/69 static link/lib/func19.c | 7 +++++++
+ test cases/unit/69 static link/lib/meson.build | 12 ++++++++++++
+ 5 files changed, 31 insertions(+), 1 deletion(-)
+ create mode 100644 test cases/unit/69 static link/lib/func17.c
+ create mode 100644 test cases/unit/69 static link/lib/func18.c
+ create mode 100644 test cases/unit/69 static link/lib/func19.c
+
+diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
+index 947be1cbef..e54809657f 100644
+--- a/mesonbuild/backend/backends.py
++++ b/mesonbuild/backend/backends.py
+@@ -281,7 +281,8 @@ def relpath(self, todir, fromdir):
+ os.path.join('dummyprefixdir', fromdir))
+
+ def flatten_object_list(self, target, proj_dir_to_build_root=''):
+- return self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
++ obj_list = self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
++ return list(dict.fromkeys(obj_list))
+
+ def _flatten_object_list(self, target, objects, proj_dir_to_build_root):
+ obj_list = []
+diff --git a/test cases/unit/69 static link/lib/func17.c b/test cases/unit/69 static link/lib/func17.c
+new file mode 100644
+index 0000000000..d1d8ec498c
+--- /dev/null
++++ b/test cases/unit/69 static link/lib/func17.c
+@@ -0,0 +1,4 @@
++int func17()
++{
++ return 1;
++}
+diff --git a/test cases/unit/69 static link/lib/func18.c b/test cases/unit/69 static link/lib/func18.c
+new file mode 100644
+index 0000000000..c149085ba4
+--- /dev/null
++++ b/test cases/unit/69 static link/lib/func18.c
+@@ -0,0 +1,6 @@
++int func17();
++
++int func18()
++{
++ return func17() + 1;
++}
+diff --git a/test cases/unit/69 static link/lib/func19.c b/test cases/unit/69 static link/lib/func19.c
+new file mode 100644
+index 0000000000..69120e4bf8
+--- /dev/null
++++ b/test cases/unit/69 static link/lib/func19.c
+@@ -0,0 +1,7 @@
++int func17();
++int func18();
++
++int func19()
++{
++ return func17() + func18();
++}
+diff --git a/test cases/unit/69 static link/lib/meson.build b/test cases/unit/69 static link/lib/meson.build
+index 5f04aab6a1..8f95fc4546 100644
+--- a/test cases/unit/69 static link/lib/meson.build
++++ b/test cases/unit/69 static link/lib/meson.build
+@@ -66,3 +66,15 @@ libfunc15 = static_library('func15', 'func15.c',
+ libfunc16 = static_library('func16', 'func16.c',
+ link_with : libfunc15,
+ install : true)
++
++# Verify func17.c.o gets included only once into libfunc19, otherwise
++# func19-shared would failed with duplicated symbol.
++libfunc17 = static_library('func17', 'func17.c',
++ install : false)
++libfunc18 = static_library('func18', 'func18.c',
++ link_with : libfunc17,
++ install : false)
++libfunc19 = static_library('func19', 'func19.c',
++ link_whole : [libfunc17, libfunc18],
++ install : false)
++shared_library('func19-shared', link_whole : [libfunc19])
diff --git a/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb b/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb
index 2ae69797a..2093d80db 100644
--- a/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb
+++ b/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb
@@ -35,7 +35,7 @@ SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
SRC_URI_append_class-native = " file://disable-hardcoded-configs.patch"
-inherit autotools texinfo distro_features_check
+inherit autotools texinfo features_check
EXTRA_OECONF = "--without-x"
diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch b/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch
new file mode 100644
index 000000000..55ddcc1fd
--- /dev/null
+++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch
@@ -0,0 +1,31 @@
+We need opkg-build to fail if for example the tar command is passed invalid
+options. Without this, we see silently created empty packaged where data.tar
+is zero bytes in size. This creates hard to debug problems.
+
+An example is when reproducible builds are enabled and run on old hosts like
+centos7 which has tar < 1.28:
+
+Subprocess output:tar: unrecognized option '--clamp-mtime'
+Try `tar --help' or `tar --usage' for more information.
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: opkg-utils-0.4.1/opkg-build
+===================================================================
+--- opkg-utils-0.4.1.orig/opkg-build
++++ opkg-utils-0.4.1/opkg-build
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+
+ : <<=cut
+ =head1 NAME
+@@ -12,6 +12,7 @@ opkg-build - construct an .opk from a di
+ # Updated to work on Familiar Pre0.7rc1, with busybox tar.
+ # Note it Requires: binutils-ar (since the busybox ar can't create)
+ set -e
++set -o pipefail
+
+ version=1.0
+
diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb
index cf1e4670c..eb6c7a3a6 100644
--- a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb
+++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb
@@ -10,6 +10,7 @@ PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtu
SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \
file://0001-Switch-all-scripts-to-use-Python-3.x.patch \
file://0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch \
+ file://pipefail.patch \
"
UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"
@@ -19,6 +20,8 @@ SRC_URI[sha256sum] = "9ea9efdd9fe13661ad251e3a2860c1c93045adcfaa6659c3e86d9748ec
TARGET_CC_ARCH += "${LDFLAGS}"
+RDEPENDS_${PN} += "bash"
+
# For native builds we use the host Python
PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold"
PYTHONRDEPS_class-native = ""
diff --git a/poky/meta/recipes-devtools/opkg/opkg/open_inner.patch b/poky/meta/recipes-devtools/opkg/opkg/open_inner.patch
new file mode 100644
index 000000000..278e099e3
--- /dev/null
+++ b/poky/meta/recipes-devtools/opkg/opkg/open_inner.patch
@@ -0,0 +1,46 @@
+From alejandro.delcastillo@ni.com Wed Nov 20 22:35:02 2019
+From: Alejandro del Castillo <alejandro.delcastillo@ni.com>
+To: <opkg-devel@googlegroups.com>, <richard.purdie@linuxfoundation.org>
+CC: Alejandro del Castillo <alejandro.delcastillo@ni.com>
+Subject: [opkg][PATCH 2/2] open_inner: add support for empty payloads
+Date: Wed, 20 Nov 2019 16:34:48 -0600
+Message-ID: <20191120223448.26522-3-alejandro.delcastillo@ni.com>
+X-Mailer: git-send-email 2.22.0
+In-Reply-To: <20191120223448.26522-1-alejandro.delcastillo@ni.com>
+References: <20191120223448.26522-1-alejandro.delcastillo@ni.com>
+MIME-Version: 1.0
+Content-Type: text/plain
+Content-Transfer-Encoding: 8bit
+
+Support for empty compressed payloads need to be explicitly enabled on
+libarchive.
+
+Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
+
+Upstream-Status: Backport
+---
+ libopkg/opkg_archive.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/libopkg/opkg_archive.c b/libopkg/opkg_archive.c
+index 0e9ccea..f19cece 100644
+--- a/libopkg/opkg_archive.c
++++ b/libopkg/opkg_archive.c
+@@ -618,6 +618,13 @@ static struct archive *open_inner(struct archive *outer)
+ goto err_cleanup;
+ }
+
++ r = archive_read_support_format_empty(inner);
++ if (r != ARCHIVE_OK) {
++ opkg_msg(ERROR, "Empty format not supported: %s\n",
++ archive_error_string(inner));
++ goto err_cleanup;
++ }
++
+ r = archive_read_open(inner, data, NULL, inner_read, inner_close);
+ if (r != ARCHIVE_OK) {
+ opkg_msg(ERROR, "Failed to open inner archive: %s\n",
+--
+2.22.0
+
+
diff --git a/poky/meta/recipes-devtools/opkg/opkg/opkg_archive.patch b/poky/meta/recipes-devtools/opkg/opkg/opkg_archive.patch
new file mode 100644
index 000000000..3e1ebae95
--- /dev/null
+++ b/poky/meta/recipes-devtools/opkg/opkg/opkg_archive.patch
@@ -0,0 +1,54 @@
+From alejandro.delcastillo@ni.com Wed Nov 20 22:35:01 2019
+Return-Path: <richard.purdie+caf_=rpurdie=rpsys.net@linuxfoundation.org>
+From: Alejandro del Castillo <alejandro.delcastillo@ni.com>
+To: <opkg-devel@googlegroups.com>, <richard.purdie@linuxfoundation.org>
+CC: Alejandro del Castillo <alejandro.delcastillo@ni.com>
+Subject: [opkg][PATCH 1/2] opkg_archive.c: avoid double free on uncompress
+ error
+Date: Wed, 20 Nov 2019 16:34:47 -0600
+Message-ID: <20191120223448.26522-2-alejandro.delcastillo@ni.com>
+X-Mailer: git-send-email 2.22.0
+In-Reply-To: <20191120223448.26522-1-alejandro.delcastillo@ni.com>
+References: <20191120223448.26522-1-alejandro.delcastillo@ni.com>
+MIME-Version: 1.0
+Content-Type: text/plain
+Content-Transfer-Encoding: 8bit
+
+The open-inner function calls archive_read_open. On error,
+archive_read_open calls inner_close, which also closes the outter
+archive. On error, return NULL directly to avoid double free.
+
+
+Upstream-Status: Backport
+
+Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
+---
+ libopkg/opkg_archive.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libopkg/opkg_archive.c b/libopkg/opkg_archive.c
+index 3d87db1..0e9ccea 100644
+--- a/libopkg/opkg_archive.c
++++ b/libopkg/opkg_archive.c
+@@ -622,7 +622,7 @@ static struct archive *open_inner(struct archive *outer)
+ if (r != ARCHIVE_OK) {
+ opkg_msg(ERROR, "Failed to open inner archive: %s\n",
+ archive_error_string(inner));
+- goto err_cleanup;
++ return NULL;
+ }
+
+ return inner;
+@@ -683,7 +683,7 @@ static struct archive *extract_outer(const char *filename, const char *arname)
+
+ inner = open_inner(outer);
+ if (!inner)
+- goto err_cleanup;
++ return NULL;
+
+ return inner;
+
+--
+2.22.0
+
+
diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb
index 104f07fda..f0ae8b36b 100644
--- a/poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb
+++ b/poky/meta/recipes-devtools/opkg/opkg_0.4.1.bb
@@ -14,6 +14,8 @@ PE = "1"
SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
file://opkg.conf \
file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
+ file://opkg_archive.patch \
+ file://open_inner.patch \
file://run-ptest \
"
@@ -32,7 +34,10 @@ OPKGLIBDIR ??= "${target_localstatedir}/lib"
PACKAGECONFIG ??= "libsolv"
-PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,gpgme libgpg-error,gnupg"
+PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\
+ gnupg gpgme libgpg-error,\
+ ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\
+ "
PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl"
PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
diff --git a/poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch b/poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch
index f60dfe879..d13d419f5 100644
--- a/poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch
+++ b/poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch
@@ -6,8 +6,8 @@ Subject: [PATCH] Invoke ed directly instead of using the shell
* src/pch.c (do_ed_script): Invoke ed directly instead of using a shell
command to avoid quoting vulnerabilities.
-CVE: CVE-2019-13638
-Upstream-Status: Backport[https://git.savannah.gnu.org/cgit/patch.git/patch/?id=3fcd042d26d70856e826a42b5f93dc4854d80bf0]
+CVE: CVE-2019-13638 CVE-2018-20969
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/patch.git/patch/?id=3fcd042d26d70856e826a42b5f93dc4854d80bf0]
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
---
diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch b/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch
new file mode 100644
index 000000000..f01e699de
--- /dev/null
+++ b/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch
@@ -0,0 +1,106 @@
+From 4e41a05de1f34ba00a68ca4f20fb49c4d1cbd2d0 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Wed, 6 Nov 2019 12:17:46 +0000
+Subject: [PATCH] Add statx glibc/syscall support
+
+Modern distros (e.g. fedora30) are starting to use the new statx() syscall through
+the newly exposed glibc wrapper function in software like coreutils (e.g. the ls
+command). Add support to intercept this to pseudo.
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream-Status: Submitted [Emailed to seebs]
+---
+ ports/linux/guts/statx.c | 48 ++++++++++++++++++++++++++++++++++++++++
+ ports/linux/portdefs.h | 1 +
+ ports/linux/wrapfuncs.in | 1 +
+ 3 files changed, 50 insertions(+)
+ create mode 100644 ports/linux/guts/statx.c
+
+diff --git a/ports/linux/statx/guts/statx.c b/ports/linux/statx/guts/statx.c
+new file mode 100644
+index 0000000..a3259c4
+--- /dev/null
++++ b/ports/linux/statx/guts/statx.c
+@@ -0,0 +1,42 @@
++/*
++ * Copyright (c) 2019 Linux Foundation
++ * Author: Richard Purdie
++ *
++ * SPDX-License-Identifier: LGPL-2.1-only
++ *
++ * int
++ * statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) {
++ * int rc = -1;
++ */
++ pseudo_msg_t *msg;
++ PSEUDO_STATBUF buf;
++ int save_errno;
++
++ rc = real_statx(dirfd, pathname, flags, mask, statxbuf);
++ save_errno = errno;
++ if (rc == -1) {
++ return rc;
++ }
++
++ buf.st_uid = statxbuf->stx_uid;
++ buf.st_gid = statxbuf->stx_gid;
++ buf.st_dev = makedev(statxbuf->stx_dev_major, statxbuf->stx_dev_minor);
++ buf.st_ino = statxbuf->stx_ino;
++ buf.st_mode = statxbuf->stx_mode;
++ buf.st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor);
++ buf.st_nlink = statxbuf->stx_nlink;
++ msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, pathname, &buf);
++ if (msg && msg->result == RESULT_SUCCEED) {
++ pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
++ statxbuf->stx_uid = msg->uid;
++ statxbuf->stx_gid = msg->gid;
++ statxbuf->stx_mode = msg->mode;
++ statxbuf->stx_rdev_major = major(msg->rdev);
++ statxbuf->stx_rdev_minor = minor(msg->rdev);
++ } else {
++ pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
++ }
++ errno = save_errno;
++/* return rc;
++ * }
++ */
+diff --git a/ports/linux/statx/portdefs.h b/ports/linux/statx/portdefs.h
+new file mode 100644
+index 0000000..bf934dc
+--- /dev/null
++++ b/ports/linux/statx/portdefs.h
+@@ -0,0 +1,6 @@
++/*
++ * SPDX-License-Identifier: LGPL-2.1-only
++ *
++ */
++#include <sys/stat.h>
++#include <sys/sysmacros.h>
+diff --git a/ports/linux/statx/wrapfuncs.in b/ports/linux/statx/wrapfuncs.in
+new file mode 100644
+index 0000000..c9cd4c3
+--- /dev/null
++++ b/ports/linux/statx/wrapfuncs.in
+@@ -0,0 +1 @@
++int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf);
+diff --git a/ports/linux/subports b/ports/linux/subports
+index a29044a..49081bf 100755
+--- a/ports/linux/subports
++++ b/ports/linux/subports
+@@ -54,3 +54,13 @@ else
+ fi
+ rm -f dummy.c dummy.o
+
++cat > dummy.c <<EOF
++#define _GNU_SOURCE
++#include <sys/stat.h>
++struct statx x;
++EOF
++if ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then
++ echo "linux/statx"
++fi
++rm -f dummy.c dummy.o
++
+--
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/pseudo/pseudo.inc b/poky/meta/recipes-devtools/pseudo/pseudo.inc
index 8b3490972..7ff8e449e 100644
--- a/poky/meta/recipes-devtools/pseudo/pseudo.inc
+++ b/poky/meta/recipes-devtools/pseudo/pseudo.inc
@@ -30,23 +30,10 @@ PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback --enable-ep
# Compile for the local machine arch...
do_compile () {
- SQLITE_LDADD='$(SQLITE)/$(SQLITE_LIB)/libsqlite3.a'
- for sqlite_link_opt in $(pkg-config sqlite3 --libs --static)
- do
- case "$sqlite_link_opt" in
- -lsqlite3)
- ;;
- -l*)
- SQLITE_LDADD="${SQLITE_LDADD} ${sqlite_link_opt}"
- ;;
- *)
- ;;
- esac
- done
if [ "${SITEINFO_BITS}" = "64" ]; then
- ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath
+ ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
else
- ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath
+ ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
fi
oe_runmake ${MAKEOPTS}
}
diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
index 78500e1cc..1f2df4a42 100644
--- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -7,6 +7,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo \
file://moreretries.patch \
file://toomanyfiles.patch \
file://0001-maketables-wrappers-use-Python-3.patch \
+ file://0001-Add-statx.patch \
"
SRCREV = "060058bb29f70b244e685b3c704eb0641b736f73"
diff --git a/poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h
deleted file mode 100644
index 109deb043..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h b/poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h
deleted file mode 100644
index c30b868f2..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/arm/config.h b/poky/meta/recipes-devtools/python-numpy/files/arm/config.h
deleted file mode 100644
index 17ef186d5..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/arm/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */
-/* #define SIZEOF_SHORT 2 */
-/* #define SIZEOF_INT 4 */
-/* #define SIZEOF_LONG 4 */
-/* #define SIZEOF_FLOAT 4 */
-/* #define SIZEOF_DOUBLE 8 */
-#define SIZEOF_LONG_DOUBLE 12
-#define SIZEOF_PY_INTPTR_T 4
-/* #define SIZEOF_LONG_LONG 8 */
-#define SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-#define MATHLIB m
-#define HAVE_FLOAT_FUNCS
-#define HAVE_LOG1P
-#define HAVE_EXPM1
-#define HAVE_INVERSE_HYPERBOLIC
-#define HAVE_INVERSE_HYPERBOLIC_FLOAT
-#define HAVE_ISNAN
-#define HAVE_ISINF
-#define HAVE_RINT
-
diff --git a/poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h
deleted file mode 100644
index c4bf6547f..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
-/*
- * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
- * */
-#define NPY_SIZEOF_SHORT 2
-#define NPY_SIZEOF_INT 4
-#define NPY_SIZEOF_LONG 4
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_LONGDOUBLE 12
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_NO_SMP 0
-
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-
diff --git a/poky/meta/recipes-devtools/python-numpy/files/armeb/config.h b/poky/meta/recipes-devtools/python-numpy/files/armeb/config.h
deleted file mode 100644
index 17ef186d5..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/armeb/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */
-/* #define SIZEOF_SHORT 2 */
-/* #define SIZEOF_INT 4 */
-/* #define SIZEOF_LONG 4 */
-/* #define SIZEOF_FLOAT 4 */
-/* #define SIZEOF_DOUBLE 8 */
-#define SIZEOF_LONG_DOUBLE 12
-#define SIZEOF_PY_INTPTR_T 4
-/* #define SIZEOF_LONG_LONG 8 */
-#define SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-#define MATHLIB m
-#define HAVE_FLOAT_FUNCS
-#define HAVE_LOG1P
-#define HAVE_EXPM1
-#define HAVE_INVERSE_HYPERBOLIC
-#define HAVE_INVERSE_HYPERBOLIC_FLOAT
-#define HAVE_ISNAN
-#define HAVE_ISINF
-#define HAVE_RINT
-
diff --git a/poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h
deleted file mode 100644
index c4bf6547f..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
-/*
- * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
- * */
-#define NPY_SIZEOF_SHORT 2
-#define NPY_SIZEOF_INT 4
-#define NPY_SIZEOF_LONG 4
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_LONGDOUBLE 12
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_NO_SMP 0
-
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h
deleted file mode 100644
index debb39009..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h
deleted file mode 100644
index c30b868f2..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h
deleted file mode 100644
index 8e2b5d094..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h
deleted file mode 100644
index 48727039a..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h
+++ /dev/null
@@ -1,138 +0,0 @@
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h
deleted file mode 100644
index debb39009..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h
deleted file mode 100644
index c30b868f2..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h
deleted file mode 100644
index debb39009..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h
deleted file mode 100644
index 48727039a..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h
+++ /dev/null
@@ -1,138 +0,0 @@
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h
deleted file mode 100644
index 4c465c216..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 8
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 16
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h
deleted file mode 100644
index 2f6135adc..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 4
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_DOUBLE_BE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h
deleted file mode 100644
index 17ef186d5..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */
-/* #define SIZEOF_SHORT 2 */
-/* #define SIZEOF_INT 4 */
-/* #define SIZEOF_LONG 4 */
-/* #define SIZEOF_FLOAT 4 */
-/* #define SIZEOF_DOUBLE 8 */
-#define SIZEOF_LONG_DOUBLE 12
-#define SIZEOF_PY_INTPTR_T 4
-/* #define SIZEOF_LONG_LONG 8 */
-#define SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-#define MATHLIB m
-#define HAVE_FLOAT_FUNCS
-#define HAVE_LOG1P
-#define HAVE_EXPM1
-#define HAVE_INVERSE_HYPERBOLIC
-#define HAVE_INVERSE_HYPERBOLIC_FLOAT
-#define HAVE_ISNAN
-#define HAVE_ISINF
-#define HAVE_RINT
-
diff --git a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h
deleted file mode 100644
index 0b7cd51af..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
-/*
- * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
- * */
-#define NPY_SIZEOF_SHORT 2
-#define NPY_SIZEOF_INT 4
-#define NPY_SIZEOF_LONG 4
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_LONGDOUBLE 12
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_NO_SMP 0
-
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_OFF_T 8
-/* #define CHAR_BIT 8 */
-
diff --git a/poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h
deleted file mode 100644
index 6e7262ad9..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h b/poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h
deleted file mode 100644
index f65d39d5d..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 4
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_DOUBLE_DOUBLE_BE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h
deleted file mode 100644
index debb39009..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h b/poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h
deleted file mode 100644
index c30b868f2..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h
deleted file mode 100644
index 109deb043..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h b/poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h
deleted file mode 100644
index c30b868f2..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h
deleted file mode 100644
index b33036164..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h b/poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h
deleted file mode 100644
index 0ce63b7d2..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_INTEL_EXTENDED_16_BYTES_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/x86/config.h b/poky/meta/recipes-devtools/python-numpy/files/x86/config.h
deleted file mode 100644
index 08e41e3d9..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/x86/config.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#define SIZEOF_PY_INTPTR_T 4
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN
-#define HAVE_COS
-#define HAVE_TAN
-#define HAVE_SINH
-#define HAVE_COSH
-#define HAVE_TANH
-#define HAVE_FABS
-#define HAVE_FLOOR
-#define HAVE_CEIL
-#define HAVE_SQRT
-#define HAVE_LOG10
-#define HAVE_LOG
-#define HAVE_EXP
-#define HAVE_ASIN
-#define HAVE_ACOS
-#define HAVE_ATAN
-#define HAVE_FMOD
-#define HAVE_MODF
-#define HAVE_FREXP
-#define HAVE_LDEXP
-#define HAVE_RINT
-#define HAVE_TRUNC
-#define HAVE_EXP2
-#define HAVE_LOG2
-#define HAVE_ATAN2
-#define HAVE_POW
-#define HAVE_NEXTAFTER
-#define HAVE_SINF
-#define HAVE_COSF
-#define HAVE_TANF
-#define HAVE_SINHF
-#define HAVE_COSHF
-#define HAVE_TANHF
-#define HAVE_FABSF
-#define HAVE_FLOORF
-#define HAVE_CEILF
-#define HAVE_RINTF
-#define HAVE_TRUNCF
-#define HAVE_SQRTF
-#define HAVE_LOG10F
-#define HAVE_LOGF
-#define HAVE_LOG1PF
-#define HAVE_EXPF
-#define HAVE_EXPM1F
-#define HAVE_ASINF
-#define HAVE_ACOSF
-#define HAVE_ATANF
-#define HAVE_ASINHF
-#define HAVE_ACOSHF
-#define HAVE_ATANHF
-#define HAVE_HYPOTF
-#define HAVE_ATAN2F
-#define HAVE_POWF
-#define HAVE_FMODF
-#define HAVE_MODFF
-#define HAVE_FREXPF
-#define HAVE_LDEXPF
-#define HAVE_EXP2F
-#define HAVE_LOG2F
-#define HAVE_COPYSIGNF
-#define HAVE_NEXTAFTERF
-#define HAVE_SINL
-#define HAVE_COSL
-#define HAVE_TANL
-#define HAVE_SINHL
-#define HAVE_COSHL
-#define HAVE_TANHL
-#define HAVE_FABSL
-#define HAVE_FLOORL
-#define HAVE_CEILL
-#define HAVE_RINTL
-#define HAVE_TRUNCL
-#define HAVE_SQRTL
-#define HAVE_LOG10L
-#define HAVE_LOGL
-#define HAVE_LOG1PL
-#define HAVE_EXPL
-#define HAVE_EXPM1L
-#define HAVE_ASINL
-#define HAVE_ACOSL
-#define HAVE_ATANL
-#define HAVE_ASINHL
-#define HAVE_ACOSHL
-#define HAVE_ATANHL
-#define HAVE_HYPOTL
-#define HAVE_ATAN2L
-#define HAVE_POWL
-#define HAVE_FMODL
-#define HAVE_MODFL
-#define HAVE_FREXPL
-#define HAVE_LDEXPL
-#define HAVE_EXP2L
-#define HAVE_LOG2L
-#define HAVE_COPYSIGNL
-#define HAVE_NEXTAFTERL
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H
-#define HAVE_LDOUBLE_INTEL_EXTENDED_12_BYTES_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h b/poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h
deleted file mode 100644
index ff7938cd9..000000000
--- a/poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _NPY_NUMPYCONFIG_H_
-#define _NPY_NUMPYCONFIG_H_
-
-#include "_numpyconfig.h"
-
-/*
- * On Mac OS X, because there is only one configuration stage for all the archs
- * in universal builds, any macro which depends on the arch needs to be
- * harcoded
- */
-#ifdef __APPLE__
- #undef NPY_SIZEOF_LONG
- #undef NPY_SIZEOF_PY_INTPTR_T
-
- #ifdef __LP64__
- #define NPY_SIZEOF_LONG 8
- #define NPY_SIZEOF_PY_INTPTR_T 8
- #else
- #define NPY_SIZEOF_LONG 4
- #define NPY_SIZEOF_PY_INTPTR_T 4
- #endif
-#endif
-
-#endif
diff --git a/poky/meta/recipes-devtools/python-numpy/python-numpy.inc b/poky/meta/recipes-devtools/python-numpy/python-numpy.inc
index a12e72f96..f68b90e6b 100644
--- a/poky/meta/recipes-devtools/python-numpy/python-numpy.inc
+++ b/poky/meta/recipes-devtools/python-numpy/python-numpy.inc
@@ -8,7 +8,6 @@ SRCNAME = "numpy"
SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \
file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
file://0001-npy_cpu-Add-riscv-support.patch \
- ${CONFIGFILESURI} \
file://0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch \
"
SRC_URI[md5sum] = "c48b2ad785f82cdfe28c907ce35e2a71"
@@ -20,77 +19,10 @@ UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
# Needed for building with gcc 4.x from centos 7
CFLAGS_append_class-native = " -std=c99"
-CONFIGFILESURI ?= ""
-
-CONFIGFILESURI_aarch64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_arm = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_armeb = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_mipsarcho32el = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_x86 = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_x86-64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarcho32eb = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_powerpc = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_powerpc64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn64eb = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn64el = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn32eb = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn32el = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_riscv64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-
S = "${WORKDIR}/numpy-${PV}"
CLEANBROKEN = "1"
-# Make the build fail and replace *config.h with proper one
-# This is a ugly, ugly hack - Koen
-do_compile_prepend_class-target() {
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS} || \
- true
- cp ${WORKDIR}/*config.h ${S}/build/$(ls ${S}/build | grep src)/numpy/core/include/numpy/
-}
-
FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a"
# install what is needed for numpy.test()
diff --git a/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch b/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch
index 989818927..707ee596f 100644
--- a/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch
+++ b/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch
@@ -1,4 +1,4 @@
-From 12292444e1b3662b994bc223d92b8338fb0895ff Mon Sep 17 00:00:00 2001
+From 6cbb7529cf7ff0da3ca649fb3486facd9620d625 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 25 Oct 2018 07:32:14 +0000
Subject: [PATCH] python-native: fix one do_populate_sysroot warning
@@ -17,23 +17,24 @@ when do_populate_sysroot. use append to fix it.
Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
-index 7bf13ed..6c0f29b 100644
+index a2c8127..22f9e23 100644
--- a/setup.py
+++ b/setup.py
-@@ -40,7 +40,7 @@ def add_dir_to_list(dirlist, dir):
- 1) 'dir' is not already in 'dirlist'
- 2) 'dir' actually exists, and is a directory."""
- if dir is not None and os.path.isdir(dir) and dir not in dirlist:
-- dirlist.insert(0, dir)
-+ dirlist.append(dir)
-
- def macosx_sdk_root():
- """
+@@ -47,7 +47,7 @@ def add_dir_to_list(dirlist, dir):
+ else:
+ dir_exists = os.path.isdir(dir)
+ if dir_exists:
+- dirlist.insert(0, dir)
++ dirlist.append(dir)
+
+ MACOS_SDK_ROOT = None
+
--
-2.18.0
+2.17.1
diff --git a/poky/meta/recipes-devtools/python/python-native/debug.patch b/poky/meta/recipes-devtools/python/python-native/debug.patch
deleted file mode 100644
index 361788264..000000000
--- a/poky/meta/recipes-devtools/python/python-native/debug.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Pending
-
-Index: Python-2.7.12/Lib/distutils/unixccompiler.py
-===================================================================
---- Python-2.7.12.orig/Lib/distutils/unixccompiler.py
-+++ Python-2.7.12/Lib/distutils/unixccompiler.py
-@@ -278,6 +278,8 @@ class UnixCCompiler(CCompiler):
-
-
-
-+ print "Looking in %s for %s" % (lib, dirs)
-+
- for dir in dirs:
- shared = os.path.join(dir, shared_f)
- dylib = os.path.join(dir, dylib_f)
-@@ -298,12 +300,16 @@ class UnixCCompiler(CCompiler):
- # assuming that *all* Unix C compilers do. And of course I'm
- # ignoring even GCC's "-static" option. So sue me.
- if os.path.exists(dylib):
-+ print "Found %s" % (dylib)
- return dylib
- elif os.path.exists(xcode_stub):
-+ print "Found %s" % (xcode_stub)
- return xcode_stub
- elif os.path.exists(shared):
-+ print "Found %s" % (shared)
- return shared
- elif os.path.exists(static):
-+ print "Found %s" % (static)
- return static
-
- # Oops, didn't find it in *any* of 'dirs'
diff --git a/poky/meta/recipes-devtools/python/python-native_2.7.16.bb b/poky/meta/recipes-devtools/python/python-native_2.7.17.bb
index b7442800d..936810d98 100644
--- a/poky/meta/recipes-devtools/python/python-native_2.7.16.bb
+++ b/poky/meta/recipes-devtools/python/python-native_2.7.17.bb
@@ -7,12 +7,11 @@ SRC_URI += "\
file://10-distutils-fix-swig-parameter.patch \
file://11-distutils-never-modify-shebang-line.patch \
file://0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch \
- file://debug.patch \
file://unixccompiler.patch \
file://nohostlibs.patch \
file://multilib.patch \
file://add-md5module-support.patch \
- file://builddir.patch \
+ file://0001-python-Resolve-intermediate-staging-issues.patch \
file://parallel-makeinst-create-bindir.patch \
file://revert_use_of_sysconfigdata.patch \
file://0001-python-native-fix-one-do_populate_sysroot-warning.patch \
diff --git a/poky/meta/recipes-devtools/python/python-setuptools.inc b/poky/meta/recipes-devtools/python/python-setuptools.inc
index 322197eed..027e259be 100644
--- a/poky/meta/recipes-devtools/python/python-setuptools.inc
+++ b/poky/meta/recipes-devtools/python/python-setuptools.inc
@@ -10,8 +10,8 @@ inherit pypi
SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch"
-SRC_URI[md5sum] = "a3470ce184da33f0fa6c9f44f6221bc0"
-SRC_URI[sha256sum] = "66b86bbae7cc7ac2e867f52dc08a6bd064d938bac59dfec71b9b565dd36d6012"
+SRC_URI[md5sum] = "89a592d733b31e180a4b6ad760c0685a"
+SRC_URI[sha256sum] = "7eae782ccf36b790c21bde7d86a4f303a441cd77036b25c559a602cf5186ce4d"
DEPENDS += "${PYTHON_PN}"
diff --git a/poky/meta/recipes-devtools/python/python-setuptools_41.2.0.bb b/poky/meta/recipes-devtools/python/python-setuptools_41.4.0.bb
index cf9440495..cf9440495 100644
--- a/poky/meta/recipes-devtools/python/python-setuptools_41.2.0.bb
+++ b/poky/meta/recipes-devtools/python/python-setuptools_41.4.0.bb
diff --git a/poky/meta/recipes-devtools/python/python-six.inc b/poky/meta/recipes-devtools/python/python-six.inc
index c706dcaf2..c386090b4 100644
--- a/poky/meta/recipes-devtools/python/python-six.inc
+++ b/poky/meta/recipes-devtools/python/python-six.inc
@@ -2,10 +2,10 @@ SUMMARY = "Python 2 and 3 compatibility library"
HOMEPAGE = "https://pypi.python.org/pypi/six/"
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=83e0f622bd5ac7d575dbd83d094d69b5"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f82eb3a1a7fade60bda5980935084b62"
-SRC_URI[md5sum] = "9ae5d1feed8c0215f4ae4adcd9207fcb"
-SRC_URI[sha256sum] = "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"
+SRC_URI[md5sum] = "e92c23c882c7d5564ce5773fe31b2771"
+SRC_URI[sha256sum] = "30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66"
inherit pypi
diff --git a/poky/meta/recipes-devtools/python/python.inc b/poky/meta/recipes-devtools/python/python.inc
index 1462b779e..a630c26e8 100644
--- a/poky/meta/recipes-devtools/python/python.inc
+++ b/poky/meta/recipes-devtools/python/python.inc
@@ -8,16 +8,10 @@ INC_PR = "r1"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e466242989bd33c1bd2b6a526a742498"
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
- file://bpo-35907-cve-2019-9948.patch \
- file://bpo-35907-cve-2019-9948-fix.patch \
- file://bpo-36216-cve-2019-9636.patch \
- file://bpo-36216-cve-2019-9636-fix.patch \
- file://CVE-2019-9740.patch \
- file://CVE-2018-20852.patch \
"
-SRC_URI[md5sum] = "30157d85a2c0479c09ea2cbe61f2aaf5"
-SRC_URI[sha256sum] = "f222ef602647eecb6853681156d32de4450a2c39f4de93bd5b20235f2e660ed7"
+SRC_URI[md5sum] = "b3b6d2c92f42a60667814358ab9f0cfd"
+SRC_URI[sha256sum] = "4d43f033cdbd0aa7b7023c81b0e986fd11e653b5248dac9144d508f11812ba41"
# python recipe is actually python 2.x
# also, exclude pre-releases for both python 2.x and 3.x
diff --git a/poky/meta/recipes-devtools/python/python/0001-2.7-bpo-34155-Dont-parse-domains-containing-GH-13079.patch b/poky/meta/recipes-devtools/python/python/0001-2.7-bpo-34155-Dont-parse-domains-containing-GH-13079.patch
deleted file mode 100644
index 5415472a3..000000000
--- a/poky/meta/recipes-devtools/python/python/0001-2.7-bpo-34155-Dont-parse-domains-containing-GH-13079.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 532ed09c5454bb789a301bb6f1339a0818255610 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Roberto=20C=2E=20S=C3=A1nchez?= <roberto@connexer.com>
-Date: Sat, 14 Sep 2019 13:26:38 -0400
-Subject: [PATCH] [2.7] bpo-34155: Dont parse domains containing @ (GH-13079)
- (GH-16006)
-
-This change skips parsing of email addresses where domains include a "@" character, which can be maliciously used since the local part is returned as a complete address.
-
-(cherry picked from commit 8cb65d1381b027f0b09ee36bfed7f35bb4dec9a9)
-
-Excludes changes to Lib/email/_header_value_parser.py, which did not
-exist in 2.7.
-
-Co-authored-by: jpic <jpic@users.noreply.github.com>
-
-https://bugs.python.org/issue34155
-
-Upstream-Status: Backport [https://github.com/python/cpython/commit/8cb65d1381b027f0b09ee36bfed7f35bb4dec9a9]
-
-CVE: CVE-2019-16056
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- Lib/email/_parseaddr.py | 11 ++++++++++-
- Lib/email/test/test_email.py | 14 ++++++++++++++
- .../2019-05-04-13-33-37.bpo-34155.MJll68.rst | 1 +
- 3 files changed, 25 insertions(+), 1 deletion(-)
- create mode 100644 Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst
-
-diff --git a/Lib/email/_parseaddr.py b/Lib/email/_parseaddr.py
-index 690db2c22d..dc49d2e45a 100644
---- a/Lib/email/_parseaddr.py
-+++ b/Lib/email/_parseaddr.py
-@@ -336,7 +336,12 @@ class AddrlistClass:
- aslist.append('@')
- self.pos += 1
- self.gotonext()
-- return EMPTYSTRING.join(aslist) + self.getdomain()
-+ domain = self.getdomain()
-+ if not domain:
-+ # Invalid domain, return an empty address instead of returning a
-+ # local part to denote failed parsing.
-+ return EMPTYSTRING
-+ return EMPTYSTRING.join(aslist) + domain
-
- def getdomain(self):
- """Get the complete domain name from an address."""
-@@ -351,6 +356,10 @@ class AddrlistClass:
- elif self.field[self.pos] == '.':
- self.pos += 1
- sdlist.append('.')
-+ elif self.field[self.pos] == '@':
-+ # bpo-34155: Don't parse domains with two `@` like
-+ # `a@malicious.org@important.com`.
-+ return EMPTYSTRING
- elif self.field[self.pos] in self.atomends:
- break
- else:
-diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py
-index 4b4dee3d34..2efe44ac5a 100644
---- a/Lib/email/test/test_email.py
-+++ b/Lib/email/test/test_email.py
-@@ -2306,6 +2306,20 @@ class TestMiscellaneous(TestEmailBase):
- self.assertEqual(Utils.parseaddr('<>'), ('', ''))
- self.assertEqual(Utils.formataddr(Utils.parseaddr('<>')), '')
-
-+ def test_parseaddr_multiple_domains(self):
-+ self.assertEqual(
-+ Utils.parseaddr('a@b@c'),
-+ ('', '')
-+ )
-+ self.assertEqual(
-+ Utils.parseaddr('a@b.c@c'),
-+ ('', '')
-+ )
-+ self.assertEqual(
-+ Utils.parseaddr('a@172.17.0.1@c'),
-+ ('', '')
-+ )
-+
- def test_noquote_dump(self):
- self.assertEqual(
- Utils.formataddr(('A Silly Person', 'person@dom.ain')),
-diff --git a/Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst b/Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst
-new file mode 100644
-index 0000000000..50292e29ed
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst
-@@ -0,0 +1 @@
-+Fix parsing of invalid email addresses with more than one ``@`` (e.g. a@b@c.com.) to not return the part before 2nd ``@`` as valid email address. Patch by maxking & jpic.
diff --git a/poky/meta/recipes-devtools/python/python/builddir.patch b/poky/meta/recipes-devtools/python/python/0001-python-Resolve-intermediate-staging-issues.patch
index ad629a022..2ff2ccc43 100644
--- a/poky/meta/recipes-devtools/python/python/builddir.patch
+++ b/poky/meta/recipes-devtools/python/python/0001-python-Resolve-intermediate-staging-issues.patch
@@ -1,5 +1,10 @@
-When cross compiling python, we used to need to install the Makefile, pyconfig.h
-and the python library to their final location before being able to compile the
+From 77bcb3238b2853d511714544e0f84a37be6c79bf Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Wed, 14 Nov 2012 14:31:24 +0000
+Subject: [PATCH] python: Resolve intermediate staging issues
+
+When cross compiling python, we used to need to install the Makefile, pyconfig.h
+and the python library to their final location before being able to compile the
rest of python. This change allows us to point python at its own source when
building, avoiding a variety of sysroot staging issues and simplifying the main
python recipe.
@@ -7,10 +12,29 @@ python recipe.
Upstream-Status: Inappropriate
RP 2012/11/13
-Index: Python-2.7.9/Lib/sysconfig.py
-===================================================================
---- Python-2.7.9.orig/Lib/sysconfig.py
-+++ Python-2.7.9/Lib/sysconfig.py
+---
+ Lib/distutils/sysconfig.py | 3 +++
+ Lib/sysconfig.py | 5 ++++-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index 2f4b8ca..15bceb5 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -31,6 +31,9 @@ else:
+ # sys.executable can be empty if argv[0] has been changed and Python is
+ # unable to retrieve the real program name
+ project_base = os.getcwd()
++_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None)
++if _PYTHONBUILDDIR:
++ project_base = _PYTHONBUILDDIR
+ if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
+ project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
+ # PC/VS7.1
+diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
+index 9c8350d..bddbe2e 100644
+--- a/Lib/sysconfig.py
++++ b/Lib/sysconfig.py
@@ -93,6 +93,7 @@ _PREFIX = os.path.normpath(sys.prefix)
_EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
_CONFIG_VARS = None
@@ -30,17 +54,6 @@ Index: Python-2.7.9/Lib/sysconfig.py
_PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable))
else:
# sys.executable can be empty if argv[0] has been changed and Python is
-Index: Python-2.7.9/Lib/distutils/sysconfig.py
-===================================================================
---- Python-2.7.9.orig/Lib/distutils/sysconfig.py
-+++ Python-2.7.9/Lib/distutils/sysconfig.py
-@@ -26,6 +26,9 @@ EXEC_PREFIX = os.path.normpath(sys.exec_
- # live in project/PCBuild9. If we're dealing with an x64 Windows build,
- # it'll live in project/PCbuild/amd64.
- project_base = os.path.dirname(os.path.abspath(sys.executable))
-+_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None)
-+if _PYTHONBUILDDIR:
-+ project_base = _PYTHONBUILDDIR
- if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
- project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
- # PC/VS7.1
+--
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/python/python/CVE-2018-20852.patch b/poky/meta/recipes-devtools/python/python/CVE-2018-20852.patch
deleted file mode 100644
index 23c784a21..000000000
--- a/poky/meta/recipes-devtools/python/python/CVE-2018-20852.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 979daae300916adb399ab5b51410b6ebd0888f13 Mon Sep 17 00:00:00 2001
-From: Xtreak <tir.karthi@gmail.com>
-Date: Sat, 15 Jun 2019 20:59:43 +0530
-Subject: [PATCH] [2.7] bpo-35121: prefix dot in domain for proper subdomain
- validation (GH-10258) (GH-13426)
-
-This is a manual backport of ca7fe5063593958e5efdf90f068582837f07bd14 since 2.7 has `http.cookiejar` in `cookielib`
-
-
-https://bugs.python.org/issue35121
-CVE: CVE-2018-20852
-Upstream-Status: Backport [https://github.com/python/cpython/pull/13426]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- Lib/cookielib.py | 13 ++++++--
- Lib/test/test_cookielib.py | 30 +++++++++++++++++++
- .../2019-05-20-00-35-12.bpo-35121.RRi-HU.rst | 4 +++
- 3 files changed, 45 insertions(+), 2 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst
-
-diff --git a/Lib/cookielib.py b/Lib/cookielib.py
-index 2dd7c48728e0..0b471a42f296 100644
---- a/Lib/cookielib.py
-+++ b/Lib/cookielib.py
-@@ -1139,6 +1139,11 @@ def return_ok_domain(self, cookie, request):
- req_host, erhn = eff_request_host(request)
- domain = cookie.domain
-
-+ if domain and not domain.startswith("."):
-+ dotdomain = "." + domain
-+ else:
-+ dotdomain = domain
-+
- # strict check of non-domain cookies: Mozilla does this, MSIE5 doesn't
- if (cookie.version == 0 and
- (self.strict_ns_domain & self.DomainStrictNonDomain) and
-@@ -1151,7 +1156,7 @@ def return_ok_domain(self, cookie, request):
- _debug(" effective request-host name %s does not domain-match "
- "RFC 2965 cookie domain %s", erhn, domain)
- return False
-- if cookie.version == 0 and not ("."+erhn).endswith(domain):
-+ if cookie.version == 0 and not ("."+erhn).endswith(dotdomain):
- _debug(" request-host %s does not match Netscape cookie domain "
- "%s", req_host, domain)
- return False
-@@ -1165,7 +1170,11 @@ def domain_return_ok(self, domain, request):
- req_host = "."+req_host
- if not erhn.startswith("."):
- erhn = "."+erhn
-- if not (req_host.endswith(domain) or erhn.endswith(domain)):
-+ if domain and not domain.startswith("."):
-+ dotdomain = "." + domain
-+ else:
-+ dotdomain = domain
-+ if not (req_host.endswith(dotdomain) or erhn.endswith(dotdomain)):
- #_debug(" request domain %s does not match cookie domain %s",
- # req_host, domain)
- return False
-diff --git a/Lib/test/test_cookielib.py b/Lib/test/test_cookielib.py
-index f2dd9727d137..7f7ff614d61d 100644
---- a/Lib/test/test_cookielib.py
-+++ b/Lib/test/test_cookielib.py
-@@ -368,6 +368,7 @@ def test_domain_return_ok(self):
- ("http://foo.bar.com/", ".foo.bar.com", True),
- ("http://foo.bar.com/", "foo.bar.com", True),
- ("http://foo.bar.com/", ".bar.com", True),
-+ ("http://foo.bar.com/", "bar.com", True),
- ("http://foo.bar.com/", "com", True),
- ("http://foo.com/", "rhubarb.foo.com", False),
- ("http://foo.com/", ".foo.com", True),
-@@ -378,6 +379,8 @@ def test_domain_return_ok(self):
- ("http://foo/", "foo", True),
- ("http://foo/", "foo.local", True),
- ("http://foo/", ".local", True),
-+ ("http://barfoo.com", ".foo.com", False),
-+ ("http://barfoo.com", "foo.com", False),
- ]:
- request = urllib2.Request(url)
- r = pol.domain_return_ok(domain, request)
-@@ -938,6 +941,33 @@ def test_domain_block(self):
- c.add_cookie_header(req)
- self.assertFalse(req.has_header("Cookie"))
-
-+ c.clear()
-+
-+ pol.set_blocked_domains([])
-+ req = Request("http://acme.com/")
-+ res = FakeResponse(headers, "http://acme.com/")
-+ cookies = c.make_cookies(res, req)
-+ c.extract_cookies(res, req)
-+ self.assertEqual(len(c), 1)
-+
-+ req = Request("http://acme.com/")
-+ c.add_cookie_header(req)
-+ self.assertTrue(req.has_header("Cookie"))
-+
-+ req = Request("http://badacme.com/")
-+ c.add_cookie_header(req)
-+ self.assertFalse(pol.return_ok(cookies[0], req))
-+ self.assertFalse(req.has_header("Cookie"))
-+
-+ p = pol.set_blocked_domains(["acme.com"])
-+ req = Request("http://acme.com/")
-+ c.add_cookie_header(req)
-+ self.assertFalse(req.has_header("Cookie"))
-+
-+ req = Request("http://badacme.com/")
-+ c.add_cookie_header(req)
-+ self.assertFalse(req.has_header("Cookie"))
-+
- def test_secure(self):
- from cookielib import CookieJar, DefaultCookiePolicy
-
-diff --git a/Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst b/Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst
-new file mode 100644
-index 000000000000..77251806163b
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst
-@@ -0,0 +1,4 @@
-+Don't send cookies of domain A without Domain attribute to domain B when
-+domain A is a suffix match of domain B while using a cookiejar with
-+:class:`cookielib.DefaultCookiePolicy` policy. Patch by Karthikeyan
-+Singaravelan.
diff --git a/poky/meta/recipes-devtools/python/python/CVE-2019-9740.patch b/poky/meta/recipes-devtools/python/python/CVE-2019-9740.patch
deleted file mode 100644
index 95f43e038..000000000
--- a/poky/meta/recipes-devtools/python/python/CVE-2019-9740.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-From bb8071a4cae5ab3fe321481dd3d73662ffb26052 Mon Sep 17 00:00:00 2001
-From: Victor Stinner <victor.stinner@gmail.com>
-Date: Tue, 21 May 2019 15:12:33 +0200
-Subject: [PATCH] bpo-30458: Disallow control chars in http URLs (GH-12755)
- (GH-13154) (GH-13315)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Disallow control chars in http URLs in urllib2.urlopen. This
-addresses a potential security problem for applications that do not
-sanity check their URLs where http request headers could be injected.
-
-Disable https related urllib tests on a build without ssl (GH-13032)
-These tests require an SSL enabled build. Skip these tests when
-python is built without SSL to fix test failures.
-
-Use httplib.InvalidURL instead of ValueError as the new error case's
-exception. (GH-13044)
-
-Backport Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
-
-(cherry picked from commit 7e200e0763f5b71c199aaf98bd5588f291585619)
-
-Notes on backport to Python 2.7:
-
-* test_urllib tests urllib.urlopen() which quotes the URL and so is
- not vulerable to HTTP Header Injection.
-* Add tests to test_urllib2 on urllib2.urlopen().
-* Reject non-ASCII characters: range 0x80-0xff.
-
-Upstream-Status: Backport
-CVE: CVE-2019-9740
-CVE: CVE-2019-9947
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- Lib/httplib.py | 16 ++++++
- Lib/test/test_urllib.py | 25 +++++++++
- Lib/test/test_urllib2.py | 51 ++++++++++++++++++-
- Lib/test/test_xmlrpc.py | 8 ++-
- .../2019-04-10-08-53-30.bpo-30458.51E-DA.rst | 1 +
- 5 files changed, 99 insertions(+), 2 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-
-diff --git a/Lib/httplib.py b/Lib/httplib.py
-index 60a8fb4e355f..1b41c346e090 100644
---- a/Lib/httplib.py
-+++ b/Lib/httplib.py
-@@ -247,6 +247,16 @@
- _is_legal_header_name = re.compile(r'\A[^:\s][^:\r\n]*\Z').match
- _is_illegal_header_value = re.compile(r'\n(?![ \t])|\r(?![ \t\n])').search
-
-+# These characters are not allowed within HTTP URL paths.
-+# See https://tools.ietf.org/html/rfc3986#section-3.3 and the
-+# https://tools.ietf.org/html/rfc3986#appendix-A pchar definition.
-+# Prevents CVE-2019-9740. Includes control characters such as \r\n.
-+# Restrict non-ASCII characters above \x7f (0x80-0xff).
-+_contains_disallowed_url_pchar_re = re.compile('[\x00-\x20\x7f-\xff]')
-+# Arguably only these _should_ allowed:
-+# _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
-+# We are more lenient for assumed real world compatibility purposes.
-+
- # We always set the Content-Length header for these methods because some
- # servers will otherwise respond with a 411
- _METHODS_EXPECTING_BODY = {'PATCH', 'POST', 'PUT'}
-@@ -927,6 +937,12 @@ def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
- self._method = method
- if not url:
- url = '/'
-+ # Prevent CVE-2019-9740.
-+ match = _contains_disallowed_url_pchar_re.search(url)
-+ if match:
-+ raise InvalidURL("URL can't contain control characters. %r "
-+ "(found at least %r)"
-+ % (url, match.group()))
- hdr = '%s %s %s' % (method, url, self._http_vsn_str)
-
- self._output(hdr)
-diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
-index 1ce9201c0693..d7778d4194f3 100644
---- a/Lib/test/test_urllib.py
-+++ b/Lib/test/test_urllib.py
-@@ -257,6 +257,31 @@ def test_url_fragment(self):
- finally:
- self.unfakehttp()
-
-+ def test_url_with_control_char_rejected(self):
-+ for char_no in range(0, 0x21) + range(0x7f, 0x100):
-+ char = chr(char_no)
-+ schemeless_url = "//localhost:7777/test%s/" % char
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ try:
-+ # urllib quotes the URL so there is no injection.
-+ resp = urllib.urlopen("http:" + schemeless_url)
-+ self.assertNotIn(char, resp.geturl())
-+ finally:
-+ self.unfakehttp()
-+
-+ def test_url_with_newline_header_injection_rejected(self):
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ host = "localhost:7777?a=1 HTTP/1.1\r\nX-injected: header\r\nTEST: 123"
-+ schemeless_url = "//" + host + ":8080/test/?test=a"
-+ try:
-+ # urllib quotes the URL so there is no injection.
-+ resp = urllib.urlopen("http:" + schemeless_url)
-+ self.assertNotIn(' ', resp.geturl())
-+ self.assertNotIn('\r', resp.geturl())
-+ self.assertNotIn('\n', resp.geturl())
-+ finally:
-+ self.unfakehttp()
-+
- def test_read_bogus(self):
- # urlopen() should raise IOError for many error codes.
- self.fakehttp('''HTTP/1.1 401 Authentication Required
-diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
-index 6d24d5ddf83c..9531818e16b2 100644
---- a/Lib/test/test_urllib2.py
-+++ b/Lib/test/test_urllib2.py
-@@ -15,6 +15,9 @@
- except ImportError:
- ssl = None
-
-+from test.test_urllib import FakeHTTPMixin
-+
-+
- # XXX
- # Request
- # CacheFTPHandler (hard to write)
-@@ -1262,7 +1265,7 @@ def _test_basic_auth(self, opener, auth_handler, auth_header,
- self.assertEqual(len(http_handler.requests), 1)
- self.assertFalse(http_handler.requests[0].has_header(auth_header))
-
--class MiscTests(unittest.TestCase):
-+class MiscTests(unittest.TestCase, FakeHTTPMixin):
-
- def test_build_opener(self):
- class MyHTTPHandler(urllib2.HTTPHandler): pass
-@@ -1317,6 +1320,52 @@ def test_unsupported_algorithm(self):
- "Unsupported digest authentication algorithm 'invalid'"
- )
-
-+ @unittest.skipUnless(ssl, "ssl module required")
-+ def test_url_with_control_char_rejected(self):
-+ for char_no in range(0, 0x21) + range(0x7f, 0x100):
-+ char = chr(char_no)
-+ schemeless_url = "//localhost:7777/test%s/" % char
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ try:
-+ # We explicitly test urllib.request.urlopen() instead of the top
-+ # level 'def urlopen()' function defined in this... (quite ugly)
-+ # test suite. They use different url opening codepaths. Plain
-+ # urlopen uses FancyURLOpener which goes via a codepath that
-+ # calls urllib.parse.quote() on the URL which makes all of the
-+ # above attempts at injection within the url _path_ safe.
-+ escaped_char_repr = repr(char).replace('\\', r'\\')
-+ InvalidURL = httplib.InvalidURL
-+ with self.assertRaisesRegexp(
-+ InvalidURL, "contain control.*" + escaped_char_repr):
-+ urllib2.urlopen("http:" + schemeless_url)
-+ with self.assertRaisesRegexp(
-+ InvalidURL, "contain control.*" + escaped_char_repr):
-+ urllib2.urlopen("https:" + schemeless_url)
-+ finally:
-+ self.unfakehttp()
-+
-+ @unittest.skipUnless(ssl, "ssl module required")
-+ def test_url_with_newline_header_injection_rejected(self):
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ host = "localhost:7777?a=1 HTTP/1.1\r\nX-injected: header\r\nTEST: 123"
-+ schemeless_url = "//" + host + ":8080/test/?test=a"
-+ try:
-+ # We explicitly test urllib2.urlopen() instead of the top
-+ # level 'def urlopen()' function defined in this... (quite ugly)
-+ # test suite. They use different url opening codepaths. Plain
-+ # urlopen uses FancyURLOpener which goes via a codepath that
-+ # calls urllib.parse.quote() on the URL which makes all of the
-+ # above attempts at injection within the url _path_ safe.
-+ InvalidURL = httplib.InvalidURL
-+ with self.assertRaisesRegexp(
-+ InvalidURL, r"contain control.*\\r.*(found at least . .)"):
-+ urllib2.urlopen("http:" + schemeless_url)
-+ with self.assertRaisesRegexp(InvalidURL, r"contain control.*\\n"):
-+ urllib2.urlopen("https:" + schemeless_url)
-+ finally:
-+ self.unfakehttp()
-+
-+
-
- class RequestTests(unittest.TestCase):
-
-diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
-index 36b3be67fd6b..90ccb30716ff 100644
---- a/Lib/test/test_xmlrpc.py
-+++ b/Lib/test/test_xmlrpc.py
-@@ -659,7 +659,13 @@ def test_dotted_attribute(self):
- def test_partial_post(self):
- # Check that a partial POST doesn't make the server loop: issue #14001.
- conn = httplib.HTTPConnection(ADDR, PORT)
-- conn.request('POST', '/RPC2 HTTP/1.0\r\nContent-Length: 100\r\n\r\nbye')
-+ conn.send('POST /RPC2 HTTP/1.0\r\n'
-+ 'Content-Length: 100\r\n\r\n'
-+ 'bye HTTP/1.1\r\n'
-+ 'Host: %s:%s\r\n'
-+ 'Accept-Encoding: identity\r\n'
-+ 'Content-Length: 0\r\n\r\n'
-+ % (ADDR, PORT))
- conn.close()
-
- class SimpleServerEncodingTestCase(BaseServerTestCase):
-diff --git a/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-new file mode 100644
-index 000000000000..47cb899df1af
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-@@ -0,0 +1 @@
-+Address CVE-2019-9740 by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause an httplib.InvalidURL exception to be raised.
diff --git a/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch b/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch
deleted file mode 100644
index b26723701..000000000
--- a/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 179a5f75f1121dab271fe8f90eb35145f9dcbbda Mon Sep 17 00:00:00 2001
-From: Sihoon Lee <push0ebp@gmail.com>
-Date: Fri, 17 May 2019 02:41:06 +0900
-Subject: [PATCH] Update test_urllib.py and urllib.py\nchange assertEqual into
- assertRasies in DummyURLopener test, and simplify mitigation
-
-Upstream-Status: Submitted https://github.com/python/cpython/pull/11842
-
-CVE: CVE-2019-9948
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Lib/test/test_urllib.py | 11 +++--------
- Lib/urllib.py | 4 ++--
- 2 files changed, 5 insertions(+), 10 deletions(-)
-
-diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
-index e5f210e62a18..1e23dfb0bb16 100644
---- a/Lib/test/test_urllib.py
-+++ b/Lib/test/test_urllib.py
-@@ -1027,14 +1027,9 @@ def test_local_file_open(self):
- class DummyURLopener(urllib.URLopener):
- def open_local_file(self, url):
- return url
-- self.assertEqual(DummyURLopener().open(
-- 'local-file://example'), '//example')
-- self.assertEqual(DummyURLopener().open(
-- 'local_file://example'), '//example')
-- self.assertRaises(IOError, urllib.urlopen,
-- 'local-file://example')
-- self.assertRaises(IOError, urllib.urlopen,
-- 'local_file://example')
-+ for url in ('local_file://example', 'local-file://example'):
-+ self.assertRaises(IOError, DummyURLopener().open, url)
-+ self.assertRaises(IOError, urllib.urlopen, url)
-
- # Just commented them out.
- # Can't really tell why keep failing in windows and sparc.
-diff --git a/Lib/urllib.py b/Lib/urllib.py
-index a24e9a5c68fb..39b834054e9e 100644
---- a/Lib/urllib.py
-+++ b/Lib/urllib.py
-@@ -203,10 +203,10 @@ def open(self, fullurl, data=None):
- name = 'open_' + urltype
- self.type = urltype
- name = name.replace('-', '_')
--
-+
- # bpo-35907: # disallow the file reading with the type not allowed
- if not hasattr(self, name) or \
-- (self == _urlopener and name == 'open_local_file'):
-+ getattr(self, name) == self.open_local_file:
- if proxy:
- return self.open_unknown_proxy(proxy, fullurl, data)
- else:
diff --git a/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch b/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch
deleted file mode 100644
index f4c225d2f..000000000
--- a/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 8f99cc799e4393bf1112b9395b2342f81b3f45ef Mon Sep 17 00:00:00 2001
-From: push0ebp <push0ebp@shl-MacBook-Pro.local>
-Date: Thu, 14 Feb 2019 02:05:46 +0900
-Subject: [PATCH] bpo-35907: Avoid file reading as disallowing the unnecessary
- URL scheme in urllib
-
-Upstream-Status: Submitted https://github.com/python/cpython/pull/11842
-
-CVE: CVE-2019-9948
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Lib/test/test_urllib.py | 12 ++++++++++++
- Lib/urllib.py | 5 ++++-
- 2 files changed, 16 insertions(+), 1 deletion(-)
-
-diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
-index 1ce9201c0693..e5f210e62a18 100644
---- a/Lib/test/test_urllib.py
-+++ b/Lib/test/test_urllib.py
-@@ -1023,6 +1023,18 @@ def open_spam(self, url):
- "spam://c:|windows%/:=&?~#+!$,;'@()*[]|/path/"),
- "//c:|windows%/:=&?~#+!$,;'@()*[]|/path/")
-
-+ def test_local_file_open(self):
-+ class DummyURLopener(urllib.URLopener):
-+ def open_local_file(self, url):
-+ return url
-+ self.assertEqual(DummyURLopener().open(
-+ 'local-file://example'), '//example')
-+ self.assertEqual(DummyURLopener().open(
-+ 'local_file://example'), '//example')
-+ self.assertRaises(IOError, urllib.urlopen,
-+ 'local-file://example')
-+ self.assertRaises(IOError, urllib.urlopen,
-+ 'local_file://example')
-
- # Just commented them out.
- # Can't really tell why keep failing in windows and sparc.
-diff --git a/Lib/urllib.py b/Lib/urllib.py
-index d85504a5cb7e..a24e9a5c68fb 100644
---- a/Lib/urllib.py
-+++ b/Lib/urllib.py
-@@ -203,7 +203,10 @@ def open(self, fullurl, data=None):
- name = 'open_' + urltype
- self.type = urltype
- name = name.replace('-', '_')
-- if not hasattr(self, name):
-+
-+ # bpo-35907: # disallow the file reading with the type not allowed
-+ if not hasattr(self, name) or \
-+ (self == _urlopener and name == 'open_local_file'):
- if proxy:
- return self.open_unknown_proxy(proxy, fullurl, data)
- else:
diff --git a/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch b/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch
deleted file mode 100644
index 2ce4d2cde..000000000
--- a/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 06b5ee585d6e76bdbb4002f642d864d860cbbd2b Mon Sep 17 00:00:00 2001
-From: Steve Dower <steve.dower@python.org>
-Date: Tue, 12 Mar 2019 08:23:33 -0700
-Subject: [PATCH] bpo-36216: Only print test messages when verbose
-
-CVE: CVE-2019-9636
-
-Upstream-Status: Backport https://github.com/python/cpython/pull/12291/commits/06b5ee585d6e76bdbb4002f642d864d860cbbd2b
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Lib/test/test_urlparse.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
-index 73b0228ea8e3..1830d0b28688 100644
---- a/Lib/test/test_urlparse.py
-+++ b/Lib/test/test_urlparse.py
-@@ -644,7 +644,8 @@ def test_urlsplit_normalization(self):
- for scheme in [u"http", u"https", u"ftp"]:
- for c in denorm_chars:
- url = u"{}://netloc{}false.netloc/path".format(scheme, c)
-- print "Checking %r" % url
-+ if test_support.verbose:
-+ print "Checking %r" % url
- with self.assertRaises(ValueError):
- urlparse.urlsplit(url)
-
diff --git a/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch b/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch
deleted file mode 100644
index 352b13ba9..000000000
--- a/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 3e3669c9c41a27e1466e2c28b3906e3dd0ce3e7e Mon Sep 17 00:00:00 2001
-From: Steve Dower <steve.dower@python.org>
-Date: Thu, 7 Mar 2019 08:25:22 -0800
-Subject: [PATCH] bpo-36216: Add check for characters in netloc that normalize
- to separators (GH-12201)
-
-CVE: CVE-2019-9636
-
-Upstream-Status: Backport https://github.com/python/cpython/pull/12216/commits/3e3669c9c41a27e1466e2c28b3906e3dd0ce3e7e
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Doc/library/urlparse.rst | 20 ++++++++++++++++
- Lib/test/test_urlparse.py | 24 +++++++++++++++++++
- Lib/urlparse.py | 17 +++++++++++++
- .../2019-03-06-09-38-40.bpo-36216.6q1m4a.rst | 3 +++
- 4 files changed, 64 insertions(+)
- create mode 100644 Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-
-diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
-index 4e1ded73c266..73b0228ea8e3 100644
---- a/Lib/test/test_urlparse.py
-+++ b/Lib/test/test_urlparse.py
-@@ -1,4 +1,6 @@
- from test import test_support
-+import sys
-+import unicodedata
- import unittest
- import urlparse
-
-@@ -624,6 +626,28 @@ def test_portseparator(self):
- self.assertEqual(urlparse.urlparse("http://www.python.org:80"),
- ('http','www.python.org:80','','','',''))
-
-+ def test_urlsplit_normalization(self):
-+ # Certain characters should never occur in the netloc,
-+ # including under normalization.
-+ # Ensure that ALL of them are detected and cause an error
-+ illegal_chars = u'/:#?@'
-+ hex_chars = {'{:04X}'.format(ord(c)) for c in illegal_chars}
-+ denorm_chars = [
-+ c for c in map(unichr, range(128, sys.maxunicode))
-+ if (hex_chars & set(unicodedata.decomposition(c).split()))
-+ and c not in illegal_chars
-+ ]
-+ # Sanity check that we found at least one such character
-+ self.assertIn(u'\u2100', denorm_chars)
-+ self.assertIn(u'\uFF03', denorm_chars)
-+
-+ for scheme in [u"http", u"https", u"ftp"]:
-+ for c in denorm_chars:
-+ url = u"{}://netloc{}false.netloc/path".format(scheme, c)
-+ print "Checking %r" % url
-+ with self.assertRaises(ValueError):
-+ urlparse.urlsplit(url)
-+
- def test_main():
- test_support.run_unittest(UrlParseTestCase)
-
-diff --git a/Lib/urlparse.py b/Lib/urlparse.py
-index f7c2b032b097..54eda08651ab 100644
---- a/Lib/urlparse.py
-+++ b/Lib/urlparse.py
-@@ -165,6 +165,21 @@ def _splitnetloc(url, start=0):
- delim = min(delim, wdelim) # use earliest delim position
- return url[start:delim], url[delim:] # return (domain, rest)
-
-+def _checknetloc(netloc):
-+ if not netloc or not isinstance(netloc, unicode):
-+ return
-+ # looking for characters like \u2100 that expand to 'a/c'
-+ # IDNA uses NFKC equivalence, so normalize for this check
-+ import unicodedata
-+ netloc2 = unicodedata.normalize('NFKC', netloc)
-+ if netloc == netloc2:
-+ return
-+ _, _, netloc = netloc.rpartition('@') # anything to the left of '@' is okay
-+ for c in '/?#@:':
-+ if c in netloc2:
-+ raise ValueError("netloc '" + netloc2 + "' contains invalid " +
-+ "characters under NFKC normalization")
-+
- def urlsplit(url, scheme='', allow_fragments=True):
- """Parse a URL into 5 components:
- <scheme>://<netloc>/<path>?<query>#<fragment>
-@@ -193,6 +208,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
- url, fragment = url.split('#', 1)
- if '?' in url:
- url, query = url.split('?', 1)
-+ _checknetloc(netloc)
- v = SplitResult(scheme, netloc, url, query, fragment)
- _parse_cache[key] = v
- return v
-@@ -216,6 +232,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
- url, fragment = url.split('#', 1)
- if '?' in url:
- url, query = url.split('?', 1)
-+ _checknetloc(netloc)
- v = SplitResult(scheme, netloc, url, query, fragment)
- _parse_cache[key] = v
- return v
-diff --git a/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-new file mode 100644
-index 000000000000..1e1ad92c6feb
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-@@ -0,0 +1,3 @@
-+Changes urlsplit() to raise ValueError when the URL contains characters that
-+decompose under IDNA encoding (NFKC-normalization) into characters that
-+affect how the URL is parsed.
-\ No newline at end of file
diff --git a/poky/meta/recipes-devtools/python/python3-pip_19.2.3.bb b/poky/meta/recipes-devtools/python/python3-pip_19.3.1.bb
index 019e327e0..d27e6fce5 100644
--- a/poky/meta/recipes-devtools/python/python3-pip_19.2.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-pip_19.3.1.bb
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e"
DEPENDS += "python3 python3-setuptools-native"
-SRC_URI[md5sum] = "f417444c66a0db1a82c8d9d2283a2f95"
-SRC_URI[sha256sum] = "e7a31f147974362e6c82d84b91c7f2bdf57e4d3163d3d454e6c3e71944d67135"
+SRC_URI[md5sum] = "1aaaf90fbafc50e7ba1e66ffceb00960"
+SRC_URI[sha256sum] = "21207d76c1031e517668898a6b46a9fb1501c7a4710ef5dfd6a40ad9e6757ea7"
inherit pypi distutils3
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_41.2.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools_41.4.0.bb
index 0dc1ed862..0dc1ed862 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_41.2.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_41.4.0.bb
diff --git a/poky/meta/recipes-devtools/python/python3-six_1.12.0.bb b/poky/meta/recipes-devtools/python/python3-six_1.13.0.bb
index 8795313be..8795313be 100644
--- a/poky/meta/recipes-devtools/python/python3-six_1.12.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-six_1.13.0.bb
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch b/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
index 661f52d01..ea75262c4 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
@@ -70,7 +70,7 @@ index 6e81b2f..671a20e 100644
Programs/python.o: $(srcdir)/Programs/python.c
@@ -856,7 +857,7 @@ regen-opcode:
- Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
+ Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
Python/getplatform.o: $(srcdir)/Python/getplatform.c
- $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
diff --git a/poky/meta/recipes-devtools/python/python3/0001-bpo-34155-Dont-parse-domains-containing-GH-13079.patch b/poky/meta/recipes-devtools/python/python3/0001-bpo-34155-Dont-parse-domains-containing-GH-13079.patch
deleted file mode 100644
index 319e7ed07..000000000
--- a/poky/meta/recipes-devtools/python/python3/0001-bpo-34155-Dont-parse-domains-containing-GH-13079.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 90d56127ae15b1e452755e62c77dc475dedf7161 Mon Sep 17 00:00:00 2001
-From: jpic <jpic@users.noreply.github.com>
-Date: Wed, 17 Jul 2019 23:54:25 +0200
-Subject: [PATCH] bpo-34155: Dont parse domains containing @ (GH-13079)
-
-Before:
-
- >>> email.message_from_string('From: a@malicious.org@important.com', policy=email.policy.default)['from'].addresses
- (Address(display_name='', username='a', domain='malicious.org'),)
-
- >>> parseaddr('a@malicious.org@important.com')
- ('', 'a@malicious.org')
-
- After:
-
- >>> email.message_from_string('From: a@malicious.org@important.com', policy=email.policy.default)['from'].addresses
- (Address(display_name='', username='', domain=''),)
-
- >>> parseaddr('a@malicious.org@important.com')
- ('', 'a@')
-
-https://bugs.python.org/issue34155
-
-Upstream-Status: Backport [https://github.com/python/cpython/commit/8cb65d1381b027f0b09ee36bfed7f35bb4dec9a9]
-
-CVE: CVE-2019-16056
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- Lib/email/_header_value_parser.py | 2 ++
- Lib/email/_parseaddr.py | 11 ++++++++++-
- Lib/test/test_email/test__header_value_parser.py | 10 ++++++++++
- Lib/test/test_email/test_email.py | 14 ++++++++++++++
- .../2019-05-04-13-33-37.bpo-34155.MJll68.rst | 1 +
- 5 files changed, 37 insertions(+), 1 deletion(-)
- create mode 100644 Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst
-
-diff --git a/Lib/email/_header_value_parser.py b/Lib/email/_header_value_parser.py
-index fc00b4a098..bbc026ec71 100644
---- a/Lib/email/_header_value_parser.py
-+++ b/Lib/email/_header_value_parser.py
-@@ -1582,6 +1582,8 @@ def get_domain(value):
- token, value = get_dot_atom(value)
- except errors.HeaderParseError:
- token, value = get_atom(value)
-+ if value and value[0] == '@':
-+ raise errors.HeaderParseError('Invalid Domain')
- if leader is not None:
- token[:0] = [leader]
- domain.append(token)
-diff --git a/Lib/email/_parseaddr.py b/Lib/email/_parseaddr.py
-index cdfa3729ad..41ff6f8c00 100644
---- a/Lib/email/_parseaddr.py
-+++ b/Lib/email/_parseaddr.py
-@@ -379,7 +379,12 @@ class AddrlistClass:
- aslist.append('@')
- self.pos += 1
- self.gotonext()
-- return EMPTYSTRING.join(aslist) + self.getdomain()
-+ domain = self.getdomain()
-+ if not domain:
-+ # Invalid domain, return an empty address instead of returning a
-+ # local part to denote failed parsing.
-+ return EMPTYSTRING
-+ return EMPTYSTRING.join(aslist) + domain
-
- def getdomain(self):
- """Get the complete domain name from an address."""
-@@ -394,6 +399,10 @@ class AddrlistClass:
- elif self.field[self.pos] == '.':
- self.pos += 1
- sdlist.append('.')
-+ elif self.field[self.pos] == '@':
-+ # bpo-34155: Don't parse domains with two `@` like
-+ # `a@malicious.org@important.com`.
-+ return EMPTYSTRING
- elif self.field[self.pos] in self.atomends:
- break
- else:
-diff --git a/Lib/test/test_email/test__header_value_parser.py b/Lib/test/test_email/test__header_value_parser.py
-index 693487bc96..7dc4de1b7b 100644
---- a/Lib/test/test_email/test__header_value_parser.py
-+++ b/Lib/test/test_email/test__header_value_parser.py
-@@ -1438,6 +1438,16 @@ class TestParser(TestParserMixin, TestEmailBase):
- self.assertEqual(addr_spec.domain, 'example.com')
- self.assertEqual(addr_spec.addr_spec, 'star.a.star@example.com')
-
-+ def test_get_addr_spec_multiple_domains(self):
-+ with self.assertRaises(errors.HeaderParseError):
-+ parser.get_addr_spec('star@a.star@example.com')
-+
-+ with self.assertRaises(errors.HeaderParseError):
-+ parser.get_addr_spec('star@a@example.com')
-+
-+ with self.assertRaises(errors.HeaderParseError):
-+ parser.get_addr_spec('star@172.17.0.1@example.com')
-+
- # get_obs_route
-
- def test_get_obs_route_simple(self):
-diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py
-index c29cc56203..aa775881c5 100644
---- a/Lib/test/test_email/test_email.py
-+++ b/Lib/test/test_email/test_email.py
-@@ -3041,6 +3041,20 @@ class TestMiscellaneous(TestEmailBase):
- self.assertEqual(utils.parseaddr('<>'), ('', ''))
- self.assertEqual(utils.formataddr(utils.parseaddr('<>')), '')
-
-+ def test_parseaddr_multiple_domains(self):
-+ self.assertEqual(
-+ utils.parseaddr('a@b@c'),
-+ ('', '')
-+ )
-+ self.assertEqual(
-+ utils.parseaddr('a@b.c@c'),
-+ ('', '')
-+ )
-+ self.assertEqual(
-+ utils.parseaddr('a@172.17.0.1@c'),
-+ ('', '')
-+ )
-+
- def test_noquote_dump(self):
- self.assertEqual(
- utils.formataddr(('A Silly Person', 'person@dom.ain')),
-diff --git a/Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst b/Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst
-new file mode 100644
-index 0000000000..50292e29ed
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-05-04-13-33-37.bpo-34155.MJll68.rst
-@@ -0,0 +1 @@
-+Fix parsing of invalid email addresses with more than one ``@`` (e.g. a@b@c.com.) to not return the part before 2nd ``@`` as valid email address. Patch by maxking & jpic.
diff --git a/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch b/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
index 573595462..a0ea897f4 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
@@ -63,7 +63,7 @@ index a7de901..4a3681f 100644
+ case $cc_basename in
*clang*)
AC_SUBST(LLVM_AR)
- AC_PATH_TARGET_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path})
+ AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path})
@@ -1426,7 +1427,7 @@ then
fi
fi
diff --git a/poky/meta/recipes-devtools/python/python3/python3-manifest.json b/poky/meta/recipes-devtools/python/python3/python3-manifest.json
index 1ad85a9ff..dba92b0e3 100644
--- a/poky/meta/recipes-devtools/python/python3/python3-manifest.json
+++ b/poky/meta/recipes-devtools/python/python3/python3-manifest.json
@@ -210,7 +210,10 @@
"summary": "Python interpreter and core modules",
"rdepends": [],
"files": [
- "${bindir}/python*[!-config]",
+ "${bindir}/python3",
+ "${bindir}/python${PYTHON_MAJMIN}",
+ "${bindir}/python${PYTHON_MAJMIN}.real",
+ "${bindir}/python${PYTHON_BINABI}",
"${includedir}/python${PYTHON_BINABI}/pyconfig*.h",
"${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]",
"${libdir}/python${PYTHON_MAJMIN}/UserDict.py",
@@ -487,7 +490,7 @@
"files": [
"${base_libdir}/*.a",
"${base_libdir}/*.o",
- "${bindir}/python*-config",
+ "${bindir}/python*-config*",
"${datadir}/aclocal",
"${datadir}/pkgconfig",
"${includedir}",
@@ -498,7 +501,8 @@
"${libdir}/pkgconfig"
],
"rdepends": [
- "core"
+ "core",
+ "distutils"
],
"summary": "Python development package"
},
diff --git a/poky/meta/recipes-devtools/python/python3_3.7.4.bb b/poky/meta/recipes-devtools/python/python3_3.7.5.bb
index c8b63fee9..90914f905 100644
--- a/poky/meta/recipes-devtools/python/python3_3.7.4.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.7.5.bb
@@ -29,7 +29,6 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://0001-Use-FLAG_REF-always-for-interned-strings.patch \
file://0001-test_locale.py-correct-the-test-output-format.patch \
file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \
- file://0001-bpo-34155-Dont-parse-domains-containing-GH-13079.patch \
"
SRC_URI_append_class-native = " \
@@ -40,8 +39,8 @@ SRC_URI_append_class-nativesdk = " \
file://0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch \
"
-SRC_URI[md5sum] = "d33e4aae66097051c2eca45ee3604803"
-SRC_URI[sha256sum] = "fb799134b868199930b75f26678f18932214042639cd52b16da7fd134cd9b13f"
+SRC_URI[md5sum] = "08ed8030b1183107c48f2092e79a87e2"
+SRC_URI[sha256sum] = "e85a76ea9f3d6c485ec1780fca4e500725a4a7bbc63c78ebc44170de9b619d94"
# exclude pre-releases for both python 2.x and 3.x
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
@@ -59,9 +58,9 @@ inherit autotools pkgconfig qemu ptest multilib_header update-alternatives
MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}"
-ALTERNATIVE_${PN}-dev = "python-config"
-ALTERNATIVE_LINK_NAME[python-config] = "${bindir}/python${PYTHON_BINABI}-config"
-ALTERNATIVE_TARGET[python-config] = "${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX}"
+ALTERNATIVE_${PN}-dev = "python3-config"
+ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_BINABI}-config"
+ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX}"
DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2"
@@ -303,11 +302,14 @@ do_create_manifest[depends] += "${PN}:do_prepare_recipe_sysroot"
do_create_manifest[depends] += "${PN}:do_patch"
# manual dependency additions
-RPROVIDES_${PN}-modules = "${PN}"
RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python3-modules"
RRECOMMENDS_${PN}-crypt_append_class-target = " openssl ca-certificates"
RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " openssl ca-certificates"
+# For historical reasons PN is empty and provided by python3-modules
+FILES_${PN} = ""
+RPROVIDES_${PN}-modules = "${PN}"
+
FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
@@ -322,7 +324,7 @@ INSANE_SKIP_${PN}-dev += "dev-elf"
# catch all the rest (unsorted)
PACKAGES += "${PN}-misc"
-RDEPENDS_${PN}-misc += "python3-core python3-email python3-codecs python3-pydoc python3-pickle"
+RDEPENDS_${PN}-misc += "python3-core python3-email python3-codecs python3-pydoc python3-pickle python3-audio"
RDEPENDS_${PN}-modules_append_class-target = " python3-misc"
RDEPENDS_${PN}-modules_append_class-nativesdk = " python3-misc"
FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload"
diff --git a/poky/meta/recipes-devtools/python/python_2.7.16.bb b/poky/meta/recipes-devtools/python/python_2.7.17.bb
index aec877825..5b856a509 100644
--- a/poky/meta/recipes-devtools/python/python_2.7.16.bb
+++ b/poky/meta/recipes-devtools/python/python_2.7.17.bb
@@ -30,7 +30,6 @@ SRC_URI += " \
file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch \
file://float-endian.patch \
file://0001-python2-use-cc_basename-to-replace-CC-for-checking-c.patch \
- file://0001-2.7-bpo-34155-Dont-parse-domains-containing-GH-13079.patch \
"
S = "${WORKDIR}/Python-${PV}"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb b/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
index d9d9da0fa..372eebd88 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
@@ -12,7 +12,7 @@ S = "${WORKDIR}"
inherit native
do_compile() {
- ${CC} tunctl.c -o tunctl
+ ${CC} ${CFLAGS} ${LDFLAGS} -Wall tunctl.c -o tunctl
}
do_install() {
diff --git a/poky/meta/recipes-devtools/qemu/qemu-helper/tunctl.c b/poky/meta/recipes-devtools/qemu/qemu-helper/tunctl.c
index 16e24a2ad..d745dd06c 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-helper/tunctl.c
+++ b/poky/meta/recipes-devtools/qemu/qemu-helper/tunctl.c
@@ -19,7 +19,7 @@
#define TUNSETGROUP _IOW('T', 206, int)
#endif
-static void Usage(char *name)
+static void Usage(char *name, int status)
{
fprintf(stderr, "Create: %s [-b] [-u owner] [-g group] [-t device-name] "
"[-f tun-clone-device]\n", name);
@@ -28,7 +28,7 @@ static void Usage(char *name)
fprintf(stderr, "The default tun clone device is /dev/net/tun - some systems"
" use\n/dev/misc/net/tun instead\n\n");
fprintf(stderr, "-b will result in brief output (just the device name)\n");
- exit(1);
+ exit(status);
}
int main(int argc, char **argv)
@@ -41,7 +41,7 @@ int main(int argc, char **argv)
int tap_fd, opt, delete = 0, brief = 0;
char *tun = "", *file = "/dev/net/tun", *name = argv[0], *end;
- while((opt = getopt(argc, argv, "bd:f:t:u:g:")) > 0){
+ while((opt = getopt(argc, argv, "bd:f:t:u:g:h")) > 0){
switch(opt) {
case 'b':
brief = 1;
@@ -63,7 +63,7 @@ int main(int argc, char **argv)
if(*end != '\0'){
fprintf(stderr, "'%s' is neither a username nor a numeric uid.\n",
optarg);
- Usage(name);
+ Usage(name, 1);
}
break;
case 'g':
@@ -76,7 +76,7 @@ int main(int argc, char **argv)
if(*end != '\0'){
fprintf(stderr, "'%s' is neither a groupname nor a numeric group.\n",
optarg);
- Usage(name);
+ Usage(name, 1);
}
break;
@@ -84,8 +84,10 @@ int main(int argc, char **argv)
tun = optarg;
break;
case 'h':
+ Usage(name, 0);
+ break;
default:
- Usage(name);
+ Usage(name, 1);
}
}
@@ -93,7 +95,7 @@ int main(int argc, char **argv)
argc -= optind;
if(argc > 0)
- Usage(name);
+ Usage(name, 1);
if((tap_fd = open(file, O_RDWR)) < 0){
fprintf(stderr, "Failed to open '%s' : ", file);
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 88ae68a1e..601fc2286 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -28,6 +28,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://0009-Fix-webkitgtk-builds.patch \
file://0010-configure-Add-pkg-config-handling-for-libgcrypt.patch \
file://CVE-2019-15890.patch \
+ file://CVE-2019-12068.patch \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -94,6 +95,7 @@ do_configure_prepend_class-native() {
do_configure() {
${S}/configure ${EXTRA_OECONF}
}
+do_configure[cleandirs] += "${B}"
do_install () {
export STRIP=""
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch
new file mode 100644
index 000000000..f1655e407
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch
@@ -0,0 +1,108 @@
+From de594e47659029316bbf9391efb79da0a1a08e08 Mon Sep 17 00:00:00 2001
+From: Paolo Bonzini <pbonzini@redhat.com>
+Date: Wed, 14 Aug 2019 17:35:21 +0530
+Subject: [PATCH] scsi: lsi: exit infinite loop while executing script
+ (CVE-2019-12068)
+
+When executing script in lsi_execute_script(), the LSI scsi adapter
+emulator advances 's->dsp' index to read next opcode. This can lead
+to an infinite loop if the next opcode is empty. Move the existing
+loop exit after 10k iterations so that it covers no-op opcodes as
+well.
+
+Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=de594e47659029316bbf9391efb79da0a1a08e08]
+CVE: CVE-2019-12068
+
+Reported-by: Bugs SysSec <bugs-syssec@rub.de>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ hw/scsi/lsi53c895a.c | 41 +++++++++++++++++++++++++++--------------
+ 1 file changed, 27 insertions(+), 14 deletions(-)
+
+diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
+index 222a286..ec53b14 100644
+--- a/hw/scsi/lsi53c895a.c
++++ b/hw/scsi/lsi53c895a.c
+@@ -186,6 +186,9 @@ static const char *names[] = {
+ /* Flag set if this is a tagged command. */
+ #define LSI_TAG_VALID (1 << 16)
+
++/* Maximum instructions to process. */
++#define LSI_MAX_INSN 10000
++
+ typedef struct lsi_request {
+ SCSIRequest *req;
+ uint32_t tag;
+@@ -1133,7 +1136,21 @@ static void lsi_execute_script(LSIState *s)
+
+ s->istat1 |= LSI_ISTAT1_SRUN;
+ again:
+- insn_processed++;
++ if (++insn_processed > LSI_MAX_INSN) {
++ /* Some windows drivers make the device spin waiting for a memory
++ location to change. If we have been executed a lot of code then
++ assume this is the case and force an unexpected device disconnect.
++ This is apparently sufficient to beat the drivers into submission.
++ */
++ if (!(s->sien0 & LSI_SIST0_UDC)) {
++ qemu_log_mask(LOG_GUEST_ERROR,
++ "lsi_scsi: inf. loop with UDC masked");
++ }
++ lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0);
++ lsi_disconnect(s);
++ trace_lsi_execute_script_stop();
++ return;
++ }
+ insn = read_dword(s, s->dsp);
+ if (!insn) {
+ /* If we receive an empty opcode increment the DSP by 4 bytes
+@@ -1570,19 +1587,7 @@ again:
+ }
+ }
+ }
+- if (insn_processed > 10000 && s->waiting == LSI_NOWAIT) {
+- /* Some windows drivers make the device spin waiting for a memory
+- location to change. If we have been executed a lot of code then
+- assume this is the case and force an unexpected device disconnect.
+- This is apparently sufficient to beat the drivers into submission.
+- */
+- if (!(s->sien0 & LSI_SIST0_UDC)) {
+- qemu_log_mask(LOG_GUEST_ERROR,
+- "lsi_scsi: inf. loop with UDC masked");
+- }
+- lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0);
+- lsi_disconnect(s);
+- } else if (s->istat1 & LSI_ISTAT1_SRUN && s->waiting == LSI_NOWAIT) {
++ if (s->istat1 & LSI_ISTAT1_SRUN && s->waiting == LSI_NOWAIT) {
+ if (s->dcntl & LSI_DCNTL_SSM) {
+ lsi_script_dma_interrupt(s, LSI_DSTAT_SSI);
+ } else {
+@@ -1970,6 +1975,10 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val)
+ case 0x2f: /* DSP[24:31] */
+ s->dsp &= 0x00ffffff;
+ s->dsp |= val << 24;
++ /*
++ * FIXME: if s->waiting != LSI_NOWAIT, this will only execute one
++ * instruction. Is this correct?
++ */
+ if ((s->dmode & LSI_DMODE_MAN) == 0
+ && (s->istat1 & LSI_ISTAT1_SRUN) == 0)
+ lsi_execute_script(s);
+@@ -1988,6 +1997,10 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val)
+ break;
+ case 0x3b: /* DCNTL */
+ s->dcntl = val & ~(LSI_DCNTL_PFF | LSI_DCNTL_STD);
++ /*
++ * FIXME: if s->waiting != LSI_NOWAIT, this will only execute one
++ * instruction. Is this correct?
++ */
+ if ((val & LSI_DCNTL_STD) && (s->istat1 & LSI_ISTAT1_SRUN) == 0)
+ lsi_execute_script(s);
+ break;
+--
+2.7.4
+
diff --git a/poky/meta/recipes-devtools/ruby/ruby.inc b/poky/meta/recipes-devtools/ruby/ruby.inc
index a98249afb..ce1b02f01 100644
--- a/poky/meta/recipes-devtools/ruby/ruby.inc
+++ b/poky/meta/recipes-devtools/ruby/ruby.inc
@@ -6,12 +6,12 @@ It is simple, straight-forward, and extensible. \
"
HOMEPAGE = "http://www.ruby-lang.org/"
SECTION = "devel/ruby"
-LICENSE = "Ruby | BSD | GPLv2"
+LICENSE = "Ruby | BSD-2-Clause | BSD-3-Clause | GPLv2 | ISC | MIT"
LIC_FILES_CHKSUM = "\
file://COPYING;md5=340948e1882e579731841bf49cdc22c1 \
file://BSDL;md5=19aaf65c88a40b508d17ae4be539c4b5\
file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263\
- file://LEGAL;md5=23a79bb4c1a40f6cc9bcb6f4e7c39799 \
+ file://LEGAL;md5=4ac0b84d1f7f420bca282e1adefc7f99 \
"
DEPENDS = "ruby-native zlib openssl tcl libyaml gdbm readline libffi"
@@ -19,7 +19,7 @@ DEPENDS_class-native = "openssl-native libyaml-native readline-native zlib-nativ
SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "http://cache.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \
- file://extmk.patch \
+ file://0001-extmk-fix-cross-compilation-of-external-gems.patch \
file://0002-Obey-LDFLAGS-for-the-link-of-libruby.patch \
"
UPSTREAM_CHECK_URI = "https://www.ruby-lang.org/en/downloads/"
@@ -35,6 +35,6 @@ inherit autotools ptest
# built.
do_configure_prepend() {
- sed -i "s#%%TARGET_CFLAGS%%#$TARGET_CFLAGS#; s#%%TARGET_LDFLAGS%%#$TARGET_LDFLAGS#" ${S}/common.mk
+ sed -i "s#%%TARGET_CFLAGS%%#$CFLAGS#; s#%%TARGET_LDFLAGS%%#$LDFLAGS#" ${S}/common.mk
rm -rf ${S}/ruby/
}
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch b/poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch
new file mode 100644
index 000000000..2e3156880
--- /dev/null
+++ b/poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch
@@ -0,0 +1,34 @@
+From a6e12b25a54d112c899b70c89c0bec9c5e5ebf3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
+Date: Mon, 30 Sep 2019 16:57:01 +0100
+Subject: [PATCH 1/3] extmk: fix cross-compilation of external gems
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Note that I (André) didn't actually write this patch, I
+only updated it so that git-am works.
+
+Upstream-Status: Pending
+Signed-off-by: André Draszik <andre.draszik@jci.com>
+---
+ ext/extmk.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/extmk.rb b/ext/extmk.rb
+index 1389dc4117..e4d923d7a7 100755
+--- a/ext/extmk.rb
++++ b/ext/extmk.rb
+@@ -413,8 +413,8 @@ def $mflags.defined?(var)
+ end
+ $ruby = [$ruby]
+ $ruby << "-I'$(topdir)'"
++$ruby << "-I'$(top_srcdir)/lib'"
+ unless CROSS_COMPILING
+- $ruby << "-I'$(top_srcdir)/lib'"
+ $ruby << "-I'$(extout)/$(arch)'" << "-I'$(extout)/common'" if $extout
+ ENV["RUBYLIB"] = "-"
+ end
+--
+2.23.0.rc1
+
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch b/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
index 4cf579f42..5979d8bd7 100644
--- a/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
+++ b/poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
@@ -1,25 +1,27 @@
-Upstream-Status: Pending
-
-From 306e95a9818d39d3349075aac9609e062b0f19ce Mon Sep 17 00:00:00 2001
+From 6d608326970b1613633d7715ebb7d628dfcd16ee Mon Sep 17 00:00:00 2001
From: Christopher Larson <chris_larson@mentor.com>
Date: Thu, 5 May 2016 10:59:07 -0700
-Subject: [PATCH 2/2] Obey LDFLAGS for the link of libruby
+Subject: [PATCH 2/3] Obey LDFLAGS for the link of libruby
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+Upstream-Status: Pending
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: ruby-2.5.0/Makefile.in
-===================================================================
---- ruby-2.5.0.orig/Makefile.in
-+++ ruby-2.5.0/Makefile.in
-@@ -77,7 +77,7 @@ LIBS = @LIBS@ $(EXTLIBS)
- MISSING = @LIBOBJS@ @ALLOCA@
+diff --git a/Makefile.in b/Makefile.in
+index fa1e19ef37..bbd07fa34b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -109,7 +109,7 @@ MISSING = @LIBOBJS@ @ALLOCA@
ENABLE_SHARED = @ENABLE_SHARED@
LDSHARED = @LIBRUBY_LDSHARED@
+ DLDSHARED = @DLDSHARED@
-DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
+DLDFLAGS = @LIBRUBY_DLDFLAGS@ @LDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
SOLIBS = @SOLIBS@
ENABLE_DEBUG_ENV = @ENABLE_DEBUG_ENV@
MAINLIBS = @MAINLIBS@
+--
+2.23.0.rc1
+
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch b/poky/meta/recipes-devtools/ruby/ruby/0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch
index 4cc1fa027..1a8cff3e8 100644
--- a/poky/meta/recipes-devtools/ruby/ruby/0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch
+++ b/poky/meta/recipes-devtools/ruby/ruby/0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch
@@ -1,7 +1,7 @@
-From 3a8189530312e81d6c005c396565f985a47f3383 Mon Sep 17 00:00:00 2001
+From bd71b698bf733e6e93282cd2b1b93f51e1a33c7c Mon Sep 17 00:00:00 2001
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Fri, 8 Feb 2019 07:22:55 +0000
-Subject: [PATCH] configure.ac: check finite,isinf,isnan as macros first
+Subject: [PATCH 3/3] configure.ac: check finite,isinf,isnan as macros first
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -12,7 +12,6 @@ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67036 b2dd03c8-39d4-4d8f-98ff-
---
Upstream-Status: Backport [https://github.com/ruby/ruby/commit/74f94b3e6ebf15b76f3b357e754095412b006e94]
-(modified so as to apply cleanly here)
Signed-off-by: André Draszik <andre.draszik@jci.com>
---
aclocal.m4 | 1 +
@@ -22,19 +21,22 @@ Signed-off-by: André Draszik <andre.draszik@jci.com>
create mode 100644 tool/m4/ruby_replace_funcs.m4
diff --git a/aclocal.m4 b/aclocal.m4
-index 18ba297b05..2a907b3467 100644
+index b0fe3eb959..ed7d14ef63 100644
--- a/aclocal.m4
+++ b/aclocal.m4
-@@ -13,3 +13,4 @@
-
- m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
- m4_include([acinclude.m4])
+@@ -35,6 +35,7 @@ m4_include([tool/m4/ruby_func_attribute.m4])
+ m4_include([tool/m4/ruby_mingw32.m4])
+ m4_include([tool/m4/ruby_prepend_option.m4])
+ m4_include([tool/m4/ruby_prog_gnu_ld.m4])
+m4_include([tool/m4/ruby_replace_funcs.m4])
+ m4_include([tool/m4/ruby_replace_type.m4])
+ m4_include([tool/m4/ruby_rm_recursive.m4])
+ m4_include([tool/m4/ruby_setjmp_type.m4])
diff --git a/configure.ac b/configure.ac
-index 8a7cee55b8..b97c5b3cc9 100644
+index 2c4d2888d2..2691da6a3c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1189,9 +1189,6 @@ main()
+@@ -946,9 +946,6 @@ main()
ac_cv_func_fsync=yes
ac_cv_func_seekdir=yes
ac_cv_func_telldir=yes
@@ -44,7 +46,7 @@ index 8a7cee55b8..b97c5b3cc9 100644
ac_cv_func_lchown=yes
ac_cv_func_link=yes
ac_cv_func_readlink=yes
-@@ -1239,9 +1236,6 @@ main()
+@@ -999,9 +996,6 @@ main()
[netbsd*], [ LIBS="-lm $LIBS"
],
[dragonfly*], [ LIBS="-lm $LIBS"
@@ -54,7 +56,7 @@ index 8a7cee55b8..b97c5b3cc9 100644
],
[aix*],[ LIBS="-lm $LIBS"
ac_cv_func_round=no
-@@ -2213,11 +2207,8 @@ AC_REPLACE_FUNCS(dup2)
+@@ -1724,11 +1718,8 @@ AC_REPLACE_FUNCS(dup2)
AC_REPLACE_FUNCS(erf)
AC_REPLACE_FUNCS(explicit_bzero)
AC_REPLACE_FUNCS(ffs)
@@ -65,8 +67,8 @@ index 8a7cee55b8..b97c5b3cc9 100644
-AC_REPLACE_FUNCS(isnan)
AC_REPLACE_FUNCS(lgamma_r)
AC_REPLACE_FUNCS(memmove)
- AC_REPLACE_FUNCS(nextafter)
-@@ -2229,6 +2220,10 @@ AC_REPLACE_FUNCS(strlcpy)
+ AC_REPLACE_FUNCS(nan)
+@@ -1741,6 +1732,10 @@ AC_REPLACE_FUNCS(strlcpy)
AC_REPLACE_FUNCS(strstr)
AC_REPLACE_FUNCS(tgamma)
diff --git a/poky/meta/recipes-devtools/ruby/ruby/extmk.patch b/poky/meta/recipes-devtools/ruby/ruby/extmk.patch
deleted file mode 100644
index 404b9af7a..000000000
--- a/poky/meta/recipes-devtools/ruby/ruby/extmk.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream-Status: Pending
-diff -ru ruby-1.8.7-p248.orig/ext/extmk.rb ruby-1.8.7-p248/ext/extmk.rb
---- ruby-1.8.7-p248.orig/ext/extmk.rb 2009-12-24 03:01:58.000000000 -0600
-+++ ruby-1.8.7-p248/ext/extmk.rb 2010-02-12 15:55:27.370061558 -0600
-@@ -413,8 +413,8 @@ def $mflags.defined?(var)
- end
- $ruby = [$ruby]
- $ruby << "-I'$(topdir)'"
-+$ruby << "-I'$(top_srcdir)/lib'"
- unless CROSS_COMPILING
-- $ruby << "-I'$(top_srcdir)/lib'"
- $ruby << "-I'$(extout)/$(arch)'" << "-I'$(extout)/common'" if $extout
- ENV["RUBYLIB"] = "-"
- end
---
-
diff --git a/poky/meta/recipes-devtools/ruby/ruby_2.5.5.bb b/poky/meta/recipes-devtools/ruby/ruby_2.6.5.bb
index 223b0371e..1828f65d5 100644
--- a/poky/meta/recipes-devtools/ruby/ruby_2.5.5.bb
+++ b/poky/meta/recipes-devtools/ruby/ruby_2.6.5.bb
@@ -1,12 +1,12 @@
require ruby.inc
SRC_URI += " \
- file://0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch \
+ file://0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch \
file://run-ptest \
"
-SRC_URI[md5sum] = "7e156fb526b8f4bb1b30a3dd8a7ce400"
-SRC_URI[sha256sum] = "28a945fdf340e6ba04fc890b98648342e3cccfd6d223a48f3810572f11b2514c"
+SRC_URI[md5sum] = "8754bfb36d52c2bf1fb3d3ddc7101606"
+SRC_URI[sha256sum] = "66976b716ecc1fd34f9b7c3c2b07bbd37631815377a2e3e85a5b194cfdcbed7d"
PACKAGECONFIG ??= ""
PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
@@ -15,8 +15,6 @@ PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6,"
-EXTRA_AUTORECONF += "--exclude=aclocal"
-
EXTRA_OECONF = "\
--disable-versioned-paths \
--disable-rpath \
@@ -42,16 +40,18 @@ do_install_append_class-target () {
-e 's:${RECIPE_SYSROOT}::g' \
-e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
${D}$rbconfig_rb
-
- # Find out created.rid from .installed.list
- created_rid=`grep created.rid ${B}/.installed.list`
- # Remove build host directories
- sed -i -e 's:${WORKDIR}::g' ${D}$created_rid
-
}
do_install_ptest () {
cp -rf ${S}/test ${D}${PTEST_PATH}/
+ # install test-binaries
+ find $(find ./.ext -path '*/-test-') -name '*.so' -print0 \
+ | tar --no-recursion --null -T - --no-same-owner --preserve-permissions -cf - \
+ | tar -C ${D}${libdir}/ruby/${SHRT_VER}.0/ --no-same-owner --preserve-permissions --strip-components=2 -xf -
+ # adjust path to not assume build directory layout
+ sed -e 's|File.expand_path(.*\.\./bin/erb[^)]*|File.expand_path("${bindir}/erb"|g' \
+ -i ${D}${PTEST_PATH}/test/erb/test_erb_command.rb
+
cp -r ${S}/include ${D}/${libdir}/ruby/
test_case_rb=`grep rubygems/test_case.rb ${B}/.installed.list`
sed -i -e 's:../../../test/:../../../ptest/test/:g' ${D}/$test_case_rb
@@ -69,6 +69,9 @@ FILES_${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc"
FILES_${PN} += "${datadir}/rubygems"
-FILES_${PN}-ptest_append_class-target += "${libdir}/ruby/include"
+FILES_${PN}-ptest_append_class-target = "\
+ ${libdir}/ruby/include \
+ ${libdir}/ruby/${SHRT_VER}.0/*/-test- \
+"
BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch
deleted file mode 100644
index f2e88f416..000000000
--- a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-fs/squashfs-tools/files/squashfs-tools-4.3-sysmacros.patch
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-Upstream-Status: Pending
-
-
-sys/types.h might not always include sys/sysmacros.h for major/minor/makedev
-
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -59,6 +59,7 @@
- #else
- #include <endian.h>
- #include <sys/sysinfo.h>
-+#include <sys/sysmacros.h>
- #endif
-
- #include "squashfs_fs.h"
---- a/squashfs-tools/unsquashfs.c
-+++ b/squashfs-tools/unsquashfs.c
-@@ -40,6 +40,10 @@
- #include <limits.h>
- #include <ctype.h>
-
-+#ifdef linux
-+#include <sys/sysmacros.h>
-+#endif
-+
- struct cache *fragment_cache, *data_cache;
- struct queue *to_reader, *to_inflate, *to_writer, *from_writer;
- pthread_t *thread, *inflator_thread;
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
index 51e4a5939..4fd33f804 100644
--- a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
@@ -5,13 +5,10 @@ SECTION = "base"
LICENSE = "GPL-2"
LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-PV = "4.3+gitr${SRCPV}"
-SRCREV = "f95864afe8833fe3ad782d714b41378e860977b1"
+PV = "4.4"
+SRCREV = "52eb4c279cd283ed9802dd1ceb686560b22ffb67"
SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https \
- file://squashfs-tools-4.3-sysmacros.patch;striplevel=2 \
"
-SRC_URI[lzma.md5sum] = "29d5ffd03a5a3e51aef6a74e9eafb759"
-SRC_URI[lzma.sha256sum] = "c935fd04dd8e0e8c688a3078f3675d699679a90be81c12686837e0880aa0fa1e"
S = "${WORKDIR}/git/squashfs-tools"
@@ -31,13 +28,11 @@ PACKAGECONFIG[zstd] = "ZSTD_SUPPORT=1,ZSTD_SUPPORT=0,zstd"
PACKAGECONFIG[reproducible] = "REPRODUCIBLE_DEFAULT=1,REPRODUCIBLE_DEFAULT=0,"
do_compile() {
- oe_runmake mksquashfs unsquashfs
+ oe_runmake all
}
-do_install () {
- install -d ${D}${sbindir}
- install -m 0755 mksquashfs ${D}${sbindir}/
- install -m 0755 unsquashfs ${D}${sbindir}/
+do_install() {
+ oe_runmake install INSTALL_DIR=${D}${sbindir}
}
ARM_INSTRUCTION_SET_armv4 = "arm"
diff --git a/poky/meta/recipes-devtools/strace/strace/sys_headers.patch b/poky/meta/recipes-devtools/strace/strace/sys_headers.patch
new file mode 100644
index 000000000..e46f2c350
--- /dev/null
+++ b/poky/meta/recipes-devtools/strace/strace/sys_headers.patch
@@ -0,0 +1,25 @@
+Remove configure checks for few sys/ headers
+
+sys/ipc.h, sys/sem.h, sys/shm.h, and sys/msg.h are actually wrappers
+for kernel headers in libc if available, here strace is trying to match
+traced process's APIs to syscalls kernel structures
+
+Removing the checks makes it default to right kernel UAPI headers under linux/
+
+Upstream-Status: Submitted [https://lists.strace.io/pipermail/strace-devel/2019-November/009222.html]
+Suggested-by: Rich Felker <dalias@aerifal.cx>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/configure.ac
++++ b/configure.ac
+@@ -439,11 +439,7 @@ AC_CHECK_HEADERS(m4_normalize([
+ sys/conf.h
+ sys/eventfd.h
+ sys/fanotify.h
+- sys/ipc.h
+- sys/msg.h
+ sys/quota.h
+- sys/sem.h
+- sys/shm.h
+ sys/signalfd.h
+ sys/xattr.h
+ ustat.h
diff --git a/poky/meta/recipes-devtools/strace/strace/uintptr_t.patch b/poky/meta/recipes-devtools/strace/strace/uintptr_t.patch
new file mode 100644
index 000000000..6d3dd6fb9
--- /dev/null
+++ b/poky/meta/recipes-devtools/strace/strace/uintptr_t.patch
@@ -0,0 +1,17 @@
+include stdint.h for getting uintptr_t definition
+
+fixes do_compile_ptest_base
+tests/fanotify_mark.c:191:23: error: 'uintptr_t' undeclared (first use in this function); did you mean 'intptr_t'?
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/tests/fanotify_mark.c
++++ b/tests/fanotify_mark.c
+@@ -18,6 +18,7 @@
+
+ # include <limits.h>
+ # include <stdio.h>
++# include <stdint.h>
+ # include <unistd.h>
+ # include <sys/fanotify.h>
+
diff --git a/poky/meta/recipes-devtools/strace/strace_5.3.bb b/poky/meta/recipes-devtools/strace/strace_5.3.bb
index 775a22fc6..b000afb30 100644
--- a/poky/meta/recipes-devtools/strace/strace_5.3.bb
+++ b/poky/meta/recipes-devtools/strace/strace_5.3.bb
@@ -14,6 +14,8 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch \
file://ptest-spacesave.patch \
+ file://uintptr_t.patch \
+ file://sys_headers.patch \
"
SRC_URI[md5sum] = "84f5e72de813c9b1bb6057ee8ab428d8"
SRC_URI[sha256sum] = "6c131198749656401fe3efd6b4b16a07ea867e8f530867ceae8930bbc937a047"
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
index b0433e0e9..aef883986 100644
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
+++ b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
@@ -20,7 +20,7 @@ S = "${WORKDIR}/git"
DEPENDS = "systemd libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native intltool"
-inherit pkgconfig autotools systemd distro_features_check
+inherit pkgconfig autotools systemd features_check
REQUIRED_DISTRO_FEATURES = "systemd"
diff --git a/poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch b/poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
new file mode 100644
index 000000000..e9b9d3df4
--- /dev/null
+++ b/poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
@@ -0,0 +1,54 @@
+From b42ab8e1aca951dd06c113159491b3fd5cf06f2e Mon Sep 17 00:00:00 2001
+From: Haiqing Bai <Haiqing.Bai@windriver.com>
+Date: Thu, 24 Oct 2019 09:39:04 +0800
+Subject: [PATCH] Add "listen" action for a tcp socket which does not call
+ 'listen' after 'bind'
+
+It is found that /usr/bin/unfsd customus 100% cpu after starting qemu with 'nfs'
+option, and below lots of error messages shows when strace the process:
+
+poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},
+{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=6, events =POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}],
+4, 2000) = 2 ([{fd=4, revents=POLLHUP},{fd=6, revents=POLLHUP}])
+accept(4, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
+accept(6, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
+
+% time seconds usecs/call calls errors syscall
+------ ----------- ----------- --------- --------- ----------------
+ 70.87 0.005392 0 513886 513886 accept
+ 29.13 0.002216 0 256943 poll
+ 0.00 0.000000 0 4 read
+
+The root cause is that 'listen' is not called for the binded
+socket. The depended libtipc does not call 'listen' if found
+the incomming socket is binded, so 'accept' reports the error
+in the 'for' loop and cpu consumed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
+---
+ daemon.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/daemon.c b/daemon.c
+index 028a181..4c85903 100644
+--- a/daemon.c
++++ b/daemon.c
+@@ -814,6 +814,13 @@ static SVCXPRT *create_tcp_transport(unsigned int port)
+ fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
+ exit(1);
+ }
++
++ if (listen(sock, SOMAXCONN) < 0) {
++ perror("listen");
++ fprintf(stderr, "Couldn't listen on the address \n");
++ close(sock);
++ exit(1);
++ }
+ }
+
+ transp = svctcp_create(sock, 0, 0);
+--
+1.9.1
+
diff --git a/poky/meta/recipes-devtools/unfs3/unfs3_git.bb b/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
index 79d09788d..d60cee87c 100644
--- a/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
+++ b/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
@@ -23,6 +23,7 @@ SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https \
file://tcp_no_delay.patch \
file://0001-daemon.c-Libtirpc-porting-fixes.patch \
file://0001-attr-fix-utime-for-symlink.patch \
+ file://0001-Add-listen-action-for-a-tcp-socket.patch \
"
SRCREV = "c12a5c69a8d59be6916cbd0e0f41c159f1962425"
UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P<pver>.+)"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.46.3.bb b/poky/meta/recipes-devtools/vala/vala_0.46.4.bb
index eda5738c0..c4cd6dd41 100644
--- a/poky/meta/recipes-devtools/vala/vala_0.46.3.bb
+++ b/poky/meta/recipes-devtools/vala/vala_0.46.4.bb
@@ -4,5 +4,5 @@ SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.pat
file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
"
-SRC_URI[md5sum] = "809ddac69b039ef509b61993c848613f"
-SRC_URI[sha256sum] = "e29c2b1f108dc22c91bb501975a77c938aef079ca7875e1fbf41191e22cc57e3"
+SRC_URI[md5sum] = "b79bbaf8929ec8ed35911b3571f5a248"
+SRC_URI[sha256sum] = "4bb9b60fc0230b0db2c8a0e2a80ec29f1c10b43dc78355abba78adedbc2e03a1"
diff --git a/poky/meta/recipes-extended/acpica/acpica_20190816.bb b/poky/meta/recipes-extended/acpica/acpica_20191018.bb
index 8f7997477..469227576 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20190816.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20191018.bb
@@ -9,19 +9,19 @@ ACPI tables."
HOMEPAGE = "http://www.acpica.org/"
SECTION = "console/tools"
-LICENSE = "BSD | GPLv2"
-LIC_FILES_CHKSUM = "file://generate/unix/readme.txt;md5=204407e197c1a01154a48f6c6280c3aa"
+LICENSE = "Intel | BSD | GPLv2"
+LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=b5690d9ef8d54b2b1e1cc98aad64cd87"
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
DEPENDS = "bison flex bison-native"
-SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix2-${PV}.tar.gz"
-SRC_URI[md5sum] = "6a73b1e34715916fa31132dbe11008b0"
-SRC_URI[sha256sum] = "888e80f3bb77381620a5ead208e1a1be06f3ea66ddc8cfdfa62811cae5f03752"
+SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
+SRC_URI[md5sum] = "539a0252bcb42c383ceeaeb12ae9a60d"
+SRC_URI[sha256sum] = "029db4014600e4b771b11a84276d2d76eb40fb26eabc85864852ef1f962be95f"
UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
-S = "${WORKDIR}/acpica-unix2-${PV}"
+S = "${WORKDIR}/acpica-unix-${PV}"
inherit update-alternatives
diff --git a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
index 7c5d4f956..153ea5506 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
@@ -19,7 +19,7 @@ index 2127fdb..4910e6f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
- AC_INIT(ethtool, 5.2, netdev@vger.kernel.org)
+ AC_INIT(ethtool, 5.3, netdev@vger.kernel.org)
AC_PREREQ(2.52)
AC_CONFIG_SRCDIR([ethtool.c])
-AM_INIT_AUTOMAKE([gnu])
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.2.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.3.bb
index 67e7fadee..401331be3 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool_5.2.bb
+++ b/poky/meta/recipes-extended/ethtool/ethtool_5.3.bb
@@ -11,8 +11,8 @@ SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
file://avoid_parallel_tests.patch \
"
-SRC_URI[md5sum] = "79cff0d4af62b030ad28be90414b5c4a"
-SRC_URI[sha256sum] = "8ad6cb30f6e1767d9d23a5cb5f606f3b51f83e85ebf0153c1506194f6709e90b"
+SRC_URI[md5sum] = "63d1c835b861912ea0dfd52cf66a2da4"
+SRC_URI[sha256sum] = "cd2d8ea360431a2ea35ff61c276bcf2afee1ad901668a0b50ae9f1c5814756bd"
UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
diff --git a/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb b/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb
index b3eb39e4e..eaba6c78e 100644
--- a/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb
+++ b/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb
@@ -11,8 +11,8 @@ SECTION = "console/utils"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS += "readline"
-
+PACKAGECONFIG ??= "readline"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr"
SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
diff --git a/poky/meta/recipes-extended/iputils/iputils_s20190709.bb b/poky/meta/recipes-extended/iputils/iputils_s20190709.bb
index d8f2470d0..3f9e9917f 100644
--- a/poky/meta/recipes-extended/iputils/iputils_s20190709.bb
+++ b/poky/meta/recipes-extended/iputils/iputils_s20190709.bb
@@ -17,6 +17,10 @@ S = "${WORKDIR}/git"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)"
+# Fixed in 2000-10-10, but the versioning of iputils
+# breaks the version order.
+CVE_CHECK_WHITELIST += "CVE-2000-1213 CVE-2000-1214"
+
PACKAGECONFIG ??= "libcap libgcrypt rarpd traceroute6"
PACKAGECONFIG[libcap] = "-DUSE_CAP=true, -DUSE_CAP=false, libcap"
PACKAGECONFIG[libgcrypt] = "-DUSE_CRYPTO=gcrypt, -DUSE_CRYPTO=none, libgcrypt"
diff --git a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
index c3a24face..28c84af7a 100644
--- a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
+++ b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
@@ -12,7 +12,7 @@ DEPENDS = "libtirpc"
PV = "1.2.0+git${SRCPV}"
-SRCREV = "37c5ffe3038d42e9fa9ed232ad2cbca4d8f14681"
+SRCREV = "4a062cf4180d99371198951e4ea5b4550efd58a3"
SRC_URI = "git://github.com/thkukuk/libnsl \
"
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.6.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.8.bb
index 3df899308..8fe9ae046 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.6.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.8.bb
@@ -10,7 +10,7 @@ DEPENDS = "expat zlib"
SRC_URI = "git://github.com/openSUSE/libsolv.git \
"
-SRCREV = "17ce4bc4fb52a0b32964f3b7d491c18177980be1"
+SRCREV = "5205c5683ce2c8b8288534059ba40a318a2a161d"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch b/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch
index 0c3ce603e..21cd9f958 100644
--- a/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch
+++ b/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch
@@ -1,13 +1,14 @@
Consider musl provided built-in defines
Helps compile libtirpc with musl
+bits/endian.h is not supposed to be included directly
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- ./tirpc/rpc/types.h.orig 2018-03-17 10:23:10.022055255 +0100
-+++ ./tirpc/rpc/types.h 2018-03-17 10:23:30.877751656 +0100
-@@ -66,7 +66,7 @@
+--- a/tirpc/rpc/types.h
++++ b/tirpc/rpc/types.h
+@@ -66,7 +66,7 @@ typedef int32_t rpc_inline_t;
#define mem_free(ptr, bsize) free(ptr)
@@ -16,3 +17,14 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
# define __u_char_defined
# define __daddr_t_defined
#endif
+--- a/src/xdr_float.c
++++ b/src/xdr_float.c
+@@ -83,7 +83,7 @@ static struct sgl_limits {
+ };
+ #else
+
+-#include <bits/endian.h>
++#include <endian.h>
+ #define IEEEFP
+
+ #endif /* vax */
diff --git a/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb b/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb
index e73ffe7b1..633cececd 100644
--- a/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb
+++ b/poky/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb
@@ -23,6 +23,20 @@ EXTRA_OECONF = "--disable-gssapi"
do_install_append() {
chown root:root ${D}${sysconfdir}/netconfig
+ install -d ${D}${includedir}/rpc
+ install -d ${D}${includedir}/rpcsvc
+ for link_header in ${D}${includedir}/tirpc/rpc/*; do
+ if [ -f $link_header -a ! -e ${D}/${includedir}/rpc/$(basename $link_header) ]; then
+ ln -sf ../tirpc/rpc/$(basename $link_header) ${D}${includedir}/rpc/$(basename $link_header)
+ fi
+ done
+ for link_header in ${D}${includedir}/tirpc/rpcsvc/*; do
+ if [ -f $link_header -a ! -e ${D}/${includedir}/rpcsvc/$(basename $link_header) ]; then
+ ln -sf ../tirpc/rpc/$(basename $link_header) ${D}${includedir}/rpcsvc/$(basename $link_header)
+ fi
+ done
+ ln -sf tirpc/netconfig.h ${D}/${includedir}/netconfig.h
+
}
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch b/poky/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch
new file mode 100644
index 000000000..1b433d3ad
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch
@@ -0,0 +1,35 @@
+From fae8852a63d9fa6e56fb8b24eaf10560bd13757f Mon Sep 17 00:00:00 2001
+From: Yongxin Liu <yongxin.liu@windriver.com>
+Date: Tue, 12 Nov 2019 11:33:50 +0800
+Subject: [PATCH] mkswap01.sh: Add "udevadm trigger" before swap verification
+
+Fix: https://github.com/linux-test-project/ltp/issues/458
+
+Sometimes the swap device cannot show up in /dev/disk/by-uuid/
+or /dev/disk/by-lable/ due to the issue #458. When this issue
+happens, "blkid -c /dev/null" and "ls /dev/disk/by-uuid/" show
+different UUID of the device.
+
+Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1193414]
+
+Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
+---
+ testcases/commands/mkswap/mkswap01.sh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/testcases/commands/mkswap/mkswap01.sh b/testcases/commands/mkswap/mkswap01.sh
+index 3a348c6e6..9437c4a4e 100755
+--- a/testcases/commands/mkswap/mkswap01.sh
++++ b/testcases/commands/mkswap/mkswap01.sh
+@@ -129,6 +129,8 @@ mkswap_test()
+ return
+ fi
+
++ udevadm trigger --name-match=$TST_DEVICE
++
+ if [ -n "$device" ]; then
+ mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$dev_file"
+ if [ $? -ne 0 ]; then
+--
+2.14.4
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch b/poky/meta/recipes-extended/ltp/ltp/0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch
new file mode 100644
index 000000000..bed84712a
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch
@@ -0,0 +1,57 @@
+From d656a447893dccc310c975a239f482278550c3e0 Mon Sep 17 00:00:00 2001
+From: Jan Stancek <jstancek@redhat.com>
+Date: Tue, 21 May 2019 10:10:44 +0200
+Subject: [PATCH] overcommit_memory: update for "mm: fix false-positive
+ OVERCOMMIT_GUESS failures"
+
+commit 8c7829b04c52 ("mm: fix false-positive OVERCOMMIT_GUESS failures")
+changes logic of __vm_enough_memory(), simplifying it to:
+ When in GUESS mode, catch wild allocations by comparing their request
+ size to total amount of ram and swap in the system.
+
+Testcase currently allocates mem_total + swap_total, which doesn't trigger
+new condition. Make it more extreme, but assuming free_total / 2 will PASS,
+and 2*sum_total will FAIL.
+
+Signed-off-by: Jan Stancek <jstancek@redhat.com>
+Acked-by: Cyril Hrubis <chrubis@suse.cz>
+
+Upstream-Status: Backport [https://github.com/linux-test-project/ltp/commit/d656a447893dccc310c975a239f482278550c3e0]
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+---
+ testcases/kernel/mem/tunable/overcommit_memory.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/testcases/kernel/mem/tunable/overcommit_memory.c b/testcases/kernel/mem/tunable/overcommit_memory.c
+index 555298f..345764d 100644
+--- a/testcases/kernel/mem/tunable/overcommit_memory.c
++++ b/testcases/kernel/mem/tunable/overcommit_memory.c
+@@ -36,11 +36,10 @@
+ *
+ * The program is designed to test the two tunables:
+ *
+- * When overcommit_memory = 0, allocatable memory can't overextends
+- * the amount of free memory. I choose the three cases:
++ * When overcommit_memory = 0, allocatable memory can't overextend
++ * the amount of total memory:
+ * a. less than free_total: free_total / 2, alloc should pass.
+- * b. greater than free_total: free_total * 2, alloc should fail.
+- * c. equal to sum_total: sum_tatal, alloc should fail
++ * b. greater than sum_total: sum_total * 2, alloc should fail.
+ *
+ * When overcommit_memory = 1, it can alloc enough much memory, I
+ * choose the three cases:
+@@ -164,9 +163,7 @@ static void overcommit_memory_test(void)
+
+ update_mem();
+ alloc_and_check(free_total / 2, EXPECT_PASS);
+- update_mem();
+- alloc_and_check(free_total * 2, EXPECT_FAIL);
+- alloc_and_check(sum_total, EXPECT_FAIL);
++ alloc_and_check(sum_total * 2, EXPECT_FAIL);
+
+ /* start to test overcommit_memory=1 */
+ set_sys_tune("overcommit_memory", 1, 1);
+--
+2.7.4
+
diff --git a/poky/meta/recipes-extended/ltp/ltp_20190517.bb b/poky/meta/recipes-extended/ltp/ltp_20190517.bb
index 465071560..47aa9675d 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20190517.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20190517.bb
@@ -49,6 +49,8 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \
file://0001-testcases-use-python3-everywhere-to-run-python-scrip.patch \
file://0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch \
file://0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch \
+ file://0001-overcommit_memory-update-for-mm-fix-false-positive-O.patch \
+ file://0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch \
"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch b/poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch
new file mode 100644
index 000000000..e76aac816
--- /dev/null
+++ b/poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch
@@ -0,0 +1,99 @@
+From a54501d3c9541bc8600225aa2d42531f93c6def7 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Sat, 9 Nov 2019 20:01:48 -0600
+Subject: [PATCH] Add option to control configure args
+
+Embedding the configure time options into the executable can lead to
+non-reproducible builds, since configure options often have embedded
+paths. Add a configure time option to control if the configure args are
+embedded so this can be disabled.
+
+Upstream-Status: Submitted [https://midnight-commander.org/ticket/4031]
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ configure.ac | 6 ++++++
+ src/args.c | 6 ++++++
+ src/textconf.c | 2 ++
+ 3 files changed, 14 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 19d1a76be..a1948f6b9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -544,6 +544,12 @@ dnl Clarify do we really need GModule
+ AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \
+ test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"])
+
++AC_ARG_ENABLE([configure-args],
++ AS_HELP_STRING([--enable-configure-args], [Handle all compiler warnings as errors]))
++if test "x$enable_configure_args" != xno; then
++ AC_DEFINE([ENABLE_CONFIGURE_ARGS], 1, [Define to enable showing configure arguments in help])
++fi
++
+ AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
+
+ AC_CONFIG_FILES(
+diff --git a/src/args.c b/src/args.c
+index baef1a1c8..f8dc24020 100644
+--- a/src/args.c
++++ b/src/args.c
+@@ -95,7 +95,9 @@ static gboolean mc_args__nouse_subshell = FALSE;
+ #endif /* ENABLE_SUBSHELL */
+ static gboolean mc_args__show_datadirs = FALSE;
+ static gboolean mc_args__show_datadirs_extended = FALSE;
++#ifdef ENABLE_CONFIGURE_ARGS
+ static gboolean mc_args__show_configure_opts = FALSE;
++#endif
+
+ static GOptionGroup *main_group;
+
+@@ -125,6 +127,7 @@ static const GOptionEntry argument_main_table[] = {
+ NULL
+ },
+
++#ifdef ENABLE_CONFIGURE_ARGS
+ /* show configure options */
+ {
+ "configure-options", '\0', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE,
+@@ -132,6 +135,7 @@ static const GOptionEntry argument_main_table[] = {
+ N_("Print configure options"),
+ NULL
+ },
++#endif
+
+ {
+ "printwd", 'P', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING,
+@@ -758,11 +762,13 @@ mc_args_show_info (void)
+ return FALSE;
+ }
+
++#ifdef ENABLE_CONFIGURE_ARGS
+ if (mc_args__show_configure_opts)
+ {
+ show_configure_options ();
+ return FALSE;
+ }
++#endif
+
+ return TRUE;
+ }
+diff --git a/src/textconf.c b/src/textconf.c
+index 1e0613e58..f39b9e028 100644
+--- a/src/textconf.c
++++ b/src/textconf.c
+@@ -232,10 +232,12 @@ show_datadirs_extended (void)
+
+ /* --------------------------------------------------------------------------------------------- */
+
++#ifdef ENABLE_CONFIGURE_ARGS
+ void
+ show_configure_options (void)
+ {
+ (void) printf ("%s\n", MC_CONFIGURE_ARGS);
+ }
++#endif
+
+ /* --------------------------------------------------------------------------------------------- */
+--
+2.23.0
+
diff --git a/poky/meta/recipes-extended/mc/mc_4.8.23.bb b/poky/meta/recipes-extended/mc/mc_4.8.23.bb
index 83de8dbb2..71f61b484 100644
--- a/poky/meta/recipes-extended/mc/mc_4.8.23.bb
+++ b/poky/meta/recipes-extended/mc/mc_4.8.23.bb
@@ -8,6 +8,7 @@ RDEPENDS_${PN} = "ncurses-terminfo"
SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
file://0001-mc-replace-perl-w-with-use-warnings.patch \
+ file://0001-Add-option-to-control-configure-args.patch \
"
SRC_URI[md5sum] = "152927ac29cf0e61d7d019f261bb7d89"
SRC_URI[sha256sum] = "238c4552545dcf3065359bd50753abbb150c1b22ec5a36eaa02c82808293267d"
@@ -21,9 +22,11 @@ PACKAGECONFIG ??= ""
PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
-EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x"
+EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --disable-configure-args"
CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
+CACHED_CONFIGUREVARS += "ac_cv_path_PYTHON='/usr/bin/env python'"
+CACHED_CONFIGUREVARS += "ac_cv_path_GREP='/usr/bin/env grep'"
do_install_append () {
sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/*
diff --git a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb b/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
index 639382e13..64f519e75 100644
--- a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
+++ b/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
@@ -43,13 +43,12 @@ CFLAGS_append_powerpc64 = ' -D__SANE_USERSPACE_TYPES__'
CFLAGS_append_mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__'
CFLAGS_append_mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__'
-EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}"'
+EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_unitdir}/system \
+ BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev"'
DEBUG_OPTIMIZATION_append = " -Wno-error"
do_compile() {
- # Point to right sbindir
- sed -i -e "s;BINDIR = /sbin;BINDIR = $base_sbindir;" -e "s;UDEVDIR = /lib;UDEVDIR = $nonarch_base_libdir;" -e "s;SYSTEMD_DIR=/lib/systemd/system;SYSTEMD_DIR=${systemd_unitdir}/system;" ${S}/Makefile
oe_runmake SYSROOT="${STAGING_DIR_TARGET}"
}
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index 2d96d1ba3..15a8e6ded 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -81,6 +81,7 @@ RDEPENDS_packagegroup-core-full-cmdline-utils = "\
gawk \
gmp \
grep \
+ less \
makedevs \
mc \
mc-fish \
diff --git a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
index 6b73f0a2f..119493382 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
@@ -150,7 +150,7 @@ do_install() {
fi
}
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
BBCLASSEXTEND = "nativesdk native"
@@ -163,3 +163,5 @@ CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-account"
CONFFILES_${PN}-runtime += "${sysconfdir}/security/limits.conf"
UPSTREAM_CHECK_URI = "https://github.com/linux-pam/linux-pam/releases"
+
+CVE_PRODUCT = "linux-pam"
diff --git a/poky/meta/recipes-extended/procps/procps_3.3.15.bb b/poky/meta/recipes-extended/procps/procps_3.3.15.bb
index 9756db0e7..f240e54fd 100644
--- a/poky/meta/recipes-extended/procps/procps_3.3.15.bb
+++ b/poky/meta/recipes-extended/procps/procps_3.3.15.bb
@@ -4,9 +4,9 @@ the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill
HOMEPAGE = "https://gitlab.com/procps-ng/procps"
SECTION = "base"
LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM="file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \
- "
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \
+ "
DEPENDS = "ncurses"
@@ -64,3 +64,6 @@ python __anonymous() {
d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog))
}
+# 'ps' isn't suitable for use as a security tool so whitelist this CVE.
+# https://bugzilla.redhat.com/show_bug.cgi?id=1575473#c3
+CVE_CHECK_WHITELIST += "CVE-2018-1121"
diff --git a/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch b/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch
index 4d44495fd..9451303dd 100644
--- a/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch
+++ b/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch
@@ -1,4 +1,4 @@
-From 285877b7761d74736aca2687ed9bef2f78b82c33 Mon Sep 17 00:00:00 2001
+From dac375f640fecd45e6254a8d870ee37ec8f41670 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 2 Nov 2017 16:21:22 +0200
Subject: [PATCH] Makefile.am: create src directory before attempting to write
@@ -8,23 +8,21 @@ Otherwise out of tree builds will fail.
Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index 9f61ab4..b4ced7f 100644
+index 441ae94..882969d 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -79,7 +79,7 @@ EXTRA_DIST = src/signames.c README.md
+@@ -86,7 +86,7 @@ EXTRA_DIST = src/signames.c README.md misc/git-version-gen
CLEANFILES = src/signames.h
- src/signames.h: src/signames.c Makefile
+ src/signames.h: src/signames.c Makefile src/$(am__dirstamp)
- export LC_ALL=C ; \
+ export LC_ALL=C ; mkdir -p src ; \
@CPP@ -dM $< |\
tr -s '\t ' ' ' | sort -n -k 3 | sed \
's:#define SIG\([A-Z][A-Z]*[0-9]*\) \([0-9][0-9]*\).*$\:{\ \2,"\1" },:p;d' | \
---
-2.14.2
-
diff --git a/poky/meta/recipes-extended/psmisc/psmisc_23.2.bb b/poky/meta/recipes-extended/psmisc/psmisc_23.3.bb
index 38e0a4405..b3c3c7e5a 100644
--- a/poky/meta/recipes-extended/psmisc/psmisc_23.2.bb
+++ b/poky/meta/recipes-extended/psmisc/psmisc_23.3.bb
@@ -6,5 +6,5 @@ SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https \
file://0001-Use-UINTPTR_MAX-instead-of-__WORDSIZE.patch \
file://0001-Makefile.am-create-src-directory-before-attempting-t.patch \
"
-SRCREV = "44eab9a3a63394eae6b79a7ef0a042f57e0c8a8f"
+SRCREV = "78bde849041e6c914a2a517ebe1255b86dc98772"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch b/poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch
deleted file mode 100644
index 1274b2794..000000000
--- a/poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 4b258c5a9078f8df60684ab7536ce3a8ff207e08 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 12 Oct 2017 10:03:57 +0000
-Subject: [PATCH] configure.ac: fix configure failed while build dir contains "yes"
-
-While the name of build dir contains "yes", the AC_EGREP_CPP
-test always return true.
-
-We rarely use "yes;" to name build dir, so s/yes/yes;/g
-could fix the issue
-
-Upstream-Status: Accepted
-https://git.savannah.gnu.org/cgit/screen.git/commit/?h=screen-v4&id=8c2b4061d16756ee2ed37f08db063b8215656943
-
-Signed-off-by: Jian Kang <jian.kang@windriver.com>
----
- configure.ac | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 12996cd..4765af6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -128,7 +128,7 @@ fi
-
-
- AC_CHECKING(for Ultrix)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(ultrix) || defined(__ultrix)
- yes;
- #endif
-@@ -145,7 +145,7 @@ dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi):
- dnl BBN butterfly is not POSIX, but a MACH BSD system.
- dnl Do not define POSIX and TERMIO.
- AC_CHECKING(for butterfly)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(butterfly)
- yes;
- #endif
-@@ -156,7 +156,7 @@ if test -n "$ULTRIX"; then
- test -z "$GCC" && CC="$CC -YBSD"
- fi
- AC_CHECKING(for POSIX.1)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#include <sys/types.h>
- #include <unistd.h>
- main () {
-@@ -173,14 +173,14 @@ AC_TRY_COMPILE(
- #include <fcntl.h>], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE(SYSV))
-
- AC_CHECKING(for sequent/ptx)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#ifdef _SEQUENT_
- yes;
- #endif
- ], LIBS="$LIBS -lsocket -linet";seqptx=1)
-
- AC_CHECKING(SVR4)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [main () {
- #if defined(SVR4) || defined(__SVR4)
- yes;
-@@ -200,9 +200,9 @@ fi
- AC_CHECK_HEADERS([stropts.h string.h strings.h])
-
- AC_CHECKING(for Solaris 2.x)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(SVR4) && defined(sun)
-- yes
-+ yes;
- #endif
- ], LIBS="$LIBS -lsocket -lnsl -lkstat")
-
-@@ -697,7 +697,7 @@ else
- pdir='/dev'
- fi
- dnl SCO uses ptyp%d
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#ifdef M_UNIX
- yes;
- #endif
-@@ -880,7 +880,7 @@ fi
- )
-
- if test -z "$load" ; then
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(NeXT) || defined(apollo) || defined(linux)
- yes;
- #endif
-@@ -1112,7 +1112,7 @@ AC_CHECKING(syslog in libbsd.a)
- AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
- AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])])
-
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#ifdef M_UNIX
- yes;
- #endif
---
-2.13.3
-
diff --git a/poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch b/poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch
deleted file mode 100644
index e184aa1f3..000000000
--- a/poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 79afb676904653403145fda9e1a6a9d3ea1cb22a Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 11:10:32 +0300
-Subject: [PATCH 4/4] Avoid mis-identifying systems as SVR4
-
-Linux can be misdetected as SVR4 because it has
-libelf installed. This leads to linking with libelf, even though no
-symbols from that library were actually used, and to a workaround for
-a buggy getlogin() being enabled.
-
-It is not documented which exact SVR4 system had the bug that the
-workaround was added for, so all I could do is make an educated guess
-at the #defines its compiler would be likely to set.
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index dc928ae..65439ce 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -179,14 +179,24 @@ AC_EGREP_CPP(yes,
- #endif
- ], LIBS="$LIBS -lsocket -linet";seqptx=1)
-
-+AC_CHECKING(SVR4)
-+AC_EGREP_CPP(yes,
-+[main () {
-+#if defined(SVR4) || defined(__SVR4)
-+ yes;
-+#endif
-+], AC_NOTE(- you have a SVR4 system) AC_DEFINE(SVR4) svr4=1)
-+if test -n "$svr4" ; then
- oldlibs="$LIBS"
- LIBS="$LIBS -lelf"
- AC_CHECKING(SVR4)
- AC_TRY_LINK([#include <utmpx.h>
- ],,
--[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
--[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
-+[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(BUGGYGETLOGIN),
-+[AC_CHECK_HEADER(elf.h, AC_DEFINE(BUGGYGETLOGIN))])]
- ,LIBS="$oldlibs")
-+fi
-+
- AC_CHECK_HEADERS([stropts.h string.h strings.h])
-
- AC_CHECKING(for Solaris 2.x)
---
-2.1.4
-
diff --git a/poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch b/poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch
deleted file mode 100644
index 248bf087e..000000000
--- a/poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From cd0f7f10a3fffbc60fe55eb200474d13fe1da65b Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 10:34:29 +0300
-Subject: [PATCH 2/4] Provide cross compile alternatives for AC_TRY_RUN
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 32 ++++++++++++++++++++------------
- 1 file changed, 20 insertions(+), 12 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 27690a6..ce89f56 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -348,7 +348,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your fifos are usable) fifo=1,
--AC_NOTE(- your fifos are not usable))
-+AC_NOTE(- your fifos are not usable),
-+AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1)
- rm -f /tmp/conftest*
-
- if test -n "$fifo"; then
-@@ -396,7 +397,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your implementation is ok),
--AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
-+AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
-+AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
- rm -f /tmp/conftest*
- fi
-
-@@ -458,7 +460,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your sockets are usable) sock=1,
--AC_NOTE(- your sockets are not usable))
-+AC_NOTE(- your sockets are not usable),
-+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1)
- rm -f /tmp/conftest*
-
- if test -n "$sock"; then
-@@ -497,7 +500,8 @@ main()
- }
- ],AC_NOTE(- you are normal),
- AC_NOTE(- unix domain sockets are not kept in the filesystem)
--AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1)
-+AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1,
-+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal))
- rm -f /tmp/conftest*
- fi
-
-@@ -624,7 +628,8 @@ main()
- exit(0);
- }
- ],AC_NOTE(- select is ok),
--AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
-+AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN),
-+AC_NOTE(- skipping check because we are cross compiling; assuming select is ok))
-
- dnl
- dnl **** termcap or terminfo ****
-@@ -666,7 +671,8 @@ main()
- {
- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
- }], AC_NOTE(- you use the termcap database),
--AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
-+AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO),
-+AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO))
- AC_CHECKING(ospeed)
- AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
-
-@@ -801,7 +807,8 @@ main()
- else
- AC_NOTE(- can't determine - assume ptys are world accessable)
- fi
-- ]
-+ ],
-+ AC_NOTE(- skipping check because we are cross compiling; assuming ptys are world accessable)
- )
- rm -f conftest_grp
- fi
-@@ -885,7 +892,7 @@ AC_EGREP_CPP(yes,
- #endif
- ], load=1)
- fi
--if test -z "$load" ; then
-+if test -z "$load" && test "$cross_compiling" = no ; then
- AC_CHECKING(for kernelfile)
- for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do
- if test -f $core || test -c $core; then
-@@ -1078,7 +1085,7 @@ main()
- #endif
- exit(0);
- }
--],,AC_DEFINE(SYSVSIGS))
-+],,AC_DEFINE(SYSVSIGS),:)
-
- fi
-
-@@ -1158,7 +1165,7 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEBCOPY))
-+}], AC_DEFINE(USEBCOPY),,:)
-
- AC_TRY_RUN([
- #define bcopy(s,d,l) memmove(d,s,l)
-@@ -1173,7 +1180,8 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMMOVE))
-+}], AC_DEFINE(USEMEMMOVE),,
-+ AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE))
-
-
- AC_TRY_RUN([
-@@ -1189,7 +1197,7 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMCPY))
-+}], AC_DEFINE(USEMEMCPY),,:)
-
- AC_SYS_LONG_FILE_NAMES
-
---
-2.1.4
-
diff --git a/poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch b/poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch
deleted file mode 100644
index cc62c12e0..000000000
--- a/poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 73b726c25f94c1b15514ed9249b927afdfbbfb94 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 10:30:40 +0300
-Subject: [PATCH 1/4] Remove redundant compiler sanity checks
-
-AC_PROG_CC already performs sanity checks. And unlike the removed
-checks, it does so in a way that supports cross compilation.
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 27 ---------------------------
- 1 file changed, 27 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ffe2e37..27690a6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -48,31 +48,6 @@ AC_PROG_GCC_TRADITIONAL
- AC_ISC_POSIX
- AC_USE_SYSTEM_EXTENSIONS
-
--AC_TRY_RUN(main(){exit(0);},,[
--if test $CC != cc ; then
--AC_NOTE(Your $CC failed - restarting with CC=cc)
--AC_NOTE()
--CC=cc
--export CC
--exec $0 $configure_args
--fi
--])
--
--AC_TRY_RUN(main(){exit(0);},,
--exec 5>&2
--eval $ac_link
--AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
--AC_NOTE($ac_compile)
--AC_MSG_ERROR(Can't run the compiler - sorry))
--
--AC_TRY_RUN([
--main()
--{
-- int __something_strange_();
-- __something_strange_(0);
--}
--],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
--
- AC_PROG_AWK
-
- AC_PROG_INSTALL
-@@ -1300,8 +1275,6 @@ fi
- dnl Ptx bug workaround -- insert -lc after -ltermcap
- test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
-
--AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.))
--
- ETCSCREENRC=
- AC_MSG_CHECKING(for the global screenrc file)
- AC_ARG_WITH(sys-screenrc, [ --with-sys-screenrc=path to the global screenrc file], [ ETCSCREENRC="${withval}" ])
---
-2.1.4
-
diff --git a/poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch b/poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch
deleted file mode 100644
index d7e55a445..000000000
--- a/poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From d0b20e4cacc60ad62a2150ce07388cb5a25c2040 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 11:09:01 +0300
-Subject: [PATCH 3/4] Skip host file system checks when cross-compiling
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 23 +++++++++++++++++++----
- 1 file changed, 19 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ce89f56..dc928ae 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -85,7 +85,7 @@ AC_ARG_ENABLE(socket-dir,
- dnl
- dnl **** special unix variants ****
- dnl
--if test -n "$ISC"; then
-+if test "$cross_compiling" = no && test -n "$ISC" ; then
- AC_DEFINE(ISC) LIBS="$LIBS -linet"
- fi
-
-@@ -96,10 +96,11 @@ dnl AC_DEFINE(OSF1) # this disables MIPS again....
- dnl fi
- dnl fi
-
--if test -f /sysV68 ; then
-+if test "$cross_compiling" = no && test -f /sysV68 ; then
- AC_DEFINE(sysV68)
- fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for MIPS)
- if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then
- oldlibs="$LIBS"
-@@ -123,6 +124,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
- ))
- fi
- fi
-+fi
-
-
- AC_CHECKING(for Ultrix)
-@@ -132,7 +134,7 @@ AC_EGREP_CPP(yes,
- #endif
- ], ULTRIX=1)
-
--if test -f /usr/lib/libpyr.a ; then
-+if test "$cross_compiling" = no && test -f /usr/lib/libpyr.a ; then
- oldlibs="$LIBS"
- LIBS="$LIBS -lpyr"
- AC_CHECKING(Pyramid OSX)
-@@ -679,17 +681,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
- dnl
- dnl **** PTY specific things ****
- dnl
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for /dev/ptc)
- if test -r /dev/ptc; then
- AC_DEFINE(HAVE_DEV_PTC)
- fi
-+fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for SVR4 ptys)
- sysvr4ptys=
- if test -c /dev/ptmx ; then
- AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
- sysvr4ptys=1])
- fi
-+fi
-
- AC_CHECK_FUNCS(getpt)
-
-@@ -699,6 +705,7 @@ AC_CHECK_FUNCS(openpty,,
- [AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])])
- fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for ptyranges)
- if test -d /dev/ptym ; then
- pdir='/dev/ptym'
-@@ -722,6 +729,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\
- AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
- AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
- fi
-+fi
-
- dnl **** pty mode/group handling ****
- dnl
-@@ -869,14 +877,16 @@ fi
- dnl
- dnl **** loadav ****
- dnl
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for libutil(s))
- test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils"
- test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
-+fi
-
- AC_CHECKING(getloadavg)
- AC_TRY_LINK(,[getloadavg((double *)0, 0);],
- AC_DEFINE(LOADAV_GETLOADAVG) load=1,
--if test -f /usr/lib/libkvm.a ; then
-+if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then
- olibs="$LIBS"
- LIBS="$LIBS -lkvm"
- AC_CHECKING(getloadavg with -lkvm)
-@@ -1094,13 +1104,18 @@ dnl **** libraries ****
- dnl
-
- AC_CHECKING(for crypt and sec libraries)
-+if test "$cross_compiling" = no ; then
- test -f /lib/libcrypt_d.a || test -f /usr/lib/libcrypt_d.a && LIBS="$LIBS -lcrypt_d"
-+fi
- oldlibs="$LIBS"
- LIBS="$LIBS -lcrypt"
- AC_CHECKING(crypt)
- AC_TRY_LINK(,,,LIBS="$oldlibs")
-+if test "$cross_compiling" = no ; then
- test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec"
- test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow"
-+fi
-+
- oldlibs="$LIBS"
- LIBS="$LIBS -lsun"
- AC_CHECKING(IRIX sun library)
---
-2.1.4
-
diff --git a/poky/meta/recipes-extended/screen/screen_4.6.2.bb b/poky/meta/recipes-extended/screen/screen_4.7.0.bb
index 21b476ddb..67aa5f1fc 100644
--- a/poky/meta/recipes-extended/screen/screen_4.6.2.bb
+++ b/poky/meta/recipes-extended/screen/screen_4.7.0.bb
@@ -17,18 +17,13 @@ RDEPENDS_${PN} = "base-files"
SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://screen.pam', '', d)} \
- file://Remove-redundant-compiler-sanity-checks.patch \
- file://Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch \
- file://Skip-host-file-system-checks-when-cross-compiling.patch \
- file://Avoid-mis-identifying-systems-as-SVR4.patch \
file://0002-comm.h-now-depends-on-term.h.patch \
file://0001-fix-for-multijob-build.patch \
- file://0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch \
file://0001-Remove-more-compatibility-stuff.patch \
"
-SRC_URI[md5sum] = "a0f529d3333b128dfaa324d978ba73a8"
-SRC_URI[sha256sum] = "1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a"
+SRC_URI[md5sum] = "b8971ebd68d046f2814d1040cb8e6641"
+SRC_URI[sha256sum] = "da775328fa783bd2a787d722014dbd99c6093effc11f337827604c2efc5d20c1"
inherit autotools texinfo
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch
deleted file mode 100644
index 66d99dd88..000000000
--- a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 042147675c7c2ea7dd65b2597f2e350376a710aa Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 6 Aug 2019 17:28:56 +0200
-Subject: [PATCH] bash-completion: remove the shebang at the start
-
-bash completion files do not need to specify that.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- bash-completion/stress-ng | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/bash-completion/stress-ng b/bash-completion/stress-ng
-index 8b1421c..7f195be 100755
---- a/bash-completion/stress-ng
-+++ b/bash-completion/stress-ng
-@@ -1,5 +1,3 @@
--#!/bin/bash
--#
- # stress-ng tab completion for bash.
- #
- # Copyright (C) 2019 Canonical
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.10.bb
index 7d194b305..47a98f3aa 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.10.bb
@@ -7,10 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
- file://0001-bash-completion-remove-the-shebang-at-the-start.patch \
"
-SRC_URI[md5sum] = "46aa41d37690324ceab4febfcc549018"
-SRC_URI[sha256sum] = "d09dd2a1aea549e478995bf9be90b38906a4cdf33ea7b245ef9d46aa5213c074"
+SRC_URI[md5sum] = "ad4de38d6ff1ccf3640573e967dfb136"
+SRC_URI[sha256sum] = "031de5ebc44b49992c11633f10aae96da05a85b326aebdffd88ba8c445d23cf4"
DEPENDS = "coreutils-native"
diff --git a/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch b/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch
new file mode 100644
index 000000000..2a11e3f7e
--- /dev/null
+++ b/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch
@@ -0,0 +1,178 @@
+From f752ae5cee163253730ff7cdf293e34a91aa5520 Mon Sep 17 00:00:00 2001
+From: "Todd C. Miller" <Todd.Miller@sudo.ws>
+Date: Thu, 10 Oct 2019 10:04:13 -0600
+Subject: [PATCH] Treat an ID of -1 as invalid since that means "no change".
+ Fixes CVE-2019-14287. Found by Joe Vennix from Apple Information Security.
+
+Upstream-Status: Backport [https://github.com/sudo-project/sudo/commit/f752ae5cee163253730ff7cdf293e34a91aa5520]
+CVE: CVE-2019-14287
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ lib/util/strtoid.c | 100 ++++++++++++++++++++++++++++-------------------------
+ 1 files changed, 53 insertions(+), 46 deletions(-)
+
+diff --git a/lib/util/strtoid.c b/lib/util/strtoid.c
+index 2dfce75..6b3916b 100644
+--- a/lib/util/strtoid.c
++++ b/lib/util/strtoid.c
+@@ -49,6 +49,27 @@
+ #include "sudo_util.h"
+
+ /*
++ * Make sure that the ID ends with a valid separator char.
++ */
++static bool
++valid_separator(const char *p, const char *ep, const char *sep)
++{
++ bool valid = false;
++ debug_decl(valid_separator, SUDO_DEBUG_UTIL)
++
++ if (ep != p) {
++ /* check for valid separator (including '\0') */
++ if (sep == NULL)
++ sep = "";
++ do {
++ if (*ep == *sep)
++ valid = true;
++ } while (*sep++ != '\0');
++ }
++ debug_return_bool(valid);
++}
++
++/*
+ * Parse a uid/gid in string form.
+ * If sep is non-NULL, it contains valid separator characters (e.g. comma, space)
+ * If endp is non-NULL it is set to the next char after the ID.
+@@ -62,36 +83,33 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr
+ char *ep;
+ id_t ret = 0;
+ long long llval;
+- bool valid = false;
+ debug_decl(sudo_strtoid, SUDO_DEBUG_UTIL)
+
+ /* skip leading space so we can pick up the sign, if any */
+ while (isspace((unsigned char)*p))
+ p++;
+- if (sep == NULL)
+- sep = "";
++
++ /* While id_t may be 64-bit signed, uid_t and gid_t are 32-bit unsigned. */
+ errno = 0;
+ llval = strtoll(p, &ep, 10);
+- if (ep != p) {
+- /* check for valid separator (including '\0') */
+- do {
+- if (*ep == *sep)
+- valid = true;
+- } while (*sep++ != '\0');
++ if ((errno == ERANGE && llval == LLONG_MAX) || llval > (id_t)UINT_MAX) {
++ errno = ERANGE;
++ if (errstr != NULL)
++ *errstr = N_("value too large");
++ goto done;
+ }
+- if (!valid) {
++ if ((errno == ERANGE && llval == LLONG_MIN) || llval < INT_MIN) {
++ errno = ERANGE;
+ if (errstr != NULL)
+- *errstr = N_("invalid value");
+- errno = EINVAL;
++ *errstr = N_("value too small");
+ goto done;
+ }
+- if (errno == ERANGE) {
+- if (errstr != NULL) {
+- if (llval == LLONG_MAX)
+- *errstr = N_("value too large");
+- else
+- *errstr = N_("value too small");
+- }
++
++ /* Disallow id -1, which means "no change". */
++ if (!valid_separator(p, ep, sep) || llval == -1 || llval == (id_t)UINT_MAX) {
++ if (errstr != NULL)
++ *errstr = N_("invalid value");
++ errno = EINVAL;
+ goto done;
+ }
+ ret = (id_t)llval;
+@@ -108,30 +126,15 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr
+ {
+ char *ep;
+ id_t ret = 0;
+- bool valid = false;
+ debug_decl(sudo_strtoid, SUDO_DEBUG_UTIL)
+
+ /* skip leading space so we can pick up the sign, if any */
+ while (isspace((unsigned char)*p))
+ p++;
+- if (sep == NULL)
+- sep = "";
++
+ errno = 0;
+ if (*p == '-') {
+ long lval = strtol(p, &ep, 10);
+- if (ep != p) {
+- /* check for valid separator (including '\0') */
+- do {
+- if (*ep == *sep)
+- valid = true;
+- } while (*sep++ != '\0');
+- }
+- if (!valid) {
+- if (errstr != NULL)
+- *errstr = N_("invalid value");
+- errno = EINVAL;
+- goto done;
+- }
+ if ((errno == ERANGE && lval == LONG_MAX) || lval > INT_MAX) {
+ errno = ERANGE;
+ if (errstr != NULL)
+@@ -144,28 +147,31 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr
+ *errstr = N_("value too small");
+ goto done;
+ }
+- ret = (id_t)lval;
+- } else {
+- unsigned long ulval = strtoul(p, &ep, 10);
+- if (ep != p) {
+- /* check for valid separator (including '\0') */
+- do {
+- if (*ep == *sep)
+- valid = true;
+- } while (*sep++ != '\0');
+- }
+- if (!valid) {
++
++ /* Disallow id -1, which means "no change". */
++ if (!valid_separator(p, ep, sep) || lval == -1) {
+ if (errstr != NULL)
+ *errstr = N_("invalid value");
+ errno = EINVAL;
+ goto done;
+ }
++ ret = (id_t)lval;
++ } else {
++ unsigned long ulval = strtoul(p, &ep, 10);
+ if ((errno == ERANGE && ulval == ULONG_MAX) || ulval > UINT_MAX) {
+ errno = ERANGE;
+ if (errstr != NULL)
+ *errstr = N_("value too large");
+ goto done;
+ }
++
++ /* Disallow id -1, which means "no change". */
++ if (!valid_separator(p, ep, sep) || ulval == UINT_MAX) {
++ if (errstr != NULL)
++ *errstr = N_("invalid value");
++ errno = EINVAL;
++ goto done;
++ }
+ ret = (id_t)ulval;
+ }
+ if (errstr != NULL)
+--
+2.7.4
+
diff --git a/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch b/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch
new file mode 100644
index 000000000..453a8b09a
--- /dev/null
+++ b/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch
@@ -0,0 +1,112 @@
+From 396bc57feff3e360007634f62448b64e0626390c Mon Sep 17 00:00:00 2001
+From: "Todd C. Miller" <Todd.Miller@sudo.ws>
+Date: Thu, 10 Oct 2019 10:04:13 -0600
+Subject: [PATCH] Add sudo_strtoid() tests for -1 and range errors. Also adjust
+ testsudoers/test5 which relied upon gid -1 parsing.
+
+Upstream-Status: Backport [https://github.com/sudo-project/sudo/commit/396bc57]
+CVE: CVE-2019-14287
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ lib/util/regress/atofoo/atofoo_test.c | 36 ++++++++++++++++------
+ plugins/sudoers/regress/testsudoers/test5.out.ok | 2 +-
+ plugins/sudoers/regress/testsudoers/test5.sh | 2 +-
+ 3 files changed, 29 insertions(+), 11 deletions(-)
+
+diff --git a/lib/util/regress/atofoo/atofoo_test.c b/lib/util/regress/atofoo/atofoo_test.c
+index 031a7ed..fb41c1a 100644
+--- a/lib/util/regress/atofoo/atofoo_test.c
++++ b/lib/util/regress/atofoo/atofoo_test.c
+@@ -26,6 +26,7 @@
+ #else
+ # include "compat/stdbool.h"
+ #endif
++#include <errno.h>
+
+ #include "sudo_compat.h"
+ #include "sudo_util.h"
+@@ -80,15 +81,20 @@ static struct strtoid_data {
+ id_t id;
+ const char *sep;
+ const char *ep;
++ int errnum;
+ } strtoid_data[] = {
+- { "0,1", 0, ",", "," },
+- { "10", 10, NULL, NULL },
+- { "-2", -2, NULL, NULL },
++ { "0,1", 0, ",", ",", 0 },
++ { "10", 10, NULL, NULL, 0 },
++ { "-1", 0, NULL, NULL, EINVAL },
++ { "4294967295", 0, NULL, NULL, EINVAL },
++ { "4294967296", 0, NULL, NULL, ERANGE },
++ { "-2147483649", 0, NULL, NULL, ERANGE },
++ { "-2", -2, NULL, NULL, 0 },
+ #if SIZEOF_ID_T != SIZEOF_LONG_LONG
+- { "-2", (id_t)4294967294U, NULL, NULL },
++ { "-2", (id_t)4294967294U, NULL, NULL, 0 },
+ #endif
+- { "4294967294", (id_t)4294967294U, NULL, NULL },
+- { NULL, 0, NULL, NULL }
++ { "4294967294", (id_t)4294967294U, NULL, NULL, 0 },
++ { NULL, 0, NULL, NULL, 0 }
+ };
+
+ static int
+@@ -104,11 +110,23 @@ test_strtoid(int *ntests)
+ (*ntests)++;
+ errstr = "some error";
+ value = sudo_strtoid(d->idstr, d->sep, &ep, &errstr);
+- if (errstr != NULL) {
+- if (d->id != (id_t)-1) {
+- sudo_warnx_nodebug("FAIL: %s: %s", d->idstr, errstr);
++ if (d->errnum != 0) {
++ if (errstr == NULL) {
++ sudo_warnx_nodebug("FAIL: %s: missing errstr for errno %d",
++ d->idstr, d->errnum);
++ errors++;
++ } else if (value != 0) {
++ sudo_warnx_nodebug("FAIL: %s should return 0 on error",
++ d->idstr);
++ errors++;
++ } else if (errno != d->errnum) {
++ sudo_warnx_nodebug("FAIL: %s: errno mismatch, %d != %d",
++ d->idstr, errno, d->errnum);
+ errors++;
+ }
++ } else if (errstr != NULL) {
++ sudo_warnx_nodebug("FAIL: %s: %s", d->idstr, errstr);
++ errors++;
+ } else if (value != d->id) {
+ sudo_warnx_nodebug("FAIL: %s != %u", d->idstr, (unsigned int)d->id);
+ errors++;
+diff --git a/plugins/sudoers/regress/testsudoers/test5.out.ok b/plugins/sudoers/regress/testsudoers/test5.out.ok
+index 5e319c9..cecf700 100644
+--- a/plugins/sudoers/regress/testsudoers/test5.out.ok
++++ b/plugins/sudoers/regress/testsudoers/test5.out.ok
+@@ -4,7 +4,7 @@ Parse error in sudoers near line 1.
+ Entries for user root:
+
+ Command unmatched
+-testsudoers: test5.inc should be owned by gid 4294967295
++testsudoers: test5.inc should be owned by gid 4294967294
+ Parse error in sudoers near line 1.
+
+ Entries for user root:
+diff --git a/plugins/sudoers/regress/testsudoers/test5.sh b/plugins/sudoers/regress/testsudoers/test5.sh
+index 9e690a6..94d585c 100755
+--- a/plugins/sudoers/regress/testsudoers/test5.sh
++++ b/plugins/sudoers/regress/testsudoers/test5.sh
+@@ -24,7 +24,7 @@ EOF
+
+ # Test group writable
+ chmod 664 $TESTFILE
+-./testsudoers -U $MYUID -G -1 root id <<EOF
++./testsudoers -U $MYUID -G -2 root id <<EOF
+ #include $TESTFILE
+ EOF
+
+--
+2.7.4
+
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb b/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb
index 9d2d6bd42..0a11a1b28 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb
@@ -1,8 +1,10 @@
require sudo.inc
-SRC_URI = "http://www.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
+SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
file://0001-Include-sys-types.h-for-id_t-definition.patch \
+ file://CVE-2019-14287-1.patch \
+ file://CVE-2019-14287-2.patch \
"
PAM_SRC_URI = "file://sudo.pam"
diff --git a/poky/meta/recipes-extended/sysstat/sysstat.inc b/poky/meta/recipes-extended/sysstat/sysstat.inc
index 5a7d2114c..77cc6f2cf 100644
--- a/poky/meta/recipes-extended/sysstat/sysstat.inc
+++ b/poky/meta/recipes-extended/sysstat/sysstat.inc
@@ -10,14 +10,13 @@ SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/${BP}.tar.xz \
"
UPSTREAM_CHECK_URI = "http://sebastien.godard.pagesperso-orange.fr/download.html"
-UPSTREAM_VERSION_UNKNOWN = "1"
DEPENDS += "base-passwd"
# autotools-brokensep as this package doesn't use automake
inherit autotools-brokensep gettext systemd upstream-version-is-even
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[lm-sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors"
PACKAGECONFIG[cron] = "--enable-install-cron --enable-copy-only,--disable-install-cron --disable-copy-only"
PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}"
@@ -46,10 +45,12 @@ do_install() {
echo "d ${localstatedir}/log/sa - - - -" \
> ${D}${sysconfdir}/tmpfiles.d/sysstat.conf
- if ${@bb.utils.contains('PACKAGECONFIG', 'cron', 'false', 'true', d)}; then
+ # Unless both cron and systemd are enabled, install our own
+ # systemd unit file. Otherwise the package will install one.
+ if ${@bb.utils.contains('PACKAGECONFIG', 'cron systemd', 'false', 'true', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/sysstat.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@LIBDIR@#${libdir}#g' ${D}${systemd_unitdir}/system/sysstat.service
+ sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/sysstat.service
fi
fi
}
@@ -62,6 +63,6 @@ pkg_postinst_${PN} () {
fi
}
-FILES_${PN} += "${libdir}/sa ${systemd_system_unitdir}"
+FILES_${PN} += "${systemd_system_unitdir}"
TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/poky/meta/recipes-extended/sysstat/sysstat/0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch b/poky/meta/recipes-extended/sysstat/sysstat/0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch
new file mode 100644
index 000000000..46b111806
--- /dev/null
+++ b/poky/meta/recipes-extended/sysstat/sysstat/0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch
@@ -0,0 +1,46 @@
+From 603ae4ed8cd65abf0776ef7f68354a5c24a3411c Mon Sep 17 00:00:00 2001
+From: Sebastien GODARD <sysstat@users.noreply.github.com>
+Date: Tue, 15 Oct 2019 14:39:33 +0800
+Subject: [PATCH] Fix #232: Memory corruption bug due to Integer Overflow in
+ remap_struct()
+
+Try to avoid integer overflow when reading a corrupted binary datafile
+with sadf.
+
+Upstream-Status: Backport [https://github.com/sysstat/sysstat/commit/83fad9c895d1ac13f76af5883b7451b3302beef5]
+CVE: CVE-2019-16167
+
+Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ sa_common.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/sa_common.c b/sa_common.c
+index 395c11c..cfa9007 100644
+--- a/sa_common.c
++++ b/sa_common.c
+@@ -1336,7 +1336,8 @@ int remap_struct(unsigned int gtypes_nr[], unsigned int ftypes_nr[],
+ /* Remap [unsigned] int fields */
+ d = gtypes_nr[1] - ftypes_nr[1];
+ if (d) {
+- if (ftypes_nr[1] * UL_ALIGNMENT_WIDTH < ftypes_nr[1])
++ if (gtypes_nr[0] * ULL_ALIGNMENT_WIDTH +
++ ftypes_nr[1] * UL_ALIGNMENT_WIDTH < ftypes_nr[1])
+ /* Overflow */
+ return -1;
+
+@@ -1365,7 +1366,9 @@ int remap_struct(unsigned int gtypes_nr[], unsigned int ftypes_nr[],
+ /* Remap possible fields (like strings of chars) following int fields */
+ d = gtypes_nr[2] - ftypes_nr[2];
+ if (d) {
+- if (ftypes_nr[2] * U_ALIGNMENT_WIDTH < ftypes_nr[2])
++ if (gtypes_nr[0] * ULL_ALIGNMENT_WIDTH +
++ gtypes_nr[1] * UL_ALIGNMENT_WIDTH +
++ ftypes_nr[2] * U_ALIGNMENT_WIDTH < ftypes_nr[2])
+ /* Overflow */
+ return -1;
+
+--
+1.9.1
+
diff --git a/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service b/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service
index aff07109f..ca46befb9 100644
--- a/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service
+++ b/poky/meta/recipes-extended/sysstat/sysstat/sysstat.service
@@ -5,7 +5,7 @@ Description=Resets System Activity Logs
Type=oneshot
RemainAfterExit=yes
User=root
-ExecStart=@LIBDIR@/sa/sa1 --boot
+ExecStart=@LIBEXECDIR@/sa/sa1 --boot
[Install]
WantedBy=multi-user.target
diff --git a/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb b/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb
index 8cf8c36d9..362888d50 100644
--- a/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb
+++ b/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb
@@ -2,7 +2,9 @@ require sysstat.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
-SRC_URI += "file://0001-Include-needed-headers-explicitly.patch"
+SRC_URI += "file://0001-Include-needed-headers-explicitly.patch \
+ file://0001-Fix-232-Memory-corruption-bug-due-to-Integer-Overflo.patch \
+"
SRC_URI[md5sum] = "d8e3bbb9c873dd370f6d33664e326570"
SRC_URI[sha256sum] = "f752f3c406153a6fc446496f1102872505ace3f0931d975c1d664c81ec09f129"
diff --git a/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb b/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
index 8e4663819..7788b5f3c 100644
--- a/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
+++ b/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
@@ -28,7 +28,7 @@ SRC_URI[sha256sum] = "d798b08af8a8e2063ddde6c9fa3398ca81484f27dec642c5627ffcaa0d
UPSTREAM_CHECK_REGEX = "xdg-utils-(?P<pver>((\d+[\.\-_]*)+)((rc|alpha|beta)\d+)?)\.(tar\.gz|tgz)"
# Needs brokensep as this doesn't use automake
-inherit autotools-brokensep distro_features_check
+inherit autotools-brokensep features_check
# The xprop requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb
index f5f086391..cebd55dc8 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.34.1.bb
@@ -1,4 +1,5 @@
SUMMARY = "WebKit based web browser for GNOME"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
@@ -7,7 +8,7 @@ DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \
glib-2.0 glib-2.0-native json-glib libdazzle"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gsettings distro_features_check upstream-version-is-even gettext
+inherit gnomebase gsettings features_check upstream-version-is-even gettext
REQUIRED_DISTRO_FEATURES = "x11 opengl"
SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
diff --git a/poky/meta/recipes-gnome/gcr/gcr_3.28.1.bb b/poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb
index 2299199c3..e3e899963 100644
--- a/poky/meta/recipes-gnome/gcr/gcr_3.28.1.bb
+++ b/poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb
@@ -1,19 +1,22 @@
SUMMARY = "A library for bits of crypto UI and parsing etc"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \
+accessing key stores. It also provides the viewer for crypto files on the \
+GNOME desktop."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
-DEPENDS = "intltool-native gtk+3 p11-kit glib-2.0 libgcrypt \
+DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
-inherit gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection
+inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext
# depends on gtk+3, but also x11 through gtk+-x11
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI[archive.md5sum] = "afd88cacfd54c1ac5b3e0eb35e3aa674"
-SRC_URI[archive.sha256sum] = "95204aa2111c301778ebfbe60975ce3ed698c958430ffcc2a785ac5e593d168b"
+SRC_URI[archive.md5sum] = "4af28919fb1dd36d93603e8230283b6f"
+SRC_URI[archive.sha256sum] = "29df50974a90987af694c0fb8926a6b366e68cacd8abd813817cfe1eb5d54524"
FILES_${PN} += " \
${datadir}/dbus-1 \
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb
index 0f3a63d89..c99510609 100644
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb
@@ -1,6 +1,9 @@
SUMMARY = "Image loading library for GTK+"
-HOMEPAGE = "http://www.gtk.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+DESCRIPTION = "The GDK Pixbuf library provides: Image loading and saving \
+facilities, fast scaling and compositing of pixbufs and Simple animation \
+loading (ie. animated GIFs)"
+HOMEPAGE = "https://wiki.gnome.org/Projects/GdkPixbuf"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/issues"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
index 4a9836331..a062aa63d 100644
--- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
+++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
@@ -19,7 +19,7 @@ index 4a84501..52dbb8e 100644
+++ b/configure.ac
@@ -3,7 +3,6 @@ AC_PREREQ(2.53)
- AC_INIT([adwaita-icon-theme], [3.32.0],
+ AC_INIT([adwaita-icon-theme], [3.34.0],
[http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme])
-AC_CANONICAL_HOST
AC_CONFIG_MACRO_DIR([m4])
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.32.0.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.0.bb
index 02676f440..3f6b60fbd 100644
--- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.32.0.bb
+++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.0.bb
@@ -1,6 +1,6 @@
SUMMARY = "GTK+ icon theme"
-HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/adwaita-icon-theme/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues"
SECTION = "x11/gnome"
LICENSE = "LGPL-3.0 | CC-BY-SA-3.0"
@@ -14,8 +14,8 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
file://0001-Run-installation-commands-as-shell-jobs.patch \
"
-SRC_URI[md5sum] = "4b16278cfed860a86c8221de62eec151"
-SRC_URI[sha256sum] = "698db6e407bb987baec736c6a30216dfc0317e3ca2403c7adf3a5aa46c193286"
+SRC_URI[md5sum] = "41b860c17efe065849b0cbf46e88811a"
+SRC_URI[sha256sum] = "40b7e91f8263552b64d0f9beff33150291b086618ce498c71bf10035e48c7c7f"
DEPENDS += "librsvg-native"
diff --git a/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb
index e6742f37d..b8466d483 100644
--- a/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb
+++ b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb
@@ -1,4 +1,7 @@
SUMMARY = "GNOME configuration system"
+DESCRIPTION = "GConf is a system for storing application preferences. \
+It is intended for user preferences; not configuration of something like \
+Apache, or arbitrary data storage."
SECTION = "x11/gnome"
HOMEPAGE = "https://projects.gnome.org/gconf/"
LICENSE = "LGPLv2+"
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb
index c925115fb..a9739cc55 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb
@@ -1,6 +1,10 @@
SUMMARY = "Middleware layer between GObject-using C libraries and language bindings"
+DESCRIPTION = "GObject Introspection is a project for providing machine \
+readable introspection data of the API of C libraries. This introspection \
+data can be used in several different use cases, for example automatic code \
+generation for bindings, API verification and documentation generation."
HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gobject-introspection/issues"
SECTION = "libs"
LICENSE = "LGPLv2+ & GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
@@ -92,7 +96,7 @@ EOF
# Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files
# for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use
- # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
+ # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
# from the target sysroot.
cat > ${B}/g-ir-scanner-wrapper << EOF
#!/bin/sh
@@ -132,7 +136,7 @@ do_compile_prepend() {
export GIR_EXTRA_LIBS_PATH=$B/.libs
}
-# Our wrappers need to be available system-wide, because they will be used
+# Our wrappers need to be available system-wide, because they will be used
# to build introspection files for all other gobject-based packages
do_install_append_class-target() {
install -d ${D}${bindir}/
diff --git a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb
deleted file mode 100644
index 859f70466..000000000
--- a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "GNOME desktop-wide GSettings schemas"
-HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "glib-2.0"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
-
-SRC_URI[archive.md5sum] = "0c2d468a482c12594757442c983aa8ea"
-SRC_URI[archive.sha256sum] = "2d59b4b3a548859dfae46314ee4666787a00d5c82db382e97df7aa9d0e310a35"
-SRC_URI += "file://0001-Do-not-skip-gir-installation-for-cross-compiling.patch"
diff --git a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb
new file mode 100644
index 000000000..eea578bb6
--- /dev/null
+++ b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "GNOME desktop-wide GSettings schemas"
+DESCRIPTION = "GSettings desktop-wide schemas contains a collection of \
+GSettings schemas for settings shared by various components of a desktop."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/issues"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "9759ef53fb2e53fc8d19190e58f2c332"
+SRC_URI[archive.sha256sum] = "288b04260f7040b0e004a8d59c773cfb4e32df4f1b4a0f9d705c51afccc95ead"
+SRC_URI += "file://0001-Do-not-skip-gir-installation-for-cross-compiling.patch"
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
index dc6768c4e..e1f1e0db3 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -10,7 +10,7 @@ DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \
LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
-inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check gobject-introspection
+inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb b/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
index fb8033448..aad7eff25 100644
--- a/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
+++ b/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
@@ -1,5 +1,7 @@
SUMMARY = "Default icon theme that all icon themes automatically inherit from"
-HOMEPAGE = "http://icon-theme.freedesktop.org/wiki/HicolorTheme"
+DESCRIPTION = "The hicolor-icon-theme package contains a default fallback \
+theme for implementations of the icon theme specification."
+HOMEPAGE = "https://www.freedesktop.org/wiki/Software/icon-theme"
BUGTRACKER = "https://bugs.freedesktop.org/"
LICENSE = "GPLv2"
diff --git a/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb b/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb
index 1c663f93e..5143d73ed 100644
--- a/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb
+++ b/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb
@@ -3,7 +3,8 @@ DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\
data structures, using a DOM-like API. JSON-GLib also offers GObject \
integration, providing the ability to serialize and deserialize GObject \
instances to and from JSON data types."
-HOMEPAGE = "http://live.gnome.org/JsonGlib"
+HOMEPAGE = "https://wiki.gnome.org/Projects/JsonGlib"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/json-glib/issues"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
diff --git a/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb b/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb
index cf61ed501..1c8b2c86e 100644
--- a/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb
+++ b/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb
@@ -1,9 +1,14 @@
SUMMARY = "The libdazzle library is a companion library to GObject and Gtk+."
+DESCRIPTION = "A wide range of components from utilities for GIO, widgets for \
+GTK+, an animation framework, state machines, paneling and high-performance \
+counters are included."
LICENSE = "GPLv3+"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/libdazzle"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libdazzle/issues"
LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase upstream-version-is-even vala distro_features_check gobject-introspection
+inherit gnomebase upstream-version-is-even vala features_check gobject-introspection
DEPENDS = "glib-2.0-native glib-2.0 gtk+3"
diff --git a/poky/meta/recipes-gnome/libgudev/libgudev_233.bb b/poky/meta/recipes-gnome/libgudev/libgudev_233.bb
index a9f6bdd65..8bc379ff6 100644
--- a/poky/meta/recipes-gnome/libgudev/libgudev_233.bb
+++ b/poky/meta/recipes-gnome/libgudev/libgudev_233.bb
@@ -1,5 +1,10 @@
SUMMARY = "GObject wrapper for libudev"
+DESCRIPTION = "This library makes it much simpler to use libudev from programs \
+already using GObject. It also makes it possible to easily use libudev from \
+other programming languages, such as Javascript, because of GObject \
+introspection support."
HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues"
SRC_URI[archive.sha256sum] = "587c4970eb23f4e2deee2cb1fb7838c94a78c578f41ce12cac0a3f4a80dabb03"
SRC_URI[archive.md5sum] = "d59a317a40aaa02a2226056c0bb4d3e1"
diff --git a/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb b/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb
index 1c9084d91..0306b04f4 100644
--- a/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb
+++ b/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb
@@ -1,12 +1,13 @@
SUMMARY = "Library for sending desktop notifications to a notification daemon"
-HOMEPAGE = "http://www.gnome.org"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues"
SECTION = "libs"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
DEPENDS = "dbus gtk+3 glib-2.0"
-inherit gnomebase gtk-doc distro_features_check gobject-introspection
+inherit gnomebase gtk-doc features_check gobject-introspection
# depends on gtk+3
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb
index 6a798e6a9..7f98127fd 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb
+++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb
@@ -1,6 +1,10 @@
SUMMARY = "Library for rendering SVG files"
-HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \
+associated with the GNOME Project. It renders SVG files to Cairo surfaces. \
+Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \
+the screen or to generate output for printing."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues"
RECIPE_NO_UPDATE_REASON = "Versions from 2.41.0 requires Rust compiler to build it"
diff --git a/poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb b/poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb
index 0d7607523..3da2a4aca 100644
--- a/poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb
+++ b/poky/meta/recipes-gnome/libsecret/libsecret_0.19.1.bb
@@ -1,5 +1,10 @@
SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets"
+DESCRIPTION = "A GObject-based library for accessing the Secret Service API of \
+the freedesktop.org project, a cross-desktop effort to access passwords, \
+tokens and other types of secrets. libsecret provides a convenient wrapper \
+for these methods so consumers do not have to call the low-level DBus methods."
LICENSE = "LGPLv2.1"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues"
LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
inherit gnomebase gtk-doc vala gobject-introspection manpages
diff --git a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
index f32e9ba1b..e3de3f616 100644
--- a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
@@ -10,12 +10,12 @@ HOMEPAGE = "http://cairographics.org"
BUGTRACKER = "http://bugs.freedesktop.org"
SECTION = "libs"
-LICENSE = "MPL-1.1 & LGPLv2.1 & GPLv3+"
-LICENSE_${PN} = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-dev = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-doc = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-gobject = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-script-interpreter = "MPL-1.1 & LGPLv2.1"
+LICENSE = "(MPL-1.1 | LGPLv2.1) & GPLv3+"
+LICENSE_${PN} = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-dev = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-doc = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-gobject = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-script-interpreter = "MPL-1.1 | LGPLv2.1"
LICENSE_${PN}-perf-utils = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77"
diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0.inc b/poky/meta/recipes-graphics/clutter/clutter-1.0.inc
index 6dbbf4d80..5dc45ebf2 100644
--- a/poky/meta/recipes-graphics/clutter/clutter-1.0.inc
+++ b/poky/meta/recipes-graphics/clutter/clutter-1.0.inc
@@ -1,8 +1,11 @@
SUMMARY = "Graphics library for creating hardware-accelerated user interfaces"
+DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \
+designed for creating fast, mainly 2D single window applications such as media \
+box UIs, presentations, kiosk style applications and so on."
HOMEPAGE = "http://www.clutter-project.org/"
LICENSE = "LGPLv2.1+"
-inherit clutter ptest-gnome distro_features_check upstream-version-is-even gobject-introspection
+inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection
# depends on cogl-1.0 which needs opengl
REQUIRED_DISTRO_FEATURES ?= "opengl"
diff --git a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc b/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
index 4c877982b..fc3eade88 100644
--- a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
+++ b/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
@@ -2,7 +2,7 @@ SUMMARY = "GStreamer integration library for Clutter"
HOMEPAGE = "http://www.clutter-project.org/"
LICENSE = "LGPLv2+"
-inherit clutter distro_features_check upstream-version-is-even gobject-introspection
+inherit clutter features_check upstream-version-is-even gobject-introspection
# depends on clutter-1.0 which depends on cogl-1.0
REQUIRED_DISTRO_FEATURES ?= "opengl"
diff --git a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc b/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
index 11826a6f0..7bf227855 100644
--- a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
+++ b/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.clutter-project.org/"
LICENSE = "LGPLv2+"
CLUTTERBASEBUILDCLASS = "meson"
-inherit clutter distro_features_check upstream-version-is-even gobject-introspection gtk-doc
+inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc
# depends on clutter-1.0 which depends on cogl-1.0
REQUIRED_DISTRO_FEATURES ?= "opengl"
diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0.inc b/poky/meta/recipes-graphics/cogl/cogl-1.0.inc
index 443616316..d8d06651d 100644
--- a/poky/meta/recipes-graphics/cogl/cogl-1.0.inc
+++ b/poky/meta/recipes-graphics/cogl/cogl-1.0.inc
@@ -1,8 +1,12 @@
SUMMARY = "Modern 3D graphics API with associated utility APIs"
+DESCRIPTION = "Cogl is a small open source library for using 3D graphics \
+hardware for rendering. The API departs from the flat state machine style of \
+OpenGL and is designed to make it easy to write orthogonal components that \
+can render without stepping on each others toes."
HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl"
LICENSE = "MIT"
-inherit clutter distro_features_check upstream-version-is-even gobject-introspection
+inherit clutter features_check upstream-version-is-even gobject-introspection
# cogl-1.0 needs opengl to build
REQUIRED_DISTRO_FEATURES ?= "opengl"
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.99.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb
index fa3eb08f4..485942567 100644
--- a/poky/meta/recipes-graphics/drm/libdrm_2.4.99.bb
+++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb
@@ -12,8 +12,8 @@ DEPENDS = "libpthread-stubs"
SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \
file://musl-ioctl.patch"
-SRC_URI[md5sum] = "72539626815b35159a63d45bc4c14ee6"
-SRC_URI[sha256sum] = "4dbf539c7ed25dbb2055090b77ab87508fc46be39a9379d15fed4b5517e1da5e"
+SRC_URI[md5sum] = "f47bc87e28198ba527e6b44ffdd62f65"
+SRC_URI[sha256sum] = "c77cc828186c9ceec3e56ae202b43ee99eb932b4a87255038a80e8a1060d0a5d"
inherit meson pkgconfig manpages
diff --git a/poky/meta/recipes-graphics/glew/glew_2.1.0.bb b/poky/meta/recipes-graphics/glew/glew_2.1.0.bb
index 18e6909aa..f6f43406f 100644
--- a/poky/meta/recipes-graphics/glew/glew_2.1.0.bb
+++ b/poky/meta/recipes-graphics/glew/glew_2.1.0.bb
@@ -15,7 +15,7 @@ SRC_URI[sha256sum] = "04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/glew/files/glew"
UPSTREAM_CHECK_REGEX = "/glew/(?P<pver>(\d+[\.\-_]*)+)/"
-inherit lib_package pkgconfig distro_features_check
+inherit lib_package pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.1.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb
index 99cd4cd70..ee08c12be 100644
--- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.1.bb
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e11f5c3149cdec4bb309babb020b32b9 \
file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc"
SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.xz"
-SRC_URI[md5sum] = "89b758a2eb14d56a94406cf914b62388"
-SRC_URI[sha256sum] = "c651fb3faaa338aeb280726837c2384064cdc17ef40539228d88a1260960844f"
+SRC_URI[md5sum] = "2b3a4dfdb3e5e50055f941978944da9f"
+SRC_URI[sha256sum] = "9413b8d96132d699687ef914ebb8c50440efc87b3f775d25856d7ec347c03c12"
inherit autotools pkgconfig lib_package gtk-doc
@@ -21,7 +21,7 @@ PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0"
PACKAGECONFIG[graphite] = "--with-graphite2,--without-graphite2,graphite2"
PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu"
-PACKAGES =+ "${PN}-icu ${PN}-icu-dev"
+PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
LEAD_SONAME = "libharfbuzz.so"
@@ -36,5 +36,6 @@ FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
${libdir}/libharfbuzz-icu.so \
${libdir}/pkgconfig/harfbuzz-icu.pc \
"
+FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/images/core-image-weston.bb b/poky/meta/recipes-graphics/images/core-image-weston.bb
index e36655ffc..f5102e198 100644
--- a/poky/meta/recipes-graphics/images/core-image-weston.bb
+++ b/poky/meta/recipes-graphics/images/core-image-weston.bb
@@ -4,7 +4,7 @@ IMAGE_FEATURES += "splash package-management ssh-server-dropbear hwcodecs"
LICENSE = "MIT"
-inherit core-image distro_features_check
+inherit core-image features_check
REQUIRED_DISTRO_FEATURES = "wayland"
diff --git a/poky/meta/recipes-graphics/images/core-image-x11.bb b/poky/meta/recipes-graphics/images/core-image-x11.bb
index cd5374949..52407759f 100644
--- a/poky/meta/recipes-graphics/images/core-image-x11.bb
+++ b/poky/meta/recipes-graphics/images/core-image-x11.bb
@@ -4,7 +4,7 @@ IMAGE_FEATURES += "splash package-management x11-base"
LICENSE = "MIT"
-inherit core-image distro_features_check
+inherit core-image features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index 2b6837fef..82720045b 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -13,7 +13,7 @@ UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
-inherit meson pkgconfig distro_features_check
+inherit meson pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
index 825453ab2..71a2c9135 100644
--- a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
+++ b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
@@ -1,4 +1,8 @@
SUMMARY = "OpenGL function pointer management library"
+DESCRIPTION = "It hides the complexity of dlopen(), dlsym(), \
+glXGetProcAddress(), eglGetProcAddress(), etc. from the app developer, with \
+very little knowledge needed on their part. They get to read GL specs and \
+write code using undecorated function names like glCompileShader()."
HOMEPAGE = "https://github.com/anholt/libepoxy/"
SECTION = "libs"
@@ -11,7 +15,7 @@ SRC_URI[md5sum] = "e2845de8d2782b2d31c01ae8d7cd4cbb"
SRC_URI[sha256sum] = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d"
UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases"
-inherit meson pkgconfig distro_features_check
+inherit meson pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
REQUIRED_DISTRO_FEATURES_class-native = ""
diff --git a/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb b/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb
index 4b803dbae..ab6f5ac9e 100644
--- a/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb
+++ b/poky/meta/recipes-graphics/libfakekey/libfakekey_git.bb
@@ -17,7 +17,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN}"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig gettext distro_features_check
+inherit autotools pkgconfig gettext features_check
# The libxtst requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb b/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
index ce45e4814..1a3167797 100644
--- a/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
+++ b/poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
@@ -1,4 +1,8 @@
SUMMARY = "Matchbox window manager core library"
+DESCRIPTION = "Matchbox is an Open Source base environment for the X Window \
+System running on non-desktop embedded platforms such as handhelds, set-top \
+boxes, kiosks and anything else for which screen space, input mechanisms or \
+system resources are limited."
SECTION = "x11/libs"
HOMEPAGE = "http://matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.com/"
@@ -17,7 +21,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN}"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch
new file mode 100644
index 000000000..674decccb
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch
@@ -0,0 +1,34 @@
+From 85138c1ec673e05263ae666baf61f79384daf7e0 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: Backport
+[https://hg.libsdl.org/SDL/rev/e7ba650a643a]
+
+CVE: CVE-2019-13616
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ 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 0b68918..a06b0c9 100644
+--- a/src/video/SDL_bmp.c
++++ b/src/video/SDL_bmp.c
+@@ -226,6 +226,11 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
+ SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR);
+ }
+ }
++ 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.7.4
+
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch
new file mode 100644
index 000000000..b383bd654
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch
@@ -0,0 +1,53 @@
+# HG changeset patch
+# User Anuj Mittal <am.devel@gmail.com>
+# Date 1573631462 -10800
+# Node ID 1fb1880d5edfc7c5a370846e13f90b260263627c
+# Parent 007002587d5d34d781c2b628c05e992e0ac5f52d
+configure: check for build dir when building version res (fix bug #4858)
+Fixes a race where we try to build version res file in build directory
+before it has even been created. Prevents errors like:
+
+/bin/bash ../SDL2-2.0.10/build-scripts/updaterev.sh
+/bin/bash ../SDL2-2.0.10/build-scripts/mkinstalldirs build
+mkdir -p -- build
+x86_64-pokysdk-mingw32-windres --include-dir=/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/x86_64-nativesdk-mingw32-pokysdk-mingw32/nativesdk-libsdl2/2.0.10-r0/recipe-sysroot/opt/poky/3.0/sysroots/x86_64-pokysdk-mingw32/usr/include ../SDL2-2.0.10/src/main/windows/version.rc build/version.o
+x86_64-pokysdk-mingw32-windres: build/version.o: No such file or directory
+Makefile:692: recipe for target 'build/version.o' failed
+make: *** [build/version.o] Error 1
+make: *** Waiting for unfinished jobs....
+touch build/.created
+WARNING: exit code 1 from a shell command.
+
+Extension of fix:
+https://hg.libsdl.org/SDL/rev/99d8b18acf8a
+
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <am.devel@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff -r 007002587d5d -r 1fb1880d5edf configure
+--- a/configure Tue Nov 12 17:24:37 2019 -0500
++++ b/configure Wed Nov 13 10:51:02 2019 +0300
+@@ -25493,7 +25493,7 @@
+ VERSION_DEPENDS=`echo $VERSION_SOURCES`
+ VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[^ ]*/\([^ ]*\)\.rc,$(objects)/\1.o,g'`
+ VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([^ ]*\\)/\\([^ ]*\\)\\.rc,\\\\
+-\\$(objects)/\\2.o: \\1/\\2.rc\\\\
++\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\
+ \\$(WINDRES) \\$< \\$@,g"`
+
+ SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
+diff -r 007002587d5d -r 1fb1880d5edf configure.ac
+--- a/configure.ac Tue Nov 12 17:24:37 2019 -0500
++++ b/configure.ac Wed Nov 13 10:51:02 2019 +0300
+@@ -4177,7 +4177,7 @@
+ VERSION_DEPENDS=`echo $VERSION_SOURCES`
+ VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
+ VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
+-\\$(objects)/\\2.o: \\1/\\2.rc\\\\
++\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\
+ \\$(WINDRES) \\$< \\$@,g"`
+
+ SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch
new file mode 100644
index 000000000..8f5b6a0ce
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch
@@ -0,0 +1,41 @@
+# HG changeset patch
+# User Sylvain Becker <sylvain.becker@gmail.com>
+# Date 1570898876 -7200
+# Sat Oct 12 18:47:56 2019 +0200
+# Node ID 369b01006eb2f6fd563f7c315d29ae3fe503c432
+# Parent 4cbaffd0083b8cd17070dbd9d4ab1ce0fa9fca2d
+Fixed bug 4797 - SDL fails to compile with Mesa Master (thanks Michael Olbrich!)
+
+fix building with Mesa 19.2
+
+With Mesa 19.2 building fails with:
+
+/include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr'
+
+The same type is defined in include/SDL_opengl.h for OpenGL and the two
+headers should not be included at the same time.
+This was just never noticed because the same header guard '__gl_h_' was
+used. This was changed in Mesa. The result is this error.
+
+Fix this the same way GLES2 already handles this: Don't include the GLES
+header when the OpenGL header was already included.
+(https://hg.libsdl.org/SDL/rev/a60b3c292f0f)
+
+Upstream-Status: Backport [https://hg.libsdl.org/SDL/rev/369b01006eb2]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+
+diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
+--- a/src/video/SDL_video.c
++++ b/src/video/SDL_video.c
+@@ -37,9 +37,9 @@
+ #include "SDL_opengl.h"
+ #endif /* SDL_VIDEO_OPENGL */
+
+-#if SDL_VIDEO_OPENGL_ES
++#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL
+ #include "SDL_opengles.h"
+-#endif /* SDL_VIDEO_OPENGL_ES */
++#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */
+
+ /* GL and GLES2 headers conflict on Linux 32 bits */
+ #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb
index 3a0654b86..ac4a35604 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb
@@ -14,6 +14,9 @@ PROVIDES = "virtual/libsdl2"
SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
file://more-gen-depends.patch \
+ file://0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch \
+ file://0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch \
+ file://0001-configure-check-for-build-dir-when-building-version-.patch \
"
S = "${WORKDIR}/SDL2-${PV}"
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb
index fc013d75c..f68d0cf8b 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb
@@ -25,7 +25,7 @@ UPSTREAM_CHECK_URI = "https://github.com/intel/libva-utils/releases"
DEPENDS = "libva"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on libva which requires opengl
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/libva/libva_2.5.0.bb b/poky/meta/recipes-graphics/libva/libva_2.5.0.bb
index e75648b2b..73e2e01c3 100644
--- a/poky/meta/recipes-graphics/libva/libva_2.5.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva_2.5.0.bb
@@ -26,7 +26,7 @@ UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases"
DEPENDS = "libdrm virtual/mesa"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb b/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
index cbaf05436..57a3024ea 100644
--- a/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
+++ b/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
@@ -1,4 +1,5 @@
SUMMARY = "Custom Matchbox session files"
+DESCRIPTION = "Very simple session manager for matchbox tools"
HOMEPAGE = "http://www.matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
diff --git a/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb b/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
index 815a75f36..b9961c398 100644
--- a/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
+++ b/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
@@ -17,7 +17,7 @@ SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager \
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
index 9fba5da4b..1869e1105 100644
--- a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
@@ -1,8 +1,7 @@
-From ea966884e39aae9571c038fab55f3c1663d17850 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Wed, 12 Jun 2019 13:40:20 -0300
+From b6d9bc97cb0e8c540a45dba5440b036fb940ff95 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 11 Nov 2019 09:38:15 -0800
Subject: [PATCH] meson.build: check for all linux host_os combinations
-Organization: O.S. Systems Software LTDA.
Make sure that we are also looking for our host_os combinations like
linux-musl etc. when assuming support for DRM/KMS.
@@ -14,29 +13,31 @@ Upstream-Status: Pending
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+
---
meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
-index 567a81afd6f..b33b430aed4 100644
+index d584152..a1f098c 100644
--- a/meson.build
+++ b/meson.build
-@@ -107,7 +107,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
+@@ -117,7 +117,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
# Only build shared_glapi if at least one OpenGL API is enabled
with_shared_glapi = get_option('shared-glapi') and with_any_opengl
--system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux'].contains(host_machine.system())
+-system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos'].contains(host_machine.system())
+system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly'].contains(host_machine.system()) or host_machine.system().startswith('linux')
dri_drivers = get_option('dri-drivers')
if dri_drivers.contains('auto')
-@@ -845,7 +845,7 @@ if cc.compiles('int foo(void) __attribute__((__noreturn__));',
+@@ -856,7 +856,7 @@ if cc.compiles('__uint128_t foo(void) { return 0; }',
endif
# TODO: this is very incomplete
-if ['linux', 'cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system())
+if ['cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system()) or host_machine.system().startswith('linux')
pre_args += '-D_GNU_SOURCE'
- endif
-
+ elif host_machine.system() == 'sunos'
+ pre_args += '-D__EXTENSIONS__'
diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
new file mode 100644
index 000000000..199ed572d
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
@@ -0,0 +1,46 @@
+From af6923544de02ded648a736e07b9bd8b7c52dba9 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Wed, 23 Oct 2019 09:46:28 -0700
+Subject: [PATCH] meson.build: make TLS ELF optional
+
+USE_ELF_TLS has replaced GLX_USE_TLS so this patch is the original "make
+TLS GLX optional again" patch updated to the latest mesa.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+
+---
+ meson.build | 2 +-
+ meson_options.txt | 6 ++++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index a1f098c..1e31eb4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -378,7 +378,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
+ endif
+
+ # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
+-if not with_platform_android or get_option('platform-sdk-version') >= 29
++if (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls')
+ pre_args += '-DUSE_ELF_TLS'
+ endif
+
+diff --git a/meson_options.txt b/meson_options.txt
+index b768c15..76cef24 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -333,6 +333,12 @@ option(
+ value : true,
+ description : 'Enable direct rendering in GLX and EGL for DRI',
+ )
++option(
++ 'elf-tls',
++ type : 'boolean',
++ value : true,
++ description : 'Enable TLS support in ELF',
++)
+ option(
+ 'I-love-half-baked-turnips',
+ type : 'boolean',
diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch
deleted file mode 100644
index 641bacf1d..000000000
--- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From cee8e48c5344124e5d84307cb0c48ee0c9b3e684 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Wed, 12 Jun 2019 14:15:57 -0300
-Subject: [PATCH] meson.build: make TLS GLX optional again
-Organization: O.S. Systems Software LTDA.
-
-This was optional with autotools, and needs to be disabled
-when using musl C library, for instance.
-
-Upstream-Status: Pending
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- meson.build | 4 +++-
- meson_options.txt | 7 +++++++
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index b33b430aed4..0e50bb26c0a 100644
---- a/meson.build
-+++ b/meson.build
-@@ -369,7 +369,9 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
- endif
- endif
-
--pre_args += '-DGLX_USE_TLS'
-+if get_option('glx-tls')
-+ pre_args += '-DGLX_USE_TLS'
-+endif
- if with_glx != 'disabled'
- if not (with_platform_x11 and with_any_opengl)
- error('Cannot build GLX support without X11 platform support and at least one OpenGL API')
-diff --git a/meson_options.txt b/meson_options.txt
-index 1f72faabee8..fcd49efea27 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -339,6 +339,13 @@ option(
- value : true,
- description : 'Enable direct rendering in GLX and EGL for DRI',
- )
-+option(
-+ 'glx-tls',
-+ type : 'boolean',
-+ value : true,
-+ description : 'Enable TLS support in GLX',
-+)
-+
- option(
- 'I-love-half-baked-turnips',
- type : 'boolean',
diff --git a/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch b/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
index 3458c1919..c20a1f7c5 100644
--- a/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
@@ -1,34 +1,34 @@
-From f1482e88c2295b9c7288f5b273335a8e18039de8 Mon Sep 17 00:00:00 2001
+From 5ad6515238bc042cccf9959abad44fdee9aeb07f Mon Sep 17 00:00:00 2001
From: Fabio Berton <fabio.berton@ossystems.com.br>
Date: Wed, 12 Jun 2019 14:18:31 -0300
Subject: [PATCH] Allow enable DRI without DRI drivers
-Organization: O.S. Systems Software LTDA.
Upstream-Status: Pending
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+
---
meson.build | 2 +-
meson_options.txt | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 0e50bb26c0a..de065c290d6 100644
+index 1e31eb4..512eec6 100644
--- a/meson.build
+++ b/meson.build
-@@ -137,7 +137,7 @@ with_dri_r200 = dri_drivers.contains('r200')
+@@ -147,7 +147,7 @@ with_dri_r200 = dri_drivers.contains('r200')
with_dri_nouveau = dri_drivers.contains('nouveau')
with_dri_swrast = dri_drivers.contains('swrast')
-with_dri = dri_drivers.length() != 0 and dri_drivers != ['']
-+with_dri = get_option('dri') or (_drivers.length() != 0 and _drivers != [''])
++with_dri = get_option('dri') or (dri_drivers.length() != 0 and dri_drivers != [''])
gallium_drivers = get_option('gallium-drivers')
if gallium_drivers.contains('auto')
diff --git a/meson_options.txt b/meson_options.txt
-index fcd49efea27..0529200b3bb 100644
+index 76cef24..a8abd04 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -34,6 +34,12 @@ option(
diff --git a/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch b/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
new file mode 100644
index 000000000..b5658d0c9
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
@@ -0,0 +1,147 @@
+From 1b1cb6e5ea25eaa98573328b9565728a08245997 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair@alistair23.me>
+Date: Thu, 14 Nov 2019 09:06:02 -0800
+Subject: [PATCH] Revert "mesa: Enable asm unconditionally, now that
+ gen_matypes is gone."
+
+This reverts commit 20294dceebc23236e33b22578245f7e6f41b6997.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Alistair Francis <alistair@alistair23.me>
+
+---
+ meson.build | 94 ++++++++++++++++++++++++++++++-----------------
+ meson_options.txt | 6 +++
+ 2 files changed, 67 insertions(+), 33 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 512eec6..a2bcc3a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -49,6 +49,7 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir')
+ with_tests = get_option('build-tests')
+ with_valgrind = get_option('valgrind')
+ with_libunwind = get_option('libunwind')
++with_asm = get_option('asm')
+ with_glx_read_only_text = get_option('glx-read-only-text')
+ with_glx_direct = get_option('glx-direct')
+ with_osmesa = get_option('osmesa')
+@@ -985,41 +986,68 @@ endif
+
+ # TODO: shared/static? Is this even worth doing?
+
++# When cross compiling we generally need to turn off the use of assembly,
++# because mesa's assembly relies on building an executable for the host system,
++# and running it to get information about struct sizes. There is at least one
++# case of cross compiling where we can use asm, and that's x86_64 -> x86 when
++# host OS == build OS, since in that case the build machine can run the host's
++# binaries.
++if with_asm and meson.is_cross_build()
++ if build_machine.system() != host_machine.system()
++ # TODO: It may be possible to do this with an exe_wrapper (like wine).
++ message('Cross compiling from one OS to another, disabling assembly.')
++ with_asm = false
++ elif not (build_machine.cpu_family().startswith('x86') and host_machine.cpu_family() == 'x86')
++ # FIXME: Gentoo always sets -m32 for x86_64 -> x86 builds, resulting in an
++ # x86 -> x86 cross compile. We use startswith rather than == to handle this
++ # case.
++ # TODO: There may be other cases where the 64 bit version of the
++ # architecture can run 32 bit binaries (aarch64 and armv7 for example)
++ message('''
++ Cross compiling to different architectures, and the host cannot run
++ the build machine's binaries. Disabling assembly.
++ ''')
++ with_asm = false
++ endif
++endif
++
+ with_asm_arch = ''
+-if host_machine.cpu_family() == 'x86'
+- if system_has_kms_drm or host_machine.system() == 'gnu'
+- with_asm_arch = 'x86'
+- pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
+- '-DUSE_SSE_ASM']
+-
+- if with_glx_read_only_text
+- pre_args += ['-DGLX_X86_READONLY_TEXT']
++if with_asm
++ if host_machine.cpu_family() == 'x86'
++ if system_has_kms_drm or host_machine.system() == 'gnu'
++ with_asm_arch = 'x86'
++ pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
++ '-DUSE_SSE_ASM']
++
++ if with_glx_read_only_text
++ pre_args += ['-DGLX_X86_READONLY_TEXT']
++ endif
++ endif
++ elif host_machine.cpu_family() == 'x86_64'
++ if system_has_kms_drm
++ with_asm_arch = 'x86_64'
++ pre_args += ['-DUSE_X86_64_ASM']
++ endif
++ elif host_machine.cpu_family() == 'arm'
++ if system_has_kms_drm
++ with_asm_arch = 'arm'
++ pre_args += ['-DUSE_ARM_ASM']
++ endif
++ elif host_machine.cpu_family() == 'aarch64'
++ if system_has_kms_drm
++ with_asm_arch = 'aarch64'
++ pre_args += ['-DUSE_AARCH64_ASM']
++ endif
++ elif host_machine.cpu_family() == 'sparc64'
++ if system_has_kms_drm
++ with_asm_arch = 'sparc'
++ pre_args += ['-DUSE_SPARC_ASM']
++ endif
++ elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
++ if system_has_kms_drm
++ with_asm_arch = 'ppc64le'
++ pre_args += ['-DUSE_PPC64LE_ASM']
+ endif
+- endif
+-elif host_machine.cpu_family() == 'x86_64'
+- if system_has_kms_drm
+- with_asm_arch = 'x86_64'
+- pre_args += ['-DUSE_X86_64_ASM']
+- endif
+-elif host_machine.cpu_family() == 'arm'
+- if system_has_kms_drm
+- with_asm_arch = 'arm'
+- pre_args += ['-DUSE_ARM_ASM']
+- endif
+-elif host_machine.cpu_family() == 'aarch64'
+- if system_has_kms_drm
+- with_asm_arch = 'aarch64'
+- pre_args += ['-DUSE_AARCH64_ASM']
+- endif
+-elif host_machine.cpu_family() == 'sparc64'
+- if system_has_kms_drm
+- with_asm_arch = 'sparc'
+- pre_args += ['-DUSE_SPARC_ASM']
+- endif
+-elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
+- if system_has_kms_drm
+- with_asm_arch = 'ppc64le'
+- pre_args += ['-DUSE_PPC64LE_ASM']
+ endif
+ endif
+
+diff --git a/meson_options.txt b/meson_options.txt
+index a8abd04..0f4bd80 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -233,6 +233,12 @@ option(
+ value : false,
+ description : 'Enable GLVND support.'
+ )
++option(
++ 'asm',
++ type : 'boolean',
++ value : true,
++ description : 'Build assembly code if possible'
++)
+ option(
+ 'glx-read-only-text',
+ type : 'boolean',
diff --git a/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb b/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb
index 068fb19e2..703f131f7 100644
--- a/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb
+++ b/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb
@@ -21,7 +21,7 @@ S = "${WORKDIR}/glu-${PV}"
DEPENDS = "virtual/libgl"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# Requires libGL.so which is provided by mesa when x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11 opengl"
diff --git a/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb b/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
index 129a47df4..38bdbded2 100644
--- a/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
@@ -22,7 +22,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/demos/${BPN}-${PV}.tar.bz2 \
SRC_URI[md5sum] = "6b65a02622765522176d00f553086fa3"
SRC_URI[sha256sum] = "01e99c94a0184e63e796728af89bfac559795fb2a0d6f506fa900455ca5fff7d"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/egl, virtual/libgl ...
REQUIRED_DISTRO_FEATURES = "opengl x11"
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_19.1.6.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb
index d4b1c1c45..d4b1c1c45 100644
--- a/poky/meta/recipes-graphics/mesa/mesa-gl_19.1.6.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 9e5808ee2..5838207e6 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -10,7 +10,7 @@ HOMEPAGE = "http://mesa3d.org"
BUGTRACKER = "https://bugs.freedesktop.org"
SECTION = "x11"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.html;md5=725f991a1cc322aa7a0cd3a2016621c4"
+LIC_FILES_CHKSUM = "file://docs/license.html;md5=3a4999caf82cc503ac8b9e37c235782e"
PE = "2"
@@ -24,7 +24,7 @@ PROVIDES = " \
virtual/mesa \
"
-inherit meson pkgconfig python3native gettext distro_features_check
+inherit meson pkgconfig python3native gettext features_check
# Unset these to stop python trying to report the target Python setup
_PYTHON_SYSCONFIGDATA_NAME[unexport] = "1"
@@ -57,12 +57,12 @@ PACKAGECONFIG_class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland v
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \
- glx-tls \
+ elf-tls \
"
-PACKAGECONFIG_class-native ?= "gbm dri egl opengl glx-tls"
-PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl glx-tls"
+PACKAGECONFIG_class-native ?= "gbm dri egl opengl elf-tls"
+PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl elf-tls"
-PACKAGECONFIG_remove_libc-musl = "glx-tls"
+PACKAGECONFIG_remove_libc-musl = "elf-tls"
# "gbm" requires "dri", "opengl"
PACKAGECONFIG[gbm] = "-Dgbm=true,-Dgbm=false"
@@ -70,7 +70,7 @@ PACKAGECONFIG[gbm] = "-Dgbm=true,-Dgbm=false"
X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr"
# "x11" requires "opengl"
PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}"
-PACKAGECONFIG[glx-tls] = "-Dglx-tls=true, -Dglx-tls=false"
+PACKAGECONFIG[elf-tls] = "-Delf-tls=true, -Delf-tls=false"
PACKAGECONFIG[xvmc] = "-Dgallium-xvmc=true,-Dgallium-xvmc=false,libxvmc"
PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols"
diff --git a/poky/meta/recipes-graphics/mesa/mesa_19.1.6.bb b/poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb
index 19221e9e2..f4b33df22 100644
--- a/poky/meta/recipes-graphics/mesa/mesa_19.1.6.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb
@@ -2,12 +2,13 @@ require ${BPN}.inc
SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
- file://0002-meson.build-make-TLS-GLX-optional-again.patch \
+ file://0002-meson.build-make-TLS-ELF-optional.patch \
file://0003-Allow-enable-DRI-without-DRI-drivers.patch \
+ file://0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch \
"
-SRC_URI[md5sum] = "7dbb40b8d10e89bee0a5bfc85350647b"
-SRC_URI[sha256sum] = "2a369b7b48545c6486e7e44913ad022daca097c8bd937bf30dcf3f17a94d3496"
+SRC_URI[md5sum] = "5c047732b81651ddb341597528b4b096"
+SRC_URI[sha256sum] = "09000a0f7dbbd82e193b81a8f1bf0c118eab7ca975c0329181968596e548e30f"
UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/mx/mx.inc b/poky/meta/recipes-graphics/mx/mx.inc
index d30483748..714a06f0a 100644
--- a/poky/meta/recipes-graphics/mx/mx.inc
+++ b/poky/meta/recipes-graphics/mx/mx.inc
@@ -1,7 +1,7 @@
SUMMARY = "Clutter based UI widget library"
LICENSE = "LGPLv2.1"
-inherit clutter autotools distro_features_check gobject-introspection gtk-doc
+inherit clutter autotools features_check gobject-introspection gtk-doc
# depends on clutter-1.0 which depends on cogl-1.0
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
index 87c700e02..2e7b47dd4 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
@@ -6,7 +6,7 @@ SUMMARY = "Clutter package groups"
PR = "r6"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on clutter-*
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
index 7ea72d55a..9ca2705a5 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
@@ -2,7 +2,7 @@ SUMMARY = "Basic X11 session"
DESCRIPTION = "Packages required to set up a basic working X11 session"
PR = "r1"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on matchbox-wm
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
index 97dcac5f7..a0b944a67 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
@@ -7,7 +7,7 @@ PR = "r40"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on XSERVER
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
index 001db9e5e..cddf1932f 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
@@ -4,7 +4,7 @@
PR = "r40"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
PACKAGES = "${PN} ${PN}-utils"
diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb
index d489f82b1..696d438c5 100644
--- a/poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -1,4 +1,6 @@
SUMMARY = "OpenGL driver testing framework"
+DESCRIPTION = "Piglit is an open-source test suite for OpenGL and OpenCL \
+implementations."
LICENSE = "MIT & LGPLv2+ & GPLv3 & GPLv2+ & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0"
@@ -19,7 +21,7 @@ X11_RDEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa-demos', '', d)
DEPENDS = "libpng waffle libxkbcommon virtual/libgl python3-mako-native python3-numpy-native python3-six-native virtual/egl"
-inherit cmake pkgconfig python3native distro_features_check bash-completion
+inherit cmake pkgconfig python3native features_check bash-completion
# depends on virtual/libgl
REQUIRED_DISTRO_FEATURES += "opengl"
diff --git a/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb b/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
index cdfe38a22..c3c237eee 100644
--- a/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
+++ b/poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "A clock combined with a game of pong"
LICENSE = "GPLv2+"
DEPENDS = "virtual/libx11 xdmcp xau"
-inherit distro_features_check pkgconfig
+inherit features_check pkgconfig
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
index 6c1b93cd0..a26ab44fa 100644
--- a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
+++ b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
@@ -17,7 +17,7 @@ SECTION = "libs"
DEPENDS = "virtual/libx11 libsm xcb-util"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb
index d2b11c103..4420d84ae 100644
--- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb
@@ -1,4 +1,8 @@
SUMMARY = "VirGL virtual OpenGL renderer"
+DESCRIPTION = "Virgil is a research project to investigate the possibility of \
+creating a virtual 3D GPU for use inside qemu virtual machines, that allows \
+the guest operating system to use the capabilities of the host GPU to \
+accelerate 3D rendering."
HOMEPAGE = "https://virgil3d.github.io/"
LICENSE = "MIT"
@@ -12,7 +16,7 @@ SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb b/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
index d2041d7d4..74dc2ad67 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
@@ -20,7 +20,7 @@ S = "${WORKDIR}/git"
REQUIRED_DISTRO_FEATURES = 'vulkan'
-inherit cmake distro_features_check
+inherit cmake features_check
DEPENDS = "vulkan-loader assimp"
do_install_append () {
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb
index 2fd6c4448..a539c5a3c 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb
@@ -16,7 +16,7 @@ S = "${WORKDIR}/git"
REQUIRED_DISTRO_FEATURES = "vulkan"
-inherit cmake distro_features_check
+inherit cmake features_check
ANY_OF_DISTRO_FEATURES = "x11 wayland"
DEPENDS += "vulkan-headers"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb
index 26cdee3c1..4ac1bafd1 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb
@@ -10,7 +10,7 @@ SRCREV = "3ccd7f6ebae3e1919adf837718c04feb6c2acc61"
S = "${WORKDIR}/git"
-inherit cmake distro_features_check
+inherit cmake features_check
ANY_OF_DISTRO_FEATURES = "x11 wayland"
REQUIRED_DISTRO_FEATURES = "vulkan"
diff --git a/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb b/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb
index 8a1d5748f..52cb1df89 100644
--- a/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb
+++ b/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb
@@ -9,7 +9,7 @@ SRC_URI[sha256sum] = "d9c899f710c50cfdd00f5f4cdfeaef0687d8497362239bdde93bed6c90
UPSTREAM_CHECK_URI = "http://www.waffle-gl.org/releases.html"
-inherit meson distro_features_check lib_package bash-completion
+inherit meson features_check lib_package bash-completion
# This should be overridden per-machine to reflect the capabilities of the GL
# stack.
diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.14.1.bb b/poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb
index 38bc8d2c3..f06a8d28f 100644
--- a/poky/meta/recipes-graphics/wayland/libinput_1.14.1.bb
+++ b/poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb
@@ -1,4 +1,9 @@
SUMMARY = "Library to handle input devices in Wayland compositors"
+DESCRIPTION = "libinput is a library to handle input devices in Wayland \
+compositors and to provide a generic X.Org input driver. It provides \
+device detection, device handling, input device event processing and \
+abstraction so minimize the amount of custom input code compositors need to \
+provide the common set of functionality that users expect."
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
SECTION = "libs"
@@ -8,8 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63"
DEPENDS = "libevdev udev mtdev"
SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "da29a704dc6f7ea2d5aac754db046340"
-SRC_URI[sha256sum] = "e333a3242835c019ca37d2cef8b51a87d3138eb47444119c0153dc7a8656ee70"
+SRC_URI[md5sum] = "d052faa64eb6d2e649e582cc0fcf6e32"
+SRC_URI[sha256sum] = "0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7"
UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch b/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch
new file mode 100644
index 000000000..c4435875a
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch
@@ -0,0 +1,50 @@
+From 3c8b4467a1ca229e72fb5223787ed400a19c65c0 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Fri, 25 Oct 2019 21:03:23 -0500
+Subject: [PATCH] scanner: Add configure check for strndup
+
+Some platforms may not have strndup() (e.g. MinGW), so provide a
+equivalent implementation if it's not found.
+
+Upstream-Status: Accepted [4a1f348c20157db7bd7c759fdeb23fbe8729c571]
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ configure.ac | 2 +-
+ src/scanner.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8d56f2b..1c99e21 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -63,7 +63,7 @@ fi
+ AC_SUBST(GCC_CFLAGS)
+
+ AC_CHECK_HEADERS([sys/prctl.h])
+-AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl])
++AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl strndup])
+
+ AC_ARG_ENABLE([libraries],
+ [AC_HELP_STRING([--disable-libraries],
+diff --git a/src/scanner.c b/src/scanner.c
+index a94be5d..27004bc 100644
+--- a/src/scanner.c
++++ b/src/scanner.c
+@@ -916,6 +916,17 @@ verify_arguments(struct parse_context *ctx,
+
+ }
+
++#ifndef HAVE_STRNDUP
++char *
++strndup(const char *s, size_t size)
++{
++ char *r = malloc(size + 1);
++ strncpy(r, s, size);
++ r[size] = '\0';
++ return r;
++}
++#endif
++
+ static void
+ end_element(void *data, const XML_Char *name)
+ {
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch b/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch
new file mode 100644
index 000000000..b05b875ab
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch
@@ -0,0 +1,166 @@
+From e746f3bf7c8bb2f5dcf9e93edffc23b56eff12d0 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Tue, 5 Nov 2019 09:09:50 -0600
+Subject: [PATCH] Move wl_priv_signal to wayland-server-private.h
+
+Including wayland-server-core.h in wayland-private.h is problematic
+because wayland-private.h is included by wayland-scanner which should be
+able to build against non-POSIX platforms (e.g. MinGW). The only reason
+that wayland-server-core.h was included in wayland-private.h was for the
+wl_private_signal definitions, so move those to a
+wayland-server-private.h file that can be included by both
+wayland-server.c and the tests.
+
+Upstream-Status: Accepted [e7d88f35eb89cf0cc77cbddd834cacc63683a9cc]
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ Makefile.am | 3 +-
+ src/wayland-private.h | 22 +--------------
+ src/wayland-server-private.h | 53 ++++++++++++++++++++++++++++++++++++
+ src/wayland-server.c | 1 +
+ tests/newsignal-test.c | 2 +-
+ 5 files changed, 58 insertions(+), 23 deletions(-)
+ create mode 100644 src/wayland-server-private.h
+
+diff --git a/Makefile.am b/Makefile.am
+index f47d055..026d981 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -56,7 +56,8 @@ libwayland_private_la_SOURCES = \
+ src/connection.c \
+ src/wayland-os.c \
+ src/wayland-os.h \
+- src/wayland-private.h
++ src/wayland-private.h \
++ src/wayland-server-private.h
+
+ include_HEADERS = \
+ src/wayland-util.h \
+diff --git a/src/wayland-private.h b/src/wayland-private.h
+index 29516ec..dc7d12f 100644
+--- a/src/wayland-private.h
++++ b/src/wayland-private.h
+@@ -31,11 +31,11 @@
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <stdint.h>
++#include <stdbool.h>
+
+ #define WL_HIDE_DEPRECATED 1
+
+ #include "wayland-util.h"
+-#include "wayland-server-core.h"
+
+ /* Invalid memory address */
+ #define WL_ARRAY_POISON_PTR (void *) 4
+@@ -236,26 +236,6 @@ zalloc(size_t s)
+ return calloc(1, s);
+ }
+
+-struct wl_priv_signal {
+- struct wl_list listener_list;
+- struct wl_list emit_list;
+-};
+-
+-void
+-wl_priv_signal_init(struct wl_priv_signal *signal);
+-
+-void
+-wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener);
+-
+-struct wl_listener *
+-wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify);
+-
+-void
+-wl_priv_signal_emit(struct wl_priv_signal *signal, void *data);
+-
+-void
+-wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data);
+-
+ void
+ wl_connection_close_fds_in(struct wl_connection *connection, int max);
+
+diff --git a/src/wayland-server-private.h b/src/wayland-server-private.h
+new file mode 100644
+index 0000000..23fa458
+--- /dev/null
++++ b/src/wayland-server-private.h
+@@ -0,0 +1,53 @@
++/*
++ * Copyright © 2008-2011 Kristian Høgsberg
++ * Copyright © 2011 Intel Corporation
++ * Copyright © 2013 Jason Ekstrand
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sublicense, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the
++ * next paragraph) shall be included in all copies or substantial
++ * portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
++ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ * SOFTWARE.
++ */
++
++#ifndef WAYLAND_SERVER_PRIVATE_H
++#define WAYLAND_SERVER_PRIVATE_H
++
++#include "wayland-server-core.h"
++
++struct wl_priv_signal {
++ struct wl_list listener_list;
++ struct wl_list emit_list;
++};
++
++void
++wl_priv_signal_init(struct wl_priv_signal *signal);
++
++void
++wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener);
++
++struct wl_listener *
++wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify);
++
++void
++wl_priv_signal_emit(struct wl_priv_signal *signal, void *data);
++
++void
++wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data);
++
++#endif
+diff --git a/src/wayland-server.c b/src/wayland-server.c
+index 19f6a76..d6f0206 100644
+--- a/src/wayland-server.c
++++ b/src/wayland-server.c
+@@ -45,6 +45,7 @@
+
+ #include "wayland-util.h"
+ #include "wayland-private.h"
++#include "wayland-server-private.h"
+ #include "wayland-server.h"
+ #include "wayland-os.h"
+
+diff --git a/tests/newsignal-test.c b/tests/newsignal-test.c
+index 47c429b..f3a7bd9 100644
+--- a/tests/newsignal-test.c
++++ b/tests/newsignal-test.c
+@@ -26,7 +26,7 @@
+ #include <assert.h>
+
+ #include "test-runner.h"
+-#include "wayland-private.h"
++#include "wayland-server-private.h"
+
+ static void
+ signal_notify(struct wl_listener *listener, void *data)
diff --git a/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb b/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb
index d34bb3974..2b5a8f945 100644
--- a/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb
@@ -14,6 +14,8 @@ DEPENDS = "expat libxml2 libffi wayland-native"
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://fixpathinpcfiles.patch \
+ file://0001-scanner-Add-configure-check-for-strndup.patch \
+ file://0002-Move-wl_priv_signal-to-wayland-server-private.h.patch \
"
SRC_URI[md5sum] = "d91f970aea11fd549eae023d06f91af3"
SRC_URI[sha256sum] = "72aa11b8ac6e22f4777302c9251e8fec7655dc22f9d94ee676c6b276f95f91a4"
diff --git a/poky/meta/recipes-graphics/wayland/weston-init.bb b/poky/meta/recipes-graphics/wayland/weston-init.bb
index 8b6689717..e3e739e2b 100644
--- a/poky/meta/recipes-graphics/wayland/weston-init.bb
+++ b/poky/meta/recipes-graphics/wayland/weston-init.bb
@@ -30,7 +30,7 @@ do_install() {
sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
}
-inherit update-rc.d distro_features_check systemd
+inherit update-rc.d features_check systemd
# rdepends on weston which depends on virtual/egl
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb b/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb
index d21275414..e6548d354 100644
--- a/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb
+++ b/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "a00a6d207b6a45f95f4401c604772a307c3767e5e2beecf3d879110c43
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
-inherit meson pkgconfig useradd distro_features_check
+inherit meson pkgconfig useradd features_check
# depends on virtual/egl
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
index a77c56445..385fea5e8 100644
--- a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
+++ b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
@@ -17,7 +17,7 @@ S = "${WORKDIR}"
# Since we refer to ROOTLESS_X which is normally enabled per-machine
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit update-rc.d systemd distro_features_check
+inherit update-rc.d systemd features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 9873d3f33..4f831932e 100644
--- a/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -7,7 +7,7 @@ DEPENDS = "virtual/libx11 libxi libxrandr"
PV = "0.7.5+git${SRCPV}"
PR = "r6"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc b/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc
index 3529cb26e..101b3dfff 100644
--- a/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc
+++ b/poky/meta/recipes-graphics/xorg-app/xorg-app-common.inc
@@ -12,6 +12,6 @@ INC_PR = "r8"
SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.bz2"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
FILES_${PN} += " ${libdir}/X11/${BPN} ${datadir}/X11/app-defaults/"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
index e657c65b4..54f04b11e 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
+++ b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
@@ -13,7 +13,7 @@ SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2"
FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/xserver
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc
index cdbebcf78..f18c8aefc 100644
--- a/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc
+++ b/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc
@@ -14,7 +14,7 @@ INC_PR = "r2"
SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The mkfontscale-native requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
index 9bcd1b2fa..1ea08a6c9 100644
--- a/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
+++ b/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
@@ -13,7 +13,7 @@ SRC_URI = "file://misc"
PE = "1"
PR = "r2"
-inherit allarch distro_features_check
+inherit allarch features_check
# The font-alias requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch b/poky/meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch
deleted file mode 100644
index 56d9983b1..000000000
--- a/poky/meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/lib/libx11/merge_requests/22]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From edc7680ed5a03cedb5facf14693823455e12c29c Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Tue, 6 Aug 2019 14:53:43 +0100
-Subject: [PATCH libX11] src/util/Makefile: explicitly reset LINK to not use
- libtool
-
-Simply looking at libtool redefines LINK globally to use libtool, which when
-you're trying to cross-compile to Windows can cause complications.
-
-As in src/util/ we're simply building a small binary for the build host, reset
-LINK to the automake default so that the traditional compile/link steps occur
-without libtool.
-
-Also remove -all-static from LDFLAGS as that is a libtool-specific argument
-intended to solve this problem.
-
-Closes: #100
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- src/util/Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/util/Makefile.am b/src/util/Makefile.am
-index 37314370..b7236530 100644
---- a/src/util/Makefile.am
-+++ b/src/util/Makefile.am
-@@ -7,10 +7,11 @@ AM_CFLAGS = \
- AM_CPPFLAGS = \
- -I$(top_srcdir)/include
-
-+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
- CC = @CC_FOR_BUILD@
- CPPFLAGS = @CPPFLAGS_FOR_BUILD@
- CFLAGS = @CFLAGS_FOR_BUILD@
--LDFLAGS = @LDFLAGS_FOR_BUILD@ -all-static
-+LDFLAGS = @LDFLAGS_FOR_BUILD@
- LIBS =
- EXEEXT = @EXEEXT_FOR_BUILD@
-
---
-2.20.1
-
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch b/poky/meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch
deleted file mode 100644
index 803f8b408..000000000
--- a/poky/meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From cf2ef27831173c5ed6f98be3c39caff18fd4e7f1 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 17 Jun 2019 13:36:08 -0400
-Subject: [PATCH 1/2] makekeys: Detach ourselves from X headers entirely
-
-Subsequent to a121b7b0c210efe10bf93453b29050282324c906 we are no longer
-building makekeys with enough -I/foo/bar to find the X11 headers, so if
-they're not in a system include path, things fail. Since this utility is
-only needed at build time, there's no real reason to demand the X
-headers be installed for both the build and target machines if cross-
-compiling, we can just assume a vaguely ANSI environment instead.
-
-Tested-by: Niclas Zeising <zeising@daemonic.se>
-Reviewed-by: Keith Packard <keithp@keithp.com>
-Reviewed-by: Matt Turner <mattst88@gmail.com>
----
- src/util/makekeys.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/util/makekeys.c b/src/util/makekeys.c
-index bcb5b7d5..07563315 100644
---- a/src/util/makekeys.c
-+++ b/src/util/makekeys.c
-@@ -35,8 +35,10 @@ from The Open Group.
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <stdint.h>
-+#include <inttypes.h>
-
--#include "../Xresinternal.h"
-+typedef uint32_t Signature;
-
- #define KTNUM 4000
-
---
-2.20.1
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb
deleted file mode 100644
index 0d27bc2bc..000000000
--- a/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require libx11.inc
-
-SRC_URI += "file://disable_tests.patch"
-
-inherit gettext
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11.inc b/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb
index cce0cb992..8c2a57c67 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libx11.inc
+++ b/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb
@@ -11,11 +11,10 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:"
PE = "1"
SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \
- file://no-host-libtool.patch \
- file://no-host-x.patch"
+ file://disable_tests.patch"
-SRC_URI[md5sum] = "c5fa5a86a20e3591bed6c046498d4b8f"
-SRC_URI[sha256sum] = "b289a845c189e251e0e884cc0f9269bbe97c238df3741e854ec4c17c21e473d5"
+SRC_URI[md5sum] = "55adbfb6d4370ecac5e70598c4e7eed2"
+SRC_URI[sha256sum] = "9cc7e8d000d6193fa5af580d50d689380b8287052270f5bb26a5fb6b58b2bed1"
PROVIDES = "virtual/libx11"
@@ -37,6 +36,10 @@ CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE"
PACKAGES =+ "${PN}-xcb"
+inherit gettext
+
FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt"
FILES_${PN}-xcb += "${libdir}/libX11-xcb.so.*"
FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb b/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb
index b0afc01df..9befc51b5 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb
@@ -25,7 +25,7 @@ PACKAGES_DYNAMIC = "^libxcb-.*"
FILES_${PN} = "${libdir}/libxcb.so.*"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The libxau and others requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb b/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb
index d95f809ed..29ed0c43d 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb
@@ -15,5 +15,5 @@ PE = "1"
XORG_PN = "libXvMC"
-SRC_URI[md5sum] = "707175185a2e0490b8173686c657324f"
-SRC_URI[sha256sum] = "4a2e34d444a683a7c010b01b23cefe2b8043a063ce4dc6a9b855836b5262622d"
+SRC_URI[md5sum] = "3569ff7f3e26864d986d6a21147eaa58"
+SRC_URI[sha256sum] = "6b3da7977b3f7eaf4f0ac6470ab1e562298d82c4e79077765787963ab7966dcd"
diff --git a/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc b/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc
index 99d04f9d4..0e5ab70b2 100644
--- a/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc
+++ b/poky/meta/recipes-graphics/xorg-lib/xcb-util.inc
@@ -18,6 +18,6 @@ DEPENDS += "gperf-native"
SRC_URI = "http://xcb.freedesktop.org/dist/${BPN}-${PV}.tar.bz2"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc b/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
index 09df0109c..a566eaa45 100644
--- a/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
+++ b/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
@@ -11,7 +11,7 @@ SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
-inherit autotools distro_features_check pkgconfig
+inherit autotools features_check pkgconfig
EXTRA_OECONF = "--disable-specs --without-groff --without-ps2pdf --without-fop"
diff --git a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.1.bb b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb
index 2c7ce2a56..8acbe895a 100644
--- a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.1.bb
+++ b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb
@@ -1,6 +1,6 @@
require xorg-proto-common.inc
-SUMMARY = "XCalibrate: Touchscreen calibration headers"
+SUMMARY = "X Window System unified protocol definitions"
DESCRIPTION = "This package provides the headers and specification documents defining \
the core protocol and (many) extensions for the X Window System"
@@ -8,7 +8,7 @@ the core protocol and (many) extensions for the X Window System"
LICENSE = "MIT-style"
LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676"
-SRC_URI[md5sum] = "802ccb9e977ba3cf94ba798ddb2898a4"
-SRC_URI[sha256sum] = "a6daaa7a6cbc8e374032d83ff7f47d41be98f1e0f4475d66a4da3aa766a0d49b"
+SRC_URI[md5sum] = "a02dcaff48b4141b949ac99dfc344d86"
+SRC_URI[sha256sum] = "46ecd0156c561d41e8aa87ce79340910cdf38373b759e737fcbba5df508e7b8e"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index 44315f59d..a0ae65c78 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -24,7 +24,7 @@ S = "${WORKDIR}/${XORG_PN}-${PV}"
inherit autotools pkgconfig
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess"
diff --git a/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb b/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb
index ce5df0393..c7b8716f6 100644
--- a/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb
+++ b/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb
@@ -19,6 +19,6 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/xrestop/xrestop-${PV}.tar.
SRC_URI[md5sum] = "d8a54596cbaf037e62b80c4585a3ca9b"
SRC_URI[sha256sum] = "67c2fc94a7ecedbaae0d1837e82e93d1d98f4a6d759828860e552119af3ce257"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb
index 518638806..d83000b64 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb
@@ -273,6 +273,7 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
${PN}-bcm4358 \
${PN}-bcm43602 \
${PN}-bcm4366b \
+ ${PN}-bcm4366c \
${PN}-bcm4371 \
${PN}-bcm4373 \
${PN}-bcm43xx \
@@ -571,7 +572,7 @@ FILES_${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw
FILES_${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin"
FILES_${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin"
FILES_${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin"
-FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.bin"
+FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*"
FILES_${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin"
FILES_${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin"
FILES_${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin"
@@ -582,8 +583,8 @@ FILES_${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin
FILES_${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \
${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \
"
-FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.bin"
-FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.bin"
+FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*"
+FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.*"
FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin"
FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin"
FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.bin"
@@ -594,6 +595,7 @@ FILES_${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.
${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \
"
FILES_${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin"
+FILES_${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin"
FILES_${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin"
# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE_\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done
@@ -647,6 +649,8 @@ LICENSE_${PN}-bcm43602 = "Firmware-broadcom_bcm43xx"
RDEPENDS_${PN}-bcm43602 += "${PN}-broadcom-license"
LICENSE_${PN}-bcm4366b = "Firmware-broadcom_bcm43xx"
RDEPENDS_${PN}-bcm4366b += "${PN}-broadcom-license"
+LICENSE_${PN}-bcm4366c = "Firmware-broadcom_bcm43xx"
+RDEPENDS_${PN}-bcm4366c += "${PN}-broadcom-license"
LICENSE_${PN}-bcm4371 = "Firmware-broadcom_bcm43xx"
RDEPENDS_${PN}-bcm4371 += "${PN}-broadcom-license"
@@ -656,11 +660,11 @@ LICENSE_${PN}-cypress-license = "Firmware-cypress"
FILES_${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress"
FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd"
-FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.bin"
-FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.bin"
-FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.bin"
+FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.*"
+FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.*"
+FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.*"
FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin"
-FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.bin"
+FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.*"
FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \
${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \
"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
index 1edcd7eda..32edb6026 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "02f0c38dd20819c0e9d279e3b1e95280101ea8ab"
-SRCREV_meta ?= "a7cb57afb9fb9787079c28a1028d797632105e56"
+SRCREV_machine ?= "0e4a79e608e92830693e511a3dd282ce7c3b3f41"
+SRCREV_meta ?= "ad6f8b357720ca8167a090713b7746230cf4b314"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA}"
-LINUX_VERSION ?= "4.19.72"
+LINUX_VERSION ?= "4.19.78"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb
index e3fe54441..423331e19 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "0a9f6ee2443b54c614107728ca76485916010023"
-SRCREV_meta ?= "b867b78b5019ae455af97dec7794cff7527d7624"
+SRCREV_machine ?= "55e3ee387b073d8d609e8899859561340d8b6911"
+SRCREV_meta ?= "bd0762cd138f1624b5a5f8669cfa3ac2b71cb87b"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.2.17"
+LINUX_VERSION ?= "5.2.20"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
index 446bce3a8..0682aef50 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "4.19.72"
+LINUX_VERSION ?= "4.19.78"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "283b870cef5f79a6f07465828a51f27a6aed4c50"
-SRCREV_machine ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_meta ?= "a7cb57afb9fb9787079c28a1028d797632105e56"
+SRCREV_machine_qemuarm ?= "be50001808f00efee538c2a3e7c0a5a2a2df65da"
+SRCREV_machine ?= "a915fbeae8ed987402f69666d90bef15a01c5823"
+SRCREV_meta ?= "ad6f8b357720ca8167a090713b7746230cf4b314"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb
index f3f546866..f7239d022 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.2.17"
+LINUX_VERSION ?= "5.2.20"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "aaa66d462ec17345dadd69b1ec0f3fcc83e82536"
-SRCREV_machine ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_meta ?= "b867b78b5019ae455af97dec7794cff7527d7624"
+SRCREV_machine_qemuarm ?= "501d680535903acc00808c36f2cc07f2dc725adc"
+SRCREV_machine ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03"
+SRCREV_meta ?= "bd0762cd138f1624b5a5f8669cfa3ac2b71cb87b"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
index 96debc42d..d8cb20f2f 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
@@ -11,22 +11,22 @@ KBRANCH_qemux86 ?= "v4.19/standard/base"
KBRANCH_qemux86-64 ?= "v4.19/standard/base"
KBRANCH_qemumips64 ?= "v4.19/standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "b0be447bc9053d07f3438999778bd077679ae756"
-SRCREV_machine_qemuarm64 ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemumips ?= "3c8b21d0a335b5f418682969448574dfd0011f02"
-SRCREV_machine_qemuppc ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemux86 ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemux86-64 ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemumips64 ?= "2854797711fee4061fb760c2b6e0e3d3135195ab"
-SRCREV_machine ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_meta ?= "a7cb57afb9fb9787079c28a1028d797632105e56"
+SRCREV_machine_qemuarm ?= "7fde51abcaf389193ce5d87ebfb8e8fb66a9271a"
+SRCREV_machine_qemuarm64 ?= "a915fbeae8ed987402f69666d90bef15a01c5823"
+SRCREV_machine_qemumips ?= "8ac68d42beb24b275ac0d2a54a0a2291970e5dde"
+SRCREV_machine_qemuppc ?= "a915fbeae8ed987402f69666d90bef15a01c5823"
+SRCREV_machine_qemux86 ?= "a915fbeae8ed987402f69666d90bef15a01c5823"
+SRCREV_machine_qemux86-64 ?= "a915fbeae8ed987402f69666d90bef15a01c5823"
+SRCREV_machine_qemumips64 ?= "ea2cb8731306f734bf0227575e04cafac7dfade0"
+SRCREV_machine ?= "a915fbeae8ed987402f69666d90bef15a01c5823"
+SRCREV_meta ?= "ad6f8b357720ca8167a090713b7746230cf4b314"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA} \
"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "4.19.72"
+LINUX_VERSION ?= "4.19.78"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb
index 1a2c3ffcd..8f75f67c3 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.2.bb
@@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.2/standard/base"
KBRANCH_qemux86-64 ?= "v5.2/standard/base"
KBRANCH_qemumips64 ?= "v5.2/standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "47b80ef7bd932830f299ed76e2302df631ae4fbe"
-SRCREV_machine_qemuarm64 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemumips ?= "45ff64cb3f87c38db6f46353ea93005d049b0cf6"
-SRCREV_machine_qemuppc ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemuriscv64 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemux86 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemux86-64 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemumips64 ?= "ea0fd387a459803ac60e9b8a1729f2fc7d3215f1"
-SRCREV_machine ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_meta ?= "b867b78b5019ae455af97dec7794cff7527d7624"
+SRCREV_machine_qemuarm ?= "fcbe51dfa0a763a07e4cd66204d6c0ba054663ce"
+SRCREV_machine_qemuarm64 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03"
+SRCREV_machine_qemumips ?= "9cad7bb8bcd3686f580a3363847ee9c9e86928b1"
+SRCREV_machine_qemuppc ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03"
+SRCREV_machine_qemuriscv64 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03"
+SRCREV_machine_qemux86 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03"
+SRCREV_machine_qemux86-64 ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03"
+SRCREV_machine_qemumips64 ?= "dc2be1a546e937374590ce3858b717489ded2c21"
+SRCREV_machine ?= "dd25a04fc5e2e4549fc9b86157a01e0c72b53b03"
+SRCREV_meta ?= "bd0762cd138f1624b5a5f8669cfa3ac2b71cb87b"
# remap qemuarm to qemuarma15 for the 5.2 kernel
# KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.2.17"
+LINUX_VERSION ?= "5.2.20"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index 8201c0cb6..5f0ba7c18 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -25,6 +25,7 @@ PACKAGECONFIG[jvmti] = ",NO_JVMTI=1"
# libaudit support would need scripting to be enabled
PACKAGECONFIG[audit] = ",NO_LIBAUDIT=1,audit"
PACKAGECONFIG[manpages] = ",,xmlto-native asciidoc-native"
+PACKAGECONFIG[cap] = ",,libcap"
# libunwind is not yet ported for some architectures
PACKAGECONFIG_remove_arc = "libunwind"
@@ -105,7 +106,6 @@ EXTRA_OEMAKE += "\
EXTRA_OEMAKE_append_task-configure = " JOBS=1"
PERF_SRC ?= "Makefile \
- include \
tools/arch \
tools/build \
tools/include \
@@ -113,6 +113,8 @@ PERF_SRC ?= "Makefile \
tools/Makefile \
tools/perf \
tools/scripts \
+ scripts/ \
+ arch/${ARCH}/Makefile \
"
PERF_EXTRA_LDFLAGS = ""
@@ -151,6 +153,8 @@ python copy_perf_source_from_kernel() {
if os.path.isdir(src):
oe.path.copyhardlinktree(src, dest)
else:
+ src_path = os.path.dirname(s)
+ os.makedirs(os.path.join(dest_dir,src_path),exist_ok=True)
bb.utils.copyfile(src, dest)
}
@@ -243,9 +247,6 @@ do_configure_prepend () {
# so we copy it from the sysroot unistd.h to the perf unistd.h
install -D -m0644 ${STAGING_INCDIR}/asm-generic/unistd.h ${S}/tools/include/uapi/asm-generic/unistd.h
install -D -m0644 ${STAGING_INCDIR}/asm-generic/unistd.h ${S}/include/uapi/asm-generic/unistd.h
-
- # bits.h can have the same issue as unistd.h, so we make the tools variant take precedence
- [ -e ${S}/tools/include/linux/bits.h ] && install -D -m0644 ${S}/tools/include/linux/bits.h ${S}/include/linux/bits.h
}
python do_package_prepend() {
diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.bb b/poky/meta/recipes-kernel/systemtap/systemtap_git.bb
index 6ee3e1c0f..1c9f2aed1 100644
--- a/poky/meta/recipes-kernel/systemtap/systemtap_git.bb
+++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.bb
@@ -51,10 +51,13 @@ do_install_append () {
rm ${D}${libexecdir}/${PN}/stap-env
fi
- # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
- install -d `dirname ${D}${systemd_unitdir}`
- mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
- rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty
+ if [ ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then
+ # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
+ # without usrmerge distro feature enabled
+ install -d `dirname ${D}${systemd_unitdir}`
+ mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
+ rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty
+ fi
# Ensure correct ownership for files copied in
chown root:root ${D}${sysconfdir}/stap-exporter/* -R
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb
index ec306afaa..5ac18ba3f 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.bb
@@ -102,8 +102,8 @@ EXTRA_OECONF = " \
--arch=${TARGET_ARCH} \
--target-os="linux" \
--enable-cross-compile \
- --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
- --extra-ldflags="${TARGET_LDFLAGS}" \
+ --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
+ --extra-ldflags="${LDFLAGS}" \
--sysroot="${STAGING_DIR_TARGET}" \
${EXTRA_FFCONF} \
--libdir=${libdir} \
diff --git a/poky/meta/recipes-multimedia/gstreamer/gst-examples_git.bb b/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb
index f2a3afbbf..cc7a7e78e 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gst-examples_git.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb
@@ -10,11 +10,10 @@ SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gst-examples.git;protocol=http
"
SRCREV = "d953c127c1146b50d5676618299933950685dcd7"
-PV = "1.16.0"
S = "${WORKDIR}/git"
-inherit meson pkgconfig distro_features_check
+inherit meson pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb
index 1f4370619..7d602eabc 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb
@@ -9,8 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
SRC_URI = "https://gstreamer.freedesktop.org/src/${BPN}/${BP}.tar.xz \
file://0001-connect-has-a-different-signature-on-musl.patch \
"
-SRC_URI[md5sum] = "c5c57f3325a2e62aae4a8ec4931f7711"
-SRC_URI[sha256sum] = "9331ae48a173a048243539730cc7a88607777762dea4aebbc3ab55981e68d6c9"
+SRC_URI[md5sum] = "793e75f4717f718ad204c554d577b160"
+SRC_URI[sha256sum] = "7f079b9b2a127604b98e297037dc8847ef50f4ce2b508aa2df0cac5b77562899"
DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
RRECOMMENDS_${PN} = "git"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch
deleted file mode 100644
index a36fdc9a1..000000000
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 6f720cebe632d7dc187c6907857d67ce1f7313d6 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 9 Sep 2019 22:48:49 +0100
-Subject: [PATCH] docs: don't include the type hierarchy
-
-gtk-doc can't generate a type hierarchy when scanning gst-libav, and gtk-doc
-1.30 onwards doesn't write a file if there is no type hierarchy (unlike previous
-releases, which wrote an empty file). This results in the build failing with
-gtk-doc 1.30 onwards, so remove the type hierarchy section from the
-documentation as it doesn't serve any purpose.
-
-Fixes https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/57
----
- docs/plugins/gst-libav-plugins-docs.sgml | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/docs/plugins/gst-libav-plugins-docs.sgml b/docs/plugins/gst-libav-plugins-docs.sgml
-index 75c68f4..f68d554 100644
---- a/docs/plugins/gst-libav-plugins-docs.sgml
-+++ b/docs/plugins/gst-libav-plugins-docs.sgml
-@@ -32,9 +32,4 @@
- <title>gst-libav Plugins</title>
- <xi:include href="xml/plugin-libav.xml" />
- </chapter>
--
-- <chapter>
-- <title>Object Hierarchy</title>
-- <xi:include href="xml/tree_index.sgml" />
-- </chapter>
- </book>
---
-2.22.0
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb
index d2629b506..10955ff16 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb
@@ -12,16 +12,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
-SRC_URI = "http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
+SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \
file://mips64_cpu_detection.patch \
file://0001-configure-check-for-armv7ve-variant.patch \
file://0001-fix-host-contamination.patch \
- file://gtkdoc-no-tree.patch \
"
-SRC_URI[md5sum] = "e3a201a45985ddc1327cd496046ca818"
-SRC_URI[sha256sum] = "dfac119043a9cfdcacd7acde77f674ab172cf2537b5812be52f49e9cddc53d9a"
+SRC_URI[md5sum] = "58023f4c71bbd711061e350fcd76c09d"
+SRC_URI[sha256sum] = "e8a5748ae9a4a7be9696512182ea9ffa6efe0be9b7976916548e9d4381ca61c4"
S = "${WORKDIR}/gst-libav-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.1.bb
index d94bad36f..cb2f7045a 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.1.bb
@@ -7,10 +7,10 @@ LICENSE_FLAGS = "commercial"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
-SRC_URI = "http://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
+SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
-SRC_URI[md5sum] = "c6f8554513980682099a2a9832250b01"
-SRC_URI[sha256sum] = "fef77cddc02784608451c46b9def880b63230a246decf8900f2da2ed54a8af4a"
+SRC_URI[md5sum] = "89772e7a277fd0abfc250eaf8e4e9ce9"
+SRC_URI[sha256sum] = "cbf54121a2cba575d460833e8132265781252ce32cf5b8f9fa8753e42ab24bb2"
S = "${WORKDIR}/gst-omx-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.1.bb
index f9289e92d..1731be844 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.1.bb
@@ -1,15 +1,15 @@
require gstreamer1.0-plugins.inc
SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
+ https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
file://configure-allow-to-disable-libssh2.patch \
file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
file://avoid-including-sys-poll.h-directly.patch \
file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \
file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
"
-SRC_URI[md5sum] = "e9e562d86c1527c44d904500dd35e326"
-SRC_URI[sha256sum] = "22139de35626ada6090bdfa3423b27b7fc15a0198331d25c95e6b12cb1072b05"
+SRC_URI[md5sum] = "24d4d30ecc67d5cbc77c0475bcea1210"
+SRC_URI[sha256sum] = "56481c95339b8985af13bac19b18bc8da7118c2a7d9440ed70e7dcd799c2adb5"
S = "${WORKDIR}/gst-plugins-bad-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.1.bb
index 1d6f15e9c..cb99fba5f 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
+ https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
file://get-caps-from-src-pad-when-query-caps.patch \
file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \
file://make-gio_unix_2_0-dependency-configurable.patch \
@@ -18,8 +18,8 @@ SRC_URI = " \
file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \
file://link-with-libvchostif.patch \
"
-SRC_URI[md5sum] = "41dde92930710c75cdb49169c5cc6dfc"
-SRC_URI[sha256sum] = "4093aa7b51e28fb24dfd603893fead8d1b7782f088b05ed0f22a21ef176fb5ae"
+SRC_URI[md5sum] = "b5eb0651bab70bf1714f103bdd66ce47"
+SRC_URI[sha256sum] = "5c3cc489933d0597087c9bc6ba251c93693d64554bcc563539a084fa2d5fcb2b"
S = "${WORKDIR}/gst-plugins-base-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch
deleted file mode 100644
index caa080c8e..000000000
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From aadfa5f20f53601785e417fe3fcbe6d574880988 Mon Sep 17 00:00:00 2001
-From: Philippe Normand <philn@igalia.com>
-Date: Tue, 23 Apr 2019 10:10:01 +0100
-Subject: [PATCH] scaletempo: Advertise interleaved layout in caps templates
-
-Scaletempo doesn't support non-interleaved layout. Not explicitely stating this
-would trigger critical warnings and a caps negotiation failure when scaletempo
-is used as playbin audio-filter.
-
-Patch suggested by George Kiagiadakis <george.kiagiadakis@collabora.com>.
-
-Fixes #591
-Upstream-Status: Backport [merged, on track for 1.16.1.]
----
- gst/audiofx/gstscaletempo.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/gst/audiofx/gstscaletempo.c b/gst/audiofx/gstscaletempo.c
-index 3a719719a..83ee8fe24 100644
---- a/gst/audiofx/gstscaletempo.c
-+++ b/gst/audiofx/gstscaletempo.c
-@@ -93,9 +93,9 @@ enum
-
- #define SUPPORTED_CAPS \
- GST_STATIC_CAPS ( \
-- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) "; " \
-- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F64)) "; " \
-- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) \
-+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) ", layout=(string)interleaved; " \
-+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F64)) ", layout=(string)interleaved; " \
-+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) ", layout=(string)interleaved" \
- )
-
- static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
---
-2.20.1
-
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch
deleted file mode 100644
index 34d25a0a4..000000000
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Things break with overlapping defines between glib and gstreamer with glibc 2.30.
-
-Discussion in the link below, basically internal __ prefixed variables
-shouldn't be redefined.
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/635]
-RP 2019/8/6
-
-Index: gst-plugins-good-1.16.0/sys/v4l2/ext/types-compat.h
-===================================================================
---- gst-plugins-good-1.16.0.orig/sys/v4l2/ext/types-compat.h
-+++ gst-plugins-good-1.16.0/sys/v4l2/ext/types-compat.h
-@@ -24,29 +24,6 @@
- #ifndef __TYPES_COMPAT_H__
- #define __TYPES_COMPAT_H__
-
--/* From linux/types.h */
--#ifndef __bitwise__
--# ifdef __CHECKER__
--# define __bitwise__ __attribute__((bitwise))
--# else
--# define __bitwise__
--# endif
--#endif
--
--#ifndef __bitwise
--# ifdef __CHECK_ENDIAN__
--# define __bitwise __bitwise__
--# else
--# define __bitwise
--# endif
--#endif
--
--#define __u64 guint64
--#define __u32 guint32
--#define __u16 guint16
--#define __u8 guint8
--#define __s64 gint64
--#define __s32 gint32
--#define __le32 guint32 __bitwise
-+#include <linux/types.h>
-
- #endif /* __TYPES_COMPAT_H__ */
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.1.bb
index 5751467db..0fa7b86ff 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.1.bb
@@ -1,14 +1,12 @@
require gstreamer1.0-plugins.inc
SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
- file://0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch \
+ https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
- file://headerfix.patch \
"
-SRC_URI[md5sum] = "d1a7b442994d9522418de4af4330e034"
-SRC_URI[sha256sum] = "654adef33380d604112f702c2927574cfc285e31307b79e584113858838bb0fd"
+SRC_URI[md5sum] = "515987ee763256840a11bd8ea098f2bf"
+SRC_URI[sha256sum] = "9fbabe69018fcec707df0b71150168776040cde6c1a26bb5a82a136755fa8f1f"
S = "${WORKDIR}/gst-plugins-good-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.1.bb
index 11a0e790e..ecab31889 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.1.bb
@@ -7,11 +7,11 @@ LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
LICENSE_FLAGS = "commercial"
SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
+ https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
"
-SRC_URI[md5sum] = "1ec343c58d4b17d682f7befa8453c11c"
-SRC_URI[sha256sum] = "e30964c5f031c32289e0b25e176c3c95a5737f2052dfc81d0f7427ef0233a4c2"
+SRC_URI[md5sum] = "668795903cb4971fba9aa89abdea8369"
+SRC_URI[sha256sum] = "4bf913b2ca5195ac3b53b5e3ade2dc7c45d2258507552ddc850c5fa425968a1d"
S = "${WORKDIR}/gst-plugins-ugly-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.1.bb
index 0f3aac190..c722f028b 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.1.bb
@@ -5,9 +5,9 @@ SECTION = "multimedia"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
-SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
-SRC_URI[md5sum] = "877b2ed2aaffdb62e63f38ea9469b70f"
-SRC_URI[sha256sum] = "55dc7aaed1855565f9b9ef842d93e93bfc5cb2b376faef6af5b463e1774e2d38"
+SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
+SRC_URI[md5sum] = "499645fbd1790c5845c02a3998dccc1b"
+SRC_URI[sha256sum] = "b469c8955126f41b8ce0bf689b7029f182cd305f422b3a8df35b780bd8347489"
DEPENDS = "gstreamer1.0 python3-pygobject"
RDEPENDS_${PN} += "gstreamer1.0 python3-pygobject"
@@ -20,7 +20,7 @@ S = "${WORKDIR}/${PNREAL}-${PV}"
REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection"
-inherit autotools pkgconfig distutils3-base upstream-version-is-even gobject-introspection distro_features_check
+inherit autotools pkgconfig distutils3-base upstream-version-is-even gobject-introspection features_check
EXTRA_OECONF += "--with-libpython-dir=${libdir}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.1.bb
index 042938b88..45302ef4f 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.1.bb
@@ -8,13 +8,13 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
PNREAL = "gst-rtsp-server"
-SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \
+SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \
file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
file://gtk-doc-tweaks.patch \
"
-SRC_URI[md5sum] = "adc4460239ec2eccf58ad9752ce53bfd"
-SRC_URI[sha256sum] = "198e9eec1a3e32dc810d3fbf3a714850a22c6288d4a5c8e802c5ff984af03f19"
+SRC_URI[md5sum] = "380d6a42e856c32fcefa508ad57129e0"
+SRC_URI[sha256sum] = "b0abacad2f86f60d63781d2b24443c5668733e8b08664bbef94124906d700144"
S = "${WORKDIR}/${PNREAL}-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.1.bb
index e5dfb6124..b8c2126d9 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.1.bb
@@ -13,13 +13,13 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.x
file://0001-vaapsink-downgrade-to-marginal.patch \
"
-SRC_URI[md5sum] = "8c3f9ee3e47cbdb75a94f7183460b721"
-SRC_URI[sha256sum] = "4e7fce626ee0590dca74b5a8341d25bac76307945131a970b414fc5895f5171f"
+SRC_URI[md5sum] = "15b08f76777359d87b0b4a561db05f1f"
+SRC_URI[sha256sum] = "cb570f6f1e78cb364fbe3c4fb8751824ee9db0c942ba61b62380b9b5abb7603a"
S = "${WORKDIR}/${REALPN}-${PV}"
DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
-inherit autotools pkgconfig gtk-doc distro_features_check upstream-version-is-even
+inherit autotools pkgconfig gtk-doc features_check upstream-version-is-even
REQUIRED_DISTRO_FEATURES ?= "opengl"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb
index da2d14cd9..ff92f63ba 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb
@@ -20,15 +20,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
S = "${WORKDIR}/gstreamer-${PV}"
SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
+ https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
file://gtk-doc-tweaks.patch \
file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
file://add-a-target-to-compile-tests.patch \
file://run-ptest \
"
-SRC_URI[md5sum] = "862b7e4263d946bc2ef31b3c582e5587"
-SRC_URI[sha256sum] = "0e8e2f7118be437cba879353970cf83c2acced825ecb9275ba05d9186ef07c00"
+SRC_URI[md5sum] = "c505fb818b36988daaa846e9e63eabe8"
+SRC_URI[sha256sum] = "02211c3447c4daa55919c5c0f43a82a6fbb51740d57fc3af0639d46f1cf4377d"
PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
"
diff --git a/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb b/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
index 66af2f3d6..2ed87a843 100644
--- a/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
+++ b/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
@@ -29,3 +29,6 @@ PACKAGES =+ "${PN}-tools"
FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp"
BBCLASSEXTEND = "native nativesdk"
+
+# CVE-2019-17371 is actually a memory leak in gif2png 2.x
+CVE_CHECK_WHITELIST += "CVE-2019-17371"
diff --git a/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb b/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
index ffb45855a..7855008f3 100644
--- a/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
+++ b/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
@@ -33,3 +33,7 @@ PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3"
inherit autotools lib_package pkgconfig
+
+# This can't be replicated and is just a memory leak.
+# https://github.com/erikd/libsndfile/issues/398
+CVE_CHECK_WHITELIST += "CVE-2018-13419"
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch b/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch
deleted file mode 100644
index 8345295d0..000000000
--- a/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch
+++ /dev/null
@@ -1,415 +0,0 @@
-From 95ac1e3fcc6b643b5bd100f2ea54faca0a003315 Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <trevor.gamblin@windriver.com>
-Date: Fri, 20 Sep 2019 09:33:22 -0400
-Subject: [PATCH] libtiff-fix-CVE-2019-14973
-
-Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/commit/2218055ca67d84be596a13080e8f50f22116555c]
-CVE: CVE-2019-14973
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
----
- libtiff/tif_aux.c | 49 +++++++++++++++++++++++++++++++++++++-----
- libtiff/tif_getimage.c | 6 ++----
- libtiff/tif_luv.c | 8 +------
- libtiff/tif_pixarlog.c | 7 +-----
- libtiff/tif_read.c | 38 +++++++++-----------------------
- libtiff/tif_strip.c | 35 ++++--------------------------
- libtiff/tif_tile.c | 27 +++--------------------
- libtiff/tiffiop.h | 7 +++++-
- 8 files changed, 71 insertions(+), 106 deletions(-)
-
-diff --git a/libtiff/tif_aux.c b/libtiff/tif_aux.c
-index 4ece162f..33fb8a44 100644
---- a/libtiff/tif_aux.c
-+++ b/libtiff/tif_aux.c
-@@ -57,18 +57,57 @@ _TIFFMultiply64(TIFF* tif, uint64 first, uint64 second, const char* where)
- return bytes;
- }
-
-+tmsize_t
-+_TIFFMultiplySSize(TIFF* tif, tmsize_t first, tmsize_t second, const char* where)
-+{
-+ if( first <= 0 || second <= 0 )
-+ {
-+ if( tif != NULL && where != NULL )
-+ {
-+ TIFFErrorExt(tif->tif_clientdata, where,
-+ "Invalid argument to _TIFFMultiplySSize() in %s", where);
-+ }
-+ return 0;
-+ }
-+
-+ if( first > TIFF_TMSIZE_T_MAX / second )
-+ {
-+ if( tif != NULL && where != NULL )
-+ {
-+ TIFFErrorExt(tif->tif_clientdata, where,
-+ "Integer overflow in %s", where);
-+ }
-+ return 0;
-+ }
-+ return first * second;
-+}
-+
-+tmsize_t _TIFFCastUInt64ToSSize(TIFF* tif, uint64 val, const char* module)
-+{
-+ if( val > (uint64)TIFF_TMSIZE_T_MAX )
-+ {
-+ if( tif != NULL && module != NULL )
-+ {
-+ TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-+ }
-+ return 0;
-+ }
-+ return (tmsize_t)val;
-+}
-+
- void*
- _TIFFCheckRealloc(TIFF* tif, void* buffer,
- tmsize_t nmemb, tmsize_t elem_size, const char* what)
- {
- void* cp = NULL;
-- tmsize_t bytes = nmemb * elem_size;
--
-+ tmsize_t count = _TIFFMultiplySSize(tif, nmemb, elem_size, NULL);
- /*
-- * XXX: Check for integer overflow.
-+ * Check for integer overflow.
- */
-- if (nmemb && elem_size && bytes / elem_size == nmemb)
-- cp = _TIFFrealloc(buffer, bytes);
-+ if (count != 0)
-+ {
-+ cp = _TIFFrealloc(buffer, count);
-+ }
-
- if (cp == NULL) {
- TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
-diff --git a/libtiff/tif_getimage.c b/libtiff/tif_getimage.c
-index 6a9d5a7c..2106ca21 100644
---- a/libtiff/tif_getimage.c
-+++ b/libtiff/tif_getimage.c
-@@ -755,9 +755,8 @@ gtTileSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h)
- uint32 leftmost_tw;
-
- tilesize = TIFFTileSize(tif);
-- bufsize = TIFFSafeMultiply(tmsize_t,alpha?4:3,tilesize);
-+ bufsize = _TIFFMultiplySSize(tif, alpha?4:3,tilesize, "gtTileSeparate");
- if (bufsize == 0) {
-- TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "Integer overflow in %s", "gtTileSeparate");
- return (0);
- }
-
-@@ -1019,9 +1018,8 @@ gtStripSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h)
- uint16 colorchannels;
-
- stripsize = TIFFStripSize(tif);
-- bufsize = TIFFSafeMultiply(tmsize_t,alpha?4:3,stripsize);
-+ bufsize = _TIFFMultiplySSize(tif,alpha?4:3,stripsize, "gtStripSeparate");
- if (bufsize == 0) {
-- TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "Integer overflow in %s", "gtStripSeparate");
- return (0);
- }
-
-diff --git a/libtiff/tif_luv.c b/libtiff/tif_luv.c
-index aa35ea07..46d2dff2 100644
---- a/libtiff/tif_luv.c
-+++ b/libtiff/tif_luv.c
-@@ -1264,16 +1264,10 @@ LogL16GuessDataFmt(TIFFDirectory *td)
- return (SGILOGDATAFMT_UNKNOWN);
- }
-
--
--#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
--#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
--
- static tmsize_t
- multiply_ms(tmsize_t m1, tmsize_t m2)
- {
-- if( m1 == 0 || m2 > TIFF_TMSIZE_T_MAX / m1 )
-- return 0;
-- return m1 * m2;
-+ return _TIFFMultiplySSize(NULL, m1, m2, NULL);
- }
-
- static int
-diff --git a/libtiff/tif_pixarlog.c b/libtiff/tif_pixarlog.c
-index 7438d692..b52a3ee4 100644
---- a/libtiff/tif_pixarlog.c
-+++ b/libtiff/tif_pixarlog.c
-@@ -634,15 +634,10 @@ PixarLogGuessDataFmt(TIFFDirectory *td)
- return guess;
- }
-
--#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
--#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
--
- static tmsize_t
- multiply_ms(tmsize_t m1, tmsize_t m2)
- {
-- if( m1 == 0 || m2 > TIFF_TMSIZE_T_MAX / m1 )
-- return 0;
-- return m1 * m2;
-+ return _TIFFMultiplySSize(NULL, m1, m2, NULL);
- }
-
- static tmsize_t
-diff --git a/libtiff/tif_read.c b/libtiff/tif_read.c
-index e63810cc..8db39d7a 100644
---- a/libtiff/tif_read.c
-+++ b/libtiff/tif_read.c
-@@ -29,9 +29,6 @@
- #include "tiffiop.h"
- #include <stdio.h>
-
--#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
--#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
--
- int TIFFFillStrip(TIFF* tif, uint32 strip);
- int TIFFFillTile(TIFF* tif, uint32 tile);
- static int TIFFStartStrip(TIFF* tif, uint32 strip);
-@@ -49,6 +46,8 @@ TIFFReadRawTile1(TIFF* tif, uint32 tile, void* buf, tmsize_t size, const char* m
- #define THRESHOLD_MULTIPLIER 10
- #define MAX_THRESHOLD (THRESHOLD_MULTIPLIER * THRESHOLD_MULTIPLIER * THRESHOLD_MULTIPLIER * INITIAL_THRESHOLD)
-
-+#define TIFF_INT64_MAX ((((int64)0x7FFFFFFF) << 32) | 0xFFFFFFFF)
-+
- /* Read 'size' bytes in tif_rawdata buffer starting at offset 'rawdata_offset'
- * Returns 1 in case of success, 0 otherwise. */
- static int TIFFReadAndRealloc( TIFF* tif, tmsize_t size,
-@@ -734,23 +733,8 @@ TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size)
- return ((tmsize_t)(-1));
- }
- bytecount = td->td_stripbytecount[strip];
-- if ((int64)bytecount <= 0) {
--#if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
-- TIFFErrorExt(tif->tif_clientdata, module,
-- "%I64u: Invalid strip byte count, strip %lu",
-- (unsigned __int64) bytecount,
-- (unsigned long) strip);
--#else
-- TIFFErrorExt(tif->tif_clientdata, module,
-- "%llu: Invalid strip byte count, strip %lu",
-- (unsigned long long) bytecount,
-- (unsigned long) strip);
--#endif
-- return ((tmsize_t)(-1));
-- }
-- bytecountm = (tmsize_t)bytecount;
-- if ((uint64)bytecountm!=bytecount) {
-- TIFFErrorExt(tif->tif_clientdata, module, "Integer overflow");
-+ bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount, module);
-+ if (bytecountm == 0) {
- return ((tmsize_t)(-1));
- }
- if (size != (tmsize_t)(-1) && size < bytecountm)
-@@ -774,7 +758,7 @@ TIFFFillStrip(TIFF* tif, uint32 strip)
- if ((tif->tif_flags&TIFF_NOREADRAW)==0)
- {
- uint64 bytecount = td->td_stripbytecount[strip];
-- if ((int64)bytecount <= 0) {
-+ if( bytecount == 0 || bytecount > (uint64)TIFF_INT64_MAX ) {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFErrorExt(tif->tif_clientdata, module,
- "Invalid strip byte count %I64u, strip %lu",
-@@ -801,7 +785,7 @@ TIFFFillStrip(TIFF* tif, uint32 strip)
- (bytecount - 4096) / 10 > (uint64)stripsize )
- {
- uint64 newbytecount = (uint64)stripsize * 10 + 4096;
-- if( (int64)newbytecount >= 0 )
-+ if( newbytecount == 0 || newbytecount > (uint64)TIFF_INT64_MAX )
- {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFWarningExt(tif->tif_clientdata, module,
-@@ -1196,10 +1180,8 @@ TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size)
- bytecount64 = td->td_stripbytecount[tile];
- if (size != (tmsize_t)(-1) && (uint64)size < bytecount64)
- bytecount64 = (uint64)size;
-- bytecountm = (tmsize_t)bytecount64;
-- if ((uint64)bytecountm!=bytecount64)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-+ bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount64, module);
-+ if( bytecountm == 0 ) {
- return ((tmsize_t)(-1));
- }
- return (TIFFReadRawTile1(tif, tile, buf, bytecountm, module));
-@@ -1221,7 +1203,7 @@ TIFFFillTile(TIFF* tif, uint32 tile)
- if ((tif->tif_flags&TIFF_NOREADRAW)==0)
- {
- uint64 bytecount = td->td_stripbytecount[tile];
-- if ((int64)bytecount <= 0) {
-+ if( bytecount == 0 || bytecount > (uint64)TIFF_INT64_MAX ) {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFErrorExt(tif->tif_clientdata, module,
- "%I64u: Invalid tile byte count, tile %lu",
-@@ -1248,7 +1230,7 @@ TIFFFillTile(TIFF* tif, uint32 tile)
- (bytecount - 4096) / 10 > (uint64)stripsize )
- {
- uint64 newbytecount = (uint64)stripsize * 10 + 4096;
-- if( (int64)newbytecount >= 0 )
-+ if( newbytecount == 0 || newbytecount > (uint64)TIFF_INT64_MAX )
- {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFWarningExt(tif->tif_clientdata, module,
-diff --git a/libtiff/tif_strip.c b/libtiff/tif_strip.c
-index 5b76fba5..2366acf0 100644
---- a/libtiff/tif_strip.c
-+++ b/libtiff/tif_strip.c
-@@ -129,15 +129,8 @@ TIFFVStripSize(TIFF* tif, uint32 nrows)
- {
- static const char module[] = "TIFFVStripSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFVStripSize64(tif,nrows);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -211,15 +204,8 @@ TIFFStripSize(TIFF* tif)
- {
- static const char module[] = "TIFFStripSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFStripSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -330,14 +316,8 @@ TIFFScanlineSize(TIFF* tif)
- {
- static const char module[] = "TIFFScanlineSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFScanlineSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m) {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer arithmetic overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -366,15 +346,8 @@ TIFFRasterScanlineSize(TIFF* tif)
- {
- static const char module[] = "TIFFRasterScanlineSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFRasterScanlineSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer arithmetic overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /* vim: set ts=8 sts=8 sw=8 noet: */
-diff --git a/libtiff/tif_tile.c b/libtiff/tif_tile.c
-index 58fe9354..661cc771 100644
---- a/libtiff/tif_tile.c
-+++ b/libtiff/tif_tile.c
-@@ -181,15 +181,8 @@ TIFFTileRowSize(TIFF* tif)
- {
- static const char module[] = "TIFFTileRowSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFTileRowSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -248,15 +241,8 @@ TIFFVTileSize(TIFF* tif, uint32 nrows)
- {
- static const char module[] = "TIFFVTileSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFVTileSize64(tif,nrows);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -272,15 +258,8 @@ TIFFTileSize(TIFF* tif)
- {
- static const char module[] = "TIFFTileSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFTileSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-diff --git a/libtiff/tiffiop.h b/libtiff/tiffiop.h
-index 186c291f..558484fe 100644
---- a/libtiff/tiffiop.h
-+++ b/libtiff/tiffiop.h
-@@ -77,6 +77,9 @@ extern int snprintf(char* str, size_t size, const char* format, ...);
- #define FALSE 0
- #endif
-
-+#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
-+#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
-+
- typedef struct client_info {
- struct client_info *next;
- void *data;
-@@ -258,7 +261,7 @@ struct tiff {
- #define TIFFhowmany8_64(x) (((x)&0x07)?((uint64)(x)>>3)+1:(uint64)(x)>>3)
- #define TIFFroundup_64(x, y) (TIFFhowmany_64(x,y)*(y))
-
--/* Safe multiply which returns zero if there is an integer overflow */
-+/* Safe multiply which returns zero if there is an *unsigned* integer overflow. This macro is not safe for *signed* integer types */
- #define TIFFSafeMultiply(t,v,m) ((((t)(m) != (t)0) && (((t)(((v)*(m))/(m))) == (t)(v))) ? (t)((v)*(m)) : (t)0)
-
- #define TIFFmax(A,B) ((A)>(B)?(A):(B))
-@@ -368,6 +371,8 @@ extern TIFFErrorHandlerExt _TIFFerrorHandlerExt;
-
- extern uint32 _TIFFMultiply32(TIFF*, uint32, uint32, const char*);
- extern uint64 _TIFFMultiply64(TIFF*, uint64, uint64, const char*);
-+extern tmsize_t _TIFFMultiplySSize(TIFF*, tmsize_t, tmsize_t, const char*);
-+extern tmsize_t _TIFFCastUInt64ToSSize(TIFF*, uint64, const char*);
- extern void* _TIFFCheckMalloc(TIFF*, tmsize_t, tmsize_t, const char*);
- extern void* _TIFFCheckRealloc(TIFF*, void*, tmsize_t, tmsize_t, const char*);
-
---
-2.17.1
-
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch b/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch
deleted file mode 100644
index 6f1fd4d44..000000000
--- a/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-CVE: CVE-2019-6128
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 0c74a9f49b8d7a36b17b54a7428b3526d20f88a8 Mon Sep 17 00:00:00 2001
-From: Scott Gayou <github.scott@gmail.com>
-Date: Wed, 23 Jan 2019 15:03:53 -0500
-Subject: [PATCH] Fix for simple memory leak that was assigned CVE-2019-6128.
-
-pal2rgb failed to free memory on a few errors. This was reported
-here: http://bugzilla.maptools.org/show_bug.cgi?id=2836.
----
- tools/pal2rgb.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/tools/pal2rgb.c b/tools/pal2rgb.c
-index 01d8502ec..9492f1cf1 100644
---- a/tools/pal2rgb.c
-+++ b/tools/pal2rgb.c
-@@ -118,12 +118,14 @@ main(int argc, char* argv[])
- shortv != PHOTOMETRIC_PALETTE) {
- fprintf(stderr, "%s: Expecting a palette image.\n",
- argv[optind]);
-+ (void) TIFFClose(in);
- return (-1);
- }
- if (!TIFFGetField(in, TIFFTAG_COLORMAP, &rmap, &gmap, &bmap)) {
- fprintf(stderr,
- "%s: No colormap (not a valid palette image).\n",
- argv[optind]);
-+ (void) TIFFClose(in);
- return (-1);
- }
- bitspersample = 0;
-@@ -131,11 +133,14 @@ main(int argc, char* argv[])
- if (bitspersample != 8) {
- fprintf(stderr, "%s: Sorry, can only handle 8-bit images.\n",
- argv[optind]);
-+ (void) TIFFClose(in);
- return (-1);
- }
- out = TIFFOpen(argv[optind+1], "w");
-- if (out == NULL)
-+ if (out == NULL) {
-+ (void) TIFFClose(in);
- return (-2);
-+ }
- cpTags(in, out);
- TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &imagewidth);
- TIFFGetField(in, TIFFTAG_IMAGELENGTH, &imagelength);
---
-2.21.0
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch b/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch
deleted file mode 100644
index f244fb2f3..000000000
--- a/poky/meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-CVE: CVE-2019-7663
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From c6fc6c1fa895024c86285c58efd6424cf8078f32 Mon Sep 17 00:00:00 2001
-From: Thomas Bernard <miniupnp@free.fr>
-Date: Mon, 11 Feb 2019 10:05:33 +0100
-Subject: [PATCH 1/2] check that (Tile Width)*(Samples/Pixel) do no overflow
-
-fixes bug 2833
----
- tools/tiffcp.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/tools/tiffcp.c b/tools/tiffcp.c
-index 2f406e2d..f0ee2c02 100644
---- a/tools/tiffcp.c
-+++ b/tools/tiffcp.c
-@@ -1408,7 +1408,7 @@ DECLAREreadFunc(readSeparateTilesIntoBuffer)
- int status = 1;
- uint32 imagew = TIFFRasterScanlineSize(in);
- uint32 tilew = TIFFTileRowSize(in);
-- int iskew = imagew - tilew*spp;
-+ int iskew;
- tsize_t tilesize = TIFFTileSize(in);
- tdata_t tilebuf;
- uint8* bufp = (uint8*) buf;
-@@ -1416,6 +1416,12 @@ DECLAREreadFunc(readSeparateTilesIntoBuffer)
- uint32 row;
- uint16 bps = 0, bytes_per_sample;
-
-+ if (spp > (0x7fffffff / tilew))
-+ {
-+ TIFFError(TIFFFileName(in), "Error, cannot handle that much samples per tile row (Tile Width * Samples/Pixel)");
-+ return 0;
-+ }
-+ iskew = imagew - tilew*spp;
- tilebuf = _TIFFmalloc(tilesize);
- if (tilebuf == 0)
- return 0;
---
-2.20.1
-
-
-From da6454aa80b9bb3154dfab4e8b21637de47531e0 Mon Sep 17 00:00:00 2001
-From: Thomas Bernard <miniupnp@free.fr>
-Date: Mon, 11 Feb 2019 21:42:03 +0100
-Subject: [PATCH 2/2] tiffcp.c: use INT_MAX
-
----
- tools/tiffcp.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tools/tiffcp.c b/tools/tiffcp.c
-index f0ee2c02..8c81aa4f 100644
---- a/tools/tiffcp.c
-+++ b/tools/tiffcp.c
-@@ -41,6 +41,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <limits.h>
-
- #include <ctype.h>
-
-@@ -1416,7 +1417,7 @@ DECLAREreadFunc(readSeparateTilesIntoBuffer)
- uint32 row;
- uint16 bps = 0, bytes_per_sample;
-
-- if (spp > (0x7fffffff / tilew))
-+ if (spp > (INT_MAX / tilew))
- {
- TIFFError(TIFFFileName(in), "Error, cannot handle that much samples per tile row (Tile Width * Samples/Pixel)");
- return 0;
---
-2.20.1
-
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb b/poky/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb
index 0432763cc..1f92c1851 100644
--- a/poky/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb
+++ b/poky/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb
@@ -5,12 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf"
CVE_PRODUCT = "libtiff"
SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
- file://CVE-2019-6128.patch \
- file://CVE-2019-7663.patch \
- file://CVE-2019-14973.patch \
-"
-SRC_URI[md5sum] = "114192d7ebe537912a2b97408832e7fd"
-SRC_URI[sha256sum] = "2c52d11ccaf767457db0c46795d9c7d1a8d8f76f68b0b800a3dfe45786b996e4"
+ "
+SRC_URI[md5sum] = "2165e7aba557463acc0664e71a3ed424"
+SRC_URI[sha256sum] = "5d29f32517dadb6dbcd1255ea5bbc93a2b54b94fbf83653b4d65c7d6775b8634"
# exclude betas
UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.12.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb
index a18b2f441..125574fcf 100644
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.12.bb
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3"
SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2 \
file://sdl2.patch"
-SRC_URI[md5sum] = "ddb38254966eb38c77f220d456a1839d"
-SRC_URI[sha256sum] = "1ffec7c9683dfb86ea9040d6a53d6ea819ecdda215df347f79def08f1fe731d1"
+SRC_URI[md5sum] = "294a6c30546504ec3d0deac2b2ea22be"
+SRC_URI[sha256sum] = "90306848359c793fd43b9906e52201df18775742dc3c81c06ab67a806509890a"
inherit autotools pkgconfig
diff --git a/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb b/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
index ccfda2658..8906c748e 100644
--- a/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
+++ b/poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
@@ -17,7 +17,7 @@ SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb b/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
index b993a9454..547e851c1 100644
--- a/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
+++ b/poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
@@ -17,7 +17,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The settings-daemon requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb b/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
index b0cdfa2ae..5c23e8520 100644
--- a/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
+++ b/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
@@ -20,7 +20,7 @@ EXTRA_OECONF = "--enable-startup-notification --with-dbus"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb b/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
index 465f1349a..dfc7fbad5 100644
--- a/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
+++ b/poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
@@ -18,7 +18,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1 \
S = "${WORKDIR}/git"
-inherit autotools pkgconfig gettext gtk-immodules-cache distro_features_check
+inherit autotools pkgconfig gettext gtk-immodules-cache features_check
# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb b/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
index 421740f98..2e6f5b708 100644
--- a/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
+++ b/poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
@@ -37,4 +37,4 @@ FILES_${PN} += "${libdir}/matchbox-panel/*.so \
${datadir}/icons/"
FILES_${PN}-dev += "${libdir}/matchbox-panel/*.la"
-inherit autotools pkgconfig distro_features_check gettext
+inherit autotools pkgconfig features_check gettext
diff --git a/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb b/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
index 8230e9514..966c5b5b9 100644
--- a/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
+++ b/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
@@ -13,7 +13,7 @@ PR = "r30"
# based on the machine architecture.
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit distro_features_check
+inherit features_check
# The matchbox-theme-sato requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb b/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
index 7f5eda304..9f00281dd 100644
--- a/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
+++ b/poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
@@ -16,6 +16,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc b/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
index d947e1ab0..ce683e963 100644
--- a/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
+++ b/poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=aae86bb34b0a83716ca09f4e783d6ba4"
DEPENDS = "matchbox-wm"
SECTION = "x11/wm"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
FILES_${PN} += "${datadir}/themes"
diff --git a/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb b/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
index 7e14ece93..ed3f1a69a 100644
--- a/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
+++ b/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
@@ -7,7 +7,7 @@ PR = "r33"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
PACKAGES = "${PN} ${PN}-base ${PN}-apps ${PN}-games"
diff --git a/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb b/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb
index a5e3a1ad3..c88e1ed8d 100644
--- a/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb
+++ b/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb
@@ -21,7 +21,7 @@ SRC_URI[sha256sum] = "6804043b3ee3a703edde41c724946174b505fe958703eadbd7e0876ece
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/PCManFM/"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
index 59b952522..5ee9164b8 100644
--- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -24,7 +24,7 @@ PV = "0.0+git${SRCPV}"
S = "${WORKDIR}/git"
-inherit autotools distro_features_check pkgconfig
+inherit autotools features_check pkgconfig
PACKAGECONFIG ??= "gtk3"
PACKAGECONFIG[gtk2] = "--with-gtk=2,,gtk+,"
diff --git a/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb b/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
index f3305aef7..f6dac2cf8 100644
--- a/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
+++ b/poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
@@ -16,7 +16,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
FILES_${PN} += "${libdir}/matchbox-panel/*.so"
diff --git a/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb b/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
index bb6b69b90..227fd54b7 100644
--- a/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
+++ b/poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
@@ -17,7 +17,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig gconf distro_features_check
+inherit autotools pkgconfig gconf features_check
FILES_${PN} = "${bindir}/* ${sysconfdir}"
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.26.1.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.26.2.bb
index 77e51e7d2..0139f0101 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.26.1.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.26.2.bb
@@ -21,10 +21,10 @@ SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
file://include_array.patch \
"
-SRC_URI[md5sum] = "08145bd6c1587230f135921c142bc150"
-SRC_URI[sha256sum] = "6b4b21801d2b1008422a1075dbd6fb4ae8b5127503faf657cf9671289d9cd155"
+SRC_URI[md5sum] = "65e06fe73ee166447894aaea95038e3b"
+SRC_URI[sha256sum] = "6b80f0637a80818559ac8fd50db3b394f41cb61904fb9b3ed65fa51635806512"
-inherit cmake pkgconfig gobject-introspection perlnative distro_features_check upstream-version-is-even gtk-doc
+inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
REQUIRED_DISTRO_FEATURES = "x11 opengl"
@@ -99,8 +99,6 @@ EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF "
SECURITY_CFLAGS_remove_aarch64 = "-fpie"
SECURITY_CFLAGS_append_aarch64 = " -fPIE"
-LDFLAGS_append_toolchain-clang = " -rtlib=compiler-rt"
-
FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so"
RRECOMMENDS_${PN} += "ca-certificates shared-mime-info"
diff --git a/poky/meta/recipes-support/aspell/aspell_0.60.7.bb b/poky/meta/recipes-support/aspell/aspell_0.60.8.bb
index da99d1263..629987810 100644
--- a/poky/meta/recipes-support/aspell/aspell_0.60.7.bb
+++ b/poky/meta/recipes-support/aspell/aspell_0.60.8.bb
@@ -4,11 +4,9 @@ SECTION = "console/utils"
LICENSE = "LGPLv2 | LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-PR = "r1"
-
SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz"
-SRC_URI[md5sum] = "8ef2252609c511cd2bb26f3a3932ef28"
-SRC_URI[sha256sum] = "5ca8fc8cb0370cc6c9eb5b64c6d1bc5d57b3750dbf17887726c3407d833b70e4"
+SRC_URI[md5sum] = "012fa9209203ae4e5a61c2a668fd10e3"
+SRC_URI[sha256sum] = "f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2"
PACKAGECONFIG ??= ""
PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses"
diff --git a/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb b/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb
index bcf1c9c77..d3a9de1e4 100644
--- a/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb
+++ b/poky/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb
@@ -9,7 +9,7 @@ SRC_URI[archive.sha256sum] = "0b51e6d339fa2bcca3a3e3159ccea574c67b107f1ac8b00047
DEPENDS = "dbus glib-2.0 glib-2.0-native atk at-spi2-core libxml2"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase distro_features_check upstream-version-is-even
+inherit gnomebase features_check upstream-version-is-even
PACKAGES =+ "${PN}-gnome ${PN}-gtk2"
diff --git a/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch b/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
new file mode 100644
index 000000000..78b19225d
--- /dev/null
+++ b/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
@@ -0,0 +1,42 @@
+From 59402e3a61d14eb7ce8c2019ea1a87ad4bd28605 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Thu, 14 Nov 2019 10:13:53 +0800
+Subject: [PATCH] dont setup compiler flags -m32/-m64
+
+We don't want these to be setup by boost as we pass our own flags.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ tools/build/src/tools/gcc.jam | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
+index c7e3cf3..24486e0 100644
+--- a/tools/build/src/tools/gcc.jam
++++ b/tools/build/src/tools/gcc.jam
+@@ -430,20 +430,6 @@ local rule compile-link-flags ( * )
+ }
+
+ {
+- # Handle address-model
+- compile-link-flags <target-os>aix/<address-model>32 : -maix32 ;
+- compile-link-flags <target-os>aix/<address-model>64 : -maix64 ;
+-
+- compile-link-flags <target-os>hpux/<address-model>32 : -milp32 ;
+- compile-link-flags <target-os>hpux/<address-model>64 : -mlp64 ;
+-
+- local generic-os = [ set.difference $(all-os) : aix hpux ] ;
+- local arch = power sparc x86 ;
+- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>32 : -m32 ;
+- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>64 : -m64 ;
+-}
+-
+-{
+ # Handle threading
+ local rule threading-flags ( * )
+ {
+--
+2.7.4
+
diff --git a/poky/meta/recipes-support/boost/boost_1.71.0.bb b/poky/meta/recipes-support/boost/boost_1.71.0.bb
index 324b46f16..5e9e0d87d 100644
--- a/poky/meta/recipes-support/boost/boost_1.71.0.bb
+++ b/poky/meta/recipes-support/boost/boost_1.71.0.bb
@@ -6,4 +6,5 @@ SRC_URI += "file://arm-intrinsics.patch \
file://boost-math-disable-pch-for-gcc.patch \
file://0001-Apply-boost-1.62.0-no-forced-flags.patch.patch \
file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \
+ file://0001-dont-setup-compiler-flags-m32-m64.patch \
"
diff --git a/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb
index a17f739d4..89f2d77b6 100644
--- a/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb
+++ b/poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
DEPENDS = "glib-2.0 glib-2.0-native dbus dbus-glib virtual/libx11"
RDEPENDS_${PN} += "base-files"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-support/curl/curl_7.66.0.bb b/poky/meta/recipes-support/curl/curl_7.67.0.bb
index d1975f246..e08e08ed4 100644
--- a/poky/meta/recipes-support/curl/curl_7.66.0.bb
+++ b/poky/meta/recipes-support/curl/curl_7.67.0.bb
@@ -9,8 +9,8 @@ SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
file://0001-replace-krb5-config-with-pkg-config.patch \
"
-SRC_URI[md5sum] = "c238aa394e3aa47ca4fcb0491774149f"
-SRC_URI[sha256sum] = "6618234e0235c420a21f4cb4c2dd0badde76e6139668739085a70c4e2fe7a141"
+SRC_URI[md5sum] = "7be288f6fd5b7b5e402ef3b36a461a24"
+SRC_URI[sha256sum] = "dd5f6956821a548bf4b44f067a530ce9445cc8094fd3e7e3fc7854815858586c"
CVE_PRODUCT = "curl libcurl"
inherit autotools pkgconfig binconfig multilib_header
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb
index 689cf8a75..bb8885f1c 100644
--- a/poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.2.17.bb
@@ -29,6 +29,21 @@ EXTRA_OECONF = "--disable-ldap \
--with-readline=${STAGING_LIBDIR}/.. \
--enable-gpg-is-gpg2 \
"
+
+# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg)
+PACKAGES =+ "${PN}-gpg"
+FILES_${PN}-gpg = " \
+ ${bindir}/gpg \
+ ${bindir}/gpg2 \
+ ${bindir}/gpg-agent \
+"
+
+# Normal package (gnupg) should depend on minimal package (gnupg-gpg)
+# to ensure all tools are included. This is done only in non-native
+# builds. Native builds don't have sub-packages, so appending RDEPENDS
+# in this case breaks recipe parsing.
+RDEPENDS_${PN} += "${@ "" if ("native" in d.getVar("PN")) else (d.getVar("PN") + "-gpg")}"
+
RRECOMMENDS_${PN} = "pinentry"
do_configure_prepend () {
@@ -55,4 +70,4 @@ PACKAGECONFIG ??= "gnutls"
PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls"
PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.9.bb b/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb
index 43f76dc56..43f76dc56 100644
--- a/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.9.bb
+++ b/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb
diff --git a/poky/meta/recipes-support/libcap-ng/libcap-ng.inc b/poky/meta/recipes-support/libcap-ng/libcap-ng.inc
index 739b91fd2..aec83896e 100644
--- a/poky/meta/recipes-support/libcap-ng/libcap-ng.inc
+++ b/poky/meta/recipes-support/libcap-ng/libcap-ng.inc
@@ -11,7 +11,7 @@ SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \
file://python.patch \
"
-SRC_URI[md5sum] = "2398d695508fab9ce33668c53a89b0e9"
-SRC_URI[sha256sum] = "4a1532bcf3731aade40936f6d6a586ed5a66ca4c7455e1338d1f6c3e09221328"
+SRC_URI[md5sum] = "57dc267e2949cdecb651a929f9206572"
+SRC_URI[sha256sum] = "a84ca7b4e0444283ed269b7a29f5b6187f647c82e2b876636b49b9a744f0ffbf"
-BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.9.bb b/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb
index 6e6de4549..a9a046571 100644
--- a/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.9.bb
+++ b/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb
@@ -3,6 +3,7 @@ require libcap-ng.inc
inherit lib_package autotools
EXTRA_OECONF += "--without-python --without-python3"
+LDFLAGS_append_class-native = " -pthread"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libcheck/libcheck_0.12.0.bb b/poky/meta/recipes-support/libcheck/libcheck_0.13.0.bb
index 25ac2c4b2..226417f99 100644
--- a/poky/meta/recipes-support/libcheck/libcheck_0.12.0.bb
+++ b/poky/meta/recipes-support/libcheck/libcheck_0.13.0.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1"
SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \
file://not-echo-compiler-info-to-check_stdint.h.patch"
-SRC_URI[md5sum] = "31b17c6075820a434119592941186f70"
-SRC_URI[sha256sum] = "464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234"
+SRC_URI[md5sum] = "2c730c40b08482eaeb10132517970593"
+SRC_URI[sha256sum] = "c4336b31447acc7e3266854f73ec188cdb15554d0edd44739631da174a569909"
UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/"
S = "${WORKDIR}/check-${PV}"
diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.11.bb b/poky/meta/recipes-support/libevent/libevent_2.1.11.bb
index f005ab8bd..8c7c49e7d 100644
--- a/poky/meta/recipes-support/libevent/libevent_2.1.11.bb
+++ b/poky/meta/recipes-support/libevent/libevent_2.1.11.bb
@@ -31,9 +31,17 @@ inherit ptest multilib_header
DEPENDS = "zlib"
+PACKAGES_DYNAMIC = "^${PN}-.*$"
+python split_libevent_libs () {
+ do_split_packages(d, '${libdir}', r'^libevent_([a-z]*)-.*\.so\..*', '${PN}-%s', '${SUMMARY} (%s)', prepend=True, allow_links=True)
+}
+PACKAGESPLITFUNCS_prepend = "split_libevent_libs "
+
BBCLASSEXTEND = "native nativesdk"
do_install_append() {
+ rm ${D}${bindir}/event_rpcgen.py
+ rmdir ${D}${bindir}
oe_multilib_header event2/event-config.h
}
diff --git a/poky/meta/recipes-support/libfm/libfm_1.3.1.bb b/poky/meta/recipes-support/libfm/libfm_1.3.1.bb
index 65a6f8e78..918fe3ece 100644
--- a/poky/meta/recipes-support/libfm/libfm_1.3.1.bb
+++ b/poky/meta/recipes-support/libfm/libfm_1.3.1.bb
@@ -19,7 +19,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \
SRC_URI[md5sum] = "c15ecd2c9317e2c385cd3f046d0b61ba"
SRC_URI[sha256sum] = "96b1244bde41ca0eef0332cfb5c67bb16725dfd102128f3e6f74fadc13a1cfe4"
-inherit autotools pkgconfig gtk-doc gettext distro_features_check
+inherit autotools pkgconfig gtk-doc gettext features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
EXTRA_OECONF = "--with-gtk=3"
diff --git a/poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch b/poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch
new file mode 100644
index 000000000..4df96f001
--- /dev/null
+++ b/poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch
@@ -0,0 +1,90 @@
+From 1374254c2904ab5b18ba4a890856824a102d4705 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Sat, 27 Apr 2019 19:33:28 +0300
+Subject: [PATCH 1/3] Prefetch GCM look-up tables
+
+* cipher/cipher-gcm.c (prefetch_table, do_prefetch_tables)
+(prefetch_tables): New.
+(ghash_internal): Call prefetch_tables.
+--
+
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+
+Upstream-Status: Backport
+[https://github.com/gpg/libgcrypt/commit/1374254c2904ab5b18ba4a890856824a102d4705]
+
+CVE: CVE-2019-12904
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cipher/cipher-gcm.c | 33 +++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c
+index c19f09f..11f119a 100644
+--- a/cipher/cipher-gcm.c
++++ b/cipher/cipher-gcm.c
+@@ -118,6 +118,34 @@ static const u16 gcmR[256] = {
+ 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
+ };
+
++static inline
++void prefetch_table(const void *tab, size_t len)
++{
++ const volatile byte *vtab = tab;
++ size_t i;
++
++ for (i = 0; i < len; i += 8 * 32)
++ {
++ (void)vtab[i + 0 * 32];
++ (void)vtab[i + 1 * 32];
++ (void)vtab[i + 2 * 32];
++ (void)vtab[i + 3 * 32];
++ (void)vtab[i + 4 * 32];
++ (void)vtab[i + 5 * 32];
++ (void)vtab[i + 6 * 32];
++ (void)vtab[i + 7 * 32];
++ }
++
++ (void)vtab[len - 1];
++}
++
++static inline void
++do_prefetch_tables (const void *gcmM, size_t gcmM_size)
++{
++ prefetch_table(gcmM, gcmM_size);
++ prefetch_table(gcmR, sizeof(gcmR));
++}
++
+ #ifdef GCM_TABLES_USE_U64
+ static void
+ bshift (u64 * b0, u64 * b1)
+@@ -365,6 +393,8 @@ do_ghash (unsigned char *result, const unsigned char *buf, const u32 *gcmM)
+ #define fillM(c) \
+ do_fillM (c->u_mode.gcm.u_ghash_key.key, c->u_mode.gcm.gcm_table)
+ #define GHASH(c, result, buf) do_ghash (result, buf, c->u_mode.gcm.gcm_table)
++#define prefetch_tables(c) \
++ do_prefetch_tables(c->u_mode.gcm.gcm_table, sizeof(c->u_mode.gcm.gcm_table))
+
+ #else
+
+@@ -430,6 +460,7 @@ do_ghash (unsigned char *hsub, unsigned char *result, const unsigned char *buf)
+
+ #define fillM(c) do { } while (0)
+ #define GHASH(c, result, buf) do_ghash (c->u_mode.gcm.u_ghash_key.key, result, buf)
++#define prefetch_tables(c) do {} while (0)
+
+ #endif /* !GCM_USE_TABLES */
+
+@@ -441,6 +472,8 @@ ghash_internal (gcry_cipher_hd_t c, byte *result, const byte *buf,
+ const unsigned int blocksize = GCRY_GCM_BLOCK_LEN;
+ unsigned int burn = 0;
+
++ prefetch_tables (c);
++
+ while (nblocks)
+ {
+ burn = GHASH (c, result, buf);
+--
+2.7.4
+
diff --git a/poky/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch b/poky/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
index d41c3de3b..cd8a5993b 100644
--- a/poky/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch
+++ b/poky/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
@@ -1,41 +1,26 @@
-From 72b9e9040d58c15f0302bd8abda28179f04e1c5f Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 16 Aug 2017 10:43:18 +0800
-Subject: [PATCH 1/4] Add and use pkg-config for libgcrypt instead of -config
- scripts.
+From bee26d7c4ea0b4a397c289b819b89e78bc325ba0 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <trevor.gamblin@windriver.com>
+Date: Tue, 29 Oct 2019 14:08:32 -0400
+Subject: [PATCH] libgcrypt: fix m4 file for oe-core
-Upstream-Status: Denied [upstream have indicated they don't want a
-pkg-config dependency]
+Modify libgcrypt pkgconfig specifically for oe-core. Changes
+are based on a previous patch from RP, using wiggle to
+incorporate the parts that aren't in the upstream pkgconfig
+settings.
-RP 2014/5/22
+Upstream-Status: Inappropriate [oe-specific]
-Rebase to 1.8.0
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- configure.ac | 1 +
- src/libgcrypt.m4 | 71 +++--------------------------------------------------
- src/libgcrypt.pc.in | 33 +++++++++++++++++++++++++
- 3 files changed, 38 insertions(+), 67 deletions(-)
- create mode 100644 src/libgcrypt.pc.in
+ src/libgcrypt.m4 | 90 +++---------------------------------------------
+ 1 file changed, 4 insertions(+), 86 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index bbe8104..3d2de73 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2607,6 +2607,7 @@ random/Makefile
- doc/Makefile
- src/Makefile
- src/gcrypt.h
-+src/libgcrypt.pc
- src/libgcrypt-config
- src/versioninfo.rc
- tests/Makefile
diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4
-index c67cfec..4ea5f2c 100644
+index 37dfbea2..3d2e90a8 100644
--- a/src/libgcrypt.m4
+++ b/src/libgcrypt.m4
-@@ -29,30 +29,6 @@ dnl is added to the gpg_config_script_warn variable.
+@@ -29,41 +29,6 @@ dnl is added to the gpg_config_script_warn variable.
dnl
AC_DEFUN([AM_PATH_LIBGCRYPT],
[ AC_REQUIRE([AC_CANONICAL_HOST])
@@ -46,8 +31,20 @@ index c67cfec..4ea5f2c 100644
- if test x"${LIBGCRYPT_CONFIG}" = x ; then
- if test x"${libgcrypt_config_prefix}" != x ; then
- LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config"
-- else
-- case "${SYSROOT}" in
+- fi
+- fi
+-
+- use_gpgrt_config=""
+- if test x"${LIBGCRYPT_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
+- if $GPGRT_CONFIG libgcrypt --exists; then
+- LIBGCRYPT_CONFIG="$GPGRT_CONFIG libgcrypt"
+- AC_MSG_NOTICE([Use gpgrt-config as libgcrypt-config])
+- use_gpgrt_config=yes
+- fi
+- fi
+- if test -z "$use_gpgrt_config"; then
+- if test x"${LIBGCRYPT_CONFIG}" = x ; then
+- case "${SYSROOT}" in
- /*)
- if test -x "${SYSROOT}/bin/libgcrypt-config" ; then
- LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config"
@@ -58,15 +55,14 @@ index c67cfec..4ea5f2c 100644
- *)
- AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
- ;;
-- esac
-- fi
+- esac
+- fi
+- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
- fi
--
-- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+
tmp=ifelse([$1], ,1:1.2.0,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
- req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
-@@ -62,48 +38,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+@@ -74,56 +39,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
min_libgcrypt_version="$tmp"
fi
@@ -79,7 +75,11 @@ index c67cfec..4ea5f2c 100644
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $min_libgcrypt_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
+- if test -z "$use_gpgrt_config"; then
+- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
+- else
+- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --modversion`
+- fi
- major=`echo $libgcrypt_config_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $libgcrypt_config_version | \
@@ -113,24 +113,29 @@ index c67cfec..4ea5f2c 100644
# If we have a recent libgcrypt, we should also check that the
# API is compatible
if test "$req_libgcrypt_api" -gt 0 ; then
-- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
+- if test -z "$use_gpgrt_config"; then
+- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
+- else
+- tmp=`$LIBGCRYPT_CONFIG --variable=api_version 2>/dev/null || echo 0`
+- fi
+ tmp=`$PKG_CONFIG --variable=api_version libgcrypt`
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([LIBGCRYPT API version])
if test "$req_libgcrypt_api" -eq "$tmp" ; then
-@@ -116,10 +57,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+@@ -136,11 +58,9 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
fi
fi
if test $ok = yes; then
- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
ifelse([$2], , :, [$2])
-- libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
-+ libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt`
- if test x"$libgcrypt_config_host" != xnone ; then
- if test x"$libgcrypt_config_host" != x"$host" ; then
- AC_MSG_WARN([[
-@@ -134,8 +73,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+ if test -z "$use_gpgrt_config"; then
+- libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
++ libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt`
+ else
+ libgcrypt_config_host=`$LIBGCRYPT_CONFIG --variable=host 2>/dev/null || echo none`
+ fi
+@@ -158,8 +78,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
fi
fi
else
@@ -139,45 +144,6 @@ index c67cfec..4ea5f2c 100644
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBGCRYPT_CFLAGS)
-diff --git a/src/libgcrypt.pc.in b/src/libgcrypt.pc.in
-new file mode 100644
-index 0000000..2fc8f53
---- /dev/null
-+++ b/src/libgcrypt.pc.in
-@@ -0,0 +1,33 @@
-+# Process this file with autoconf to produce a pkg-config metadata file.
-+# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation
-+# Author: Simon Josefsson
-+#
-+# This file is free software; as a special exception the author gives
-+# unlimited permission to copy and/or distribute it, with or without
-+# modifications, as long as this notice is preserved.
-+#
-+# This file is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
-+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-+
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+# API info
-+api_version=@LIBGCRYPT_CONFIG_API_VERSION@
-+host=@LIBGCRYPT_CONFIG_HOST@
-+
-+# Misc information.
-+symmetric_ciphers=@LIBGCRYPT_CIPHERS@
-+asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@
-+digests=@LIBGCRYPT_DIGESTS@
-+
-+Name: libgcrypt
-+Description: GNU crypto library
-+URL: http://www.gnupg.org
-+Version: @VERSION@
-+Libs: -L${libdir} -lgcrypt
-+Libs.private: -L${libdir} -lgpg-error
-+Cflags: -I${includedir}
--
-1.8.3.1
+2.17.1
diff --git a/poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch b/poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch
new file mode 100644
index 000000000..c82c5b5c8
--- /dev/null
+++ b/poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch
@@ -0,0 +1,332 @@
+From 119348dd9aa52ab229afb5e2d3342d2b76fe81bf Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Fri, 31 May 2019 17:18:09 +0300
+Subject: [PATCH 2/3] AES: move look-up tables to .data section and unshare between
+ processes
+
+* cipher/rijndael-internal.h (ATTR_ALIGNED_64): New.
+* cipher/rijndael-tables.h (encT): Move to 'enc_tables' structure.
+(enc_tables): New structure for encryption table with counters before
+and after.
+(encT): New macro.
+(dec_tables): Add counters before and after encryption table; Move
+from .rodata to .data section.
+(do_encrypt): Change 'encT' to 'enc_tables.T'.
+(do_decrypt): Change '&dec_tables' to 'dec_tables.T'.
+* cipher/cipher-gcm.c (prefetch_table): Make inline; Handle input
+with length not multiple of 256.
+(prefetch_enc, prefetch_dec): Modify pre- and post-table counters
+to unshare look-up table pages between processes.
+--
+
+GnuPG-bug-id: 4541
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+
+Upstream-Status: Backport
+[https://github.com/gpg/libgcrypt/commit/daedbbb5541cd8ecda1459d3b843ea4d92788762]
+
+CVE: CVE-2019-12904
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cipher/rijndael-internal.h | 4 +-
+ cipher/rijndael-tables.h | 155 +++++++++++++++++++++++++--------------------
+ cipher/rijndael.c | 35 ++++++++--
+ 3 files changed, 118 insertions(+), 76 deletions(-)
+
+diff --git a/cipher/rijndael-internal.h b/cipher/rijndael-internal.h
+index 160fb8c..a62d4b7 100644
+--- a/cipher/rijndael-internal.h
++++ b/cipher/rijndael-internal.h
+@@ -29,11 +29,13 @@
+ #define BLOCKSIZE (128/8)
+
+
+-/* Helper macro to force alignment to 16 bytes. */
++/* Helper macro to force alignment to 16 or 64 bytes. */
+ #ifdef HAVE_GCC_ATTRIBUTE_ALIGNED
+ # define ATTR_ALIGNED_16 __attribute__ ((aligned (16)))
++# define ATTR_ALIGNED_64 __attribute__ ((aligned (64)))
+ #else
+ # define ATTR_ALIGNED_16
++# define ATTR_ALIGNED_64
+ #endif
+
+
+diff --git a/cipher/rijndael-tables.h b/cipher/rijndael-tables.h
+index 8359470..b54d959 100644
+--- a/cipher/rijndael-tables.h
++++ b/cipher/rijndael-tables.h
+@@ -21,80 +21,98 @@
+ /* To keep the actual implementation at a readable size we use this
+ include file to define the tables. */
+
+-static const u32 encT[256] =
++static struct
++{
++ volatile u32 counter_head;
++ u32 cacheline_align[64 / 4 - 1];
++ u32 T[256];
++ volatile u32 counter_tail;
++} enc_tables ATTR_ALIGNED_64 =
+ {
+- 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
+- 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
+- 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
+- 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
+- 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
+- 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
+- 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
+- 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
+- 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
+- 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
+- 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
+- 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
+- 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
+- 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
+- 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
+- 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
+- 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
+- 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
+- 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
+- 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
+- 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
+- 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
+- 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
+- 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
+- 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
+- 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
+- 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
+- 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
+- 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
+- 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
+- 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
+- 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
+- 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
+- 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
+- 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
+- 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
+- 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
+- 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
+- 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
+- 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
+- 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
+- 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
+- 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
+- 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
+- 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
+- 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
+- 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
+- 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
+- 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
+- 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
+- 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
+- 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
+- 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
+- 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
+- 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
+- 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
+- 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
+- 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
+- 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
+- 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
+- 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
+- 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
+- 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
+- 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c
++ 0,
++ { 0, },
++ {
++ 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
++ 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
++ 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
++ 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
++ 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
++ 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
++ 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
++ 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
++ 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
++ 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
++ 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
++ 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
++ 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
++ 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
++ 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
++ 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
++ 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
++ 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
++ 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
++ 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
++ 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
++ 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
++ 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
++ 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
++ 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
++ 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
++ 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
++ 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
++ 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
++ 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
++ 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
++ 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
++ 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
++ 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
++ 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
++ 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
++ 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
++ 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
++ 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
++ 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
++ 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
++ 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
++ 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
++ 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
++ 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
++ 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
++ 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
++ 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
++ 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
++ 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
++ 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
++ 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
++ 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
++ 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
++ 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
++ 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
++ 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
++ 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
++ 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
++ 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
++ 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
++ 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
++ 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
++ 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c
++ },
++ 0
+ };
+
+-static const struct
++#define encT enc_tables.T
++
++static struct
+ {
++ volatile u32 counter_head;
++ u32 cacheline_align[64 / 4 - 1];
+ u32 T[256];
+ byte inv_sbox[256];
+-} dec_tables =
++ volatile u32 counter_tail;
++} dec_tables ATTR_ALIGNED_64 =
+ {
++ 0,
++ { 0, },
+ {
+ 0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a,
+ 0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b,
+@@ -194,7 +212,8 @@ static const struct
+ 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,
+ 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,
+ 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+- }
++ },
++ 0
+ };
+
+ #define decT dec_tables.T
+diff --git a/cipher/rijndael.c b/cipher/rijndael.c
+index 8637195..d0edab2 100644
+--- a/cipher/rijndael.c
++++ b/cipher/rijndael.c
+@@ -227,11 +227,11 @@ static const char *selftest(void);
+
+
+ /* Prefetching for encryption/decryption tables. */
+-static void prefetch_table(const volatile byte *tab, size_t len)
++static inline void prefetch_table(const volatile byte *tab, size_t len)
+ {
+ size_t i;
+
+- for (i = 0; i < len; i += 8 * 32)
++ for (i = 0; len - i >= 8 * 32; i += 8 * 32)
+ {
+ (void)tab[i + 0 * 32];
+ (void)tab[i + 1 * 32];
+@@ -242,17 +242,37 @@ static void prefetch_table(const volatile byte *tab, size_t len)
+ (void)tab[i + 6 * 32];
+ (void)tab[i + 7 * 32];
+ }
++ for (; i < len; i += 32)
++ {
++ (void)tab[i];
++ }
+
+ (void)tab[len - 1];
+ }
+
+ static void prefetch_enc(void)
+ {
+- prefetch_table((const void *)encT, sizeof(encT));
++ /* Modify counters to trigger copy-on-write and unsharing if physical pages
++ * of look-up table are shared between processes. Modifying counters also
++ * causes checksums for pages to change and hint same-page merging algorithm
++ * that these pages are frequently changing. */
++ enc_tables.counter_head++;
++ enc_tables.counter_tail++;
++
++ /* Prefetch look-up tables to cache. */
++ prefetch_table((const void *)&enc_tables, sizeof(enc_tables));
+ }
+
+ static void prefetch_dec(void)
+ {
++ /* Modify counters to trigger copy-on-write and unsharing if physical pages
++ * of look-up table are shared between processes. Modifying counters also
++ * causes checksums for pages to change and hint same-page merging algorithm
++ * that these pages are frequently changing. */
++ dec_tables.counter_head++;
++ dec_tables.counter_tail++;
++
++ /* Prefetch look-up tables to cache. */
+ prefetch_table((const void *)&dec_tables, sizeof(dec_tables));
+ }
+
+@@ -737,7 +757,7 @@ do_encrypt (const RIJNDAEL_context *ctx,
+ #ifdef USE_AMD64_ASM
+ # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS
+ return _gcry_aes_amd64_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds,
+- encT);
++ enc_tables.T);
+ # else
+ /* Call SystemV ABI function without storing non-volatile XMM registers,
+ * as target function does not use vector instruction sets. */
+@@ -757,7 +777,8 @@ do_encrypt (const RIJNDAEL_context *ctx,
+ return ret;
+ # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */
+ #elif defined(USE_ARM_ASM)
+- return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds, encT);
++ return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds,
++ enc_tables.T);
+ #else
+ return do_encrypt_fn (ctx, bx, ax);
+ #endif /* !USE_ARM_ASM && !USE_AMD64_ASM*/
+@@ -1120,7 +1141,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx,
+ #ifdef USE_AMD64_ASM
+ # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS
+ return _gcry_aes_amd64_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds,
+- &dec_tables);
++ dec_tables.T);
+ # else
+ /* Call SystemV ABI function without storing non-volatile XMM registers,
+ * as target function does not use vector instruction sets. */
+@@ -1141,7 +1162,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx,
+ # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */
+ #elif defined(USE_ARM_ASM)
+ return _gcry_aes_arm_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds,
+- &dec_tables);
++ dec_tables.T);
+ #else
+ return do_decrypt_fn (ctx, bx, ax);
+ #endif /*!USE_ARM_ASM && !USE_AMD64_ASM*/
+--
+2.7.4
+
diff --git a/poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch b/poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch
new file mode 100644
index 000000000..b580b7b13
--- /dev/null
+++ b/poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch
@@ -0,0 +1,178 @@
+From a4c561aab1014c3630bc88faf6f5246fee16b020 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Fri, 31 May 2019 17:27:25 +0300
+Subject: [PATCH 3/3] GCM: move look-up table to .data section and unshare
+ between processes
+
+* cipher/cipher-gcm.c (ATTR_ALIGNED_64): New.
+(gcmR): Move to 'gcm_table' structure.
+(gcm_table): New structure for look-up table with counters before and
+after.
+(gcmR): New macro.
+(prefetch_table): Handle input with length not multiple of 256.
+(do_prefetch_tables): Modify pre- and post-table counters to unshare
+look-up table pages between processes.
+--
+
+GnuPG-bug-id: 4541
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+
+Upstream-Status: Backport
+[https://github.com/gpg/libgcrypt/commit/a4c561aab1014c3630bc88faf6f5246fee16b020]
+
+CVE: CVE-2019-12904
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cipher/cipher-gcm.c | 106 ++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 70 insertions(+), 36 deletions(-)
+
+diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c
+index 11f119a..194e2ec 100644
+--- a/cipher/cipher-gcm.c
++++ b/cipher/cipher-gcm.c
+@@ -30,6 +30,14 @@
+ #include "./cipher-internal.h"
+
+
++/* Helper macro to force alignment to 16 or 64 bytes. */
++#ifdef HAVE_GCC_ATTRIBUTE_ALIGNED
++# define ATTR_ALIGNED_64 __attribute__ ((aligned (64)))
++#else
++# define ATTR_ALIGNED_64
++#endif
++
++
+ #ifdef GCM_USE_INTEL_PCLMUL
+ extern void _gcry_ghash_setup_intel_pclmul (gcry_cipher_hd_t c);
+
+@@ -83,40 +91,54 @@ ghash_armv7_neon (gcry_cipher_hd_t c, byte *result, const byte *buf,
+
+
+ #ifdef GCM_USE_TABLES
+-static const u16 gcmR[256] = {
+- 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e,
+- 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e,
+- 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e,
+- 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e,
+- 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e,
+- 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e,
+- 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e,
+- 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e,
+- 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce,
+- 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde,
+- 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee,
+- 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe,
+- 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e,
+- 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e,
+- 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae,
+- 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe,
+- 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e,
+- 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e,
+- 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e,
+- 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e,
+- 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e,
+- 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e,
+- 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e,
+- 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e,
+- 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce,
+- 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade,
+- 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee,
+- 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe,
+- 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e,
+- 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e,
+- 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae,
+- 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
+-};
++static struct
++{
++ volatile u32 counter_head;
++ u32 cacheline_align[64 / 4 - 1];
++ u16 R[256];
++ volatile u32 counter_tail;
++} gcm_table ATTR_ALIGNED_64 =
++ {
++ 0,
++ { 0, },
++ {
++ 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e,
++ 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e,
++ 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e,
++ 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e,
++ 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e,
++ 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e,
++ 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e,
++ 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e,
++ 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce,
++ 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde,
++ 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee,
++ 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe,
++ 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e,
++ 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e,
++ 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae,
++ 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe,
++ 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e,
++ 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e,
++ 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e,
++ 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e,
++ 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e,
++ 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e,
++ 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e,
++ 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e,
++ 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce,
++ 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade,
++ 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee,
++ 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe,
++ 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e,
++ 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e,
++ 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae,
++ 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
++ },
++ 0
++ };
++
++#define gcmR gcm_table.R
+
+ static inline
+ void prefetch_table(const void *tab, size_t len)
+@@ -124,7 +146,7 @@ void prefetch_table(const void *tab, size_t len)
+ const volatile byte *vtab = tab;
+ size_t i;
+
+- for (i = 0; i < len; i += 8 * 32)
++ for (i = 0; len - i >= 8 * 32; i += 8 * 32)
+ {
+ (void)vtab[i + 0 * 32];
+ (void)vtab[i + 1 * 32];
+@@ -135,6 +157,10 @@ void prefetch_table(const void *tab, size_t len)
+ (void)vtab[i + 6 * 32];
+ (void)vtab[i + 7 * 32];
+ }
++ for (; i < len; i += 32)
++ {
++ (void)vtab[i];
++ }
+
+ (void)vtab[len - 1];
+ }
+@@ -142,8 +168,16 @@ void prefetch_table(const void *tab, size_t len)
+ static inline void
+ do_prefetch_tables (const void *gcmM, size_t gcmM_size)
+ {
++ /* Modify counters to trigger copy-on-write and unsharing if physical pages
++ * of look-up table are shared between processes. Modifying counters also
++ * causes checksums for pages to change and hint same-page merging algorithm
++ * that these pages are frequently changing. */
++ gcm_table.counter_head++;
++ gcm_table.counter_tail++;
++
++ /* Prefetch look-up tables to cache. */
+ prefetch_table(gcmM, gcmM_size);
+- prefetch_table(gcmR, sizeof(gcmR));
++ prefetch_table(&gcm_table, sizeof(gcm_table));
+ }
+
+ #ifdef GCM_TABLES_USE_U64
+--
+2.7.4
+
diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb
index fda68a293..04785574f 100644
--- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb
+++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb
@@ -17,13 +17,16 @@ DEPENDS = "libgpg-error"
UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \
- file://0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch \
+ file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \
file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \
file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \
file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \
+ file://0001-Prefetch-GCM-look-up-tables.patch \
+ file://0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch \
+ file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \
"
-SRC_URI[md5sum] = "fbfdaebbbc6d7e5fbbf6ffdb3e139573"
-SRC_URI[sha256sum] = "f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227"
+SRC_URI[md5sum] = "348cc4601ca34307fc6cd6c945467743"
+SRC_URI[sha256sum] = "3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3"
BINCONFIG = "${bindir}/libgcrypt-config"
diff --git a/poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch b/poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch
new file mode 100644
index 000000000..b7b757d74
--- /dev/null
+++ b/poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch
@@ -0,0 +1,33 @@
+From e33bc310238bba1690f2c71ad333e10b9e422ea9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 19 Oct 2019 14:23:06 +0200
+Subject: [PATCH] Use our hand-build native src-generator
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/libical-glib/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/libical-glib/CMakeLists.txt b/src/libical-glib/CMakeLists.txt
+index f3704e6..ce9db16 100644
+--- a/src/libical-glib/CMakeLists.txt
++++ b/src/libical-glib/CMakeLists.txt
+@@ -63,8 +63,8 @@ endforeach()
+
+ add_custom_command (
+ OUTPUT ${LIBICAL_GLIB_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/libical-glib-private.h ${CMAKE_CURRENT_BINARY_DIR}/i-cal-forward-declarations.h
+- COMMAND ${EXECUTABLE_OUTPUT_PATH}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api"
+- DEPENDS ${EXECUTABLE_OUTPUT_PATH}/src-generator ${xml_files}
++ COMMAND ${CMAKE_BINARY_DIR}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api"
++ DEPENDS ${CMAKE_BINARY_DIR}/src-generator ${xml_files}
+ )
+
+ configure_file(
+--
+2.21.0
+
diff --git a/poky/meta/recipes-support/libical/libical_3.0.6.bb b/poky/meta/recipes-support/libical/libical_3.0.6.bb
index 032f3655e..f9be898a1 100644
--- a/poky/meta/recipes-support/libical/libical_3.0.6.bb
+++ b/poky/meta/recipes-support/libical/libical_3.0.6.bb
@@ -7,27 +7,35 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
file://LICENSE.MPL2.txt;md5=9741c346eef56131163e13b9db1241b3"
SECTION = "libs"
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-
+SRC_URI = " \
+ https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
+ file://0001-Use-our-hand-build-native-src-generator.patch \
+"
SRC_URI[md5sum] = "463a59244c6767b8e67b29379405e297"
SRC_URI[sha256sum] = "5c8a21c2b732ece4a33e5c862970b4f35a8548bbcda50de5695f6fc211ac4d97"
UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
inherit cmake pkgconfig
-PACKAGECONFIG ??= "icu"
+do_compile_prepend() {
+ # As long as https://github.com/libical/libical/issues/394 is open build native src-generator manually
+ NATIVE_CFLAGS="${BUILD_CFLAGS} `pkg-config-native --cflags glib-2.0` `pkg-config-native --cflags libxml-2.0`"
+ NATIVE_LDFLAGS="${BUILD_LDFLAGS} `pkg-config-native --libs glib-2.0` `pkg-config-native --libs libxml-2.0`"
+ ${BUILD_CC} $NATIVE_CFLAGS ${S}/src/libical-glib/tools/generator.c ${S}/src/libical-glib/tools/xml-parser.c -o ${B}/src-generator $NATIVE_LDFLAGS
+}
+
+PACKAGECONFIG ??= "icu glib"
PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db"
+PACKAGECONFIG[glib] = "-DICAL_GLIB=True,-DICAL_GLIB=False,glib-2.0-native libxml2-native glib-2.0 libxml2"
# ICU is used for RSCALE (RFC7529) support
PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu"
# No need to use perl-native, the host perl is sufficient.
EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
+# doc build fails with linker error (??) for libical-glib so disable it
+EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
-# The glib library can't be cross-compiled, disable for now.
-# https://github.com/libical/libical/issues/394
-EXTRA_OECMAKE += "-DICAL_GLIB=false"
-
-do_install_append_class-target () {
+do_install_append () {
# Remove build host references
sed -i \
-e 's,${STAGING_LIBDIR},${libdir},g' \
diff --git a/poky/meta/recipes-support/libksba/libksba_1.3.5.bb b/poky/meta/recipes-support/libksba/libksba_1.3.5.bb
index a7ea53fed..336d7f817 100644
--- a/poky/meta/recipes-support/libksba/libksba_1.3.5.bb
+++ b/poky/meta/recipes-support/libksba/libksba_1.3.5.bb
@@ -1,6 +1,8 @@
SUMMARY = "Easy API to create and parse X.509 and CMS related objects"
HOMEPAGE = "http://www.gnupg.org/related_software/libksba/"
-LICENSE = "GPLv2+ | LGPLv3+ | GPLv3+"
+LICENSE = "GPLv3+ & (GPLv2+ | LGPLv3+)"
+LICENSE_${PN} = "GPLv2+ | LGPLv3+"
+LICENSE_${PN}-doc = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \
file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \
@@ -25,4 +27,4 @@ do_configure_prepend () {
rm -f ${S}/m4/gpg-error.m4
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch b/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch
index cd6de853e..d534457e7 100644
--- a/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch
+++ b/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch
@@ -3,7 +3,7 @@ From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 15 Feb 2019 14:21:06 +0100
Subject: [PATCH] Do not enforce no-introspection when cross-building
-Upstream-Status: Pending
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/commit/7ef5ec60c33e254bcd915936bea3f04ba0fe2273]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Alistair Francis <alistair@alistair23.me>
---
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.4.bb
index 357f2fd3d..7f5f910d3 100644
--- a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb
+++ b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.66.4.bb
@@ -12,8 +12,10 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \
file://0001-Do-not-enforce-no-introspection-when-cross-building.patch \
"
-SRC_URI[md5sum] = "66c2ae89d6031b01337d78a2c57c75d5"
-SRC_URI[sha256sum] = "bd2ea602eba642509672812f3c99b77cbec2f3de02ba1cc8cb7206bf7de0ae2a"
+SRC_URI[md5sum] = "42016d80ecae4cf8eb416631049a273a"
+SRC_URI[sha256sum] = "8308984f1eee1c4f8c113a9c1763b2b22d981bd811b0cc82a9f3f1aa63228779"
+
+CVE_PRODUCT = "libsoup"
S = "${WORKDIR}/libsoup-${PV}"
@@ -26,7 +28,7 @@ PACKAGECONFIG[gssapi] = "-Dgssapi=true,-Dgssapi=false,krb5"
EXTRA_OEMESON_append = " -Dvapi=false"
-GTKDOC_MESON_OPTION = "doc"
+GTKDOC_MESON_OPTION = "gtk_doc"
# When built without gnome support, libsoup-2.4 will contain only one shared lib
# and will therefore become subject to renaming by debian.bbclass. Prevent
diff --git a/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch b/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch
deleted file mode 100644
index 89b647ddb..000000000
--- a/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Sun, 24 Mar 2019 09:51:39 +0100
-Subject: Fix security framework bypass
-
-xsltCheckRead and xsltCheckWrite return -1 in case of error but callers
-don't check for this condition and allow access. With a specially
-crafted URL, xsltCheckRead could be tricked into returning an error
-because of a supposedly invalid URL that would still be loaded
-succesfully later on.
-
-Fixes #12.
-
-Thanks to Felix Wilhelm for the report.
-
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
-Upstream-Status: Backport
-CVE: CVE-2019-11068
----
- libxslt/documents.c | 18 ++++++++++--------
- libxslt/imports.c | 9 +++++----
- libxslt/transform.c | 9 +++++----
- libxslt/xslt.c | 9 +++++----
- 4 files changed, 25 insertions(+), 20 deletions(-)
-
-diff --git a/libxslt/documents.c b/libxslt/documents.c
-index 3f3a7312..4aad11bb 100644
---- a/libxslt/documents.c
-+++ b/libxslt/documents.c
-@@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) {
- int res;
-
- res = xsltCheckRead(ctxt->sec, ctxt, URI);
-- if (res == 0) {
-- xsltTransformError(ctxt, NULL, NULL,
-- "xsltLoadDocument: read rights for %s denied\n",
-- URI);
-+ if (res <= 0) {
-+ if (res == 0)
-+ xsltTransformError(ctxt, NULL, NULL,
-+ "xsltLoadDocument: read rights for %s denied\n",
-+ URI);
- return(NULL);
- }
- }
-@@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) {
- int res;
-
- res = xsltCheckRead(sec, NULL, URI);
-- if (res == 0) {
-- xsltTransformError(NULL, NULL, NULL,
-- "xsltLoadStyleDocument: read rights for %s denied\n",
-- URI);
-+ if (res <= 0) {
-+ if (res == 0)
-+ xsltTransformError(NULL, NULL, NULL,
-+ "xsltLoadStyleDocument: read rights for %s denied\n",
-+ URI);
- return(NULL);
- }
- }
-diff --git a/libxslt/imports.c b/libxslt/imports.c
-index 874870cc..3783b247 100644
---- a/libxslt/imports.c
-+++ b/libxslt/imports.c
-@@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) {
- int secres;
-
- secres = xsltCheckRead(sec, NULL, URI);
-- if (secres == 0) {
-- xsltTransformError(NULL, NULL, NULL,
-- "xsl:import: read rights for %s denied\n",
-- URI);
-+ if (secres <= 0) {
-+ if (secres == 0)
-+ xsltTransformError(NULL, NULL, NULL,
-+ "xsl:import: read rights for %s denied\n",
-+ URI);
- goto error;
- }
- }
-diff --git a/libxslt/transform.c b/libxslt/transform.c
-index 13793914..0636dbd0 100644
---- a/libxslt/transform.c
-+++ b/libxslt/transform.c
-@@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
- */
- if (ctxt->sec != NULL) {
- ret = xsltCheckWrite(ctxt->sec, ctxt, filename);
-- if (ret == 0) {
-- xsltTransformError(ctxt, NULL, inst,
-- "xsltDocumentElem: write rights for %s denied\n",
-- filename);
-+ if (ret <= 0) {
-+ if (ret == 0)
-+ xsltTransformError(ctxt, NULL, inst,
-+ "xsltDocumentElem: write rights for %s denied\n",
-+ filename);
- xmlFree(URL);
- xmlFree(filename);
- return;
-diff --git a/libxslt/xslt.c b/libxslt/xslt.c
-index 780a5ad7..a234eb79 100644
---- a/libxslt/xslt.c
-+++ b/libxslt/xslt.c
-@@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* filename) {
- int res;
-
- res = xsltCheckRead(sec, NULL, filename);
-- if (res == 0) {
-- xsltTransformError(NULL, NULL, NULL,
-- "xsltParseStylesheetFile: read rights for %s denied\n",
-- filename);
-+ if (res <= 0) {
-+ if (res == 0)
-+ xsltTransformError(NULL, NULL, NULL,
-+ "xsltParseStylesheetFile: read rights for %s denied\n",
-+ filename);
- return(NULL);
- }
- }
---
-2.20.1
-
diff --git a/poky/meta/recipes-support/libxslt/files/CVE-2019-13117.patch b/poky/meta/recipes-support/libxslt/files/CVE-2019-13117.patch
deleted file mode 100644
index ef3f2709f..000000000
--- a/poky/meta/recipes-support/libxslt/files/CVE-2019-13117.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c5eb6cf3aba0af048596106ed839b4ae17ecbcb1 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Sat, 27 Apr 2019 11:19:48 +0200
-Subject: [PATCH] Fix uninitialized read of xsl:number token
-
-Found by OSS-Fuzz.
-
-CVE: CVE-2019-13117
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxslt/commit/c5eb6cf3aba0af048596106ed839b4ae17ecbcb1]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- libxslt/numbers.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/libxslt/numbers.c b/libxslt/numbers.c
-index 89e1f668..75c31eba 100644
---- a/libxslt/numbers.c
-+++ b/libxslt/numbers.c
-@@ -382,7 +382,10 @@ xsltNumberFormatTokenize(const xmlChar *format,
- tokens->tokens[tokens->nTokens].token = val - 1;
- ix += len;
- val = xmlStringCurrentChar(NULL, format+ix, &len);
-- }
-+ } else {
-+ tokens->tokens[tokens->nTokens].token = (xmlChar)'0';
-+ tokens->tokens[tokens->nTokens].width = 1;
-+ }
- } else if ( (val == (xmlChar)'A') ||
- (val == (xmlChar)'a') ||
- (val == (xmlChar)'I') ||
---
-2.21.0
-
diff --git a/poky/meta/recipes-support/libxslt/files/CVE-2019-13118.patch b/poky/meta/recipes-support/libxslt/files/CVE-2019-13118.patch
deleted file mode 100644
index 595e6c2f3..000000000
--- a/poky/meta/recipes-support/libxslt/files/CVE-2019-13118.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 6ce8de69330783977dd14f6569419489875fb71b Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Mon, 3 Jun 2019 13:14:45 +0200
-Subject: [PATCH] Fix uninitialized read with UTF-8 grouping chars
-
-The character type in xsltFormatNumberConversion was too narrow and
-an invalid character/length combination could be passed to
-xsltNumberFormatDecimal, resulting in an uninitialized read.
-
-Found by OSS-Fuzz.
-
-CVE: CVE-2019-13118
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxslt/commit/6ce8de69330783977dd14f6569419489875fb71b]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- libxslt/numbers.c | 5 +++--
- tests/docs/bug-222.xml | 1 +
- tests/general/bug-222.out | 2 ++
- tests/general/bug-222.xsl | 6 ++++++
- 4 files changed, 12 insertions(+), 2 deletions(-)
- create mode 100644 tests/docs/bug-222.xml
- create mode 100644 tests/general/bug-222.out
- create mode 100644 tests/general/bug-222.xsl
-
-diff --git a/libxslt/numbers.c b/libxslt/numbers.c
-index f1ed8846..20b99d5a 100644
---- a/libxslt/numbers.c
-+++ b/libxslt/numbers.c
-@@ -1298,13 +1298,14 @@ OUTPUT_NUMBER:
- number = floor((scale * number + 0.5)) / scale;
- if ((self->grouping != NULL) &&
- (self->grouping[0] != 0)) {
-+ int gchar;
-
- len = xmlStrlen(self->grouping);
-- pchar = xsltGetUTF8Char(self->grouping, &len);
-+ gchar = xsltGetUTF8Char(self->grouping, &len);
- xsltNumberFormatDecimal(buffer, floor(number), self->zeroDigit[0],
- format_info.integer_digits,
- format_info.group,
-- pchar, len);
-+ gchar, len);
- } else
- xsltNumberFormatDecimal(buffer, floor(number), self->zeroDigit[0],
- format_info.integer_digits,
-diff --git a/tests/docs/bug-222.xml b/tests/docs/bug-222.xml
-new file mode 100644
-index 00000000..69d62f2c
---- /dev/null
-+++ b/tests/docs/bug-222.xml
-@@ -0,0 +1 @@
-+<doc/>
-diff --git a/tests/general/bug-222.out b/tests/general/bug-222.out
-new file mode 100644
-index 00000000..e3139698
---- /dev/null
-+++ b/tests/general/bug-222.out
-@@ -0,0 +1,2 @@
-+<?xml version="1.0"?>
-+1⠢0
-diff --git a/tests/general/bug-222.xsl b/tests/general/bug-222.xsl
-new file mode 100644
-index 00000000..e32dc473
---- /dev/null
-+++ b/tests/general/bug-222.xsl
-@@ -0,0 +1,6 @@
-+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-+ <xsl:decimal-format name="f" grouping-separator="⠢"/>
-+ <xsl:template match="/">
-+ <xsl:value-of select="format-number(10,'#⠢0','f')"/>
-+ </xsl:template>
-+</xsl:stylesheet>
---
-2.21.0
-
diff --git a/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb b/poky/meta/recipes-support/libxslt/libxslt_1.1.34.bb
index abc00a09e..ad37b5a44 100644
--- a/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb
+++ b/poky/meta/recipes-support/libxslt/libxslt_1.1.34.bb
@@ -9,13 +9,10 @@ SECTION = "libs"
DEPENDS = "libxml2"
SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz \
- file://0001-Fix-security-framework-bypass.patch \
- file://CVE-2019-13117.patch \
- file://CVE-2019-13118.patch \
-"
+ "
-SRC_URI[md5sum] = "b3bd254a03e46d58f8ad1e4559cd2c2f"
-SRC_URI[sha256sum] = "8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8"
+SRC_URI[md5sum] = "db8765c8d076f1b6caafd9f2542a304a"
+SRC_URI[sha256sum] = "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f"
UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-support/lz4/lz4_1.9.2.bb b/poky/meta/recipes-support/lz4/lz4_1.9.2.bb
index f0a8416a9..ed4452c82 100644
--- a/poky/meta/recipes-support/lz4/lz4_1.9.2.bb
+++ b/poky/meta/recipes-support/lz4/lz4_1.9.2.bb
@@ -18,6 +18,9 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
S = "${WORKDIR}/git"
+# Fixed in r118, which is larger than the current version.
+CVE_CHECK_WHITELIST += "CVE-2014-4715"
+
EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir}"
do_install() {
diff --git a/poky/meta/recipes-support/npth/npth_1.6.bb b/poky/meta/recipes-support/npth/npth_1.6.bb
index 8310efb10..233e0dc4a 100644
--- a/poky/meta/recipes-support/npth/npth_1.6.bb
+++ b/poky/meta/recipes-support/npth/npth_1.6.bb
@@ -24,4 +24,4 @@ do_install_append() {
oe_multilib_header npth.h
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch b/poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch
deleted file mode 100644
index 9d686017d..000000000
--- a/poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 6cb5b0be8837222a1e01745f2cf57cd0e593186d Mon Sep 17 00:00:00 2001
-From: Antoine Tenart <antoine.tenart@free-electrons.com>
-Date: Mon, 23 Oct 2017 10:28:20 +0200
-Subject: [PATCH] Add ARC support
-
-[Alexey: Rebased on top of other patches like RiscV, NIOS2 etc].
-
-Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
-
-Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1492378 ]
----
- pr/include/md/_linux.cfg | 45 ++++++++++++++++++++++++++++++++++++++++
- pr/include/md/_linux.h | 2 ++
- 2 files changed, 47 insertions(+)
-
-diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
-index fec8525378dc..5f4fa0eac783 100644
---- a/pr/include/md/_linux.cfg
-+++ b/pr/include/md/_linux.cfg
-@@ -1157,6 +1157,51 @@
- #define PR_BYTES_PER_WORD_LOG2 3
- #define PR_BYTES_PER_DWORD_LOG2 3
-
-+#elif defined(__arc__)
-+
-+#define IS_LITTLE_ENDIAN 1
-+#undef IS_BIG_ENDIAN
-+
-+#define PR_BYTES_PER_BYTE 1
-+#define PR_BYTES_PER_SHORT 2
-+#define PR_BYTES_PER_INT 4
-+#define PR_BYTES_PER_INT64 8
-+#define PR_BYTES_PER_LONG 4
-+#define PR_BYTES_PER_FLOAT 4
-+#define PR_BYTES_PER_DOUBLE 8
-+#define PR_BYTES_PER_WORD 4
-+#define PR_BYTES_PER_DWORD 8
-+
-+#define PR_BITS_PER_BYTE 8
-+#define PR_BITS_PER_SHORT 16
-+#define PR_BITS_PER_INT 32
-+#define PR_BITS_PER_INT64 64
-+#define PR_BITS_PER_LONG 32
-+#define PR_BITS_PER_FLOAT 32
-+#define PR_BITS_PER_DOUBLE 64
-+#define PR_BITS_PER_WORD 32
-+
-+#define PR_BITS_PER_BYTE_LOG2 3
-+#define PR_BITS_PER_SHORT_LOG2 4
-+#define PR_BITS_PER_INT_LOG2 5
-+#define PR_BITS_PER_INT64_LOG2 6
-+#define PR_BITS_PER_LONG_LOG2 5
-+#define PR_BITS_PER_FLOAT_LOG2 5
-+#define PR_BITS_PER_DOUBLE_LOG2 6
-+#define PR_BITS_PER_WORD_LOG2 5
-+
-+#define PR_ALIGN_OF_SHORT 2
-+#define PR_ALIGN_OF_INT 4
-+#define PR_ALIGN_OF_LONG 4
-+#define PR_ALIGN_OF_INT64 4
-+#define PR_ALIGN_OF_FLOAT 4
-+#define PR_ALIGN_OF_DOUBLE 4
-+#define PR_ALIGN_OF_POINTER 4
-+#define PR_ALIGN_OF_WORD 4
-+
-+#define PR_BYTES_PER_WORD_LOG2 2
-+#define PR_BYTES_PER_DWORD_LOG2 3
-+
- #else
-
- #error "Unknown CPU architecture"
-diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
-index 8e04fad479a1..628b1217e9c8 100644
---- a/pr/include/md/_linux.h
-+++ b/pr/include/md/_linux.h
-@@ -63,6 +63,8 @@
- #define _PR_SI_ARCHITECTURE "riscv32"
- #elif defined(__riscv) && (__riscv_xlen == 64)
- #define _PR_SI_ARCHITECTURE "riscv64"
-+#elif defined(__arc__)
-+#define _PR_SI_ARCHITECTURE "arc"
- #else
- #error "Unknown CPU architecture"
- #endif
---
-2.17.1
-
diff --git a/poky/meta/recipes-support/nspr/nspr_4.21.bb b/poky/meta/recipes-support/nspr/nspr_4.23.bb
index 25563e50f..8e2761c20 100644
--- a/poky/meta/recipes-support/nspr/nspr_4.21.bb
+++ b/poky/meta/recipes-support/nspr/nspr_4.23.bb
@@ -11,7 +11,6 @@ SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz
file://remove-srcdir-from-configure-in.patch \
file://0002-Add-nios2-support.patch \
file://0001-md-Fix-build-with-musl.patch \
- file://0004-Add-ARC-support.patch \
file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
file://nspr.pc.in \
"
@@ -24,8 +23,8 @@ CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE
UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
-SRC_URI[md5sum] = "b865586f19912a50acc3755d8a45dbaa"
-SRC_URI[sha256sum] = "15ea32c7b100217b6e3193bc03e77f485d9bf7504051443ba9ce86d1c17c6b5a"
+SRC_URI[md5sum] = "90af0450423b0588f0eba6255c07ab79"
+SRC_URI[sha256sum] = "4b9d821037faf5723da901515ed9cac8b23ef1ea3729022259777393453477a4"
CVE_PRODUCT = "netscape_portable_runtime"
diff --git a/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb b/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
index 244d9e204..074f71320 100644
--- a/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
+++ b/poky/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
@@ -12,7 +12,7 @@ SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${P
SRC_URI[md5sum] = "d4ab9ac36c053ab8fb836db1cbd4a48f"
SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2"
-inherit autotools distro_features_check
+inherit autotools features_check
COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb b/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb
index fb529d25d..8c500dcad 100644
--- a/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb
+++ b/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb
@@ -35,4 +35,4 @@ EXTRA_OECONF = " \
--disable-rpath \
"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.8.bb
index b4e453f67..83a48a4ec 100644
--- a/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb
+++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.8.bb
@@ -14,7 +14,7 @@ SRC_URI = "\
file://default \
file://rngd.service \
"
-SRCREV = "9fc873c5af0e392632e6b736938b811f7ca97251"
+SRCREV = "eb5e34c7fb05594760f99d863fbe0401fe297b93"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-support/sqlite/sqlite3.inc b/poky/meta/recipes-support/sqlite/sqlite3.inc
index 4af1e09e8..07614bdb3 100644
--- a/poky/meta/recipes-support/sqlite/sqlite3.inc
+++ b/poky/meta/recipes-support/sqlite/sqlite3.inc
@@ -44,8 +44,6 @@ EXTRA_OECONF = " \
--disable-static-shell \
"
-CFLAGS_append = " -fPIC"
-
# pread() is in POSIX.1-2001 so any reasonable system must surely support it
CFLAGS_append = " -DUSE_PREAD"
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.30.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.30.1.bb
index feeee8af0..f18eeb19e 100644
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.30.0.bb
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.30.1.bb
@@ -4,5 +4,5 @@ LICENSE = "PD"
LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
SRC_URI = "http://www.sqlite.org/2019/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[md5sum] = "84230638d5b80b61843e43b5efcb9e53"
-SRC_URI[sha256sum] = "e0a8cf4c7a87455e55e10413d16f358ca121ccec687fe1301eac95e2d340fc58"
+SRC_URI[md5sum] = "51252dc6bc9094ba11ab151ba650ff3c"
+SRC_URI[sha256sum] = "8c5a50db089bd2a1b08dbc5b00d2027602ca7ff238ba7658fabca454d4298e60"
diff --git a/poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch b/poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch
deleted file mode 100644
index 1c5630ed9..000000000
--- a/poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 08ca1c48b25c332b75bba2a6b5d757da006e955b Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Oct 2016 16:27:57 +0300
-Subject: [PATCH] Add m4/vapigen.m4
-
-Building without vala will fail if we don't have a vapigen.m4.
-
-Upstream-Status: Pending
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- m4/vapigen.m4 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 96 insertions(+)
- create mode 100644 m4/vapigen.m4
-
-diff --git a/m4/vapigen.m4 b/m4/vapigen.m4
-new file mode 100644
-index 0000000..f2df12f
---- /dev/null
-+++ b/m4/vapigen.m4
-@@ -0,0 +1,96 @@
-+dnl vapigen.m4
-+dnl
-+dnl Copyright 2012 Evan Nemerson
-+dnl
-+dnl This library is free software; you can redistribute it and/or
-+dnl modify it under the terms of the GNU Lesser General Public
-+dnl License as published by the Free Software Foundation; either
-+dnl version 2.1 of the License, or (at your option) any later version.
-+dnl
-+dnl This library is distributed in the hope that it will be useful,
-+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+dnl Lesser General Public License for more details.
-+dnl
-+dnl You should have received a copy of the GNU Lesser General Public
-+dnl License along with this library; if not, write to the Free Software
-+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+
-+# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION], [DEFAULT])
-+# --------------------------------------
-+# Check vapigen existence and version
-+#
-+# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
-+AC_DEFUN([VAPIGEN_CHECK],
-+[
-+ AC_BEFORE([GOBJECT_INTROSPECTION_CHECK],[$0])
-+ AC_BEFORE([GOBJECT_INTROSPECTION_REQUIRE],[$0])
-+
-+ AC_ARG_ENABLE([vala],
-+ [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
-+ AS_IF([test "x$4" = "x"], [
-+ enable_vala=auto
-+ ], [
-+ enable_vala=$4
-+ ])
-+ ])
-+
-+ AS_CASE([$enable_vala], [no], [enable_vala=no],
-+ [yes], [
-+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
-+ AC_MSG_ERROR([Vala bindings require GObject Introspection])
-+ ])
-+ ], [auto], [
-+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
-+ enable_vala=no
-+ ])
-+ ], [
-+ AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
-+ ])
-+
-+ AS_IF([test "x$2" = "x"], [
-+ vapigen_pkg_name=vapigen
-+ ], [
-+ vapigen_pkg_name=vapigen-$2
-+ ])
-+ AS_IF([test "x$1" = "x"], [
-+ vapigen_pkg="$vapigen_pkg_name"
-+ ], [
-+ vapigen_pkg="$vapigen_pkg_name >= $1"
-+ ])
-+
-+ PKG_PROG_PKG_CONFIG
-+
-+ PKG_CHECK_EXISTS([$vapigen_pkg], [
-+ AS_IF([test "$enable_vala" = "auto"], [
-+ enable_vala=yes
-+ ])
-+ ], [
-+ AS_CASE([$enable_vala], [yes], [
-+ AC_MSG_ERROR([$vapigen_pkg not found])
-+ ], [auto], [
-+ enable_vala=no
-+ ])
-+ ])
-+
-+ AC_MSG_CHECKING([for vala])
-+
-+ AS_CASE([$enable_vala],
-+ [yes], [
-+ VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen`
-+ VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen
-+ AS_IF([test "x$2" = "x"], [
-+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen`
-+ ], [
-+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen`
-+ ])
-+ ])
-+
-+ AC_MSG_RESULT([$enable_vala])
-+
-+ AC_SUBST([VAPIGEN])
-+ AC_SUBST([VAPIGEN_VAPIDIR])
-+ AC_SUBST([VAPIGEN_MAKEFILE])
-+
-+ AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
-+])
---
-2.1.4
-
diff --git a/poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch b/poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch
deleted file mode 100644
index fcfc55975..000000000
--- a/poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b0a579d83e355545b64742c997fe8b1d58bf4207 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Mon, 13 Jun 2016 11:05:00 +0300
-Subject: [PATCH] Don't enable stack-protection by default
-
-These are set by security_flags.inc.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 068d072..d580f84 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -138,8 +138,6 @@ m4_define([compiler_flags_common],[ dnl
- -fno-common dnl
- -fdiagnostics-show-option dnl
- -fno-strict-aliasing dnl
-- -fstack-protector dnl
-- -fstack-protector-strong dnl
- -fno-semantic-interposition dnl
- -Wno-deprecated-declarations dnl
- ])
---
-2.1.4
-
diff --git a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/poky/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
index 0ffd92b4b..0ffd92b4b 100644
--- a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
+++ b/poky/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
diff --git a/poky/meta/recipes-support/vte/vte_0.56.3.bb b/poky/meta/recipes-support/vte/vte_0.58.2.bb
index 0deee175d..0ed382a5f 100644
--- a/poky/meta/recipes-support/vte/vte_0.56.3.bb
+++ b/poky/meta/recipes-support/vte/vte_0.58.2.bb
@@ -9,18 +9,19 @@ LIC_FILES_CHKSUM = " \
file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
"
-DEPENDS = "glib-2.0 gtk+3 libpcre2 intltool-native libxml2-native gperf-native"
+DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native"
-inherit gnomebase gtk-doc distro_features_check upstream-version-is-even gobject-introspection
+GNOMEBASEBUILDCLASS = "meson"
+GIR_MESON_OPTION = 'gir'
+
+inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-introspection
# vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
-SRC_URI += "file://0001-Don-t-enable-stack-protection-by-default.patch \
- ${@bb.utils.contains('PACKAGECONFIG', 'vala', '', 'file://0001-Add-m4-vapigen.m4.patch', d) } \
- file://0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch \
- file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
+SRC_URI += "file://0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch \
+ file://0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
"
-SRC_URI[archive.md5sum] = "adf341807861a5dad9f98e5c701c0769"
-SRC_URI[archive.sha256sum] = "17a1d4bc8848f1d2acfa4c20aaa24b9bac49f057b8909c56d3dafec2e2332648"
+SRC_URI[archive.md5sum] = "dadbf2c1d9864d3ea185738f97ab63af"
+SRC_URI[archive.sha256sum] = "33c966d2b1f2c3b0f9416dbca883fd746159b5bd040350e3b78f8104b2a42bc0"
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
@@ -41,15 +42,13 @@ do_compile_prepend() {
FILES_${PN}-dev += "${datadir}/vala/vapi/*"
PACKAGECONFIG ??= "gnutls"
-PACKAGECONFIG[vala] = "--enable-vala,--disable-vala,vala-native vala"
-PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false,vala-native vala"
+PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
+# vala requires gir
+PACKAGECONFIG_remove_class-native = "vala"
CFLAGS += "-D_GNU_SOURCE"
-# libtool adds "-nostdlib" when g++ is used. This breaks PIE builds.
-# Use libtool-cross (which has a hack to prevent that) instead.
-EXTRA_OEMAKE_class-target = "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
-
PACKAGES =+ "libvte ${PN}-prompt"
FILES_libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
FILES_${PN}-prompt = "${sysconfdir}/profile.d"
diff --git a/poky/scripts/lib/devtool/deploy.py b/poky/scripts/lib/devtool/deploy.py
index d1ce2309f..6a997735f 100644
--- a/poky/scripts/lib/devtool/deploy.py
+++ b/poky/scripts/lib/devtool/deploy.py
@@ -212,6 +212,9 @@ def deploy(args, config, basepath, workspace):
scp_port = "-P %s" % args.port
ssh_port = "-p %s" % args.port
+ if args.key:
+ extraoptions += ' -i %s' % args.key
+
# In order to delete previously deployed files and have the manifest file on
# the target, we write out a shell script and then copy it to the target
# so we can then run it (piping tar output to it).
@@ -326,6 +329,8 @@ def register_commands(subparsers, context):
parser_deploy.add_argument('--no-check-space', help='Do not check for available space before deploying', action='store_true')
parser_deploy.add_argument('-e', '--ssh-exec', help='Executable to use in place of ssh')
parser_deploy.add_argument('-P', '--port', help='Specify port to use for connection to the target')
+ parser_deploy.add_argument('-I', '--key',
+ help='Specifiy ssh private key for connection to the target')
strip_opts = parser_deploy.add_mutually_exclusive_group(required=False)
strip_opts.add_argument('-S', '--strip',
@@ -349,4 +354,7 @@ def register_commands(subparsers, context):
parser_undeploy.add_argument('-n', '--dry-run', help='List files to be undeployed only', action='store_true')
parser_undeploy.add_argument('-e', '--ssh-exec', help='Executable to use in place of ssh')
parser_undeploy.add_argument('-P', '--port', help='Specify port to use for connection to the target')
+ parser_undeploy.add_argument('-I', '--key',
+ help='Specifiy ssh private key for connection to the target')
+
parser_undeploy.set_defaults(func=undeploy)
diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py
index 1646971a9..1c0cd8ab5 100644
--- a/poky/scripts/lib/devtool/standard.py
+++ b/poky/scripts/lib/devtool/standard.py
@@ -1852,7 +1852,7 @@ def status(args, config, basepath, workspace):
return 0
-def _reset(recipes, no_clean, config, basepath, workspace):
+def _reset(recipes, no_clean, remove_work, config, basepath, workspace):
"""Reset one or more recipes"""
import oe.path
@@ -1930,10 +1930,15 @@ def _reset(recipes, no_clean, config, basepath, workspace):
srctreebase = workspace[pn]['srctreebase']
if os.path.isdir(srctreebase):
if os.listdir(srctreebase):
- # We don't want to risk wiping out any work in progress
- logger.info('Leaving source tree %s as-is; if you no '
- 'longer need it then please delete it manually'
- % srctreebase)
+ if remove_work:
+ logger.info('-r argument used on %s, removing source tree.'
+ ' You will lose any unsaved work' %pn)
+ shutil.rmtree(srctreebase)
+ else:
+ # We don't want to risk wiping out any work in progress
+ logger.info('Leaving source tree %s as-is; if you no '
+ 'longer need it then please delete it manually'
+ % srctreebase)
else:
# This is unlikely, but if it's empty we can just remove it
os.rmdir(srctreebase)
@@ -1943,6 +1948,10 @@ def _reset(recipes, no_clean, config, basepath, workspace):
def reset(args, config, basepath, workspace):
"""Entry point for the devtool 'reset' subcommand"""
import bb
+ import shutil
+
+ recipes = ""
+
if args.recipename:
if args.all:
raise DevtoolError("Recipe cannot be specified if -a/--all is used")
@@ -1957,7 +1966,7 @@ def reset(args, config, basepath, workspace):
else:
recipes = args.recipename
- _reset(recipes, args.no_clean, config, basepath, workspace)
+ _reset(recipes, args.no_clean, args.remove_work, config, basepath, workspace)
return 0
@@ -2009,9 +2018,10 @@ def finish(args, config, basepath, workspace):
raise DevtoolError('Source tree is not clean:\n\n%s\nEnsure you have committed your changes or use -f/--force if you are sure there\'s nothing that needs to be committed' % dirty)
no_clean = args.no_clean
+ remove_work=args.remove_work
tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
try:
- rd = parse_recipe(config, tinfoil, args.recipename, True, False)
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
if not rd:
return 1
@@ -2160,7 +2170,7 @@ def finish(args, config, basepath, workspace):
if args.dry_run:
logger.info('Resetting recipe (dry-run)')
else:
- _reset([args.recipename], no_clean=no_clean, config=config, basepath=basepath, workspace=workspace)
+ _reset([args.recipename], no_clean=no_clean, remove_work=remove_work, config=config, basepath=basepath, workspace=workspace)
return 0
@@ -2272,6 +2282,7 @@ def register_commands(subparsers, context):
parser_reset.add_argument('recipename', nargs='*', help='Recipe to reset')
parser_reset.add_argument('--all', '-a', action="store_true", help='Reset all recipes (clear workspace)')
parser_reset.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output')
+ parser_reset.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory along with append')
parser_reset.set_defaults(func=reset)
parser_finish = subparsers.add_parser('finish', help='Finish working on a recipe in your workspace',
@@ -2282,6 +2293,7 @@ def register_commands(subparsers, context):
parser_finish.add_argument('--mode', '-m', choices=['patch', 'srcrev', 'auto'], default='auto', help='Update mode (where %(metavar)s is %(choices)s; default is %(default)s)', metavar='MODE')
parser_finish.add_argument('--initial-rev', help='Override starting revision for patches')
parser_finish.add_argument('--force', '-f', action="store_true", help='Force continuing even if there are uncommitted changes in the source tree repository')
+ parser_finish.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory under workspace')
parser_finish.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output')
parser_finish.add_argument('--no-overrides', '-O', action="store_true", help='Do not handle other override branches (if they exist)')
parser_finish.add_argument('--dry-run', '-N', action="store_true", help='Dry-run (just report changes instead of writing them)')
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index 18c5b66a2..cb6dce378 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -32,7 +32,7 @@ def _run(cmd, cwd=''):
def _get_srctree(tmpdir):
srctree = tmpdir
- dirs = os.listdir(tmpdir)
+ dirs = scriptutils.filter_src_subdirs(tmpdir)
if len(dirs) == 1:
srctree = os.path.join(tmpdir, dirs[0])
return srctree
@@ -281,7 +281,8 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
logger.info('Preserving temporary directory %s' % tmpsrctree)
else:
shutil.rmtree(tmpsrctree)
- shutil.rmtree(tmpdir)
+ if tmpdir != tmpsrctree:
+ shutil.rmtree(tmpdir)
return (rev, md5, sha256, srcbranch, srcsubdir_rel)
diff --git a/poky/scripts/lib/recipetool/create.py b/poky/scripts/lib/recipetool/create.py
index 1fb6b5553..4c4bbadb4 100644
--- a/poky/scripts/lib/recipetool/create.py
+++ b/poky/scripts/lib/recipetool/create.py
@@ -495,9 +495,7 @@ def create_recipe(args):
if ftmpdir and args.keep_temp:
logger.info('Fetch temp directory is %s' % ftmpdir)
- dirlist = os.listdir(srctree)
- filterout = ['git.indirectionsymlink']
- dirlist = [x for x in dirlist if x not in filterout]
+ dirlist = scriptutils.filter_src_subdirs(srctree)
logger.debug('Directory listing (excluding filtered out):\n %s' % '\n '.join(dirlist))
if len(dirlist) == 1:
singleitem = os.path.join(srctree, dirlist[0])
diff --git a/poky/scripts/lib/resulttool/report.py b/poky/scripts/lib/resulttool/report.py
index 883b52517..692dd7a85 100644
--- a/poky/scripts/lib/resulttool/report.py
+++ b/poky/scripts/lib/resulttool/report.py
@@ -186,6 +186,10 @@ class ResultsTextReport(object):
havefailed = True
if line['machine'] not in machines:
machines.append(line['machine'])
+ reporttotalvalues = {}
+ for k in cols:
+ reporttotalvalues[k] = '%s' % sum([line[k] for line in test_count_reports])
+ reporttotalvalues['count'] = '%s' % len(test_count_reports)
for (machine, report) in self.ptests.items():
for ptest in self.ptests[machine]:
if len(ptest) > maxlen['ptest']:
@@ -199,6 +203,7 @@ class ResultsTextReport(object):
if len(ltpposixtest) > maxlen['ltpposixtest']:
maxlen['ltpposixtest'] = len(ltpposixtest)
output = template.render(reportvalues=reportvalues,
+ reporttotalvalues=reporttotalvalues,
havefailed=havefailed,
machines=machines,
ptests=self.ptests,
@@ -207,8 +212,11 @@ class ResultsTextReport(object):
maxlen=maxlen)
print(output)
- def view_test_report(self, logger, source_dir, branch, commit, tag):
+ def view_test_report(self, logger, source_dir, branch, commit, tag, use_regression_map, raw_test):
test_count_reports = []
+ configmap = resultutils.store_map
+ if use_regression_map:
+ configmap = resultutils.regression_map
if commit:
if tag:
logger.warning("Ignoring --tag as --commit was specified")
@@ -216,12 +224,23 @@ class ResultsTextReport(object):
repo = GitRepo(source_dir)
revs = gitarchive.get_test_revs(logger, repo, tag_name, branch=branch)
rev_index = gitarchive.rev_find(revs, 'commit', commit)
- testresults = resultutils.git_get_result(repo, revs[rev_index][2])
+ testresults = resultutils.git_get_result(repo, revs[rev_index][2], configmap=configmap)
elif tag:
repo = GitRepo(source_dir)
- testresults = resultutils.git_get_result(repo, [tag])
+ testresults = resultutils.git_get_result(repo, [tag], configmap=configmap)
else:
- testresults = resultutils.load_resultsdata(source_dir)
+ testresults = resultutils.load_resultsdata(source_dir, configmap=configmap)
+ if raw_test:
+ raw_results = {}
+ for testsuite in testresults:
+ result = testresults[testsuite].get(raw_test, {})
+ if result:
+ raw_results[testsuite] = result
+ if raw_results:
+ print(json.dumps(raw_results, sort_keys=True, indent=4))
+ else:
+ print('Could not find raw test result for %s' % raw_test)
+ return 0
for testsuite in testresults:
for resultid in testresults[testsuite]:
skip = False
@@ -248,7 +267,8 @@ class ResultsTextReport(object):
def report(args, logger):
report = ResultsTextReport()
- report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag)
+ report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag, args.use_regression_map,
+ args.raw_test_only)
return 0
def register_commands(subparsers):
@@ -263,3 +283,8 @@ def register_commands(subparsers):
parser_build.add_argument('--commit', help="Revision to report")
parser_build.add_argument('-t', '--tag', default='',
help='source_dir is a git repository, report on the tag specified from that repository')
+ parser_build.add_argument('-m', '--use_regression_map', action='store_true',
+ help='instead of the default "store_map", use the "regression_map" for report')
+ parser_build.add_argument('-r', '--raw_test_only', default='',
+ help='output raw test result only for the user provided test result id')
+
diff --git a/poky/scripts/lib/resulttool/resultutils.py b/poky/scripts/lib/resulttool/resultutils.py
index 7cb85a6aa..f0ae8ec1c 100644
--- a/poky/scripts/lib/resulttool/resultutils.py
+++ b/poky/scripts/lib/resulttool/resultutils.py
@@ -177,7 +177,7 @@ def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, p
with open(dst.replace(fn, "ptest-%s.log" % i), "w+") as f:
f.write(sectionlog)
-def git_get_result(repo, tags):
+def git_get_result(repo, tags, configmap=store_map):
git_objs = []
for tag in tags:
files = repo.run_cmd(['ls-tree', "--name-only", "-r", tag]).splitlines()
@@ -200,7 +200,7 @@ def git_get_result(repo, tags):
# Optimize by reading all data with one git command
results = {}
for obj in parse_json_stream(repo.run_cmd(['show'] + git_objs + ['--'])):
- append_resultsdata(results, obj)
+ append_resultsdata(results, obj, configmap=configmap)
return results
diff --git a/poky/scripts/lib/resulttool/store.py b/poky/scripts/lib/resulttool/store.py
index 79c83dd8b..e0951f0a8 100644
--- a/poky/scripts/lib/resulttool/store.py
+++ b/poky/scripts/lib/resulttool/store.py
@@ -24,6 +24,8 @@ def store(args, logger):
configvars = resultutils.extra_configvars.copy()
if args.executed_by:
configvars['EXECUTED_BY'] = args.executed_by
+ if args.extra_test_env:
+ configvars['EXTRA_TEST_ENV'] = args.extra_test_env
results = {}
logger.info('Reading files from %s' % args.source)
if resultutils.is_url(args.source) or os.path.isfile(args.source):
@@ -98,4 +100,5 @@ def register_commands(subparsers):
help='don\'t error if no results to store are found')
parser_build.add_argument('-x', '--executed-by', default='',
help='add executed-by configuration to each result file')
-
+ parser_build.add_argument('-t', '--extra-test-env', default='',
+ help='add extra test environment data to each result file configuration')
diff --git a/poky/scripts/lib/resulttool/template/test_report_full_text.txt b/poky/scripts/lib/resulttool/template/test_report_full_text.txt
index 17c99cb4e..2efba2ef6 100644
--- a/poky/scripts/lib/resulttool/template/test_report_full_text.txt
+++ b/poky/scripts/lib/resulttool/template/test_report_full_text.txt
@@ -8,7 +8,8 @@ Test Result Status Summary (Counts/Percentages sorted by testseries, ID)
{{ report.testseries.ljust(maxlen['testseries']) }} | {{ report.result_id.ljust(maxlen['result_id']) }} | {{ (report.passed|string).ljust(maxlen['passed']) }} | {{ (report.failed|string).ljust(maxlen['failed']) }} | {{ (report.skipped|string).ljust(maxlen['skipped']) }}
{% endfor %}
--------------------------------------------------------------------------------------------------------------
-
+{{ 'Total'.ljust(maxlen['testseries']) }} | {{ reporttotalvalues['count'].ljust(maxlen['result_id']) }} | {{ reporttotalvalues['passed'].ljust(maxlen['passed']) }} | {{ reporttotalvalues['failed'].ljust(maxlen['failed']) }} | {{ reporttotalvalues['skipped'].ljust(maxlen['skipped']) }}
+--------------------------------------------------------------------------------------------------------------
{% for machine in machines %}
{% if ptests[machine] %}
diff --git a/poky/scripts/lib/scriptutils.py b/poky/scripts/lib/scriptutils.py
index c573dc7f6..45bdaf5f4 100644
--- a/poky/scripts/lib/scriptutils.py
+++ b/poky/scripts/lib/scriptutils.py
@@ -268,3 +268,13 @@ def is_src_url(param):
elif param.startswith('git@') or ('@' in param and param.endswith('.git')):
return True
return False
+
+def filter_src_subdirs(pth):
+ """
+ Filter out subdirectories of initial unpacked source trees that we do not care about.
+ Used by devtool and recipetool.
+ """
+ dirlist = os.listdir(pth)
+ filterout = ['git.indirectionsymlink', 'source-date-epoch']
+ dirlist = [x for x in dirlist if x not in filterout]
+ return dirlist
diff --git a/poky/scripts/lib/wic/engine.py b/poky/scripts/lib/wic/engine.py
index 61939ad19..7e6620747 100644
--- a/poky/scripts/lib/wic/engine.py
+++ b/poky/scripts/lib/wic/engine.py
@@ -19,6 +19,7 @@ import os
import tempfile
import json
import subprocess
+import re
from collections import namedtuple, OrderedDict
from distutils.spawn import find_executable
@@ -335,25 +336,52 @@ class Disk:
exec_cmd(cmd, as_shell=True)
self._put_part_image(pnum)
- def remove(self, pnum, path):
+ def remove_ext(self, pnum, path, recursive):
+ """
+ Remove files/dirs and their contents from the partition.
+ This only applies to ext* partition.
+ """
+ abs_path = re.sub('\/\/+', '/', path)
+ cmd = "{} {} -wR 'rm \"{}\"'".format(self.debugfs,
+ self._get_part_image(pnum),
+ abs_path)
+ out = exec_cmd(cmd , as_shell=True)
+ for line in out.splitlines():
+ if line.startswith("rm:"):
+ if "file is a directory" in line:
+ if recursive:
+ # loop through content and delete them one by one if
+ # flaged with -r
+ subdirs = iter(self.dir(pnum, abs_path).splitlines())
+ next(subdirs)
+ for subdir in subdirs:
+ dir = subdir.split(':')[1].split(" ", 1)[1]
+ if not dir == "." and not dir == "..":
+ self.remove_ext(pnum, "%s/%s" % (abs_path, dir), recursive)
+
+ rmdir_out = exec_cmd("{} {} -wR 'rmdir \"{}\"'".format(self.debugfs,
+ self._get_part_image(pnum),
+ abs_path.rstrip('/'))
+ , as_shell=True)
+
+ for rmdir_line in rmdir_out.splitlines():
+ if "directory not empty" in rmdir_line:
+ raise WicError("Could not complete operation: \n%s \n"
+ "use -r to remove non-empty directory" % rmdir_line)
+ if rmdir_line.startswith("rmdir:"):
+ raise WicError("Could not complete operation: \n%s "
+ "\n%s" % (str(line), rmdir_line))
+
+ else:
+ raise WicError("Could not complete operation: \n%s "
+ "\nUnable to remove %s" % (str(line), abs_path))
+
+ def remove(self, pnum, path, recursive):
"""Remove files/dirs from the partition."""
partimg = self._get_part_image(pnum)
if self.partitions[pnum].fstype.startswith('ext'):
- cmd = "{} {} -wR 'rm {}'".format(self.debugfs,
- self._get_part_image(pnum),
- path)
- out = exec_cmd(cmd , as_shell=True)
- for line in out.splitlines():
- if line.startswith("rm:"):
- if "file is a directory" in line:
- # Try rmdir to see if this is an empty directory. This won't delete
- # any non empty directory so let user know about any error that this might
- # generate.
- print(exec_cmd("{} {} -wR 'rmdir {}'".format(self.debugfs,
- self._get_part_image(pnum),
- path), as_shell=True))
- else:
- raise WicError("Could not complete operation: wic %s" % str(line))
+ self.remove_ext(pnum, path, recursive)
+
else: # fat
cmd = "{} -i {} ::{}".format(self.mdel, partimg, path)
try:
@@ -535,13 +563,13 @@ def wic_rm(args, native_sysroot):
partitioned image.
"""
disk = Disk(args.path.image, native_sysroot)
- disk.remove(args.path.part, args.path.path)
+ disk.remove(args.path.part, args.path.path, args.recursive_delete)
def wic_write(args, native_sysroot):
"""
Write image to a target device.
"""
- disk = Disk(args.image, native_sysroot, ('fat', 'ext', 'swap'))
+ disk = Disk(args.image, native_sysroot, ('fat', 'ext', 'linux-swap'))
disk.write(args.target, args.expand)
def find_canned(scripts_path, file_name):
diff --git a/poky/scripts/lib/wic/help.py b/poky/scripts/lib/wic/help.py
index 3a40fc0ea..812ebe3ec 100644
--- a/poky/scripts/lib/wic/help.py
+++ b/poky/scripts/lib/wic/help.py
@@ -422,6 +422,7 @@ NAME
SYNOPSIS
wic rm <src> <image>:<partition><path>
wic rm <src> <image>:<partition><path> --native-sysroot <path>
+ wic rm -r <image>:<partition><path>
DESCRIPTION
This command removes files or directories from the vfat or ext* partition of the
@@ -456,6 +457,9 @@ DESCRIPTION
The -n option is used to specify the path to the native sysroot
containing the tools(parted and mtools) to use.
+
+ The -r option is used to remove directories and their contents
+ recursively,this only applies to ext* partition.
"""
wic_write_usage = """
@@ -478,7 +482,7 @@ NAME
SYNOPSIS
wic write <image> <target>
wic write <image> <target> --expand auto
- wic write <image> <target> --expand 1:100M-2:300M
+ wic write <image> <target> --expand 1:100M,2:300M
wic write <image> <target> --native-sysroot <path>
DESCRIPTION
@@ -489,7 +493,7 @@ DESCRIPTION
The --expand option is used to resize image partitions.
--expand auto expands partitions to occupy all free space available on the target device.
It's also possible to specify expansion rules in a format
- <partition>:<size>[-<partition>:<size>...] for one or more partitions.
+ <partition>:<size>[,<partition>:<size>...] for one or more partitions.
Specifying size 0 will keep partition unmodified.
Note: Resizing boot partition can result in non-bootable image for non-EFI images. It is
recommended to use size 0 for boot partition to keep image bootable.
@@ -1046,3 +1050,59 @@ NAME
DESCRIPTION
Specify a help topic to display it. Topics are shown above.
"""
+
+
+wic_help = """
+Creates a customized OpenEmbedded image.
+
+Usage: wic [--version]
+ wic help [COMMAND or TOPIC]
+ wic COMMAND [ARGS]
+
+ usage 1: Returns the current version of Wic
+ usage 2: Returns detailed help for a COMMAND or TOPIC
+ usage 3: Executes COMMAND
+
+
+COMMAND:
+
+ list - List available canned images and source plugins
+ ls - List contents of partitioned image or partition
+ rm - Remove files or directories from the vfat or ext* partitions
+ help - Show help for a wic COMMAND or TOPIC
+ write - Write an image to a device
+ cp - Copy files and directories to the vfat or ext* partitions
+ create - Create a new OpenEmbedded image
+
+
+TOPIC:
+ overview - Presents an overall overview of Wic
+ plugins - Presents an overview and API for Wic plugins
+ kickstart - Presents a Wic kicstart file reference
+
+
+Examples:
+
+ $ wic --version
+
+ Returns the current version of Wic
+
+
+ $ wic help cp
+
+ Returns the SYNOPSIS and DESCRIPTION for the Wic "cp" command.
+
+
+ $ wic list images
+
+ Returns the list of canned images (i.e. *.wks files located in
+ the /scripts/lib/wic/canned-wks directory.
+
+
+ $ wic create mkefidisk -e core-image-minimal
+
+ Creates an EFI disk image from artifacts used in a previous
+ core-image-minimal build in standard BitBake locations
+ (e.g. Cooked Mode).
+
+"""
diff --git a/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py b/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
index 24299c1ec..11326a274 100644
--- a/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
+++ b/poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
@@ -336,19 +336,23 @@ class IsoImagePlugin(SourcePlugin):
(img_iso_dir, isodir)
exec_cmd(install_cmd)
else:
+ # Default to 100 blocks of extra space for file system overhead
+ esp_extra_blocks = int(source_params.get('esp_extra_blocks', '100'))
+
du_cmd = "du -bks %s/EFI" % isodir
out = exec_cmd(du_cmd)
blocks = int(out.split()[0])
- # Add some extra space for file system overhead
- blocks += 100
+ blocks += esp_extra_blocks
logger.debug("Added 100 extra blocks to %s to get to %d "
"total blocks", part.mountpoint, blocks)
# dosfs image for EFI boot
bootimg = "%s/efi.img" % isodir
- dosfs_cmd = 'mkfs.vfat -n "EFIimg" -S 512 -C %s %d' \
- % (bootimg, blocks)
+ esp_label = source_params.get('esp_label', 'EFIimg')
+
+ dosfs_cmd = 'mkfs.vfat -n \'%s\' -S 512 -C %s %d' \
+ % (esp_label, bootimg, blocks)
exec_native_cmd(dosfs_cmd, native_sysroot)
mmd_cmd = "mmd -i %s ::/EFI" % bootimg
diff --git a/poky/scripts/lib/wic/plugins/source/rawcopy.py b/poky/scripts/lib/wic/plugins/source/rawcopy.py
index df86d6729..82970ce51 100644
--- a/poky/scripts/lib/wic/plugins/source/rawcopy.py
+++ b/poky/scripts/lib/wic/plugins/source/rawcopy.py
@@ -59,6 +59,9 @@ class RawCopyPlugin(SourcePlugin):
src = os.path.join(kernel_dir, source_params['file'])
dst = os.path.join(cr_workdir, "%s.%s" % (source_params['file'], part.lineno))
+ if not os.path.exists(os.path.dirname(dst)):
+ os.makedirs(os.path.dirname(dst))
+
if 'skip' in source_params:
sparse_copy(src, dst, skip=int(source_params['skip']))
else:
diff --git a/poky/scripts/native-intercept/chgrp b/poky/scripts/native-intercept/chgrp
new file mode 100755
index 000000000..399c979f9
--- /dev/null
+++ b/poky/scripts/native-intercept/chgrp
@@ -0,0 +1,5 @@
+#! /bin/sh
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+echo "Intercept $0: $@ -- do nothing"
diff --git a/poky/scripts/oe-pkgdata-util b/poky/scripts/oe-pkgdata-util
index 9cc78d110..93220e361 100755
--- a/poky/scripts/oe-pkgdata-util
+++ b/poky/scripts/oe-pkgdata-util
@@ -389,21 +389,16 @@ def list_pkgs(args):
return False
return True
+ pkglist = []
if args.recipe:
packages = get_recipe_pkgs(args.pkgdata_dir, args.recipe, args.unpackaged)
if args.runtime:
- pkglist = []
runtime_pkgs = lookup_pkglist(packages, args.pkgdata_dir, False)
for rtpkgs in runtime_pkgs.values():
pkglist.extend(rtpkgs)
else:
pkglist = packages
-
- for pkg in pkglist:
- if matchpkg(pkg):
- found = True
- print("%s" % pkg)
else:
if args.runtime:
searchdir = 'runtime-reverse'
@@ -414,9 +409,13 @@ def list_pkgs(args):
for fn in files:
if fn.endswith('.packaged'):
continue
- if matchpkg(fn):
- found = True
- print("%s" % fn)
+ pkglist.append(fn)
+
+ for pkg in sorted(pkglist):
+ if matchpkg(pkg):
+ found = True
+ print("%s" % pkg)
+
if not found:
if args.pkgspec:
logger.error("Unable to find any package matching %s" % args.pkgspec)
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index a05facd0d..5c56c3fe6 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -67,9 +67,9 @@ of the following environment variables (in any order):
nographic - disable video console
sdl - choose the SDL UI frontend
gtk - choose the Gtk UI frontend
- gl - enable virgl-based GL acceleration (also needs gtk option)
- gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs gtk option)
- egl-headless - enable headless EGL output; use vnc or spice to see it
+ gl - enable virgl-based GL acceleration (also needs gtk or sdl options)
+ gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs gtk or sdl options)
+ egl-headless - enable headless EGL output; use vnc (via publicvnc option) or spice to see it
serial - enable a serial console on /dev/ttyS0
serialstdio - enable a serial console on the console (regardless of graphics mode)
slirp - enable user networking, no root privileges is required
@@ -437,7 +437,12 @@ class BaseConfig(object):
self.qemu_opt_script += ' -nographic'
self.kernel_cmdline_script += ' console=ttyS0'
elif arg == 'sdl':
- self.qemu_opt_script += ' -display sdl'
+ if 'gl' in sys.argv[1:]:
+ self.qemu_opt_script += ' -vga virtio -display sdl,gl=on'
+ elif 'gl-es' in sys.argv[1:]:
+ self.qemu_opt_script += ' -vga virtio -display sdl,gl=es'
+ else:
+ self.qemu_opt_script += ' -display sdl'
elif arg == 'gtk':
if 'gl' in sys.argv[1:]:
self.qemu_opt_script += ' -vga virtio -display gtk,gl=on'
diff --git a/poky/scripts/wic b/poky/scripts/wic
index 1d89fb2ed..ea614100c 100755
--- a/poky/scripts/wic
+++ b/poky/scripts/wic
@@ -403,6 +403,9 @@ def wic_init_parser_rm(subparser):
help="path: <image>:<vfat partition><path>")
subparser.add_argument("-n", "--native-sysroot",
help="path to the native sysroot containing the tools")
+ subparser.add_argument("-r", dest="recursive_delete", action="store_true", default=False,
+ help="remove directories and their contents recursively, "
+ " this only applies to ext* partition")
def expandtype(rules):
"""
@@ -495,14 +498,18 @@ def init_parser(parser):
subparser = subparsers.add_parser(subcmd, help=subcommands[subcmd][2])
subcommands[subcmd][3](subparser)
+class WicArgumentParser(argparse.ArgumentParser):
+ def format_help(self):
+ return hlp.wic_help
def main(argv):
- parser = argparse.ArgumentParser(
+ parser = WicArgumentParser(
description="wic version %s" % __version__)
init_parser(parser)
args = parser.parse_args(argv)
+
if args.debug:
logger.setLevel(logging.DEBUG)
@@ -510,8 +517,6 @@ def main(argv):
if args.command == "help":
if args.help_topic is None:
parser.print_help()
- print()
- print("Please specify a help topic")
elif args.help_topic in helptopics:
hlpt = helptopics[args.help_topic]
hlpt[0](hlpt[1], hlpt[2])