diff options
Diffstat (limited to 'meta-oe/recipes-connectivity')
183 files changed, 4179 insertions, 6433 deletions
diff --git a/meta-oe/recipes-connectivity/ace/ace_6.5.19.bb b/meta-oe/recipes-connectivity/ace/ace_6.5.19.bb new file mode 100644 index 0000000000..af4f2c54bb --- /dev/null +++ b/meta-oe/recipes-connectivity/ace/ace_6.5.19.bb @@ -0,0 +1,41 @@ +SUMMARY = "C++ framework for implementing distributed and networked applications" +DESCRIPTION = "C++ network programming framework that implements many core \ +patterns for concurrent communication software" +LICENSE = "ACE-TAO-CIAO" +HOMEPAGE = "http://www.dre.vanderbilt.edu/~schmidt/ACE.html" +LIC_FILES_CHKSUM = "file://COPYING;md5=d2c090e9c730fd91677782d8e2091d77" + +DEPENDS += "openssl gperf-native" + +SRC_URI = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_19/ACE-${PV}.tar.bz2 \ + file://ace_config.patch \ + file://no_sysctl.patch \ + " +SRC_URI[sha256sum] = "739be290a38229aaa5b5150e6ea55ce427e80970f0ace4c5040ac46644526f41" + +COMPATIBLE_HOST:libc-musl = "null" + +S = "${WORKDIR}/ACE_wrappers" +B = "${WORKDIR}/ACE_wrappers/ace" +export ACE_ROOT="${WORKDIR}/ACE_wrappers" + +inherit pkgconfig + +CXXFLAGS:append = " -fpermissive -Wnodeprecated-declarations" +CXX:append = " -std=gnu++14 -ffile-prefix-map=${WORKDIR}= -fdebug-prefix-map=${WORKDIR}= " +EXTRA_OEMAKE += "INSTALL_LIB=${baselib}" + +do_install() { + export D="${D}" + oe_runmake install + + for i in $(find ${D} -name "*.pc") ; do + sed -i -e s:${D}::g \ + -e s:/${TARGET_SYS}::g \ + $i + done + + rm -r ${D}/usr/share +} + +UPSTREAM_CHECK_URI = "https://github.com/DOCGroup/ACE_TAO/releases" diff --git a/meta-oe/recipes-connectivity/ace/files/ace_config.patch b/meta-oe/recipes-connectivity/ace/files/ace_config.patch new file mode 100644 index 0000000000..c820e46522 --- /dev/null +++ b/meta-oe/recipes-connectivity/ace/files/ace_config.patch @@ -0,0 +1,13 @@ +Upstream-Status: Pending + +diff -ruN ACE_wrappers1/ace/config.h ACE_wrappers/ace/config.h +--- ACE_wrappers1/ace/config.h 1970-01-01 02:00:00.000000000 +0200 ++++ ACE_wrappers/ace/config.h 2019-01-10 13:36:52.698012477 +0200 +@@ -0,0 +1,1 @@ ++#include "ace/config-linux.h" +diff -ruN ACE_wrappers1/include/makeinclude/platform_macros.GNU ACE_wrappers/include/makeinclude/platform_macros.GNU +--- ACE_wrappers1/include/makeinclude/platform_macros.GNU 1970-01-01 02:00:00.000000000 +0200 ++++ ACE_wrappers/include/makeinclude/platform_macros.GNU 2018-10-31 15:11:18.265392460 +0200 +@@ -0,0 +1,2 @@ ++INSTALL_PREFIX = $(D)$(exec_prefix) ++include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU diff --git a/meta-oe/recipes-connectivity/ace/files/no_sysctl.patch b/meta-oe/recipes-connectivity/ace/files/no_sysctl.patch new file mode 100644 index 0000000000..278893114c --- /dev/null +++ b/meta-oe/recipes-connectivity/ace/files/no_sysctl.patch @@ -0,0 +1,22 @@ +glibc >= 2.32 has removed sys/sysctl.h see + +https://sourceware.org/git/?p=glibc.git;a=commit;h=076f09afbac1aa57756faa7a8feadb7936a724e4 + +This check therefore ensures that its only used on linux when glibc has support for it + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/ace/config-linux.h ++++ b/ace/config-linux.h +@@ -20,6 +20,10 @@ + + #include "ace/config-linux-common.h" + ++#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 32) ++# define ACE_LACKS_SYS_SYSCTL_H ++#endif ++ + #define ACE_HAS_BYTESEX_H + + #if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) diff --git a/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb b/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb index 44411751e0..e6ec9c3573 100644 --- a/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb +++ b/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb @@ -1,27 +1,29 @@ SUMMARY = "GNU All Mobile Managment Utilities" SECTION = "console/network" -DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev unixodbc" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf" -HOMEPAGE = "http://www.gammu.org/" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +HOMEPAGE = "https://wammu.eu/" -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}.tar.bz2 \ +SRC_URI = "https://dl.cihar.com/${BPN}/releases/${BP}.tar.xz \ file://gammurc \ file://gammu-smsdrc \ " -SRC_URI[md5sum] = "8ea16c6b3cc48097a8e62311fe0e25b9" -SRC_URI[sha256sum] = "de67caa102aa4c8fbed5300e5a0262e40411c4cc79f4379a8d34eed797968fc3" +SRC_URI[sha256sum] = "d8f152314d7e4d3d643610d742845e0a016ce97c234ad4b1151574e1b09651ee" + +UPSTREAM_CHECK_URI = "https://dl.cihar.com/${BPN}/releases" + +DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev unixodbc" -inherit distutils cmake gettext +inherit cmake gettext -do_install_append() { +do_install:append() { # these files seem to only be used by symbian and trigger QA warnings rm -rf ${D}/usr/share/gammu #install default configuration files install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/gammurc ${D}${sysconfdir}/gammurc - install -m 0644 ${WORKDIR}/gammu-smsdrc ${D}${sysconfdir}/gammu-smsdrc + install -m 0644 ${UNPACKDIR}/gammurc ${D}${sysconfdir}/gammurc + install -m 0644 ${UNPACKDIR}/gammu-smsdrc ${D}${sysconfdir}/gammu-smsdrc } EXTRA_OECONF = " \ @@ -35,26 +37,24 @@ EXTRA_OECMAKE = " \ -DWITH_BLUETOOTH=OFF \ -DWITH_NOKIA_SUPPORT=OFF \ -DWITH_IRDA=OFF \ - -DWITH_PYTHON=OFF \ -DWITH_MySQL=ON \ -DWITH_Postgres=OFF \ " -PACKAGES =+ "${PN}-smsd libgammu libgsmsd python-${PN}" +PACKAGES =+ "${PN}-smsd libgammu libgsmsd" -FILES_${PN} = "${bindir}/gammu ${bindir}/jadmaker ${sysconfdir}/bash_completion.d/gammu \ +FILES:${PN} = "${bindir}/gammu ${bindir}/jadmaker ${sysconfdir}/bash_completion.d/gammu \ ${bindir}/gammu-detect ${sysconfdir}/gammurc" -CONFFILES_${PN} = "${sysconfdir}/gammurc" -FILES_${PN}-smsd = "${bindir}/gammu-smsd* ${sysconfdir}/gammu-smsdrc" -CONFFILES_${PN}-smsd = "${sysconfdir}/gammu-smsdrc" -FILES_${PN}-dev += "${bindir}/gammu-config ${libdir}/*.so" -FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/.debug ${PYTHON_SITEPACKAGES_DIR}/gammu/.debug" -FILES_libgammu = "${libdir}/libGammu.so.*" -FILES_libgsmsd = "${libdir}/libgsmsd.so.*" -FILES_python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/gammu/*.??" +CONFFILES:${PN} = "${sysconfdir}/gammurc" +FILES:${PN}-smsd = "${bindir}/gammu-smsd* ${sysconfdir}/gammu-smsdrc" +CONFFILES:${PN}-smsd = "${sysconfdir}/gammu-smsdrc" +FILES:${PN}-dev += "${bindir}/gammu-config ${libdir}/*.so" +FILES:${PN}-dbg += "${bindir}/.debug ${libdir}/.debug" +FILES:libgammu = "${libdir}/libGammu.so.*" +FILES:libgsmsd = "${libdir}/libgsmsd.so.*" -RDEPENDS_${PN} += "bash" -RDEPENDS_${PN}-dev += "bash" +RDEPENDS:${PN} += "bash" +RDEPENDS:${PN}-dev += "bash" # Fails to build with thumb-1 (qemuarm) # gammu-1.32.0/libgammu/service/sms/gsmems.c:542:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275 diff --git a/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch b/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch new file mode 100644 index 0000000000..23fe4441dc --- /dev/null +++ b/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch @@ -0,0 +1,49 @@ +From 96e8f0b2d13e890d9ffff8673f18dcc94290efb2 Mon Sep 17 00:00:00 2001 +From: Tim Orling <tim.orling@konsulko.com> +Date: Thu, 13 Jan 2022 20:06:33 -0600 +Subject: [PATCH] setup.py: StrictVersion -> packaging.version.* + +distutils is deprecated in Python 3.10 and will be removed in Python +3.12 [1] + +The recommended replacement for distutils.version is to use +packaging.version + +StrictVersion can be replaced by packaging.version.Version and helpers +like packaging.version.parse() + +[1] https://www.python.org/dev/peps/pep-0632/ +[2] https://packaging.pypa.io/en/latest/version.html + +Upstream-Status: Submitted [https://github.com/gammu/python-gammu/pull/67] + +Signed-off-by: Tim Orling <tim.orling@konsulko.com> +--- + setup.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index a458181..bffb09d 100755 +--- a/setup.py ++++ b/setup.py +@@ -30,7 +30,7 @@ import os + import platform + import subprocess + import sys +-from distutils.version import StrictVersion ++from packaging.version import parse, Version + + from setuptools import Extension, setup + +@@ -112,9 +112,9 @@ class GammuConfig: + with open(self.config_path(self.path)) as handle: + for line in handle: + if line.startswith("#define GAMMU_VERSION "): +- version = line.split('"')[1] ++ version = parse(line.split('"')[1]) + +- if version is None or StrictVersion(version) < StrictVersion(GAMMU_REQUIRED): ++ if version is None or version < parse(GAMMU_REQUIRED): + print("Too old Gammu version, please upgrade!") + sys.exit(100) + diff --git a/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb b/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb new file mode 100644 index 0000000000..1fdb76eeb4 --- /dev/null +++ b/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb @@ -0,0 +1,21 @@ +SUMMARY = "Gammu bindings for Python" +DESCRIPTION ="Python bindings for the Gammu library." +HOMEPAGE = "https://wammu.eu/python-gammu/" +BUGRACKER = "https://github.com/gammu/python-gammu/issues" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PYPI_PACKAGE = "python-gammu" + +inherit pypi setuptools3 pkgconfig + +SRC_URI += "file://0001-setup.py-StrictVersion-packaging.version.patch" +SRC_URI[sha256sum] = "49fc70f01bc192c43ff3ec815e082df5261ea4c8d36a695e977734c4eb4df868" + +S = "${WORKDIR}/python-gammu-${PV}" + +DEPENDS += "gammu python3-packaging-native" + +RDEPENDS:${PN} += "python3-asyncio python3-core python3-threading" + +RRECOMMENDS:${PN} += "gammu" diff --git a/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch b/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch new file mode 100644 index 0000000000..7319280ca4 --- /dev/null +++ b/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch @@ -0,0 +1,72 @@ +From 87df05c3f83c563af76ab00567e7a1ab7a6ebc88 Mon Sep 17 00:00:00 2001 +From: Peter Rosin <peda@axentia.se> +Date: Sat, 9 Nov 2019 15:42:03 +0100 +Subject: [PATCH] dbus: avoid 'strange' chars from the build dir in #defines + +gdbus-codegen uses include guards with the full path dir, and if there +are "bad" characters, such as '+', this fails miserably. E.g. Yocto has a +tendency to build in directories named from the Yocto package version and +that package version containing a '+' are not uncommon, and even the +standard in certain scenarios such as when using ${SRCPV}. + +Avoid the problem of the full path "leaking" into the source by avoiding +the normal include guards and request "#pragma once" instead. + +Signed-off-by: Peter Rosin <peda@axentia.se> +--- +Upstream-Status: Pending + + dbus/CMakeLists.txt | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/dbus/CMakeLists.txt b/dbus/CMakeLists.txt +index f5096ce10ecd..013c32239e12 100644 +--- a/dbus/CMakeLists.txt ++++ b/dbus/CMakeLists.txt +@@ -43,37 +43,37 @@ else() + endif() + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1.c +- COMMAND gdbus-codegen --interface-prefix org.bluez.Adapter1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml ++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Adapter1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml + COMMENT "Generate D-Bus 'org.bluez.Adapter1.xml'" + ) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1.c +- COMMAND gdbus-codegen --interface-prefix org.bluez.Device1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml ++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Device1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml + COMMENT "Generate D-Bus 'org.bluez.Device1.xml'" + ) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1.c +- COMMAND gdbus-codegen --interface-prefix org.bluez.GattService1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml ++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.GattService1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml + COMMENT "Generate D-Bus 'org.bluez.GattService1.xml'" + ) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1.c +- COMMAND gdbus-codegen --interface-prefix org.bluez.Characteristic1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml ++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Characteristic1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml + COMMENT "Generate D-Bus 'org.bluez.GattCharacteristic1.xml'" + ) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1.c +- COMMAND gdbus-codegen --interface-prefix org.bluez.Descriptor1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml ++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Descriptor1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml + COMMENT "Generate D-Bus 'org.bluez.GattDescriptor1.xml'" + ) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1.c +- COMMAND gdbus-codegen --interface-prefix org.bluez.Battery1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml ++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Battery1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml + COMMENT "Generate D-Bus 'org.bluez.Battery1.xml'" + ) +-- +2.11.0 + diff --git a/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb new file mode 100644 index 0000000000..7ad28d594d --- /dev/null +++ b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "Bluetooth library with attribute support" +SECTION = "libs/network" + +LICENSE = "GPL-2.0-or-later | BSD-3-Clause" +LIC_FILES_CHKSUM = "file://CMakeLists.txt;beginline=1;endline=6;md5=a87ee154f005a6f035b8b34ac2191f3b" + +DEPENDS = "bluez5 glib-2.0 glib-2.0-native python3-packaging-native" + +PV = "0.2+git" + +SRC_URI = "git://github.com/labapart/gattlib.git;branch=master;protocol=https \ + file://dbus-avoid-strange-chars-from-the-build-dir.patch \ + " + +SRCBRANCH = "master" +SRCREV = "33a8a275928b186381bb0aea0f9778e330e57ec3" + +S = "${WORKDIR}/git" + +PACKAGECONFIG[examples] = "-DGATTLIB_BUILD_EXAMPLES=ON,-DGATTLIB_BUILD_EXAMPLES=OFF" + +# Set this to force use of DBus API if Bluez version is older than 5.42 +PACKAGECONFIG[force-dbus] = "-DGATTLIB_FORCE_DBUS=TRUE,-DGATTLIB_FORCE_DBUS=FALSE" + +EXTRA_OECMAKE += "-DGATTLIB_PYTHON_INTERFACE=OFF" +EXTRA_OECMAKE += "-DGATTLIB_BUILD_DOCS=OFF" + +inherit pkgconfig cmake python3native + +do_compile:append() { + for f in org-bluez-gattdescriptor1.c org-bluez-battery1.c org-bluez-adaptater1.c \ + org-bluez-device1.c org-bluez-gattservice1.c org-bluez-gattcharacteristic1.c; do + sed -i -e 's|${B}/dbus/||g' ${B}/dbus/$f + done +} + +FILES:${PN} = "${libdir}/*" +FILES:${PN}-dev = "${includedir}/* ${libdir}/pkgconfig" diff --git a/meta-oe/recipes-connectivity/gensio/gensio_2.8.4.bb b/meta-oe/recipes-connectivity/gensio/gensio_2.8.4.bb new file mode 100644 index 0000000000..1f85c46e2f --- /dev/null +++ b/meta-oe/recipes-connectivity/gensio/gensio_2.8.4.bb @@ -0,0 +1,26 @@ +SUMMARY = "A library to abstract stream I/O like serial port, TCP, telnet, etc" +HOMEPAGE = "https://github.com/cminyard/gensio" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + " + +SRCREV = "300644fc02b7099ca27ca5bac88c47e159ba8a6b" + +SRC_URI = "git://github.com/cminyard/gensio;protocol=https;branch=master" + +S = "${WORKDIR}/git" + +inherit autotools + +PACKAGECONFIG ??= "openssl tcp-wrappers" + +PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_HOST}${prefix},--without-openssl, openssl" +PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers, tcp-wrappers" +PACKAGECONFIG[swig] = "--with-swig,--without-swig, swig" + +EXTRA_OECONF = "--without-python" + +RDEPENDS:${PN} += "bash" + +FILES:${PN}-staticdev += "${libexecdir}/gensio/${PV}/libgensio_*.a" diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig b/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig index 2789640170..a62bec4034 100644 --- a/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig +++ b/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig @@ -139,6 +139,9 @@ CONFIG_DRIVER_RADIUS_ACL=y # IEEE 802.11n (High Throughput) support CONFIG_IEEE80211N=y +# IEEE 802.11ac (Very High Throughput) support +CONFIG_IEEE80211AC=y + # Remove debugging code that is printing out debug messages to stdout. # This can be used to reduce the size of the hostapd considerably if debugging # code is not needed. diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch deleted file mode 100644 index 694da8fb6d..0000000000 --- a/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch +++ /dev/null @@ -1,984 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From cf4cab804c7afd5c45505528a8d16e46163243a2 Mon Sep 17 00:00:00 2001 -From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be> -Date: Fri, 14 Jul 2017 15:15:35 +0200 -Subject: [PATCH 1/8] hostapd: Avoid key reinstallation in FT handshake - -Do not reinstall TK to the driver during Reassociation Response frame -processing if the first attempt of setting the TK succeeded. This avoids -issues related to clearing the TX/RX PN that could result in reusing -same PN values for transmitted frames (e.g., due to CCM nonce reuse and -also hitting replay protection on the receiver) and accepting replayed -frames on RX side. - -This issue was introduced by the commit -0e84c25434e6a1f283c7b4e62e483729085b78d2 ('FT: Fix PTK configuration in -authenticator') which allowed wpa_ft_install_ptk() to be called multiple -times with the same PTK. While the second configuration attempt is -needed with some drivers, it must be done only if the first attempt -failed. - -Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be> ---- - src/ap/ieee802_11.c | 16 +++++++++++++--- - src/ap/wpa_auth.c | 11 +++++++++++ - src/ap/wpa_auth.h | 3 ++- - src/ap/wpa_auth_ft.c | 10 ++++++++++ - src/ap/wpa_auth_i.h | 1 + - 5 files changed, 37 insertions(+), 4 deletions(-) - -diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c -index 4e04169..333035f 100644 ---- a/src/ap/ieee802_11.c -+++ b/src/ap/ieee802_11.c -@@ -1841,6 +1841,7 @@ static int add_associated_sta(struct hostapd_data *hapd, - { - struct ieee80211_ht_capabilities ht_cap; - struct ieee80211_vht_capabilities vht_cap; -+ int set = 1; - - /* - * Remove the STA entry to ensure the STA PS state gets cleared and -@@ -1848,9 +1849,18 @@ static int add_associated_sta(struct hostapd_data *hapd, - * FT-over-the-DS, where a station re-associates back to the same AP but - * skips the authentication flow, or if working with a driver that - * does not support full AP client state. -+ * -+ * Skip this if the STA has already completed FT reassociation and the -+ * TK has been configured since the TX/RX PN must not be reset to 0 for -+ * the same key. - */ -- if (!sta->added_unassoc) -+ if (!sta->added_unassoc && -+ (!(sta->flags & WLAN_STA_AUTHORIZED) || -+ !wpa_auth_sta_ft_tk_already_set(sta->wpa_sm))) { - hostapd_drv_sta_remove(hapd, sta->addr); -+ wpa_auth_sm_event(sta->wpa_sm, WPA_DRV_STA_REMOVED); -+ set = 0; -+ } - - #ifdef CONFIG_IEEE80211N - if (sta->flags & WLAN_STA_HT) -@@ -1873,11 +1883,11 @@ static int add_associated_sta(struct hostapd_data *hapd, - sta->flags & WLAN_STA_VHT ? &vht_cap : NULL, - sta->flags | WLAN_STA_ASSOC, sta->qosinfo, - sta->vht_opmode, sta->p2p_ie ? 1 : 0, -- sta->added_unassoc)) { -+ set)) { - hostapd_logger(hapd, sta->addr, - HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE, - "Could not %s STA to kernel driver", -- sta->added_unassoc ? "set" : "add"); -+ set ? "set" : "add"); - - if (sta->added_unassoc) { - hostapd_drv_sta_remove(hapd, sta->addr); -diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c -index 3587086..707971d 100644 ---- a/src/ap/wpa_auth.c -+++ b/src/ap/wpa_auth.c -@@ -1745,6 +1745,9 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event) - #else /* CONFIG_IEEE80211R */ - break; - #endif /* CONFIG_IEEE80211R */ -+ case WPA_DRV_STA_REMOVED: -+ sm->tk_already_set = FALSE; -+ return 0; - } - - #ifdef CONFIG_IEEE80211R -@@ -3250,6 +3253,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm) - } - - -+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm) -+{ -+ if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt)) -+ return 0; -+ return sm->tk_already_set; -+} -+ -+ - int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm, - struct rsn_pmksa_cache_entry *entry) - { -diff --git a/src/ap/wpa_auth.h b/src/ap/wpa_auth.h -index 0de8d97..97461b0 100644 ---- a/src/ap/wpa_auth.h -+++ b/src/ap/wpa_auth.h -@@ -267,7 +267,7 @@ void wpa_receive(struct wpa_authenticator *wpa_auth, - u8 *data, size_t data_len); - enum wpa_event { - WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH, -- WPA_REAUTH_EAPOL, WPA_ASSOC_FT -+ WPA_REAUTH_EAPOL, WPA_ASSOC_FT, WPA_DRV_STA_REMOVED - }; - void wpa_remove_ptk(struct wpa_state_machine *sm); - int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event); -@@ -280,6 +280,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm); - int wpa_auth_get_pairwise(struct wpa_state_machine *sm); - int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm); - int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm); -+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm); - int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm, - struct rsn_pmksa_cache_entry *entry); - struct rsn_pmksa_cache_entry * -diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c -index 42242a5..e63b99a 100644 ---- a/src/ap/wpa_auth_ft.c -+++ b/src/ap/wpa_auth_ft.c -@@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm) - return; - } - -+ if (sm->tk_already_set) { -+ /* Must avoid TK reconfiguration to prevent clearing of TX/RX -+ * PN in the driver */ -+ wpa_printf(MSG_DEBUG, -+ "FT: Do not re-install same PTK to the driver"); -+ return; -+ } -+ - /* FIX: add STA entry to kernel/driver here? The set_key will fail - * most likely without this.. At the moment, STA entry is added only - * after association has been completed. This function will be called -@@ -792,6 +800,7 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm) - - /* FIX: MLME-SetProtection.Request(TA, Tx_Rx) */ - sm->pairwise_set = TRUE; -+ sm->tk_already_set = TRUE; - } - - -@@ -898,6 +907,7 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm, - - sm->pairwise = pairwise; - sm->PTK_valid = TRUE; -+ sm->tk_already_set = FALSE; - wpa_ft_install_ptk(sm); - - buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) + -diff --git a/src/ap/wpa_auth_i.h b/src/ap/wpa_auth_i.h -index 72b7eb3..7fd8f05 100644 ---- a/src/ap/wpa_auth_i.h -+++ b/src/ap/wpa_auth_i.h -@@ -65,6 +65,7 @@ struct wpa_state_machine { - struct wpa_ptk PTK; - Boolean PTK_valid; - Boolean pairwise_set; -+ Boolean tk_already_set; - int keycount; - Boolean Pair; - struct wpa_key_replay_counter { --- -2.7.4 - -From 927f891007c402fefd1ff384645b3f07597c3ede Mon Sep 17 00:00:00 2001 -From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be> -Date: Wed, 12 Jul 2017 16:03:24 +0200 -Subject: [PATCH 2/8] Prevent reinstallation of an already in-use group key - -Track the current GTK and IGTK that is in use and when receiving a -(possibly retransmitted) Group Message 1 or WNM-Sleep Mode Response, do -not install the given key if it is already in use. This prevents an -attacker from trying to trick the client into resetting or lowering the -sequence counter associated to the group key. - -Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be> ---- - src/common/wpa_common.h | 11 +++++ - src/rsn_supp/wpa.c | 116 ++++++++++++++++++++++++++++++------------------ - src/rsn_supp/wpa_i.h | 4 ++ - 3 files changed, 87 insertions(+), 44 deletions(-) - -diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h -index af1d0f0..d200285 100644 ---- a/src/common/wpa_common.h -+++ b/src/common/wpa_common.h -@@ -217,6 +217,17 @@ struct wpa_ptk { - size_t tk_len; - }; - -+struct wpa_gtk { -+ u8 gtk[WPA_GTK_MAX_LEN]; -+ size_t gtk_len; -+}; -+ -+#ifdef CONFIG_IEEE80211W -+struct wpa_igtk { -+ u8 igtk[WPA_IGTK_MAX_LEN]; -+ size_t igtk_len; -+}; -+#endif /* CONFIG_IEEE80211W */ - - /* WPA IE version 1 - * 00-50-f2:1 (OUI:OUI type) -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 3c47879..95bd7be 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -714,6 +714,15 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - const u8 *_gtk = gd->gtk; - u8 gtk_buf[32]; - -+ /* Detect possible key reinstallation */ -+ if (sm->gtk.gtk_len == (size_t) gd->gtk_len && -+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) { -+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, -+ "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)", -+ gd->keyidx, gd->tx, gd->gtk_len); -+ return 0; -+ } -+ - wpa_hexdump_key(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len); - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Installing GTK to the driver (keyidx=%d tx=%d len=%d)", -@@ -748,6 +757,9 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - } - os_memset(gtk_buf, 0, sizeof(gtk_buf)); - -+ sm->gtk.gtk_len = gd->gtk_len; -+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); -+ - return 0; - } - -@@ -854,6 +866,48 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, - } - - -+#ifdef CONFIG_IEEE80211W -+static int wpa_supplicant_install_igtk(struct wpa_sm *sm, -+ const struct wpa_igtk_kde *igtk) -+{ -+ size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher); -+ u16 keyidx = WPA_GET_LE16(igtk->keyid); -+ -+ /* Detect possible key reinstallation */ -+ if (sm->igtk.igtk_len == len && -+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) { -+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, -+ "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)", -+ keyidx); -+ return 0; -+ } -+ -+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, -+ "WPA: IGTK keyid %d pn %02x%02x%02x%02x%02x%02x", -+ keyidx, MAC2STR(igtk->pn)); -+ wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", igtk->igtk, len); -+ if (keyidx > 4095) { -+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -+ "WPA: Invalid IGTK KeyID %d", keyidx); -+ return -1; -+ } -+ if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), -+ broadcast_ether_addr, -+ keyidx, 0, igtk->pn, sizeof(igtk->pn), -+ igtk->igtk, len) < 0) { -+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -+ "WPA: Failed to configure IGTK to the driver"); -+ return -1; -+ } -+ -+ sm->igtk.igtk_len = len; -+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); -+ -+ return 0; -+} -+#endif /* CONFIG_IEEE80211W */ -+ -+ - static int ieee80211w_set_keys(struct wpa_sm *sm, - struct wpa_eapol_ie_parse *ie) - { -@@ -864,30 +918,14 @@ static int ieee80211w_set_keys(struct wpa_sm *sm, - if (ie->igtk) { - size_t len; - const struct wpa_igtk_kde *igtk; -- u16 keyidx; -+ - len = wpa_cipher_key_len(sm->mgmt_group_cipher); - if (ie->igtk_len != WPA_IGTK_KDE_PREFIX_LEN + len) - return -1; -+ - igtk = (const struct wpa_igtk_kde *) ie->igtk; -- keyidx = WPA_GET_LE16(igtk->keyid); -- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: IGTK keyid %d " -- "pn %02x%02x%02x%02x%02x%02x", -- keyidx, MAC2STR(igtk->pn)); -- wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", -- igtk->igtk, len); -- if (keyidx > 4095) { -- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -- "WPA: Invalid IGTK KeyID %d", keyidx); -- return -1; -- } -- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), -- broadcast_ether_addr, -- keyidx, 0, igtk->pn, sizeof(igtk->pn), -- igtk->igtk, len) < 0) { -- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -- "WPA: Failed to configure IGTK to the driver"); -+ if (wpa_supplicant_install_igtk(sm, igtk) < 0) - return -1; -- } - } - - return 0; -@@ -2307,7 +2345,7 @@ void wpa_sm_deinit(struct wpa_sm *sm) - */ - void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - { -- int clear_ptk = 1; -+ int clear_keys = 1; - - if (sm == NULL) - return; -@@ -2333,11 +2371,11 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - /* Prepare for the next transition */ - wpa_ft_prepare_auth_request(sm, NULL); - -- clear_ptk = 0; -+ clear_keys = 0; - } - #endif /* CONFIG_IEEE80211R */ - -- if (clear_ptk) { -+ if (clear_keys) { - /* - * IEEE 802.11, 8.4.10: Delete PTK SA on (re)association if - * this is not part of a Fast BSS Transition. -@@ -2347,6 +2385,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - os_memset(&sm->ptk, 0, sizeof(sm->ptk)); - sm->tptk_set = 0; - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); -+ os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+#ifdef CONFIG_IEEE80211W -+ os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+#endif /* CONFIG_IEEE80211W */ - } - - #ifdef CONFIG_TDLS -@@ -2877,6 +2919,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm) - os_memset(sm->pmk, 0, sizeof(sm->pmk)); - os_memset(&sm->ptk, 0, sizeof(sm->ptk)); - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); -+ os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+#ifdef CONFIG_IEEE80211W -+ os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+#endif /* CONFIG_IEEE80211W */ - #ifdef CONFIG_IEEE80211R - os_memset(sm->xxkey, 0, sizeof(sm->xxkey)); - os_memset(sm->pmk_r0, 0, sizeof(sm->pmk_r0)); -@@ -2949,29 +2995,11 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) - os_memset(&gd, 0, sizeof(gd)); - #ifdef CONFIG_IEEE80211W - } else if (subelem_id == WNM_SLEEP_SUBELEM_IGTK) { -- struct wpa_igtk_kde igd; -- u16 keyidx; -- -- os_memset(&igd, 0, sizeof(igd)); -- keylen = wpa_cipher_key_len(sm->mgmt_group_cipher); -- os_memcpy(igd.keyid, buf + 2, 2); -- os_memcpy(igd.pn, buf + 4, 6); -- -- keyidx = WPA_GET_LE16(igd.keyid); -- os_memcpy(igd.igtk, buf + 10, keylen); -- -- wpa_hexdump_key(MSG_DEBUG, "Install IGTK (WNM SLEEP)", -- igd.igtk, keylen); -- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), -- broadcast_ether_addr, -- keyidx, 0, igd.pn, sizeof(igd.pn), -- igd.igtk, keylen) < 0) { -- wpa_printf(MSG_DEBUG, "Failed to install the IGTK in " -- "WNM mode"); -- os_memset(&igd, 0, sizeof(igd)); -+ const struct wpa_igtk_kde *igtk; -+ -+ igtk = (const struct wpa_igtk_kde *) (buf + 2); -+ if (wpa_supplicant_install_igtk(sm, igtk) < 0) - return -1; -- } -- os_memset(&igd, 0, sizeof(igd)); - #endif /* CONFIG_IEEE80211W */ - } else { - wpa_printf(MSG_DEBUG, "Unknown element id"); -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index f653ba6..afc9e37 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -31,6 +31,10 @@ struct wpa_sm { - u8 rx_replay_counter[WPA_REPLAY_COUNTER_LEN]; - int rx_replay_counter_set; - u8 request_counter[WPA_REPLAY_COUNTER_LEN]; -+ struct wpa_gtk gtk; -+#ifdef CONFIG_IEEE80211W -+ struct wpa_igtk igtk; -+#endif /* CONFIG_IEEE80211W */ - - struct eapol_sm *eapol; /* EAPOL state machine from upper level code */ - --- -2.7.4 - -From 8280294e74846ea342389a0cd17215050fa5afe8 Mon Sep 17 00:00:00 2001 -From: Jouni Malinen <j@w1.fi> -Date: Sun, 1 Oct 2017 12:12:24 +0300 -Subject: [PATCH 3/8] Extend protection of GTK/IGTK reinstallation of WNM-Sleep - Mode cases - -This extends the protection to track last configured GTK/IGTK value -separately from EAPOL-Key frames and WNM-Sleep Mode frames to cover a -corner case where these two different mechanisms may get used when the -GTK/IGTK has changed and tracking a single value is not sufficient to -detect a possible key reconfiguration. - -Signed-off-by: Jouni Malinen <j@w1.fi> ---- - src/rsn_supp/wpa.c | 53 +++++++++++++++++++++++++++++++++++++--------------- - src/rsn_supp/wpa_i.h | 2 ++ - 2 files changed, 40 insertions(+), 15 deletions(-) - -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 95bd7be..7a2c68d 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -709,14 +709,17 @@ struct wpa_gtk_data { - - static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - const struct wpa_gtk_data *gd, -- const u8 *key_rsc) -+ const u8 *key_rsc, int wnm_sleep) - { - const u8 *_gtk = gd->gtk; - u8 gtk_buf[32]; - - /* Detect possible key reinstallation */ -- if (sm->gtk.gtk_len == (size_t) gd->gtk_len && -- os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) { -+ if ((sm->gtk.gtk_len == (size_t) gd->gtk_len && -+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) || -+ (sm->gtk_wnm_sleep.gtk_len == (size_t) gd->gtk_len && -+ os_memcmp(sm->gtk_wnm_sleep.gtk, gd->gtk, -+ sm->gtk_wnm_sleep.gtk_len) == 0)) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)", - gd->keyidx, gd->tx, gd->gtk_len); -@@ -757,8 +760,14 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - } - os_memset(gtk_buf, 0, sizeof(gtk_buf)); - -- sm->gtk.gtk_len = gd->gtk_len; -- os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); -+ if (wnm_sleep) { -+ sm->gtk_wnm_sleep.gtk_len = gd->gtk_len; -+ os_memcpy(sm->gtk_wnm_sleep.gtk, gd->gtk, -+ sm->gtk_wnm_sleep.gtk_len); -+ } else { -+ sm->gtk.gtk_len = gd->gtk_len; -+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); -+ } - - return 0; - } -@@ -852,7 +861,7 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, - (wpa_supplicant_check_group_cipher(sm, sm->group_cipher, - gtk_len, gtk_len, - &gd.key_rsc_len, &gd.alg) || -- wpa_supplicant_install_gtk(sm, &gd, key_rsc))) { -+ wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0))) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "RSN: Failed to install GTK"); - os_memset(&gd, 0, sizeof(gd)); -@@ -868,14 +877,18 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, - - #ifdef CONFIG_IEEE80211W - static int wpa_supplicant_install_igtk(struct wpa_sm *sm, -- const struct wpa_igtk_kde *igtk) -+ const struct wpa_igtk_kde *igtk, -+ int wnm_sleep) - { - size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher); - u16 keyidx = WPA_GET_LE16(igtk->keyid); - - /* Detect possible key reinstallation */ -- if (sm->igtk.igtk_len == len && -- os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) { -+ if ((sm->igtk.igtk_len == len && -+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) || -+ (sm->igtk_wnm_sleep.igtk_len == len && -+ os_memcmp(sm->igtk_wnm_sleep.igtk, igtk->igtk, -+ sm->igtk_wnm_sleep.igtk_len) == 0)) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)", - keyidx); -@@ -900,8 +913,14 @@ static int wpa_supplicant_install_igtk(struct wpa_sm *sm, - return -1; - } - -- sm->igtk.igtk_len = len; -- os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); -+ if (wnm_sleep) { -+ sm->igtk_wnm_sleep.igtk_len = len; -+ os_memcpy(sm->igtk_wnm_sleep.igtk, igtk->igtk, -+ sm->igtk_wnm_sleep.igtk_len); -+ } else { -+ sm->igtk.igtk_len = len; -+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); -+ } - - return 0; - } -@@ -924,7 +943,7 @@ static int ieee80211w_set_keys(struct wpa_sm *sm, - return -1; - - igtk = (const struct wpa_igtk_kde *) ie->igtk; -- if (wpa_supplicant_install_igtk(sm, igtk) < 0) -+ if (wpa_supplicant_install_igtk(sm, igtk, 0) < 0) - return -1; - } - -@@ -1574,7 +1593,7 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm, - if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc)) - key_rsc = null_rsc; - -- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc) || -+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) || - wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0) - goto failed; - os_memset(&gd, 0, sizeof(gd)); -@@ -2386,8 +2405,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - sm->tptk_set = 0; - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); - os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep)); - #ifdef CONFIG_IEEE80211W - os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep)); - #endif /* CONFIG_IEEE80211W */ - } - -@@ -2920,8 +2941,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm) - os_memset(&sm->ptk, 0, sizeof(sm->ptk)); - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); - os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep)); - #ifdef CONFIG_IEEE80211W - os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep)); - #endif /* CONFIG_IEEE80211W */ - #ifdef CONFIG_IEEE80211R - os_memset(sm->xxkey, 0, sizeof(sm->xxkey)); -@@ -2986,7 +3009,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) - - wpa_hexdump_key(MSG_DEBUG, "Install GTK (WNM SLEEP)", - gd.gtk, gd.gtk_len); -- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc)) { -+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 1)) { - os_memset(&gd, 0, sizeof(gd)); - wpa_printf(MSG_DEBUG, "Failed to install the GTK in " - "WNM mode"); -@@ -2998,7 +3021,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) - const struct wpa_igtk_kde *igtk; - - igtk = (const struct wpa_igtk_kde *) (buf + 2); -- if (wpa_supplicant_install_igtk(sm, igtk) < 0) -+ if (wpa_supplicant_install_igtk(sm, igtk, 1) < 0) - return -1; - #endif /* CONFIG_IEEE80211W */ - } else { -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index afc9e37..9a54631 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -32,8 +32,10 @@ struct wpa_sm { - int rx_replay_counter_set; - u8 request_counter[WPA_REPLAY_COUNTER_LEN]; - struct wpa_gtk gtk; -+ struct wpa_gtk gtk_wnm_sleep; - #ifdef CONFIG_IEEE80211W - struct wpa_igtk igtk; -+ struct wpa_igtk igtk_wnm_sleep; - #endif /* CONFIG_IEEE80211W */ - - struct eapol_sm *eapol; /* EAPOL state machine from upper level code */ --- -2.7.4 - -From 8f82bc94e8697a9d47fa8774dfdaaede1084912c Mon Sep 17 00:00:00 2001 -From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be> -Date: Fri, 29 Sep 2017 04:22:51 +0200 -Subject: [PATCH 4/8] Prevent installation of an all-zero TK - -Properly track whether a PTK has already been installed to the driver -and the TK part cleared from memory. This prevents an attacker from -trying to trick the client into installing an all-zero TK. - -This fixes the earlier fix in commit -ad00d64e7d8827b3cebd665a0ceb08adabf15e1e ('Fix TK configuration to the -driver in EAPOL-Key 3/4 retry case') which did not take into account -possibility of an extra message 1/4 showing up between retries of -message 3/4. - -Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be> ---- - src/common/wpa_common.h | 1 + - src/rsn_supp/wpa.c | 5 ++--- - src/rsn_supp/wpa_i.h | 1 - - 3 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h -index d200285..1021ccb 100644 ---- a/src/common/wpa_common.h -+++ b/src/common/wpa_common.h -@@ -215,6 +215,7 @@ struct wpa_ptk { - size_t kck_len; - size_t kek_len; - size_t tk_len; -+ int installed; /* 1 if key has already been installed to driver */ - }; - - struct wpa_gtk { -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 7a2c68d..0550a41 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -510,7 +510,6 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, - os_memset(buf, 0, sizeof(buf)); - } - sm->tptk_set = 1; -- sm->tk_to_set = 1; - - kde = sm->assoc_wpa_ie; - kde_len = sm->assoc_wpa_ie_len; -@@ -615,7 +614,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm, - enum wpa_alg alg; - const u8 *key_rsc; - -- if (!sm->tk_to_set) { -+ if (sm->ptk.installed) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Do not re-install same PTK to the driver"); - return 0; -@@ -659,7 +658,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm, - - /* TK is not needed anymore in supplicant */ - os_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN); -- sm->tk_to_set = 0; -+ sm->ptk.installed = 1; - - if (sm->wpa_ptk_rekey) { - eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL); -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index 9a54631..41f371f 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -24,7 +24,6 @@ struct wpa_sm { - struct wpa_ptk ptk, tptk; - int ptk_set, tptk_set; - unsigned int msg_3_of_4_ok:1; -- unsigned int tk_to_set:1; - u8 snonce[WPA_NONCE_LEN]; - u8 anonce[WPA_NONCE_LEN]; /* ANonce from the last 1/4 msg */ - int renew_snonce; --- -2.7.4 - -From 12fac09b437a1dc8a0f253e265934a8aaf4d2f8b Mon Sep 17 00:00:00 2001 -From: Jouni Malinen <j@w1.fi> -Date: Sun, 1 Oct 2017 12:32:57 +0300 -Subject: [PATCH 5/8] Fix PTK rekeying to generate a new ANonce - -The Authenticator state machine path for PTK rekeying ended up bypassing -the AUTHENTICATION2 state where a new ANonce is generated when going -directly to the PTKSTART state since there is no need to try to -determine the PMK again in such a case. This is far from ideal since the -new PTK would depend on a new nonce only from the supplicant. - -Fix this by generating a new ANonce when moving to the PTKSTART state -for the purpose of starting new 4-way handshake to rekey PTK. - -Signed-off-by: Jouni Malinen <j@w1.fi> ---- - src/ap/wpa_auth.c | 24 +++++++++++++++++++++--- - 1 file changed, 21 insertions(+), 3 deletions(-) - -diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c -index 707971d..bf10cc1 100644 ---- a/src/ap/wpa_auth.c -+++ b/src/ap/wpa_auth.c -@@ -1901,6 +1901,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2) - } - - -+static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm) -+{ -+ if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) { -+ wpa_printf(MSG_ERROR, -+ "WPA: Failed to get random data for ANonce"); -+ sm->Disconnect = TRUE; -+ return -1; -+ } -+ wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce, -+ WPA_NONCE_LEN); -+ sm->TimeoutCtr = 0; -+ return 0; -+} -+ -+ - SM_STATE(WPA_PTK, INITPMK) - { - u8 msk[2 * PMK_LEN]; -@@ -2458,9 +2473,12 @@ SM_STEP(WPA_PTK) - SM_ENTER(WPA_PTK, AUTHENTICATION); - else if (sm->ReAuthenticationRequest) - SM_ENTER(WPA_PTK, AUTHENTICATION2); -- else if (sm->PTKRequest) -- SM_ENTER(WPA_PTK, PTKSTART); -- else switch (sm->wpa_ptk_state) { -+ else if (sm->PTKRequest) { -+ if (wpa_auth_sm_ptk_update(sm) < 0) -+ SM_ENTER(WPA_PTK, DISCONNECTED); -+ else -+ SM_ENTER(WPA_PTK, PTKSTART); -+ } else switch (sm->wpa_ptk_state) { - case WPA_PTK_INITIALIZE: - break; - case WPA_PTK_DISCONNECT: --- -2.7.4 - -From 6c4bed4f47d1960ec04981a9d50e5076aea5223d Mon Sep 17 00:00:00 2001 -From: Jouni Malinen <j@w1.fi> -Date: Fri, 22 Sep 2017 11:03:15 +0300 -Subject: [PATCH 6/8] TDLS: Reject TPK-TK reconfiguration - -Do not try to reconfigure the same TPK-TK to the driver after it has -been successfully configured. This is an explicit check to avoid issues -related to resetting the TX/RX packet number. There was already a check -for this for TPK M2 (retries of that message are ignored completely), so -that behavior does not get modified. - -For TPK M3, the TPK-TK could have been reconfigured, but that was -followed by immediate teardown of the link due to an issue in updating -the STA entry. Furthermore, for TDLS with any real security (i.e., -ignoring open/WEP), the TPK message exchange is protected on the AP path -and simple replay attacks are not feasible. - -As an additional corner case, make sure the local nonce gets updated if -the peer uses a very unlikely "random nonce" of all zeros. - -Signed-off-by: Jouni Malinen <j@w1.fi> ---- - src/rsn_supp/tdls.c | 38 ++++++++++++++++++++++++++++++++++++-- - 1 file changed, 36 insertions(+), 2 deletions(-) - -diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c -index e424168..9eb9738 100644 ---- a/src/rsn_supp/tdls.c -+++ b/src/rsn_supp/tdls.c -@@ -112,6 +112,7 @@ struct wpa_tdls_peer { - u8 tk[16]; /* TPK-TK; assuming only CCMP will be used */ - } tpk; - int tpk_set; -+ int tk_set; /* TPK-TK configured to the driver */ - int tpk_success; - int tpk_in_progress; - -@@ -192,6 +193,20 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer) - u8 rsc[6]; - enum wpa_alg alg; - -+ if (peer->tk_set) { -+ /* -+ * This same TPK-TK has already been configured to the driver -+ * and this new configuration attempt (likely due to an -+ * unexpected retransmitted frame) would result in clearing -+ * the TX/RX sequence number which can break security, so must -+ * not allow that to happen. -+ */ -+ wpa_printf(MSG_INFO, "TDLS: TPK-TK for the peer " MACSTR -+ " has already been configured to the driver - do not reconfigure", -+ MAC2STR(peer->addr)); -+ return -1; -+ } -+ - os_memset(rsc, 0, 6); - - switch (peer->cipher) { -@@ -209,12 +224,15 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer) - return -1; - } - -+ wpa_printf(MSG_DEBUG, "TDLS: Configure pairwise key for peer " MACSTR, -+ MAC2STR(peer->addr)); - if (wpa_sm_set_key(sm, alg, peer->addr, -1, 1, - rsc, sizeof(rsc), peer->tpk.tk, key_len) < 0) { - wpa_printf(MSG_WARNING, "TDLS: Failed to set TPK to the " - "driver"); - return -1; - } -+ peer->tk_set = 1; - return 0; - } - -@@ -696,7 +714,7 @@ static void wpa_tdls_peer_clear(struct wpa_sm *sm, struct wpa_tdls_peer *peer) - peer->cipher = 0; - peer->qos_info = 0; - peer->wmm_capable = 0; -- peer->tpk_set = peer->tpk_success = 0; -+ peer->tk_set = peer->tpk_set = peer->tpk_success = 0; - peer->chan_switch_enabled = 0; - os_memset(&peer->tpk, 0, sizeof(peer->tpk)); - os_memset(peer->inonce, 0, WPA_NONCE_LEN); -@@ -1159,6 +1177,7 @@ skip_rsnie: - wpa_tdls_peer_free(sm, peer); - return -1; - } -+ peer->tk_set = 0; /* A new nonce results in a new TK */ - wpa_hexdump(MSG_DEBUG, "TDLS: Initiator Nonce for TPK handshake", - peer->inonce, WPA_NONCE_LEN); - os_memcpy(ftie->Snonce, peer->inonce, WPA_NONCE_LEN); -@@ -1751,6 +1770,19 @@ static int wpa_tdls_addset_peer(struct wpa_sm *sm, struct wpa_tdls_peer *peer, - } - - -+static int tdls_nonce_set(const u8 *nonce) -+{ -+ int i; -+ -+ for (i = 0; i < WPA_NONCE_LEN; i++) { -+ if (nonce[i]) -+ return 1; -+ } -+ -+ return 0; -+} -+ -+ - static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr, - const u8 *buf, size_t len) - { -@@ -2004,7 +2036,8 @@ skip_rsn: - peer->rsnie_i_len = kde.rsn_ie_len; - peer->cipher = cipher; - -- if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0) { -+ if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0 || -+ !tdls_nonce_set(peer->inonce)) { - /* - * There is no point in updating the RNonce for every obtained - * TPK M1 frame (e.g., retransmission due to timeout) with the -@@ -2020,6 +2053,7 @@ skip_rsn: - "TDLS: Failed to get random data for responder nonce"); - goto error; - } -+ peer->tk_set = 0; /* A new nonce results in a new TK */ - } - - #if 0 --- -2.7.4 - -Note: [PATCH 7/8] only applies to wpa_supplicant - -From b372ab0b7daea719749194dc554b26e6367603f2 Mon Sep 17 00:00:00 2001 -From: Jouni Malinen <j@w1.fi> -Date: Fri, 22 Sep 2017 12:06:37 +0300 -Subject: [PATCH 8/8] FT: Do not allow multiple Reassociation Response frames - -The driver is expected to not report a second association event without -the station having explicitly request a new association. As such, this -case should not be reachable. However, since reconfiguring the same -pairwise or group keys to the driver could result in nonce reuse issues, -be extra careful here and do an additional state check to avoid this -even if the local driver ends up somehow accepting an unexpected -Reassociation Response frame. - -Signed-off-by: Jouni Malinen <j@w1.fi> ---- - src/rsn_supp/wpa.c | 3 +++ - src/rsn_supp/wpa_ft.c | 8 ++++++++ - src/rsn_supp/wpa_i.h | 1 + - 3 files changed, 12 insertions(+) - -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 0550a41..2a53c6f 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -2440,6 +2440,9 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm) - #ifdef CONFIG_TDLS - wpa_tdls_disassoc(sm); - #endif /* CONFIG_TDLS */ -+#ifdef CONFIG_IEEE80211R -+ sm->ft_reassoc_completed = 0; -+#endif /* CONFIG_IEEE80211R */ - - /* Keys are not needed in the WPA state machine anymore */ - wpa_sm_drop_sa(sm); -diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c -index 205793e..d45bb45 100644 ---- a/src/rsn_supp/wpa_ft.c -+++ b/src/rsn_supp/wpa_ft.c -@@ -153,6 +153,7 @@ static u8 * wpa_ft_gen_req_ies(struct wpa_sm *sm, size_t *len, - u16 capab; - - sm->ft_completed = 0; -+ sm->ft_reassoc_completed = 0; - - buf_len = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) + - 2 + sm->r0kh_id_len + ric_ies_len + 100; -@@ -681,6 +682,11 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, - return -1; - } - -+ if (sm->ft_reassoc_completed) { -+ wpa_printf(MSG_DEBUG, "FT: Reassociation has already been completed for this FT protocol instance - ignore unexpected retransmission"); -+ return 0; -+ } -+ - if (wpa_ft_parse_ies(ies, ies_len, &parse) < 0) { - wpa_printf(MSG_DEBUG, "FT: Failed to parse IEs"); - return -1; -@@ -781,6 +787,8 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, - return -1; - } - -+ sm->ft_reassoc_completed = 1; -+ - if (wpa_ft_process_gtk_subelem(sm, parse.gtk, parse.gtk_len) < 0) - return -1; - -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index 41f371f..56f88dc 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -128,6 +128,7 @@ struct wpa_sm { - size_t r0kh_id_len; - u8 r1kh_id[FT_R1KH_ID_LEN]; - int ft_completed; -+ int ft_reassoc_completed; - int over_the_ds_in_progress; - u8 target_ap[ETH_ALEN]; /* over-the-DS target AP */ - int set_ptk_after_assoc; --- -2.7.4 diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb b/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb new file mode 100644 index 0000000000..44683bf735 --- /dev/null +++ b/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb @@ -0,0 +1,48 @@ +SUMMARY = "User space daemon for extended IEEE 802.11 management" +HOMEPAGE = "http://w1.fi/hostapd/" +SECTION = "kernel/userland" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://hostapd/README;beginline=5;endline=47;md5=aa03b8bd6216d1a7ca01fd4b89863073" + +DEPENDS = "libnl openssl" + +SRC_URI = " \ + http://w1.fi/releases/hostapd-${PV}.tar.gz \ + file://defconfig \ + file://init \ + file://hostapd.service \ +" + + +SRC_URI[sha256sum] = "206e7c799b678572c2e3d12030238784bc4a9f82323b0156b4c9466f1498915d" + +inherit update-rc.d systemd pkgconfig features_check + +CONFLICT_DISTRO_FEATURES = "openssl-no-weak-ciphers" + +INITSCRIPT_NAME = "hostapd" + +SYSTEMD_SERVICE:${PN} = "hostapd.service" +SYSTEMD_AUTO_ENABLE:${PN} = "disable" + +do_configure:append() { + install -m 0644 ${UNPACKDIR}/defconfig ${B}/hostapd/.config +} + +do_compile() { + export CFLAGS="-MMD -O2 -Wall -g" + export EXTRA_CFLAGS="${CFLAGS}" + make -C hostapd V=1 +} + +do_install() { + install -d ${D}${sbindir} ${D}${sysconfdir}/init.d ${D}${systemd_unitdir}/system/ + install -m 0644 ${B}/hostapd/hostapd.conf ${D}${sysconfdir} + install -m 0755 ${B}/hostapd/hostapd ${D}${sbindir} + install -m 0755 ${B}/hostapd/hostapd_cli ${D}${sbindir} + install -m 755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/hostapd + install -m 0644 ${UNPACKDIR}/hostapd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/hostapd.service +} + +CONFFILES:${PN} += "${sysconfdir}/hostapd.conf" diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb b/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb deleted file mode 100644 index 4f81d222ee..0000000000 --- a/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "User space daemon for extended IEEE 802.11 management" -HOMEPAGE = "http://w1.fi/hostapd/" -SECTION = "kernel/userland" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://hostapd/README;md5=8aa4e8c78b59b12016c4cb2d0a8db350" - -DEPENDS = "libnl openssl" - -SRC_URI = " \ - http://w1.fi/releases/hostapd-${PV}.tar.gz \ - file://defconfig \ - file://init \ - file://hostapd.service \ - file://key-replay-cve-multiple.patch \ -" - -SRC_URI[md5sum] = "eaa56dce9bd8f1d195eb62596eab34c7" -SRC_URI[sha256sum] = "01526b90c1d23bec4b0f052039cc4456c2fd19347b4d830d1d58a0a6aea7117d" - -S = "${WORKDIR}/hostapd-${PV}" -B = "${WORKDIR}/hostapd-${PV}/hostapd" - -inherit update-rc.d systemd pkgconfig distro_features_check - -CONFLICT_DISTRO_FEATURES = "openssl-no-weak-ciphers" - -INITSCRIPT_NAME = "hostapd" - -SYSTEMD_SERVICE_${PN} = "hostapd.service" -SYSTEMD_AUTO_ENABLE_${PN} = "disable" - -do_configure_append() { - install -m 0644 ${WORKDIR}/defconfig ${B}/.config -} - -do_compile() { - export CFLAGS="-MMD -O2 -Wall -g" - export EXTRA_CFLAGS="${CFLAGS}" - make V=1 -} - -do_install() { - install -d ${D}${sbindir} ${D}${sysconfdir}/init.d ${D}${systemd_unitdir}/system/ - install -m 0644 ${B}/hostapd.conf ${D}${sysconfdir} - install -m 0755 ${B}/hostapd ${D}${sbindir} - install -m 0755 ${B}/hostapd_cli ${D}${sbindir} - install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hostapd - install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/hostapd.service -} - -CONFFILES_${PN} += "${sysconfdir}/hostapd.conf" diff --git a/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch b/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch new file mode 100644 index 0000000000..77de9e6c52 --- /dev/null +++ b/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch @@ -0,0 +1,31 @@ +From b990146a149e1729c12e4541a67e32ed1dd6e578 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Aug 2020 19:41:08 -0700 +Subject: [PATCH] src/interface.h: Make declarations as extern + +Fixed build with -fno-common + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/interface.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/interface.h b/src/interface.h +index d223b1f..fd4a5f4 100644 +--- a/src/interface.h ++++ b/src/interface.h +@@ -21,8 +21,8 @@ + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +-int interface_auto_up; +-int interface_do_message; ++extern int interface_auto_up; ++extern int interface_do_message; + + typedef enum { IFSTATUS_UP, IFSTATUS_DOWN, IFSTATUS_ERR } interface_status_t; + +-- +2.28.0 + diff --git a/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch b/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch new file mode 100644 index 0000000000..7dc0067304 --- /dev/null +++ b/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch @@ -0,0 +1,31 @@ +From 3f2fc79385398f213a9bd3c99616d749d699f2bb Mon Sep 17 00:00:00 2001 +From: Fabio Berton <fabio.berton@ossystems.com.br> +Date: Thu, 14 Mar 2019 19:26:14 -0300 +Subject: [PATCH] Fix build with musl +Organization: O.S. Systems Software LTDA. + +Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> +--- +Upstream-Status: Pending + + src/ethtool-local.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/src/ethtool-local.h ++++ b/src/ethtool-local.h +@@ -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; +-typedef __uint8_t u8; ++typedef uint32_t u32; ++typedef uint16_t u16; ++typedef uint8_t u8; + + #include "ethtool-kernel.h" + diff --git a/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb b/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb new file mode 100644 index 0000000000..62651bc308 --- /dev/null +++ b/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "ifplugd is a Linux daemon which will automatically configure your ethernet device \ +when a cable is plugged in and automatically unconfigure it if the cable is pulled." +HOMEPAGE = "http://0pointer.de/lennart/projects/ifplugd/" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "libdaemon" + +SRC_URI = "http://0pointer.de/lennart/projects/ifplugd/ifplugd-${PV}.tar.gz \ + file://0001-src-interface.h-Make-declarations-as-extern.patch \ + " + +SRC_URI:append:libc-musl = " file://Fix-build-with-musl.patch" + +SRC_URI[md5sum] = "df6f4bab52f46ffd6eb1f5912d4ccee3" +SRC_URI[sha256sum] = "474754ac4ab32d738cbf2a4a3e87ee0a2c71b9048a38bdcd7df1e4f9fd6541f0" + +inherit autotools update-rc.d pkgconfig + +EXTRA_OECONF = "--disable-lynx --with-initdir=${sysconfdir}/init.d" + +INITSCRIPT_NAME = "ifplugd" +INITSCRIPT_PARAMS = "defaults" + +CONFFILES:${PN} = "${sysconfdir}/ifplugd/ifplugd.conf" + +RDEPENDS:${PN} += "bash" diff --git a/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb b/meta-oe/recipes-connectivity/irssi/irssi_1.4.5.bb index 10b04bb524..5b5af30607 100644 --- a/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb +++ b/meta-oe/recipes-connectivity/irssi/irssi_1.4.5.bb @@ -1,13 +1,14 @@ SUMMARY = "ncurses IRC client" DESCRIPTION = "Irssi is an ncurses IRC client" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8" DEPENDS = "glib-2.0 ncurses openssl" SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz" -SRC_URI[md5sum] = "46d4ac2a7ab472e5dc800e5d7bd9a879" -SRC_URI[sha256sum] = "b85c07dbafe178213eccdc69f5f8f0ac024dea01c67244668f91ec1c06b986ca" +SRC_URI[sha256sum] = "72a951cb0ad622785a8962801f005a3a412736c7e7e3ce152f176287c52fe062" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" inherit autotools pkgconfig @@ -16,3 +17,5 @@ EXTRA_OECONF += "--with-textui \ --with-bot \ --with-perl=no \ --enable-true-color" + +FILES:${PN}-staticdev += "${libdir}/${BPN}/modules/*.a" diff --git a/meta-oe/recipes-connectivity/iwd/iwd/0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch b/meta-oe/recipes-connectivity/iwd/iwd/0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch new file mode 100644 index 0000000000..9ed73104ee --- /dev/null +++ b/meta-oe/recipes-connectivity/iwd/iwd/0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch @@ -0,0 +1,37 @@ +From b0b51d762f45ff9d320b96bd0acb89313148a446 Mon Sep 17 00:00:00 2001 +From: Zang Ruochen <zangrc.fnst@fujitsu.com> +Date: Wed, 12 May 2021 14:28:24 +0900 +Subject: [PATCH] build: Use abs_top_srcdir instead of abs_srcdir for ell sources + +this makes it build when build dir is outside of sources dir + +Upstream-Status: Submitted [https://lists.01.org/hyperkitty/list/iwd@lists.01.org/message/SYX6Z7SUQHU7UWM6ECZTTJ6SPODIS6KB/] +--- + Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 68035e4..e3f7990 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -628,7 +628,7 @@ ell/shared: Makefile + $(AM_V_at)$(MKDIR_P) ell + $(AM_V_GEN)for f in $(ell_shared) ; do \ + if [ ! -f $$f ] ; then \ +- $(LN_S) -t ell -f $(abs_srcdir)/../ell/$$f ; \ ++ $(LN_S) -t ell -f $(abs_top_srcdir)/ell/$$f ; \ + fi \ + done > $@ + +@@ -636,7 +636,7 @@ ell/internal: Makefile + $(AM_V_at)$(MKDIR_P) ell + $(AM_V_GEN)for f in $(ell_headers) $(ell_sources) ; do \ + if [ ! -f $$f ] ; then \ +- $(LN_S) -t ell -f $(abs_srcdir)/../ell/$$f ; \ ++ $(LN_S) -t ell -f $(abs_top_srcdir)/ell/$$f ; \ + fi \ + done > $@ + +-- +2.25.1 + diff --git a/meta-oe/recipes-connectivity/iwd/iwd_2.16.bb b/meta-oe/recipes-connectivity/iwd/iwd_2.16.bb new file mode 100644 index 0000000000..a6bb7085ea --- /dev/null +++ b/meta-oe/recipes-connectivity/iwd/iwd_2.16.bb @@ -0,0 +1,55 @@ +SUMMARY = "Wireless daemon for Linux" +HOMEPAGE = "https://iwd.wiki.kernel.org/" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" + +DEPENDS = "ell" + +SRC_URI = "https://www.kernel.org/pub/linux/network/wireless/${BP}.tar.xz \ + file://0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch \ + " +SRC_URI[sha256sum] = "c1a82032e994861e794cf3b5a16d07ae1aa03a6674f716c73408ffeae2a233ba" + +inherit autotools manpages pkgconfig python3native systemd + +PACKAGECONFIG ??= " \ + client \ + monitor \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +" +PACKAGECONFIG[client] = "--enable-client,--disable-client,readline" +PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor" +PACKAGECONFIG[manpages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native" +PACKAGECONFIG[wired] = "--enable-wired,--disable-wired" +PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono" +PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd" + +EXTRA_OECONF = "--enable-external-ell" + +SYSTEMD_SERVICE:${PN} = " \ + iwd.service \ + ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \ +" + +do_configure:prepend() { + install -d ${S}/build-aux +} + +do_install:append() { + # If client and monitor are disabled, bindir is empty, causing a QA error + rmdir --ignore-fail-on-non-empty ${D}/${bindir} +} + +FILES:${PN} += " \ + ${datadir}/dbus-1 \ + ${nonarch_libdir}/modules-load.d \ + ${systemd_unitdir}/network \ +" + +RDEPENDS:${PN} = "dbus" + +RRECOMMENDS:${PN} = "\ + kernel-module-pkcs7-message \ + kernel-module-pkcs8-key-parser \ + kernel-module-x509-key-parser \ +" diff --git a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch deleted file mode 100644 index cbd5d71fdf..0000000000 --- a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a9e4057bfda190ad365b503af058b460ab8c7616 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Tue, 1 Oct 2013 22:22:57 +0200 -Subject: [PATCH] aclocal: Add parameter to disable keyutils detection - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> - ---- - aclocal.m4 | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/aclocal.m4 b/aclocal.m4 -index d6d1279..80ce604 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -1679,12 +1679,16 @@ fi - dnl - dnl If libkeyutils exists (on Linux) include it and use keyring ccache - AC_DEFUN(KRB5_AC_KEYRING_CCACHE,[ -+AC_ARG_ENABLE([keyutils], -+AC_HELP_STRING([--disable-keyutils],don't enable using keyutils for keyring ccache @<:@enabled@:>@), , enable_keyutils=yes) -+if test "$enable_keyutils" = yes; then - AC_CHECK_HEADERS([keyutils.h], - AC_CHECK_LIB(keyutils, add_key, - [dnl Pre-reqs were found - AC_DEFINE(USE_KEYRING_CCACHE, 1, [Define if the keyring ccache should be enabled]) - LIBS="-lkeyutils $LIBS" - ])) -+fi - ])dnl - dnl - dnl If libkeyutils supports persistent keyrings, use them diff --git a/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server b/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server index 2835929139..e097353c2b 100644 --- a/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server +++ b/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server @@ -1,6 +1,4 @@ # Automatically generated. If you change anything in this file other than the -# values of RUN_KADMIND or DAEMON_ARGS, first run dpkg-reconfigure +# values of DAEMON_ARGS, first run dpkg-reconfigure # krb5-admin-server and disable managing the kadmin configuration with # debconf. Otherwise, changes will be overwritten. - -RUN_KADMIND=true diff --git a/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service b/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service index 1b4271643e..21939a1f05 100644 --- a/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service +++ b/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service @@ -7,6 +7,7 @@ ConditionPathExists=/etc/krb5.conf Type=forking ExecStartPre=/bin/sh -c "test ! -f /var/log/kadmind.log || test ! -x /sbin/restorecon || /sbin/restorecon -F /var/log/kadmind.log" ExecStart=/usr/sbin/kadmind +EnvironmentFile=-/etc/default/krb5-admin-server SuccessExitStatus=1 2 SIGKILL TimeoutStopSec=30 diff --git a/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service b/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service index d5e5a95794..bf37c45ba4 100644 --- a/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service +++ b/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service @@ -6,6 +6,7 @@ ConditionPathExists=/etc/krb5.conf [Service] Type=forking ExecStart=/usr/sbin/krb5kdc +EnvironmentFile=-/etc/default/krb5-kdc SuccessExitStatus=1 2 SIGKILL TimeoutStopSec=30 diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb index ce2134513e..ed12fee94c 100644 --- a/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb +++ b/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb @@ -14,14 +14,12 @@ DESCRIPTION = "Kerberos is a system for authenticating users and services on a n HOMEPAGE = "http://web.mit.edu/Kerberos/" SECTION = "console/network" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=59b8da652f07186b44782a8454574f30" -DEPENDS = "ncurses util-linux e2fsprogs e2fsprogs-native openssl" +LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=32cb3a99207053d9f5c1ef177c4d6e34" -inherit autotools-brokensep binconfig perlnative systemd update-rc.d +inherit autotools-brokensep binconfig perlnative systemd update-rc.d pkgconfig SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \ - file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \ file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \ file://crosscompile_nm.patch \ file://etc/init.d/krb5-kdc \ @@ -31,28 +29,32 @@ SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \ file://krb5-kdc.service \ file://krb5-admin-server.service \ " -SRC_URI[md5sum] = "23c5e9f07642db4a67f7a5b6168b1319" -SRC_URI[sha256sum] = "faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08" + +SRC_URI[sha256sum] = "9560941a9d843c0243a71b17a7ac6fe31c7cebb5bce3983db79e52ae7e850491" CVE_PRODUCT = "kerberos" +CVE_VERSION = "5-${PV}" S = "${WORKDIR}/${BP}/src" -PACKAGECONFIG ??= "" +DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl" + +PACKAGECONFIG ??= "pkinit" PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit" PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl" -PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils" +PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils" PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" +PACKAGECONFIG[pkinit] = "--enable-pkinit, --disable-pkinit" -EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath" +EXTRA_OECONF += "--with-system-et --disable-rpath" CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \ ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \ ac_cv_file__etc_TIMEZONE=no" -CFLAGS_append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et" -CFLAGS_append_riscv64 = " -D_REENTRANT -pthread" -LDFLAGS_append = " -pthread" +CFLAGS:append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et" +CFLAGS:append:riscv64 = " -D_REENTRANT -pthread" +LDFLAGS:append = " -pthread" do_configure() { gnu-configize --force @@ -60,7 +62,7 @@ do_configure() { oe_runconf } -do_install_append() { +do_install:append() { rm -rf ${D}/${localstatedir}/run rm -f ${D}${bindir}/sclient rm -f ${D}${bindir}/sim_client @@ -72,61 +74,73 @@ do_install_append() { if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then mkdir -p ${D}/${sysconfdir}/init.d ${D}/${sysconfdir}/default - install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d - install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default + install -m 0755 ${UNPACKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d + install -m 0644 ${UNPACKDIR}/etc/default/* ${D}/${sysconfdir}/default mkdir -p ${D}/${sysconfdir}/default/volatiles echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \ > ${D}${sysconfdir}/default/volatiles/87_krb5 + + echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server fi + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/tmpfiles.d echo "d /run/krb5kdc - - - -" \ > ${D}${sysconfdir}/tmpfiles.d/krb5.conf + mkdir -p ${D}/${sysconfdir}/default + install -m 0644 ${UNPACKDIR}/etc/default/* ${D}/${sysconfdir}/default + install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir} + install -m 0644 ${UNPACKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir} + install -m 0644 ${UNPACKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir} fi + + sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \ + -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \ + -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \ + -i ${D}${bindir}/krb5-config } -PACKAGES =+ "${PN}-admin-server \ - ${PN}-gss-samples \ - ${PN}-k5tls \ - ${PN}-kdc \ - ${PN}-kdc-ldap \ - ${PN}-kpropd \ - ${PN}-otp \ - ${PN}-pkinit \ - ${PN}-user \ - libgssapi-krb5 \ - libgssrpc \ - libk5crypto \ - libkadm5clnt-mit \ - libkadm5srv-mit \ - libkdb5 \ - libkrad \ - libkrb5 \ - libkrb5support \ - libverto" - -FILES_${PN} = "${libdir}/krb5/plugins/preauth/test.so" -FILES_${PN}-doc += "${datadir}/examples" -FILES_${PN}-dbg += "${libdir}/krb5/plugins/*/.debug" - -FILES_${PN}-admin-server = "${sbindir}/kadmin.local \ +PACKAGE_BEFORE_PN =+ "${PN}-admin-server \ + ${PN}-gss-samples \ + ${PN}-k5tls \ + ${PN}-kdc \ + ${PN}-kdc-ldap \ + ${PN}-kpropd \ + ${PN}-otp \ + ${PN}-pkinit \ + ${PN}-spake \ + ${PN}-user \ + libgssapi-krb5 \ + libgssrpc \ + libk5crypto \ + libkadm5clnt-mit \ + libkadm5srv-mit \ + libkdb5 \ + libkrad \ + libkrb5 \ + libkrb5support \ + libverto" + +FILES:${PN} = "${libdir}/krb5/plugins/preauth/test.so" +FILES:${PN}-doc += "${datadir}/examples" +FILES:${PN}-dbg += "${libdir}/krb5/plugins/*/.debug" + +FILES:${PN}-admin-server = "${sbindir}/kadmin.local \ ${sbindir}/kadmind \ ${sbindir}/kprop \ ${sysconfdir}/default/krb5-admin-server \ ${sysconfdir}/init.d/krb5-admin-server \ ${systemd_system_unitdir}/krb5-admin-server.service" -FILES_${PN}-gss-samples = "${bindir}/gss-client \ +FILES:${PN}-gss-samples = "${bindir}/gss-client \ ${sbindir}/gss-server" -FILES_${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so" +FILES:${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so" -FILES_${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \ +FILES:${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \ ${localstatedir}/krb5kdc \ ${sbindir}/kdb5_util \ ${sbindir}/kproplog \ @@ -137,40 +151,41 @@ FILES_${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \ ${sysconfdir}/tmpfiles.d/krb5.conf \ ${systemd_system_unitdir}/krb5-kdc.service" -FILES_${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \ +FILES:${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \ ${libdir}/krb5/plugins/kdb/kldap.so \ ${sbindir}/kdb5_ldap_util" -FILES_${PN}-kpropd = "${sbindir}/kpropd" -FILES_${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so" -FILES_${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so" -FILES_${PN}-user = "${bindir}/k*" - -FILES_libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}" -FILES_libgssrpc = "${libdir}/libgssrpc${SOLIBS}" -FILES_libk5crypto = "${libdir}/libk5crypto${SOLIBS}" -FILES_libkadm5clnt-mit = "${libdir}/libkadm5clnt_mit${SOLIBS}" -FILES_libkadm5srv-mit = "${libdir}/libkadm5srv_mit${SOLIBS}" -FILES_libkdb5 = "${libdir}/libkdb5${SOLIBS}" -FILES_libkrad = "${libdir}/libkrad${SOLIBS}" -FILES_libkrb5 = "${libdir}/libkrb5${SOLIBS} \ +FILES:${PN}-kpropd = "${sbindir}/kpropd" +FILES:${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so" +FILES:${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so" +FILES:${PN}-spake = "${libdir}/krb5/plugins/preauth/spake.so" +FILES:${PN}-user = "${bindir}/k*" + +FILES:libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}" +FILES:libgssrpc = "${libdir}/libgssrpc${SOLIBS}" +FILES:libk5crypto = "${libdir}/libk5crypto${SOLIBS}" +FILES:libkadm5clnt-mit = "${libdir}/libkadm5clnt_mit${SOLIBS}" +FILES:libkadm5srv-mit = "${libdir}/libkadm5srv_mit${SOLIBS}" +FILES:libkdb5 = "${libdir}/libkdb5${SOLIBS}" +FILES:libkrad = "${libdir}/libkrad${SOLIBS}" +FILES:libkrb5 = "${libdir}/libkrb5${SOLIBS} \ ${libdir}/krb5/plugins/authdata \ ${libdir}/krb5/plugins/libkrb5" -FILES_libkrb5support = "${libdir}/libkrb5support${SOLIBS}" -FILES_libverto = "${libdir}/libverto${SOLIBS}" +FILES:libkrb5support = "${libdir}/libkrb5support${SOLIBS}" +FILES:libverto = "${libdir}/libverto${SOLIBS}" -RDEPENDS_${PN}-kadmin-server = "${PN}-kdc" -RDEPENDS_${PN}-kpropd = "${PN}-kdc" +RDEPENDS:${PN}-kadmin-server = "${PN}-kdc" +RDEPENDS:${PN}-kpropd = "${PN}-kdc" INITSCRIPT_PACKAGES = "${PN}-admin-server ${PN}-kdc" -INITSCRIPT_NAME_${PN}-admin-server = "krb5-admin-server" -INITSCRIPT_NAME_${PN}-kdc = "krb5-kdc" +INITSCRIPT_NAME:${PN}-admin-server = "krb5-admin-server" +INITSCRIPT_NAME:${PN}-kdc = "krb5-kdc" SYSTEMD_PACKAGES = "${PN}-admin-server ${PN}-kdc" -SYSTEMD_SERVICE_${PN}-admin-server = "krb5-admin-server.service" -SYSTEMD_SERVICE_${PN}-kdc = "krb5-kdc.service" +SYSTEMD_SERVICE:${PN}-admin-server = "krb5-admin-server.service" +SYSTEMD_SERVICE:${PN}-kdc = "krb5-kdc.service" -pkg_postinst_${PN}-kdc () { +pkg_postinst:${PN}-kdc () { if [ -z "$D" ]; then if command -v systemd-tmpfiles >/dev/null; then systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf @@ -181,3 +196,6 @@ pkg_postinst_${PN}-kdc () { } BBCLASSEXTEND = "native nativesdk" + +inherit multilib_script +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/krb5-config" diff --git a/meta-oe/recipes-connectivity/libev/libev_4.24.bb b/meta-oe/recipes-connectivity/libev/libev_4.33.bb index 5e0f3a5ed9..346e78b1de 100644 --- a/meta-oe/recipes-connectivity/libev/libev_4.24.bb +++ b/meta-oe/recipes-connectivity/libev/libev_4.33.bb @@ -1,22 +1,21 @@ SUMMARY = "A full-featured and high-performance event loop that is loosely \ modelled after libevent." HOMEPAGE = "http://software.schmorp.de/pkg/libev.html" -LICENSE = "BSD-2-Clause | GPL-2.0+" +LICENSE = "BSD-2-Clause | GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://LICENSE;md5=d6ad416afd040c90698edcdf1cbee347" SRC_URI = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz" - -SRC_URI[md5sum] = "94459a5a22db041dec6f98424d6efe54" -SRC_URI[sha256sum] = "973593d3479abdf657674a55afe5f78624b0e440614e2b8cb3a07f16d4d7f821" - -S = "${WORKDIR}/${PN}-${PV}" +SRC_URI[md5sum] = "a3433f23583167081bf4acdd5b01b34f" +SRC_URI[sha256sum] = "507eb7b8d1015fbec5b935f34ebed15bf346bed04a11ab82b8eee848c4205aea" inherit autotools EXTRA_OECONF += "--with-pic" -do_install_append() { +do_install:append() { # Avoid conflicting with libevent. The provided compatibility layer is # still basic so drop it for now. rm ${D}${includedir}/event.h } + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb b/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb new file mode 100644 index 0000000000..d37c547c98 --- /dev/null +++ b/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb @@ -0,0 +1,17 @@ +SUMMARY = "Library with common code used by the libraries and tools around the libimobiledevice project" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=6ab17b41640564434dda85c06b7124f7 \ +" + +HOMEPAGE = "http://www.libimobiledevice.org/" + +DEPENDS = "libplist" + +PV = "1.0.0+git" + +SRCREV = "114098d30e783fbb3def5c9b49427a86621cfcb1" +SRC_URI = "git://github.com/libimobiledevice/libimobiledevice-glue;protocol=https;branch=master" + +S = "${WORKDIR}/git" +inherit autotools pkgconfig diff --git a/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch b/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch deleted file mode 100644 index 679a8b597a..0000000000 --- a/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch +++ /dev/null @@ -1,38 +0,0 @@ -Fix configure error in large file checks on 64-bit architectures - - configure:17888: checking for native large file support - configure:17891: error: in `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/core2-64-oe-linux/libimobiledevice/1.1.4-r0/libimobiledevice-1.1.4': - configure:17893: error: cannot run test program while cross compiling - -configure.ac was using AC_SYS_LARGEFILE macro as is typical, but then -there was an extra runtime check added beyond that: -check if off_t is 8 bytes (64 bits) long. -If that runtime check passed, _FILE_OFFSET_BITS was defined as 64. - -Runtime checks need to go away for cross compiling, and luckily this extra -check was not serving any useful purpose. Note that off_t was *already* -64 bits, *without* setting _FILE_OFFSET_BITS, which makes _FILE_OFFSET_BITS -unneeded for large file support. - -If AC_SYS_LARGEFILE macro sets ac_cv_sys_file_offset_bits=no, -just leave _FILE_OFFSET_BITS undefined! - ---- libimobiledevice-1.1.4/configure.ac.old 2015-07-15 01:38:50.900143927 -0700 -+++ libimobiledevice-1.1.4/configure.ac 2015-07-15 01:39:13.300144430 -0700 -@@ -174,16 +174,6 @@ - if test "$enable_largefile" != no; then - if test "$ac_cv_sys_file_offset_bits" != 'no'; then - LFS_CFLAGS="$LFS_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" -- else -- AC_MSG_CHECKING(for native large file support) -- AC_RUN_IFELSE([AC_LANG_SOURCE([#include <unistd.h> -- int main (int argc, char **argv) -- { -- exit(!(sizeof(off_t) == 8)); -- }])], -- [ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64) -- AC_MSG_RESULT(yes)], -- [AC_MSG_RESULT(no)]) - fi - if test "$ac_cv_sys_large_files" != 'no'; then - LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES=1" diff --git a/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch b/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch deleted file mode 100644 index 9a7895fd41..0000000000 --- a/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fix link error with gcc 5 toolchains - - afc.c:258: error: undefined reference to 'debug_buffer' - collect2: error: ld returned 1 exit status - -debug.h header was declaring things inline without providing a definition. -Files that included this header then failed to link against the corresponding -external symbol in debug.c, because the linker took the 'inline' keyword -seriously rather than ignoring it. - ---- libimobiledevice-1.1.4/src/debug.h.orig 2015-10-03 16:24:08.758740386 -0700 -+++ libimobiledevice-1.1.4/src/debug.h 2015-10-03 16:24:22.706740355 -0700 -@@ -44,14 +44,14 @@ - #define debug_plist(a) - #endif - --LIBIMOBILEDEVICE_INTERNAL inline void debug_info_real(const char *func, -+LIBIMOBILEDEVICE_INTERNAL void debug_info_real(const char *func, - const char *file, - int line, - const char *format, ...); - --LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer(const char *data, const int length); --LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer_to_file(const char *file, const char *data, const int length); --LIBIMOBILEDEVICE_INTERNAL inline void debug_plist_real(const char *func, -+LIBIMOBILEDEVICE_INTERNAL void debug_buffer(const char *data, const int length); -+LIBIMOBILEDEVICE_INTERNAL void debug_buffer_to_file(const char *file, const char *data, const int length); -+LIBIMOBILEDEVICE_INTERNAL void debug_plist_real(const char *func, - const char *file, - int line, - plist_t plist); diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice/0001-include-unistd.h-for-usleep.patch b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice/0001-include-unistd.h-for-usleep.patch new file mode 100644 index 0000000000..424a203e56 --- /dev/null +++ b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice/0001-include-unistd.h-for-usleep.patch @@ -0,0 +1,31 @@ +From 6cb8069cfe08114f1dc7b50a7fcd4dc040cd1bbb Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 9 May 2023 20:19:23 -0700 +Subject: [PATCH] include unistd.h for usleep() + +clang16 flags the missing header + +Fixes +../../git/tools/idevicedevmodectl.c:363:2: error: call to undeclared function 'usleep'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] + +Upstream-Status: Submitted [https://github.com/libimobiledevice/libimobiledevice/pull/1444] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tools/idevicedevmodectl.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/idevicedevmodectl.c b/tools/idevicedevmodectl.c +index 739bc13..9fe8d6a 100644 +--- a/tools/idevicedevmodectl.c ++++ b/tools/idevicedevmodectl.c +@@ -34,6 +34,7 @@ + #ifndef WIN32 + #include <signal.h> + #endif ++#include <unistd.h> + + #ifdef WIN32 + #include <windows.h> +-- +2.40.1 + diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb deleted file mode 100644 index 32aca96fd0..0000000000 --- a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "A protocol library to access an iPhone or iPod Touch in Linux" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \ - file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \ -" - -HOMEPAGE ="http://www.libimobiledevice.org/" - -DEPENDS = "libplist usbmuxd libtasn1 gnutls libgcrypt" - -SRC_URI = " \ - http://www.libimobiledevice.org/downloads/libimobiledevice-${PV}.tar.bz2 \ - file://configure-fix-largefile.patch \ - file://inline-without-definition.patch \ -" - -SRC_URI[md5sum] = "3f28cbc6a2e30d34685049c0abde5183" -SRC_URI[sha256sum] = "67499cfaa6172f566ee6b0783605acffe484fb7ddc3b09881ab7ac58667ee5b8" - -inherit autotools pkgconfig - -EXTRA_OECONF = " --without-cython " diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb new file mode 100644 index 0000000000..b8d7e8872b --- /dev/null +++ b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "A protocol library to access an iPhone or iPod Touch in Linux" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \ + file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \ +" +HOMEPAGE = "http://www.libimobiledevice.org/" + +DEPENDS = "libplist usbmuxd libusbmuxd libtasn1 gnutls libgcrypt libimobiledevice-glue openssl" + +PV = "1.3.0+git" + +SRCREV = "860ffb707af3af94467d2ece4ad258dda957c6cd" +SRC_URI = "git://github.com/libimobiledevice/libimobiledevice;protocol=https;branch=master \ + file://0001-include-unistd.h-for-usleep.patch" + +S = "${WORKDIR}/git" +inherit autotools pkgconfig + +EXTRA_OECONF = " --without-cython " + +CFLAGS += "-D_GNU_SOURCE" diff --git a/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb b/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb new file mode 100644 index 0000000000..2400195975 --- /dev/null +++ b/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb @@ -0,0 +1,17 @@ +SUMMARY = "The libirecovery library allows communication with iBoot/iBSS of iOS devices via USB" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6 \ +" + +HOMEPAGE = "http://www.libimobiledevice.org/" + +DEPENDS = "libimobiledevice-glue libusb1 readline" + +PV = "1.1.0" + +SRCREV = "98c9f7055ec1f2e09fac69ef1413a8757113b838" +SRC_URI = "git://github.com/libimobiledevice/libirecovery;protocol=https;branch=master" + +S = "${WORKDIR}/git" +inherit autotools pkgconfig diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch b/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch deleted file mode 100644 index 92e657c00a..0000000000 --- a/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch +++ /dev/null @@ -1,73 +0,0 @@ -Check for clang compiler since we need to disable -unused-function warning for clang, at same time -pass werror when checking for compiler options if -werror is enabled so spurious options do not get -enabled. Only the ones that are supported by given -compiler are accepted. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending - -Index: libmbim-1.14.0/m4/compiler-warnings.m4 -=================================================================== ---- libmbim-1.14.0.orig/m4/compiler-warnings.m4 -+++ libmbim-1.14.0/m4/compiler-warnings.m4 -@@ -2,10 +2,30 @@ AC_DEFUN([LIBMBIM_COMPILER_WARNINGS], - [AC_ARG_ENABLE(more-warnings, - AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), - set_more_warnings="$enableval",set_more_warnings=error) -+ -+# Clang throws a lot of warnings when it does not understand a flag. Disable -+# this warning for now so other warnings are visible. -+AC_MSG_CHECKING([if compiling with clang]) -+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ -+#ifndef __clang__ -+ not clang -+#endif -+ ]])], -+ [CLANG=yes], -+ [CLANG=no] -+) -+AC_MSG_RESULT([$CLANG]) -+AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function]) -+CFLAGS="$CFLAGS $CLANG_FLAGS" -+LDFLAGS="$LDFLAGS $CLANG_FLAGS" -+ - AC_MSG_CHECKING(for more warnings) - if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then - AC_MSG_RESULT(yes) - CFLAGS="-Wall -std=gnu89 $CFLAGS" -+ if test "x$set_more_warnings" = xerror; then -+ WERROR="-Werror" -+ fi - - for option in -Wmissing-declarations -Wmissing-prototypes \ - -Wdeclaration-after-statement -Wstrict-prototypes \ -@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_war - -Wmissing-include-dirs -Waggregate-return \ - -Wformat-security; do - SAVE_CFLAGS="$CFLAGS" -- CFLAGS="$CFLAGS $option" -+ CFLAGS="$CFLAGS $option $WERROR" - AC_MSG_CHECKING([whether gcc understands $option]) - AC_TRY_COMPILE([], [], - has_option=yes, - has_option=no,) - if test $has_option = no; then - CFLAGS="$SAVE_CFLAGS" -+ else -+ CFLAGS="$SAVE_CFLAGS $option" - fi - AC_MSG_RESULT($has_option) - unset has_option - unset SAVE_CFLAGS - done -+ CFLAGS="$CFLAGS $WERROR" - unset option -- if test "x$set_more_warnings" = xerror; then -- CFLAGS="$CFLAGS -Werror" -- fi -+ unset WERROR - else - AC_MSG_RESULT(no) - fi diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb deleted file mode 100644 index f89ef9d570..0000000000 --- a/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol" -DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -DEPENDS = "glib-2.0 glib-2.0-native libgudev" - -inherit autotools pkgconfig bash-completion - -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ - file://clang.patch \ -" -SRC_URI[md5sum] = "2ed809e65c85353d3ab59e372890e549" -SRC_URI[sha256sum] = "ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b" diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.30.0.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.30.0.bb new file mode 100644 index 0000000000..a227124498 --- /dev/null +++ b/meta-oe/recipes-connectivity/libmbim/libmbim_1.30.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol" +DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/" +LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" +LIC_FILES_CHKSUM = " \ + file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = "glib-2.0 glib-2.0-native libgudev" + +inherit meson pkgconfig bash-completion gobject-introspection upstream-version-is-even + +SRCREV = "8415687e4f30ae5e36f407f179c8147f1529725c" +SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libmbim.git;protocol=https;branch=mbim-1-30" + +S = "${WORKDIR}/git" + +EXTRA_OEMESON = " \ + -Dgtk_doc=false \ + -Dman=false \ +" diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules b/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules deleted file mode 100644 index 4cd27c762c..0000000000 --- a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules +++ /dev/null @@ -1,999 +0,0 @@ -# UDEV-style hotplug map for libmtp -# Put this file in /etc/udev/rules.d - -ACTION!="add", GOTO="libmtp_rules_end" -ENV{MAJOR}!="?*", GOTO="libmtp_rules_end" -SUBSYSTEM=="usb", GOTO="libmtp_usb_rules" -GOTO="libmtp_rules_end" - -LABEL="libmtp_usb_rules" - -# Some sensitive devices we surely don't wanna probe -# Color instruments -ATTR{idVendor}=="0670", GOTO="libmtp_rules_end" -ATTR{idVendor}=="0765", GOTO="libmtp_rules_end" -ATTR{idVendor}=="085c", GOTO="libmtp_rules_end" -ATTR{idVendor}=="0971", GOTO="libmtp_rules_end" -# Canon scanners that look like MTP devices (PID 0x22nn) -ATTR{idVendor}=="04a9", ATTR{idProduct}=="22*", GOTO="libmtp_rules_end" -# Canon digital camera (EOS 3D) that looks like MTP device (PID 0x3113) -ATTR{idVendor}=="04a9", ATTR{idProduct}=="3113", GOTO="libmtp_rules_end" -# Sensitive Atheros devices that look like MTP devices -ATTR{idVendor}=="0cf3", GOTO="libmtp_rules_end" -# Sensitive Atmel JTAG programmers -ATTR{idVendor}=="03eb", GOTO="libmtp_rules_end" -# Creative ZEN Vision -ATTR{idVendor}=="041e", ATTR{idProduct}=="411f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative Portable Media Center -ATTR{idVendor}=="041e", ATTR{idProduct}=="4123", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Xtra (MTP mode) -ATTR{idVendor}=="041e", ATTR{idProduct}=="4128", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Dell DJ (2nd generation) -ATTR{idVendor}=="041e", ATTR{idProduct}=="412f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Micro (MTP mode) -ATTR{idVendor}=="041e", ATTR{idProduct}=="4130", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Touch (MTP mode) -ATTR{idVendor}=="041e", ATTR{idProduct}=="4131", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Dell Dell Pocket DJ (MTP mode) -ATTR{idVendor}=="041e", ATTR{idProduct}=="4132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN MicroPhoto (alternate version) -ATTR{idVendor}=="041e", ATTR{idProduct}=="4133", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Sleek (MTP mode) -ATTR{idVendor}=="041e", ATTR{idProduct}=="4137", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN MicroPhoto -ATTR{idVendor}=="041e", ATTR{idProduct}=="413c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Sleek Photo -ATTR{idVendor}=="041e", ATTR{idProduct}=="413d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Vision:M -ATTR{idVendor}=="041e", ATTR{idProduct}=="413e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN V -ATTR{idVendor}=="041e", ATTR{idProduct}=="4150", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Vision:M (DVP-HD0004) -ATTR{idVendor}=="041e", ATTR{idProduct}=="4151", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN V Plus -ATTR{idVendor}=="041e", ATTR{idProduct}=="4152", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Vision W -ATTR{idVendor}=="041e", ATTR{idProduct}=="4153", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN -ATTR{idVendor}=="041e", ATTR{idProduct}=="4157", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN V 2GB -ATTR{idVendor}=="041e", ATTR{idProduct}=="4158", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN Mozaic -ATTR{idVendor}=="041e", ATTR{idProduct}=="4161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN X-Fi -ATTR{idVendor}=="041e", ATTR{idProduct}=="4162", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Creative ZEN X-Fi 3 -ATTR{idVendor}=="041e", ATTR{idProduct}=="4169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# ZiiLABS Zii EGG -ATTR{idVendor}=="041e", ATTR{idProduct}=="6000", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-900 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="0409", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung I550W Phone -ATTR{idVendor}=="04e8", ATTR{idProduct}=="04a4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung Jet S8000 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="4f1f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YH-920 (501d) -ATTR{idVendor}=="04e8", ATTR{idProduct}=="501d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YH-920 (5022) -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5022", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YH-925GS -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5024", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YH-820 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="502e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YH-925(-GS) -ATTR{idVendor}=="04e8", ATTR{idProduct}=="502f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YH-J70J -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5033", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-Z5 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="503c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-T7J -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5047", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-U2J (YP-U2JXB/XAA) -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5054", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-F2J -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5057", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-K5 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="505a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-U3 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="507d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-T9 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="507f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-K3 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5081", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-P2 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5083", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-T10 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="508a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-S5 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="508b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-S3 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5091", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-U4 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5093", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-R1 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="510f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-Q1 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5115", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-M1 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5118", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-P3 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="511a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-Q2 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="511d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-U5 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5121", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-R0 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5125", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-Q3 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5130", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YP-Z3 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5137", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate -ATTR{idVendor}=="04e8", ATTR{idProduct}=="5a0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung M7600 Beat/GT-S8300T/SGH-F490/S8300 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6642", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung X830 Mobile Phone -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6702", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung U600 Mobile Phone -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6709", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung F250 Mobile Phone -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6727", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung Juke (SCH-U470) -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6734", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung GT-B2700 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6752", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung SAMSUNG Trance -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6763", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung GT-S8500 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6819", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung Galaxy models (MTP+ADB) -ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung Galaxy Y -ATTR{idVendor}=="04e8", ATTR{idProduct}=="685e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung Galaxy models (MTP) -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung Galaxy models Kies mode -ATTR{idVendor}=="04e8", ATTR{idProduct}=="6877", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung Vibrant SGH-T959/Captivate/Media player mode -ATTR{idVendor}=="04e8", ATTR{idProduct}=="68a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung GT-B2710/Xcover 271 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="68af", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Samsung GT-S5230 -ATTR{idVendor}=="04e8", ATTR{idProduct}=="e20c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Microsoft/Intel Bandon Portable Media Center -ATTR{idVendor}=="045e", ATTR{idProduct}=="00c9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Microsoft Windows Phone -ATTR{idVendor}=="045e", ATTR{idProduct}=="04ec", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Microsoft Windows MTP Simulator -ATTR{idVendor}=="045e", ATTR{idProduct}=="0622", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Microsoft Zune HD -ATTR{idVendor}=="045e", ATTR{idProduct}=="063e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Microsoft Kin 1 -ATTR{idVendor}=="045e", ATTR{idProduct}=="0640", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Microsoft/Sharp/nVidia Kin TwoM -ATTR{idVendor}=="045e", ATTR{idProduct}=="0641", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Microsoft Zune -ATTR{idVendor}=="045e", ATTR{idProduct}=="0710", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# JVC Alneo XA-HD500 -ATTR{idVendor}=="04f1", ATTR{idProduct}=="6105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips HDD6320/00 or HDD6330/17 -ATTR{idVendor}=="0471", ATTR{idProduct}=="014b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips HDD14XX,HDD1620 or HDD1630/17 -ATTR{idVendor}=="0471", ATTR{idProduct}=="014c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips HDD085/00 or HDD082/17 -ATTR{idVendor}=="0471", ATTR{idProduct}=="014d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear SA9200 -ATTR{idVendor}=="0471", ATTR{idProduct}=="014f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips SA1115/55 -ATTR{idVendor}=="0471", ATTR{idProduct}=="0164", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear Audio -ATTR{idVendor}=="0471", ATTR{idProduct}=="0165", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips Shoqbox -ATTR{idVendor}=="0471", ATTR{idProduct}=="0172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips PSA610 -ATTR{idVendor}=="0471", ATTR{idProduct}=="0181", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips HDD6320 -ATTR{idVendor}=="0471", ATTR{idProduct}=="01eb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045 -ATTR{idVendor}=="0471", ATTR{idProduct}=="084e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear SA5145 -ATTR{idVendor}=="0471", ATTR{idProduct}=="0857", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear SA6125/SA6145/SA6185 -ATTR{idVendor}=="0471", ATTR{idProduct}=="2002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear SA3345 -ATTR{idVendor}=="0471", ATTR{idProduct}=="2004", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips SA5285 -ATTR{idVendor}=="0471", ATTR{idProduct}=="2022", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear ViBE SA1VBE04 -ATTR{idVendor}=="0471", ATTR{idProduct}=="2075", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear Muse -ATTR{idVendor}=="0471", ATTR{idProduct}=="2077", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear ViBE SA1VBE04/08 -ATTR{idVendor}=="0471", ATTR{idProduct}=="207b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear Aria -ATTR{idVendor}=="0471", ATTR{idProduct}=="207c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear SA1VBE08KX/78 -ATTR{idVendor}=="0471", ATTR{idProduct}=="208e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear VIBE SA2VBE[08|16]K/02 -ATTR{idVendor}=="0471", ATTR{idProduct}=="20b7", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear Ariaz -ATTR{idVendor}=="0471", ATTR{idProduct}=="20b9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips GoGear Vibe/02 -ATTR{idVendor}=="0471", ATTR{idProduct}=="20e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Philips PSA235 -ATTR{idVendor}=="0471", ATTR{idProduct}=="7e01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A500 (ID1) -ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A500 (ID2) -ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A501 -ATTR{idVendor}=="0502", ATTR{idProduct}=="3344", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A100 (ID1) -ATTR{idVendor}=="0502", ATTR{idProduct}=="3348", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A100 (ID2) -ATTR{idVendor}=="0502", ATTR{idProduct}=="3349", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A700 -ATTR{idVendor}=="0502", ATTR{idProduct}=="3378", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A200 (ID1) -ATTR{idVendor}=="0502", ATTR{idProduct}=="337c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A200 (ID2) -ATTR{idVendor}=="0502", ATTR{idProduct}=="337d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer Iconia TAB A510 -ATTR{idVendor}=="0502", ATTR{idProduct}=="338a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Acer E350 Liquid Gallant Duo -ATTR{idVendor}=="0502", ATTR{idProduct}=="33c3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa m230/m240 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7400", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa m200-tcc (MTP mode) -ATTR{idVendor}=="0781", ATTR{idProduct}=="7401", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa c150 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7410", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa e200/e250/e260/e270/e280 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7420", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa e260/e280 v2 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7422", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa m240/m250 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7430", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Clip -ATTR{idVendor}=="0781", ATTR{idProduct}=="7432", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Clip v2 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7434", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa c240/c250 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7450", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa c250 v2 -ATTR{idVendor}=="0781", ATTR{idProduct}=="7452", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Express -ATTR{idVendor}=="0781", ATTR{idProduct}=="7460", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Connect -ATTR{idVendor}=="0781", ATTR{idProduct}=="7480", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa View -ATTR{idVendor}=="0781", ATTR{idProduct}=="74b0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Fuze -ATTR{idVendor}=="0781", ATTR{idProduct}=="74c0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Fuze v2 -ATTR{idVendor}=="0781", ATTR{idProduct}=="74c2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Clip+ -ATTR{idVendor}=="0781", ATTR{idProduct}=="74d0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Fuze+ -ATTR{idVendor}=="0781", ATTR{idProduct}=="74e0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SanDisk Sansa Clip Zip -ATTR{idVendor}=="0781", ATTR{idProduct}=="74e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver H300 Series MTP -ATTR{idVendor}=="1006", ATTR{idProduct}=="3004", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver Portable Media Center -ATTR{idVendor}=="1006", ATTR{idProduct}=="4002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver Portable Media Center -ATTR{idVendor}=="1006", ATTR{idProduct}=="4003", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T7 Volcano -ATTR{idVendor}=="1042", ATTR{idProduct}=="1143", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver iFP-880 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1008", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T10 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1113", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T20 FM -ATTR{idVendor}=="4102", ATTR{idProduct}=="1114", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T20 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1115", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver U10 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1116", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T10a -ATTR{idVendor}=="4102", ATTR{idProduct}=="1117", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T20 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1118", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T30 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1119", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T10 2GB -ATTR{idVendor}=="4102", ATTR{idProduct}=="1120", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver N12 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1122", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver Clix2 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1126", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver Clix -ATTR{idVendor}=="4102", ATTR{idProduct}=="112a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver X20 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T60 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1134", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver E100 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1141", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver E100 v2/Lplayer -ATTR{idVendor}=="4102", ATTR{idProduct}=="1142", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver Spinn -ATTR{idVendor}=="4102", ATTR{idProduct}=="1147", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver E50 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1151", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver T5 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1153", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver E30 -ATTR{idVendor}=="4102", ATTR{idProduct}=="1167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver H10 20GB -ATTR{idVendor}=="4102", ATTR{idProduct}=="2101", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver H10 5GB -ATTR{idVendor}=="4102", ATTR{idProduct}=="2102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# iRiver H10 5.6GB -ATTR{idVendor}=="4102", ATTR{idProduct}=="2105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Dell, Inc DJ Itty -ATTR{idVendor}=="413c", ATTR{idProduct}=="4500", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Dell, Inc Dell Streak 7 -ATTR{idVendor}=="413c", ATTR{idProduct}=="b10b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat MEGF-40 -ATTR{idVendor}=="0930", ATTR{idProduct}=="0009", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat -ATTR{idVendor}=="0930", ATTR{idProduct}=="000c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat P20 -ATTR{idVendor}=="0930", ATTR{idProduct}=="000f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat S -ATTR{idVendor}=="0930", ATTR{idProduct}=="0010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat P10 -ATTR{idVendor}=="0930", ATTR{idProduct}=="0011", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat V30 -ATTR{idVendor}=="0930", ATTR{idProduct}=="0014", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat U -ATTR{idVendor}=="0930", ATTR{idProduct}=="0016", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat MEU202 -ATTR{idVendor}=="0930", ATTR{idProduct}=="0018", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat T -ATTR{idVendor}=="0930", ATTR{idProduct}=="0019", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat MEU201 -ATTR{idVendor}=="0930", ATTR{idProduct}=="001a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Gigabeat MET401 -ATTR{idVendor}=="0930", ATTR{idProduct}=="001d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Excite AT300 -ATTR{idVendor}=="0930", ATTR{idProduct}=="0963", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Toshiba Thrive AT100/AT105 -ATTR{idVendor}=="0930", ATTR{idProduct}=="7100", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos Gmini XS100 -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1207", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos XS202 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1208", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 104 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="120a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 204 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="120c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 404 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1301", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 404CAM (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1303", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 504 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1307", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 604 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1309", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 604WIFI (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="130b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 704 mobile dvr -ATTR{idVendor}=="0e79", ATTR{idProduct}=="130d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 704TV (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="130f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 405 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1311", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 605 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1313", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 605F (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1315", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 705 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1319", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos TV+ (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="131b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 105 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="131d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 405HDD (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1321", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 5 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1331", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 5 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1333", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 7 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1335", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos SPOD (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1341", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 5S IT (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1351", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 5H IT (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1357", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos Arnova Childpad -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1458", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 8o G9 (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1508", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 8o G9 Turbo (MTP mode) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1509", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 80G9 -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1518", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 101 G9 -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1528", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 101 G9 (v2) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1529", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 101 G9 Turbo 250 HD -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1538", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 101 G9 Turbo -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1539", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 70it2 (mode 1) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1568", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Archos 70it2 (mode 2) -ATTR{idVendor}=="0e79", ATTR{idProduct}=="1569", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Dunlop MP3 player 1GB / EGOMAN MD223AFD -ATTR{idVendor}=="10d6", ATTR{idProduct}=="2200", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Memorex or iRiver MMP 8585/8586 or iRiver E200 -ATTR{idVendor}=="10d6", ATTR{idProduct}=="2300", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sirius Stiletto -ATTR{idVendor}=="18f6", ATTR{idProduct}=="0102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sirius Stiletto 2 -ATTR{idVendor}=="18f6", ATTR{idProduct}=="0110", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Canon Ixus Digital 700 (PTP/MTP mode) -ATTR{idVendor}=="04a9", ATTR{idProduct}=="30f2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Canon PowerShot A640 (PTP/MTP mode) -ATTR{idVendor}=="04a9", ATTR{idProduct}=="3139", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Canon PowerShot SX20IS (PTP/MTP mode) -ATTR{idVendor}=="04a9", ATTR{idProduct}=="31e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N81 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="000a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 6120c Classic Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="002e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N96 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0039", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 6500c Classic Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="003c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 3110c Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="005f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 3109c Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0065", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5310 XpressMusic -ATTR{idVendor}=="0421", ATTR{idProduct}=="006c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N95 Mobile Phone 8GB -ATTR{idVendor}=="0421", ATTR{idProduct}=="006e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N82 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0074", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N78 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0079", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 6220 Classic -ATTR{idVendor}=="0421", ATTR{idProduct}=="008d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N85 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0092", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 6210 Navigator -ATTR{idVendor}=="0421", ATTR{idProduct}=="0098", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E71 -ATTR{idVendor}=="0421", ATTR{idProduct}=="00e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E66 -ATTR{idVendor}=="0421", ATTR{idProduct}=="00e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5320 XpressMusic -ATTR{idVendor}=="0421", ATTR{idProduct}=="00ea", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5800 XpressMusic -ATTR{idVendor}=="0421", ATTR{idProduct}=="0154", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5800 XpressMusic v2 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0155", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5800 XpressMusic v3 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0159", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E63 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0179", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N79 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0186", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E71x -ATTR{idVendor}=="0421", ATTR{idProduct}=="01a1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E52 -ATTR{idVendor}=="0421", ATTR{idProduct}=="01cf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 3710 -ATTR{idVendor}=="0421", ATTR{idProduct}=="01ee", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N97-1 -ATTR{idVendor}=="0421", ATTR{idProduct}=="01f4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N97 -ATTR{idVendor}=="0421", ATTR{idProduct}=="01f5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5130 XpressMusic -ATTR{idVendor}=="0421", ATTR{idProduct}=="0209", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E72 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0221", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5530 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0229", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N97 mini -ATTR{idVendor}=="0421", ATTR{idProduct}=="026b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia X6 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0274", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 6600i -ATTR{idVendor}=="0421", ATTR{idProduct}=="0297", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 2710 -ATTR{idVendor}=="0421", ATTR{idProduct}=="02c1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5230 -ATTR{idVendor}=="0421", ATTR{idProduct}=="02e2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N8 -ATTR{idVendor}=="0421", ATTR{idProduct}=="02fe", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N8 (Ovi mode) -ATTR{idVendor}=="0421", ATTR{idProduct}=="0302", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E7 -ATTR{idVendor}=="0421", ATTR{idProduct}=="0334", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia E7 (Ovi mode) -ATTR{idVendor}=="0421", ATTR{idProduct}=="0335", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia C7 -ATTR{idVendor}=="0421", ATTR{idProduct}=="03c1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia C7 (ID2) -ATTR{idVendor}=="0421", ATTR{idProduct}=="03cd", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N950 -ATTR{idVendor}=="0421", ATTR{idProduct}=="03d2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 3250 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0462", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N93 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0478", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5500 Sport Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="047e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N91 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="0485", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5700 XpressMusic Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="04b4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5300 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="04ba", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5200 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="04be", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N73 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="04d1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N75 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="04e1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N93i Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="04e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N95 Mobile Phone -ATTR{idVendor}=="0421", ATTR{idProduct}=="04ef", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N80 Internet Edition (Media Player) -ATTR{idVendor}=="0421", ATTR{idProduct}=="04f1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia N9 -ATTR{idVendor}=="0421", ATTR{idProduct}=="051a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia 5530 Xpressmusic -ATTR{idVendor}=="05c6", ATTR{idProduct}=="0229", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nokia/Verizon 6205 Balboa/Verizon Music Phone -ATTR{idVendor}=="05c6", ATTR{idProduct}=="3196", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Logik LOG DAX MP3 and DAB Player -ATTR{idVendor}=="13d1", ATTR{idProduct}=="7002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Technika MP-709 -ATTR{idVendor}=="13d1", ATTR{idProduct}=="7017", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Thomson EM28 Series -ATTR{idVendor}=="069b", ATTR{idProduct}=="0774", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Thomson / RCA Opal / Lyra MC4002 -ATTR{idVendor}=="069b", ATTR{idProduct}=="0777", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Thomson Lyra MC5104B (M51 Series) -ATTR{idVendor}=="069b", ATTR{idProduct}=="077c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Thomson RCA H106 -ATTR{idVendor}=="069b", ATTR{idProduct}=="301a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Thomson scenium E308 -ATTR{idVendor}=="069b", ATTR{idProduct}=="3028", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Thomson / RCA Lyra HC308A -ATTR{idVendor}=="069b", ATTR{idProduct}=="3035", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# FOMA F903iX HIGH-SPEED -ATTR{idVendor}=="04c5", ATTR{idProduct}=="1140", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# NormSoft, Inc. Pocket Tunes -ATTR{idVendor}=="1703", ATTR{idProduct}=="0001", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# NormSoft, Inc. Pocket Tunes 4 -ATTR{idVendor}=="1703", ATTR{idProduct}=="0002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# TrekStor Vibez 8/12GB -ATTR{idVendor}=="066f", ATTR{idProduct}=="842a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Medion MD8333 -ATTR{idVendor}=="066f", ATTR{idProduct}=="8550", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Medion MD8333 -ATTR{idVendor}=="066f", ATTR{idProduct}=="8588", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Medion MD99000 (P9514)/Olivetti Olipad 110 -ATTR{idVendor}=="0408", ATTR{idProduct}=="b009", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Medion Lifetab P9514 -ATTR{idVendor}=="0408", ATTR{idProduct}=="b00a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Maxfield G-Flash NG 1GB -ATTR{idVendor}=="066f", ATTR{idProduct}=="846c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SigmaTel Inc. MTPMSCN Audio Player -ATTR{idVendor}=="066f", ATTR{idProduct}=="a010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# TrekStor i.Beat Sweez FM -ATTR{idVendor}=="0402", ATTR{idProduct}=="0611", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# TrekStor i.Beat Organix 2.0 -ATTR{idVendor}=="1e68", ATTR{idProduct}=="0002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Disney MixMax -ATTR{idVendor}=="0aa6", ATTR{idProduct}=="6021", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Tevion MD 81488 -ATTR{idVendor}=="0aa6", ATTR{idProduct}=="3011", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# MyMusix PD-6070 -ATTR{idVendor}=="0aa6", ATTR{idProduct}=="9601", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio U3 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0701", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio 6 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0711", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio 7 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0751", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio U5 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0761", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio D2 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0801", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio D2+ FW 2.x (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0861", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio D2+ DAB FW 4.x (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0871", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio D2+ FW 3.x (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0881", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio D2+ DMB FW 1.x (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0891", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio S9 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0901", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio 9 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0911", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio J3 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0921", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio X7 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0931", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio C2 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0941", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Cowon iAudio 10 (MTP mode) -ATTR{idVendor}=="0e21", ATTR{idProduct}=="0952", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Insignia NS-DV45 -ATTR{idVendor}=="19ff", ATTR{idProduct}=="0303", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Insignia Sport Player -ATTR{idVendor}=="19ff", ATTR{idProduct}=="0307", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Insignia Pilot 4GB -ATTR{idVendor}=="19ff", ATTR{idProduct}=="0309", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. T54 -ATTR{idVendor}=="043e", ATTR{idProduct}=="7040", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. UP3 -ATTR{idVendor}=="043e", ATTR{idProduct}=="70b1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. VX8550 V CAST Mobile Phone -ATTR{idVendor}=="1004", ATTR{idProduct}=="6010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. KC910 Renoir Mobile Phone -ATTR{idVendor}=="1004", ATTR{idProduct}=="608f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. GR-500 Music Player -ATTR{idVendor}=="1004", ATTR{idProduct}=="611b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. KM900 -ATTR{idVendor}=="1004", ATTR{idProduct}=="6132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. LG8575 -ATTR{idVendor}=="1004", ATTR{idProduct}=="619a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. V909 G-Slate -ATTR{idVendor}=="1004", ATTR{idProduct}=="61f9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# LG Electronics Inc. LG-E617G/P700 -ATTR{idVendor}=="1004", ATTR{idProduct}=="631c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-A815/NWZ-A818 -ATTR{idVendor}=="054c", ATTR{idProduct}=="0325", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-S516 -ATTR{idVendor}=="054c", ATTR{idProduct}=="0326", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-S615F/NWZ-S616F/NWZ-S618F -ATTR{idVendor}=="054c", ATTR{idProduct}=="0327", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-S716F -ATTR{idVendor}=="054c", ATTR{idProduct}=="035a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-A826/NWZ-A828/NWZ-A829 -ATTR{idVendor}=="054c", ATTR{idProduct}=="035b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-A726/NWZ-A728/NWZ-A768 -ATTR{idVendor}=="054c", ATTR{idProduct}=="035c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-B135 -ATTR{idVendor}=="054c", ATTR{idProduct}=="036e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-E436F -ATTR{idVendor}=="054c", ATTR{idProduct}=="0385", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-W202 -ATTR{idVendor}=="054c", ATTR{idProduct}=="0388", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-S739F -ATTR{idVendor}=="054c", ATTR{idProduct}=="038c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-S638F -ATTR{idVendor}=="054c", ATTR{idProduct}=="038e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-X1050B/NWZ-X1060B -ATTR{idVendor}=="054c", ATTR{idProduct}=="0397", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-X1051/NWZ-X1061 -ATTR{idVendor}=="054c", ATTR{idProduct}=="0398", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-B142F -ATTR{idVendor}=="054c", ATTR{idProduct}=="03d8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-E344 -ATTR{idVendor}=="054c", ATTR{idProduct}=="03fc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-E445 -ATTR{idVendor}=="054c", ATTR{idProduct}=="03fd", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-S545 -ATTR{idVendor}=="054c", ATTR{idProduct}=="03fe", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-A845 -ATTR{idVendor}=="054c", ATTR{idProduct}=="0404", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-W252B -ATTR{idVendor}=="054c", ATTR{idProduct}=="04bb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-B153F -ATTR{idVendor}=="054c", ATTR{idProduct}=="04be", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-E354 -ATTR{idVendor}=="054c", ATTR{idProduct}=="04cb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-S754 -ATTR{idVendor}=="054c", ATTR{idProduct}=="04cc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony NWZ-B163F -ATTR{idVendor}=="054c", ATTR{idProduct}=="059a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Walkman NWZ-E464 -ATTR{idVendor}=="054c", ATTR{idProduct}=="05a6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony NWZ-S765 -ATTR{idVendor}=="054c", ATTR{idProduct}=="05a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Sony Tablet S -ATTR{idVendor}=="054c", ATTR{idProduct}=="05b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony Sony Tablet S1 -ATTR{idVendor}=="054c", ATTR{idProduct}=="05b4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Sony DCR-SR75 -ATTR{idVendor}=="054c", ATTR{idProduct}=="1294", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson K850i -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0075", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W910 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0076", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W890i -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W760i -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00c6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson C902 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00d4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson C702 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00d9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W980 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00da", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson C905 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00ef", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W595 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00f3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W902 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00f5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson T700 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="00fb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W705/W715 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W995 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0112", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson U5 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0133", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson U8i -ATTR{idVendor}=="0fce", ATTR{idProduct}=="013a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson j10i2 (Elm) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0144", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson j108i (Cedar) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="014e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson W302 -ATTR{idVendor}=="0fce", ATTR{idProduct}=="10c8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson j10i (Elm) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="d144", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson K550i -ATTR{idVendor}=="0fce", ATTR{idProduct}=="e000", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson LT15i (Xperia arc S) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="014f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson MT11i Xperia Neo -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0156", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson MK16i Xperia -ATTR{idVendor}=="0fce", ATTR{idProduct}=="015a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson ST18a Xperia Ray -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson SK17i Xperia Mini Pro -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0166", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson ST15i Xperia Mini -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson ST17i Xperia Active -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT26i Xperia S -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY WT19i Live Walkman -ATTR{idVendor}=="0fce", ATTR{idProduct}=="016d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY ST21i Xperia Tipo -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY ST15i Xperia U -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT22i Xperia P -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT26w Xperia Acro S -ATTR{idVendor}=="0fce", ATTR{idProduct}=="0176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson ST17i Xperia Active (MTP+UMS mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="4168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT26i Xperia S (MTP+UMS mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="4169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY ST21i Xperia Tipo (MTP+UMS mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="4170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY ST25i Xperia U (MTP+UMS mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="4171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT22i Xperia P (MTP+UMS mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="4172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT26w Xperia Acro S (MTP+UMS mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="4176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson LT15i Xperia Arc (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="514f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson MT11i Xperia Neo (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5156", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson ST17i Xperia Active (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT26i Xperia S (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson MK16i Xperia (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="515a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson ST18i Xperia Ray (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson SK17i Xperia Mini Pro (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5166", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson ST15i Xperia Mini (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SonyEricsson SK17i Xperia Mini Pro (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="516d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY ST21i Xperia Tipo (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY ST25i Xperia U (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT22i Xperia P (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY LT26w Xperia Acro S (MTP+ADB mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="5176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY MT27i Xperia Sola (MTP+UMS+? mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="a173", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# SONY ST27i Xperia Go (MTP+UMS+? mode) -ATTR{idVendor}=="0fce", ATTR{idProduct}=="a17e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola V3m/V750 verizon -ATTR{idVendor}=="22b8", ATTR{idProduct}=="2a65", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Xoom 2 Media Edition (ID2) -ATTR{idVendor}=="22b8", ATTR{idProduct}=="41cf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Droid X/MB525 (Defy) -ATTR{idVendor}=="22b8", ATTR{idProduct}=="41d6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Milestone / Verizon Droid -ATTR{idVendor}=="22b8", ATTR{idProduct}=="41dc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola DROID2 -ATTR{idVendor}=="22b8", ATTR{idProduct}=="42a7", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Xoom 2 Media Edition -ATTR{idVendor}=="22b8", ATTR{idProduct}=="4311", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola XT912/XT928 -ATTR{idVendor}=="22b8", ATTR{idProduct}=="4362", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola DROID4 -ATTR{idVendor}=="22b8", ATTR{idProduct}=="437f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola IdeaPad K1 -ATTR{idVendor}=="22b8", ATTR{idProduct}=="4811", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola A1200 -ATTR{idVendor}=="22b8", ATTR{idProduct}=="60ca", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola MTP Test Command Interface -ATTR{idVendor}=="22b8", ATTR{idProduct}=="6413", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola RAZR2 V8/U9/Z6 -ATTR{idVendor}=="22b8", ATTR{idProduct}=="6415", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Xoom (Factory test) -ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Xoom (MTP) -ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Xoom (MTP+ADB) -ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Motorola Milestone X2 -ATTR{idVendor}=="22b8", ATTR{idProduct}=="70ca", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Sony) S1 -ATTR{idVendor}=="18d1", ATTR{idProduct}=="05b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Barnes & Noble) Nook Color -ATTR{idVendor}=="18d1", ATTR{idProduct}=="2d02", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Asus) TF101 Transformer -ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Samsung) Nexus S -ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e21", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Asus) Nexus 7 (MTP) -ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Asus) Nexus 7 (MTP+ADB) -ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Motorola) Xoom (MZ604) -ATTR{idVendor}=="18d1", ATTR{idProduct}=="70a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Toshiba) Thrive 7/AT105 -ATTR{idVendor}=="18d1", ATTR{idProduct}=="7102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Lenovo) Ideapad K1 -ATTR{idVendor}=="18d1", ATTR{idProduct}=="740a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for Medion) MD99000 (P9514) -ATTR{idVendor}=="18d1", ATTR{idProduct}=="b00a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for LG Electronics) P990/Optimus (Cyanogen) -ATTR{idVendor}=="18d1", ATTR{idProduct}=="d109", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Google Inc (for LG Electronics) P990/Optimus -ATTR{idVendor}=="18d1", ATTR{idProduct}=="d10a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Kenwood Media Keg HD10GB7 Sport Player -ATTR{idVendor}=="0b28", ATTR{idProduct}=="100c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Micro-Star International P610/Model MS-5557 -ATTR{idVendor}=="0db0", ATTR{idProduct}=="5572", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# FOMA D905i -ATTR{idVendor}=="06d3", ATTR{idProduct}=="21ba", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Haier Ibiza Rhapsody -ATTR{idVendor}=="1302", ATTR{idProduct}=="1016", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Haier Ibiza Rhapsody -ATTR{idVendor}=="1302", ATTR{idProduct}=="1017", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Panasonic P905i -ATTR{idVendor}=="04da", ATTR{idProduct}=="2145", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Panasonic P906i -ATTR{idVendor}=="04da", ATTR{idProduct}=="2158", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Polaroid Freescape/MPU-433158 -ATTR{idVendor}=="0546", ATTR{idProduct}=="2035", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Pioneer XMP3 -ATTR{idVendor}=="08e4", ATTR{idProduct}=="0148", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Slacker Inc. Slacker Portable Media Player -ATTR{idVendor}=="1bdc", ATTR{idProduct}=="fabf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Conceptronic CMTD2 -ATTR{idVendor}=="1e53", ATTR{idProduct}=="0005", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# O2 Sistemas ZoltarTV -ATTR{idVendor}=="1e53", ATTR{idProduct}=="0006", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Wyplay Wyplayer -ATTR{idVendor}=="1e53", ATTR{idProduct}=="0007", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Perception Digital, Ltd Gigaware GX400 -ATTR{idVendor}=="0aa6", ATTR{idProduct}=="9702", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# RIM BlackBerry Storm/9650 -ATTR{idVendor}=="0fca", ATTR{idProduct}=="8007", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Nextar MA715A-8R -ATTR{idVendor}=="0402", ATTR{idProduct}=="5668", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Coby COBY MP705 -ATTR{idVendor}=="1e74", ATTR{idProduct}=="6512", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple iPhone -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1290", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple iPod Touch 1st Gen -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1291", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple iPhone 3G -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1292", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple iPod Touch 2nd Gen -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1293", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple iPhone 3GS -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1294", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple 0x1296 -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1296", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple 0x1297 -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1297", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple 0x1298 -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1298", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple iPod Touch 3rd Gen -ATTR{idVendor}=="05ac", ATTR{idProduct}=="1299", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Apple iPad -ATTR{idVendor}=="05ac", ATTR{idProduct}=="129a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Curitel Communications, Inc. Verizon Wireless Device -ATTR{idVendor}=="106c", ATTR{idProduct}=="3215", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Pantech Crux -ATTR{idVendor}=="106c", ATTR{idProduct}=="f003", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF300 Transformer -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c80", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF300 Transformer (USB debug mode) -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c81", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF700 Transformer -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c90", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF201 Transformer Prime (keyboard dock) -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d00", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF201 Transformer Prime (tablet only) -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TFXXX Transformer Prime (unknown version) -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d04", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF101 Eeepad Slider -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF101 Eeepad Transformer -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Asus TF101 Eeepad Transformer (debug mode) -ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e1f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Lenovo K1 -ATTR{idVendor}=="17ef", ATTR{idProduct}=="740a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Lenovo ThinkPad Tablet -ATTR{idVendor}=="17ef", ATTR{idProduct}=="741c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Lenovo P700 -ATTR{idVendor}=="17ef", ATTR{idProduct}=="7497", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Lenovo Lifetab S9512 -ATTR{idVendor}=="17ef", ATTR{idProduct}=="74cc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Huawei Honor U8860 -ATTR{idVendor}=="12d1", ATTR{idProduct}=="1051", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Huawei Mediapad (mode 0) -ATTR{idVendor}=="12d1", ATTR{idProduct}=="360f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Huawei Mediapad (mode 1) -ATTR{idVendor}=="12d1", ATTR{idProduct}=="361f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# ZTE V55 ID 1 -ATTR{idVendor}=="19d2", ATTR{idProduct}=="0244", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# ZTE V55 ID 2 -ATTR{idVendor}=="19d2", ATTR{idProduct}=="0245", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# HTC Zopo ZP100 (ID1) -ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# HTC EVO 4G LTE -ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c93", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# HTC EVO 4G LTE (second ID) -ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0ca8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Hewlett-Packard HP Touchpad -ATTR{idVendor}=="0bb4", ATTR{idProduct}=="685c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Hewlett-Packard HP Touchpad (debug mode) -ATTR{idVendor}=="0bb4", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# HTC Zopo ZP100 (ID2) -ATTR{idVendor}=="0bb4", ATTR{idProduct}=="2008", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# NEC FOMA N01A -ATTR{idVendor}=="0409", ATTR{idProduct}=="0242", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# nVidia CM9-Adam -ATTR{idVendor}=="0955", ATTR{idProduct}=="70a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Vizio VTAB1008 -ATTR{idVendor}=="0489", ATTR{idProduct}=="e040", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Various Viewpia DR/bq Kepler -ATTR{idVendor}=="2207", ATTR{idProduct}=="0001", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" -# Isabella Her Prototype -ATTR{idVendor}=="0b20", ATTR{idProduct}=="ddee", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" - -# Autoprobe vendor-specific, communication and PTP devices -ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" - -LABEL="libmtp_rules_end" diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch b/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch deleted file mode 100644 index 38b45c2a93..0000000000 --- a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch +++ /dev/null @@ -1,36 +0,0 @@ - -Include config.h so we get the defines available for subsequent -include files - -Fixes errors like - -| In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/beaglebone/usr/include/string.h:634:0, -| from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.c:36: -| /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.h:29:7: error: expected identifier or '(' before '__extension -__' -| char *strndup (const char *s, size_t n); -| ^ -| /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.c:111:7: error: expected identifier or '(' before '__extensio -n__' -| char *strndup (const char *s, size_t n) -| ^ -| make[2]: *** [libmtp_la-util.lo] Error 1 - - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending - -Index: libmtp-1.1.5/src/util.c -=================================================================== ---- libmtp-1.1.5.orig/src/util.c 2011-01-10 05:37:21.000000000 -0800 -+++ libmtp-1.1.5/src/util.c 2014-09-03 23:50:44.703563888 -0700 -@@ -22,6 +22,8 @@ - * Boston, MA 02111-1307, USA. - */ - -+#include "config.h" -+ - /* MSVC does not have these */ - #ifndef _MSC_VER - #include <sys/time.h> diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp/0001-Use-native-mtp-hotplug.patch b/meta-oe/recipes-connectivity/libmtp/libmtp/0001-Use-native-mtp-hotplug.patch new file mode 100644 index 0000000000..83c58061f7 --- /dev/null +++ b/meta-oe/recipes-connectivity/libmtp/libmtp/0001-Use-native-mtp-hotplug.patch @@ -0,0 +1,43 @@ +From 4e8eab047a43e48bd541f2887104299fcfb99b0d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Tue, 27 Nov 2018 12:03:20 +0100 +Subject: [PATCH] Use native mtp-hotplug +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> +--- + Makefile.am | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 7b7e06b..083e1c6 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -16,16 +16,16 @@ hwdb_DATA=69-libmtp.hwdb + noinst_DATA=libmtp.usermap libmtp.fdi + + libmtp.usermap: util/mtp-hotplug +- util/mtp-hotplug > libmtp.usermap ++ mtp-hotplug > libmtp.usermap + + @UDEV_RULES@: util/mtp-hotplug +- util/mtp-hotplug -u -p"@UDEV@" @UDEV_GROUP@ @UDEV_MODE@ > @UDEV_RULES@ ++ mtp-hotplug -u -p"@UDEV@" @UDEV_GROUP@ @UDEV_MODE@ > @UDEV_RULES@ + + libmtp.fdi: util/mtp-hotplug +- util/mtp-hotplug -H > libmtp.fdi ++ mtp-hotplug -H > libmtp.fdi + + $(hwdb_DATA): util/mtp-hotplug +- util/mtp-hotplug -w > $(hwdb_DATA) ++ mtp-hotplug -w > $(hwdb_DATA) + + CLEANFILES = libmtp.usermap @UDEV_RULES@ libmtp.fdi libmtp.hwdb + endif +-- +2.14.5 + diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.21.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.21.bb new file mode 100644 index 0000000000..94cbef8fc1 --- /dev/null +++ b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.21.bb @@ -0,0 +1,47 @@ +# TODO: include debian's mtp-tools man page (needs xsltproc-native and +# docbook-xsl-native, or we pregenerate it), add support for doxygen +# generation fully with -natives +DESCRIPTION = "libmtp is an Initiator implementation of the Media Transfer \ +Protocol (MTP) in the form of a library suitable primarily for POSIX \ +compliant operating systems" +SUMMARY = "libmtp is an Initiator implementation of the Media Transfer Protocol (MTP)" +HOMEPAGE = "http://libmtp.sourceforge.net/" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1 \ + file://src/ptp.c;beginline=3;endline=22;md5=80fd2d5904c4c1f5455d8f4bf515292f \ + file://examples/albums.c;beginline=5;endline=21;md5=84f4e55dfec49e898b7f68a828c15620 \ + " + +BBCLASSEXTEND = "native" + +DEPENDS = "libusb1 gettext-native" +DEPENDS:append:class-target = " ${BPN}-native" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz" +SRC_URI:append:class-target = " file://0001-Use-native-mtp-hotplug.patch" +SRC_URI[sha256sum] = "f4c1ceb3df020a6cb851110f620c14fe399518c494ed252039cbfb4e34335135" + +inherit autotools pkgconfig lib_package + +EXTRA_OECONF += " \ + --disable-rpath \ + --enable-largefile \ + --with-udev=${nonarch_base_libdir}/udev \ +" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[doxygen] = "--enable-doxygen,--disable-doxygen,doxygen-native" +PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt" + +PACKAGES =+ "${BPN}-common ${BPN}-runtime" + +RDEPENDS:${BPN} += "libmtp-common" +RRECOMMENDS:${BPN} += "libmtp-runtime ${PN}-bin" + +FILES:${BPN}-common = "${nonarch_base_libdir}/udev/rules.d/*" +SUMMARY:${BPN}-common = "The udev rules file for MTP devices" + +FILES:${BPN}-runtime = "${nonarch_base_libdir}/udev/mtp-probe" +RDEPENDS:${BPN}-runtime = "libmtp-common" +SUMMARY:${BPN}-runtime = "mtp-probe, used for the MTP udev rules" +DESCRIPTION:${BPN}-runtime = "This package provides mtp-probe, a program to probe newly connected device interfaces from userspace to determine if they are MTP devices, used for udev rules." diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb deleted file mode 100644 index 798b1707d7..0000000000 --- a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb +++ /dev/null @@ -1,58 +0,0 @@ -# TODO: include debian's mtp-tools man page (needs xsltproc-native and -# docbook-xsl-native, or we pregenerate it), add support for doxygen -# generation fully with -natives -DESCRIPTION = "libmtp is an Initiator implementation of the Media Transfer \ -Protocol (MTP) in the form of a library suitable primarily for POSIX \ -compliant operating systems" -SUMMARY = "libmtp is an Initiator implementation of the Media Transfer Protocol (MTP)" -HOMEPAGE = "http://libmtp.sourceforge.net/" -LICENSE = "LGPL-2.1+" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=0448d3676bc0de00406af227d341a4d1 \ - file://src/ptp.c;beginline=3;endline=22;md5=dafe6cfd1782f56471bb94ab06624c1f \ - file://examples/albums.c;beginline=5;endline=21;md5=84f4e55dfec49e898b7f68a828c15620 \ -" - -DEPENDS += "libusb1 gettext-native" - -SCM_URI = "git://git.code.sf.net/p/libmtp/code" -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ - file://69-libmtp.rules \ - file://glibc-2.20.patch \ -" -SRC_URI[md5sum] = "f80e45c0e6e5798c434bb1c26a7b602d" -SRC_URI[sha256sum] = "787679171baf8b3cf2fcc03196c705ab4d7cbc969bd71f9d3696be1ce7f1c63a" - -# Currently we use a pregenerated rules file produced by mtp-hotplug, rather -# than having to depend upon libmtp-native or run mtp-hotplug in a postinst. -do_unpack[vardeps] += "skip_udev_rules_generation" -do_unpack[postfuncs] += "skip_udev_rules_generation" - -skip_udev_rules_generation () { - sed -i -e '/^noinst_DATA=/,/util\/mtp-hotplug -H/d' ${S}/Makefile.am - cp ${WORKDIR}/69-libmtp.rules ${S}/ -} - -inherit autotools pkgconfig lib_package - -EXTRA_OECONF += "--disable-rpath" - -PACKAGECONFIG ?= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'largefile$', 'largefile', '', d)} \ -" -PACKAGECONFIG[doxygen] = "--enable-doxygen,--disable-doxygen" -PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile" -PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt" - -PACKAGES =+ "libmtp-common libmtp-runtime" - -RDEPENDS_${PN} += "libmtp-common" -RRECOMMENDS_${PN} += "libmtp-runtime ${PN}-bin" -FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug/*" -FILES_libmtp-common = "${nonarch_base_libdir}/udev/rules.d/*" -SUMMARY_libmtp-common = "The udev rules file for MTP devices" -FILES_libmtp-runtime = "${nonarch_base_libdir}/udev/mtp-probe" -DEPENDS_libmtp-runtime = "libmtp-common" -SUMMARY_libmtp-runtime = "mtp-probe, used for the MTP udev rules" -DESCRIPTION_libmtp-runtime = "This package provides mtp-probe, a program to probe newly connected device interfaces from userspace to determine if they are MTP devices, used for udev rules." diff --git a/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch b/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch deleted file mode 100644 index 15aa94e2cc..0000000000 --- a/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 94e9a082d76414f82794b0c9817d0c24e3868275 Mon Sep 17 00:00:00 2001 -From: Kylie McClain <somasis@exherbo.org> -Date: Sat, 21 May 2016 21:24:36 -0400 -Subject: [PATCH] ndptool: Fix compilation on musl libc - -FD_ZERO, fd_set, etc are defined within sys/select.h on musl. - -Signed-off-by: Kylie McClain <somasis@exherbo.org> -Signed-off-by: Jiri Pirko <jiri@mellanox.com> ---- - utils/ndptool.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/utils/ndptool.c b/utils/ndptool.c -index 1d96f4c..96479fa 100644 ---- a/utils/ndptool.c -+++ b/utils/ndptool.c -@@ -28,6 +28,7 @@ - #include <arpa/inet.h> - #include <errno.h> - #include <ndp.h> -+#include <sys/select.h> - - enum verbosity_level { - VERB1, diff --git a/meta-oe/recipes-connectivity/libndp/libndp/0001-libndp-Fix-signature-of-sendto-API.patch b/meta-oe/recipes-connectivity/libndp/libndp/0001-libndp-Fix-signature-of-sendto-API.patch new file mode 100644 index 0000000000..f625416acf --- /dev/null +++ b/meta-oe/recipes-connectivity/libndp/libndp/0001-libndp-Fix-signature-of-sendto-API.patch @@ -0,0 +1,40 @@ +From 14e036b5daf6b72483a1a21054b5133acabceabe Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 17 May 2024 18:14:04 -0700 +Subject: [PATCH] libndp: Fix signature of sendto API + +This fixes build with musl/gcc-14 + +| ../../git/libndp/libndp.c: In function 'mysendto6': +| ../../git/libndp/libndp.c:212:50: error: passing argument 5 of 'sendto' from incompatible pointer type [-Wincompatible-pointer-types] +| 212 | ret = sendto(sockfd, buf, buflen, flags, &sin6, sizeof(sin6)); +| | ^~~~~ +| | | +| | struct sockaddr_in6 * +| In file included from ../../git/libndp/libndp.c:27: +| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libndp/1.8/recipe-sysroot/usr/include/sys/socket.h:396:49: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_in6 *' +| 396 | ssize_t sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t); +| | ^~~~~~~~~~~~~~~~~~~~~~~ + +Upstream-Status: Submitted [Sent to maintainer] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libndp/libndp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libndp/libndp.c b/libndp/libndp.c +index 6314717..056df0f 100644 +--- a/libndp/libndp.c ++++ b/libndp/libndp.c +@@ -209,7 +209,7 @@ static int mysendto6(int sockfd, void *buf, size_t buflen, int flags, + memcpy(&sin6.sin6_addr, addr, sizeof(sin6.sin6_addr)); + sin6.sin6_scope_id = ifindex; + resend: +- ret = sendto(sockfd, buf, buflen, flags, &sin6, sizeof(sin6)); ++ ret = sendto(sockfd, buf, buflen, flags, (struct sockaddr*)&sin6, sizeof(sin6)); + if (ret == -1) { + switch(errno) { + case EINTR: +-- +2.45.1 + diff --git a/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb b/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb deleted file mode 100644 index 5148798abe..0000000000 --- a/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Library for IPv6 Neighbor Discovery Protocol" -HOMEPAGE = "http://libndp.org/" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://github.com/jpirko/libndp \ - file://0001-include-sys-select.h-for-fd_-definitions.patch \ - " -# tag for v1.6 -SRCREV = "2f721c4ff519f38f46695a60d9f9d88f35bf3c1d" -S = "${WORKDIR}/git" - -inherit autotools diff --git a/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb b/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb new file mode 100644 index 0000000000..80946317e4 --- /dev/null +++ b/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb @@ -0,0 +1,13 @@ +SUMMARY = "Library for IPv6 Neighbor Discovery Protocol" +HOMEPAGE = "http://libndp.org/" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/jpirko/libndp;branch=master;protocol=https \ + file://0001-libndp-Fix-signature-of-sendto-API.patch \ + " +# tag for v1.8 +SRCREV = "009ce9cd9b950ffa1f4f94c9436027b936850d0c" +S = "${WORKDIR}/git" + +inherit autotools diff --git a/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch b/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch deleted file mode 100644 index 98008dba94..0000000000 --- a/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch +++ /dev/null @@ -1,58 +0,0 @@ -From ffd7fab744a9ad2893169a8fb6244074604d5d0d Mon Sep 17 00:00:00 2001 -From: rofl0r <retnyg@gmx.net> -Date: Tue, 12 Aug 2014 21:51:39 +0200 -Subject: [PATCH] Support musl libc, remove support for glibc < 2.1 - -Upstream-Status: Backport - -The workarounds for glibc < 2.1 (was released february 1999) break the -build with musl libc. - -It is very unlikely that 2.0 or earlier is still in use, and if so, -1) that's a big security hole -2) code wouldnt compile anyway since noone tested build in the last decade -3) user of it wouldn't expect anyway to get bleeding edge sw built on it, - so he would just use the latest version that works for him. - -Closes #52 - -Signed-off-by: rofl0r <retnyg@gmx.net> -Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> ---- - libnet/src/libnet_link_linux.c | 11 ----------- - 1 file changed, 11 deletions(-) - -diff --git a/src/libnet_link_linux.c b/src/libnet_link_linux.c -index 054458d..3c6df3c 100644 ---- a/src/libnet_link_linux.c -+++ b/src/libnet_link_linux.c -@@ -30,26 +30,15 @@ - #include <sys/time.h> - - #include <net/if.h> --#if (__GLIBC__) - #include <netinet/if_ether.h> - #include <net/if_arp.h> --#else --#include <linux/if_arp.h> --#include <linux/if_ether.h> --#endif - - #if (HAVE_PACKET_SOCKET) - #ifndef SOL_PACKET - #define SOL_PACKET 263 - #endif /* SOL_PACKET */ --#if __GLIBC__ >= 2 && __GLIBC_MINOR >= 1 - #include <netpacket/packet.h> - #include <net/ethernet.h> /* the L2 protocols */ --#else --#include <asm/types.h> --#include <linux/if_packet.h> --#include <linux/if_ether.h> /* The L2 protocols */ --#endif - #endif /* HAVE_PACKET_SOCKET */ - - #include "../include/libnet.h" --- -1.9.1 - diff --git a/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb b/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb deleted file mode 100644 index dfc2049604..0000000000 --- a/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A packet dissection and creation library" -# libnet at packetfactory.net is dead -HOMEPAGE = "https://github.com/sam-github/libnet" -SECTION = "libs" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://doc/COPYING;md5=3ec839e00408b484d33b472a86b7c266" -DEPENDS = "libpcap" -# There are major API changes beween libnet v1.0 and libnet v1.1 -PROVIDES = "libnet-1.2rc2" - -SRC_URI = "${SOURCEFORGE_MIRROR}/libnet-dev/${BPN}-${PV}.tar.gz \ - file://0001-Support-musl-libc-remove-support-for-glibc-2.1.patch \ - " - -SRC_URI[md5sum] = "f051e6e5bdecddb90f77c701c2ca1804" -SRC_URI[sha256sum] = "72c380785ad44183005e654b47cc12485ee0228d7fa6b0a87109ff7614be4a63" - -S = "${WORKDIR}/${BPN}-${PV}" - -inherit autotools binconfig - diff --git a/meta-oe/recipes-connectivity/libnet/libnet_1.3.bb b/meta-oe/recipes-connectivity/libnet/libnet_1.3.bb new file mode 100644 index 0000000000..b4648832f1 --- /dev/null +++ b/meta-oe/recipes-connectivity/libnet/libnet_1.3.bb @@ -0,0 +1,20 @@ +SUMMARY = "A packet dissection and creation library" +HOMEPAGE = "https://github.com/libnet/libnet" + +SECTION = "libs" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=07f291bf6e78efa05cec668cf6a09acc" + +DEPENDS = "libpcap" + +SRC_URI = "git://github.com/libnet/libnet.git;protocol=https;branch=master" + +SRC_URI[sha256sum] = "1e9e9054d688b059bcbaf878d8c4fbf69bfc0c9386cd4e7779fbb53339050d2e" +SRCREV = "deaebdfe2743e8a6f04d3c307d9272afeeecfade" + +S = "${WORKDIR}/git" + +inherit autotools binconfig multilib_script +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/libnet-config" + diff --git a/meta-oe/recipes-connectivity/libnfs/libnfs/0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch new file mode 100644 index 0000000000..978f38d019 --- /dev/null +++ b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch @@ -0,0 +1,61 @@ +From 95708ff427c12b58e53fab225a08c811ca358394 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Wed, 3 May 2023 22:27:10 +0200 +Subject: [PATCH] CMakeLists.txt: respect ${CMAKE_INSTALL_LIBDIR} for multilib + +* fixes: + ERROR: libnfs-5.0.2-r0 do_package: QA Issue: libnfs: Files/directories were installed but not shipped in any package: + /usr/lib/libnfs.so + /usr/lib/libnfs.so.11.1.0 + /usr/lib/libnfs.so.5.0.2 + /usr/lib/pkgconfig + /usr/lib/cmake + /usr/lib/pkgconfig/libnfs.pc + /usr/lib/cmake/libnfs + /usr/lib/cmake/libnfs/libnfs-config-version.cmake + /usr/lib/cmake/libnfs/libnfs-config.cmake + /usr/lib/cmake/libnfs/libnfs-config-noconfig.cmake + /usr/lib/cmake/libnfs/FindNFS.cmake + Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. + libnfs: 11 installed and not shipped files. [installed-vs-shipped] + + when libdir is /usr/lib64 with multilib + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +Upstream-Status: Pending +--- + CMakeLists.txt | 6 +++--- + lib/CMakeLists.txt | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5be774d..6b4fd25 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,11 +7,11 @@ project(libnfs + set(SOVERSION 11.2.0 CACHE STRING "" FORCE) + + set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for binaries") +-set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") ++set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" CACHE PATH "Installation directory for libraries") + set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") + set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") +-set(INSTALL_PKGCONFIG_DIR "${INSTALL_LIB_DIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") +-set(INSTALL_CMAKE_DIR "${INSTALL_LIB_DIR}/cmake/libnfs" CACHE PATH "Installation directory for cmake (.cmake) files") ++set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") ++set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/libnfs" CACHE PATH "Installation directory for cmake (.cmake) files") + + option(BUILD_SHARED_LIBS "Build shared libraries" ON) + option(ENABLE_TESTS "Build and run test programs" OFF) +diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt +index 88ba7b8..5ff89dc 100644 +--- a/lib/CMakeLists.txt ++++ b/lib/CMakeLists.txt +@@ -23,5 +23,5 @@ set_target_properties(nfs PROPERTIES + + install(TARGETS nfs EXPORT libnfs + RUNTIME DESTINATION bin +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/meta-oe/recipes-connectivity/libnfs/libnfs/0001-cmake-Test-for-sys-uio.h.patch b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-cmake-Test-for-sys-uio.h.patch new file mode 100644 index 0000000000..de3ab82292 --- /dev/null +++ b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-cmake-Test-for-sys-uio.h.patch @@ -0,0 +1,44 @@ +From d0fa719d49f38777911a8e99717f2d4b30811080 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 12 Feb 2024 19:24:54 -0800 +Subject: [PATCH] cmake: Test for sys/uio.h + +writev() API is used in few places and it will need including sys/uio.h +for getting the funciton signature + +Upstream-Status: Submitted [https://github.com/sahlberg/libnfs/pull/440] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + cmake/ConfigureChecks.cmake | 1 + + cmake/config.h.cmake | 3 +++ + 2 files changed, 4 insertions(+) + +diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake +index 0258fc8..c26a02d 100644 +--- a/cmake/ConfigureChecks.cmake ++++ b/cmake/ConfigureChecks.cmake +@@ -22,6 +22,7 @@ check_include_file("sys/stat.h" HAVE_SYS_STAT_H) + check_include_file("sys/sysmacros.h" HAVE_SYS_SYSMACROS_H) + check_include_file("sys/time.h" HAVE_SYS_TIME_H) + check_include_file("sys/types.h" HAVE_SYS_TYPES_H) ++check_include_file("sys/uio.h" HAVE_SYS_UIO_H) + check_include_file("sys/vfs.h" HAVE_SYS_VFS_H) + check_include_file("unistd.h" HAVE_UNISTD_H) + check_include_file("utime.h" HAVE_UTIME_H) +diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake +index 4016c6c..6263896 100644 +--- a/cmake/config.h.cmake ++++ b/cmake/config.h.cmake +@@ -90,6 +90,9 @@ + /* Define to 1 if you have the <sys/types.h> header file. */ + #cmakedefine HAVE_SYS_TYPES_H + ++/* Define to 1 if you have the <sys/uio.h> header file. */ ++#cmakedefine HAVE_SYS_UIO_H ++ + /* Define to 1 if you have the <sys/vfs.h> header file. */ + #cmakedefine HAVE_SYS_VFS_H + +-- +2.43.1 + diff --git a/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.3.bb b/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.3.bb new file mode 100644 index 0000000000..a6eabc6095 --- /dev/null +++ b/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.3.bb @@ -0,0 +1,18 @@ +SUMMARY = "NFS client library" +HOMEPAGE = "https://github.com/sahlberg/libnfs" +LICENSE = "LGPL-2.1-only & BSD-2-Clause & GPL-3.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=825301ba17efc9d188ee0abd4b924ada" + +SRC_URI = " \ + git://github.com/sahlberg/libnfs.git;protocol=https;branch=master \ + file://0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch \ + file://0001-cmake-Test-for-sys-uio.h.patch \ +" +SRCREV = "4379837536d9eac537810dc7b13071136049b22a" +S = "${WORKDIR}/git" + +inherit cmake + +do_install:append() { + rm -f ${D}${libdir}/cmake/libnfs/libnfs-config.cmake +} diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch b/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch deleted file mode 100644 index 7a3429b9d0..0000000000 --- a/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 4cfb728804157e8f3c69e11ba4df449d8f76388f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 20 Oct 2016 04:42:26 +0000 -Subject: [PATCH] Detect clang - -Check for clang compiler since we need to disable -unused-function warning for clang, at same time -pass werror when checking for compiler options if -werror is enabled so spurious options do not get -enabled. Only the ones that are supported by given -compiler are accepted. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending - ---- - m4/compiler-warnings.m4 | 29 +++++++++++++++++++++++++---- - 1 file changed, 25 insertions(+), 4 deletions(-) - -diff --git a/m4/compiler-warnings.m4 b/m4/compiler-warnings.m4 -index de4a8b0..e4ba718 100644 ---- a/m4/compiler-warnings.m4 -+++ b/m4/compiler-warnings.m4 -@@ -2,10 +2,30 @@ AC_DEFUN([LIBQMI_COMPILER_WARNINGS], - [AC_ARG_ENABLE(more-warnings, - AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), - set_more_warnings="$enableval",set_more_warnings=error) -+ -+# Clang throws a lot of warnings when it does not understand a flag. Disable -+# this warning for now so other warnings are visible. -+AC_MSG_CHECKING([if compiling with clang]) -+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ -+#ifndef __clang__ -+ not clang -+#endif -+ ]])], -+ [CLANG=yes], -+ [CLANG=no] -+) -+AC_MSG_RESULT([$CLANG]) -+AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function]) -+CFLAGS="$CFLAGS $CLANG_FLAGS" -+LDFLAGS="$LDFLAGS $CLANG_FLAGS" -+ - AC_MSG_CHECKING(for more warnings) - if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then - AC_MSG_RESULT(yes) - CFLAGS="-Wall -std=gnu89 $CFLAGS" -+ if test "x$set_more_warnings" = xerror; then -+ WERROR="-Werror" -+ fi - - for option in -Wmissing-declarations -Wmissing-prototypes \ - -Wdeclaration-after-statement -Wstrict-prototypes \ -@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then - -Wmissing-include-dirs -Waggregate-return \ - -Wformat-security -Wtype-limits; do - SAVE_CFLAGS="$CFLAGS" -- CFLAGS="$CFLAGS $option" -+ CFLAGS="$CFLAGS $option $WERROR" - AC_MSG_CHECKING([whether gcc understands $option]) - AC_TRY_COMPILE([], [], - has_option=yes, - has_option=no,) - if test $has_option = no; then - CFLAGS="$SAVE_CFLAGS" -+ else -+ CFLAGS="$SAVE_CFLAGS $option" - fi - AC_MSG_RESULT($has_option) - unset has_option - unset SAVE_CFLAGS - done -+ CFLAGS="$CFLAGS $WERROR" - unset option -- if test "x$set_more_warnings" = xerror; then -- CFLAGS="$CFLAGS -Werror" -- fi -+ unset WERROR - else - AC_MSG_RESULT(no) - fi --- -1.9.1 - diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb deleted file mode 100644 index 9301cbd5ee..0000000000 --- a/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol" -DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -DEPENDS = "glib-2.0 libgudev libmbim glib-2.0-native" - -inherit autotools pkgconfig bash-completion - -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ - file://0001-Detect-clang.patch \ - " -SRC_URI[md5sum] = "797e365521df76b77b067e6317618b41" -SRC_URI[sha256sum] = "21428cd3749c56246565123f707fee51238651a22c60bdc85ebce97388626eb4" diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.34.0.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.34.0.bb new file mode 100644 index 0000000000..94164a0b5a --- /dev/null +++ b/meta-oe/recipes-connectivity/libqmi/libqmi_1.34.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol" +DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and \ + devices which speak the Qualcomm MSM Interface (QMI) protocol" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi" +LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = "glib-2.0 glib-2.0-native" + +inherit meson pkgconfig bash-completion gobject-introspection upstream-version-is-even + +SRCREV = "3f07d6e5b4677558543b3b4484ea88ad92257e92" +SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libqmi.git;protocol=https;branch=qmi-1-34" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "udev mbim" +PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,libgudev" +PACKAGECONFIG[mbim] = "-Dmbim_qmux=true,-Dmbim_qmux=false,libmbim" +PACKAGECONFIG[qrtr] = "-Dqrtr=true,-Dqrtr=false,libqrtr-glib" + +EXTRA_OEMESON = " \ + -Dgtk_doc=false \ + -Dman=false \ +" diff --git a/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb b/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb new file mode 100644 index 0000000000..3549cac568 --- /dev/null +++ b/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "library to use and manage the QRTR bus" +DESCRIPTION = "libqrtr-glib is a glib-based library to use and manage the QRTR (Qualcomm IPC Router) bus" +HOMEPAGE = "https://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib.git;protocol=https;branch=qrtr-1-2" + +PV = "1.2.2+git" +SRCREV = "8991f0e93713ebf4da48ae4f23940ead42f64c8c" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig gobject-introspection + +DEPENDS = "glib-2.0" + +EXTRA_OEMESON = " \ + -Dgtk_doc=false \ +" diff --git a/meta-oe/recipes-connectivity/libtorrent-rasterbar/libtorrent-rasterbar_2.0.10.bb b/meta-oe/recipes-connectivity/libtorrent-rasterbar/libtorrent-rasterbar_2.0.10.bb new file mode 100644 index 0000000000..f2de1f468d --- /dev/null +++ b/meta-oe/recipes-connectivity/libtorrent-rasterbar/libtorrent-rasterbar_2.0.10.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "libtorrent is a feature complete C++ bittorrent implementation \ + focusing on efficiency and scalability." +HOMEPAGE = "https://libtorrent.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8b6cb42d66e6b3c47a909c3ce678a7b" + +DEPENDS = "boost openssl" + +SRC_URI = "git://github.com/arvidn/libtorrent.git;branch=master;protocol=https \ + git://github.com/arvidn/try_signal.git;branch=master;protocol=https;destsuffix=git/deps/try_signal;name=try_signal" + +SRCREV = "74bc93a37a5e31c78f0aa02037a68fb9ac5deb41" +SRCREV_try_signal = "105cce59972f925a33aa6b1c3109e4cd3caf583d" +SRCREV_FORMAT .= "_try_signal" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig python3targetconfig + +CVE_PRODUCT = "libtorrent" + +EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release" + +PACKAGECONFIG ??= "python3" +PACKAGECONFIG[python3] = "-Dpython-bindings=ON,-Dpython-bindings=OFF,python3-distutils-extra-native" + +# Strip host paths from autogenerated files +do_install:append() { + sed -i 's+${STAGING_LIBDIR}+${libdir}+g' ${D}${libdir}/pkgconfig/${BPN}.pc +} + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)}" +FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/*" diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch deleted file mode 100644 index 4d0979710c..0000000000 --- a/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-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch deleted file mode 100644 index 84e0772a79..0000000000 --- a/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-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch deleted file mode 100644 index 79d4f29fab..0000000000 --- a/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch +++ /dev/null @@ -1,94 +0,0 @@ -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 @@ - - AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [ - AC_MSG_CHECKING(whether kqueue supports pipes and ptys) -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([ -- #include <fcntl.h> -- #include <stdlib.h> -- #include <unistd.h> -- #include <sys/event.h> -- #include <sys/time.h> -- int main() { -- struct kevent ev@<:@2@:>@, ev_out@<:@2@:>@; -- struct timespec ts = { 0, 0 }; -- int pfd@<:@2@:>@, pty@<:@2@:>@, kfd, n; -- char buffer@<:@9001@:>@; -- if (pipe(pfd) == -1) return 1; -- if (fcntl(pfd@<:@1@:>@, F_SETFL, O_NONBLOCK) == -1) return 2; -- while ((n = write(pfd@<:@1@:>@, buffer, sizeof(buffer))) == sizeof(buffer)); -- if ((pty@<:@0@:>@=posix_openpt(O_RDWR | O_NOCTTY)) == -1) return 3; -- if ((pty@<:@1@:>@=grantpt(pty@<:@0@:>@)) == -1) return 4; -- EV_SET(ev+0, pfd@<:@1@:>@, EVFILT_WRITE, EV_ADD | EV_ENABLE, 0, 0, NULL); -- EV_SET(ev+1, pty@<:@1@:>@, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, NULL); -- if ((kfd = kqueue()) == -1) return 5; -- if ((n = kevent(kfd, ev, 2, NULL, 0, NULL)) == -1) return 6; -- if (ev_out@<:@0@:>@.flags & EV_ERROR) return 7; -- if (ev_out@<:@1@:>@.flags & EV_ERROR) return 8; -- read(pfd@<:@0@:>@, buffer, sizeof(buffer)); -- if ((n = kevent(kfd, NULL, 0, ev_out, 2, &ts)) < 1) return 9; -- return 0; -- } -- ])], -- [ -- AC_MSG_RESULT(yes) -- ], [ -- AC_DEFINE(KQUEUE_SOCKET_ONLY, 1, kqueue only supports sockets.) -- 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 @@ - - AC_DEFUN([TORRENT_CHECK_EXECINFO], [ - AC_MSG_CHECKING(for execinfo.h) -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([ -- #include <execinfo.h> -- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;} -- ])], -- [ -- AC_MSG_RESULT(yes) -- AC_DEFINE(USE_EXECINFO, 1, Use execinfo.h) -- ], [ -- AC_MSG_RESULT(no) -- ]) - ]) - - AC_DEFUN([TORRENT_CHECK_ALIGNED], [ - AC_MSG_CHECKING(the byte alignment) -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([ -- #include <inttypes.h> -- int main() { -- char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 }; -- int i; -- for (i = 1; i < 4; ++i) -- if (*(uint32_t*)(buf + i) == 0) return -1; -- return 0; -- } -- ])], -- [ -- AC_MSG_RESULT(none needed) -- ], [ -- AC_DEFINE(USE_ALIGNED, 1, Require byte alignment) -- AC_MSG_RESULT(required) -- ]) - ]) - - diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb index 92e65289a9..c7a0562db4 100644 --- a/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb +++ b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb @@ -1,26 +1,33 @@ DESCRIPTION = "libTorrent is a BitTorrent library written in C++ for *nix, \ with a focus on high performance and good code." HOMEPAGE = "http://libtorrent.rakshasa.no/" -LICENSE = "GPL-2.0" +LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" 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 = "c167c5a9e0bcf0df23ae5efd91396aae0e37eb87" +PV = "0.13.8+git" -PV = "0.13.6+git${SRCPV}" +SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https" +SRCREV = "e60f222241319aaae482789517ad00ae9344bd13" + +UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" + +CVE_STATUS[CVE-2009-1760] = "backported-patch: patched in our product" S = "${WORKDIR}/git" +CVE_PRODUCT = "" + +PACKAGECONFIG ??= "instrumentation aligned" + +PACKAGECONFIG:remove:mipsarch = "instrumentation" +PACKAGECONFIG:remove:powerpc = "instrumentation" +PACKAGECONFIG:remove:riscv32 = "instrumentation" + +PACKAGECONFIG[instrumentation] = "--enable-instrumentation,--disable-instrumentation," +PACKAGECONFIG[aligned] = "--enable-aligned,--disable-aligned," + inherit autotools pkgconfig EXTRA_OECONF = "--with-zlib=${STAGING_EXECPREFIXDIR}" - -do_configure_prepend() { - (cd ${S}; ./autogen.sh; cd -) -} diff --git a/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb b/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb deleted file mode 100644 index 0a5846bb8b..0000000000 --- a/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "A multi-platform support library with a focus on asynchronous I/O" -HOMEPAGE = "https://github.com/libuv/libuv" -BUGTRACKER = "https://github.com/libuv/libuv/issues" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=bb5ea0d651f4c3519327171906045775" - -SRC_URI = "https://github.com/libuv/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz" - -SRC_URI[md5sum] = "15550a9f5f45f7f32ae2d9bb0a21a2a7" -SRC_URI[sha256sum] = "6ec7eec6ecc24b1a8ffedebedb2fe9313fffb5410de89aaf784dd01080411c7a" - -inherit autotools - -do_configure() { - ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" - oe_runconf -} - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb deleted file mode 100644 index 9354799871..0000000000 --- a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "Canonical libwebsockets.org websocket library" -HOMEPAGE = "https://libwebsockets.org/" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3393a657830d4a118c5a6ed35ba53d0" - -DEPENDS = "zlib" - -SRC_URI = "https://github.com/warmcat/libwebsockets/archive/v${PV}.tar.gz" - -SRC_URI[md5sum] = "4df3be57dee43aeebd54a3ed56568f50" -SRC_URI[sha256sum] = "bcc96aaa609daae4d3f7ab1ee480126709ef4f6a8bf9c85de40aae48e38cce66" - -inherit cmake pkgconfig - -PACKAGECONFIG ?= "libuv client server http2 ssl" -PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON," -PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF," -PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF," -PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev" -PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv" -PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON," -PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl" -PACKAGECONFIG[testapps] = "-DLWS_WITHOUT_TESTAPPS=OFF,-DLWS_WITHOUT_TESTAPPS=ON," - -PACKAGES =+ "${PN}-testapps" - -FILES_${PN}-dev += "${libdir}/cmake" -FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/*" diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.3.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.3.bb new file mode 100644 index 0000000000..3170d37f5b --- /dev/null +++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.3.bb @@ -0,0 +1,67 @@ +SUMMARY = "Canonical libwebsockets.org websocket library" +HOMEPAGE = "https://libwebsockets.org/" +LICENSE = "MIT & Zlib & BSD-3-Clause & Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b" + +DEPENDS = "zlib" +DEPENDS:append:class-native = " libcap-native" + +S = "${WORKDIR}/git" +SRCREV = "4415e84c095857629863804e941b9e1c2e9347ef" +SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.3-stable" + +UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" + +inherit cmake pkgconfig + +PACKAGECONFIG ?= "libuv client server http2 ssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON," +PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF," +PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF," +PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libevent" +PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev" +PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv" +PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON," +PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl" +PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON," +PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd" + +python __anonymous() { + if bb.utils.contains('PACKAGECONFIG', 'systemd', True, False, d) and not bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d): + bb.fatal("PACKAGECONFIG contains systemd but DISTRO_FEATURES doesn't") +} + +EXTRA_OECMAKE += " \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ +" + +do_install:append() { + sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake + sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake + sed -i -e 's|${STAGING_LIBDIR}/libuv.so|uv|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake + sed -i -e 's|${STAGING_INCDIR}||g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake \ + ${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake + sed -i -e 's|${STAGING_LIBDIR}/||g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake \ + ${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake +} + +PACKAGES =+ "${PN}-testapps ${PN}-evlib-event ${PN}-evlib-uv ${PN}-evlib-ev ${PN}-evlib-sd" + +FILES:${PN}-testapps += "${datadir}/libwebsockets-test-server/* ${bindir}/libwebsockets-test-*" +FILES:${PN}-evlib-event += "${libdir}/libwebsockets-evlib_event.so" +FILES:${PN}-evlib-uv += "${libdir}/libwebsockets-evlib_uv.so" +FILES:${PN}-evlib-ev += "${libdir}/libwebsockets-evlib_ev.so" +FILES:${PN}-evlib-sd += "${libdir}/libwebsockets-evlib_sd.so" + +RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libevent', '${PN}-evlib-event', '', d)}" +RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libuv', '${PN}-evlib-uv', '', d)}" +RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libev', '${PN}-evlib-ev', '', d)}" +RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', '${PN}-evlib-sd', '', d)}" + +RDEPENDS:${PN}-dev += " ${@bb.utils.contains('PACKAGECONFIG', 'static', '${PN}-staticdev', '', d)}" + +# Avoid absolute paths to end up in the sysroot. +SSTATE_SCAN_FILES += "*.cmake" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch new file mode 100644 index 0000000000..b117dcf670 --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch @@ -0,0 +1,26 @@ +From 6120cee594c543d17ae015bc601012debcf57177 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 23 Oct 2023 10:43:42 +0100 +Subject: [PATCH] include string.h for strncpy() + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Backport [master: 6120cee594c543d17ae015bc601012debcf57177] +--- + interface.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/interface.c b/interface.c +index 29229ad6f53d..9a83c36933e7 100644 +--- a/interface.c ++++ b/interface.c +@@ -5,6 +5,7 @@ + * @note SPDX-License-Identifier: GPL-2.0+ + */ + #include <stdlib.h> ++#include <string.h> + #include "interface.h" + + struct interface { +-- +2.34.1 + diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0002-linuxptp-Use-CC-in-incdefs.sh.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0002-linuxptp-Use-CC-in-incdefs.sh.patch new file mode 100644 index 0000000000..3cf3a63b94 --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0002-linuxptp-Use-CC-in-incdefs.sh.patch @@ -0,0 +1,48 @@ +From cffb4807ac0b9ff7aea2aa4f3842985b5363d184 Mon Sep 17 00:00:00 2001 +From: Luca Fancellu <luca.fancellu@arm.com> +Date: Mon, 23 Oct 2023 10:43:43 +0100 +Subject: [PATCH] linuxptp: Use ${CC} in incdefs.sh + +The Makefile is defining CC and incdefs.sh is using +${CROSS_COMPILE}cpp inside it, allowing both to use different +compilers depending on what the user pass during make invocation +as CC. + +Align them using ${CC} also inside incdefs.sh. + +Signed-off-by: Luca Fancellu <luca.fancellu@arm.com> +Upstream-Status: Backport [master: cffb4807ac0b9ff7aea2aa4f3842985b5363d184] +--- + incdefs.sh | 2 +- + makefile | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/incdefs.sh b/incdefs.sh +index a9e94f777f6b..391e63c7fac6 100755 +--- a/incdefs.sh ++++ b/incdefs.sh +@@ -27,7 +27,7 @@ user_flags() + printf " -D_GNU_SOURCE" + + # Get list of directories searched for header files. +- dirs=$(echo "" | ${CROSS_COMPILE}cpp -Wp,-v 2>&1 >/dev/null | grep ^" /") ++ dirs=$(${CC} -E -Wp,-v -xc /dev/null 2>&1 >/dev/null | grep ^" /") + + # Look for clock_adjtime(). + for d in $dirs; do +diff --git a/makefile b/makefile +index 3e3b8b35fc96..7fc5f6fb8fa8 100644 +--- a/makefile ++++ b/makefile +@@ -39,7 +39,7 @@ OBJECTS = $(OBJ) hwstamp_ctl.o nsm.o phc2sys.o phc_ctl.o pmc.o pmc_agent.o \ + SRC = $(OBJECTS:.o=.c) + DEPEND = $(OBJECTS:.o=.d) + srcdir := $(dir $(lastword $(MAKEFILE_LIST))) +-incdefs := $(shell $(srcdir)/incdefs.sh) ++incdefs := $(shell CC="$(CC)" $(srcdir)/incdefs.sh) + version := $(shell $(srcdir)/version.sh $(srcdir)) + VPATH = $(srcdir) + +-- +2.34.1 + diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch deleted file mode 100644 index 96163f6542..0000000000 --- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b36cafdbcbe2193f5b669e703c608e19e23f80a3 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 15 Jul 2017 11:16:42 -0700 -Subject: [PATCH 3/4] include missing time.h for time_t - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - util.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util.h b/util.h -index e912f19..3c634c1 100644 ---- a/util.h -+++ b/util.h -@@ -22,7 +22,7 @@ - - #include "ddt.h" - #include "ether.h" -- -+#include <time.h> - /** - * Table of human readable strings, one for each port state. - */ --- -2.13.3 - diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch deleted file mode 100644 index e699275148..0000000000 --- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 3cd28aa771934d9165ff0d7e19932cde65de3e52 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 15 Jul 2017 11:16:57 -0700 -Subject: [PATCH 4/4] Adjust include header sequence to avoid duplicate - definitions on musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - raw.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/raw.c b/raw.c -index f51c829..494ea7f 100644 ---- a/raw.c -+++ b/raw.c -@@ -18,8 +18,6 @@ - */ - #include <errno.h> - #include <fcntl.h> --#include <linux/filter.h> --#include <linux/if_ether.h> - #include <net/ethernet.h> - #include <net/if.h> - #include <netinet/in.h> -@@ -32,6 +30,8 @@ - #include <sys/types.h> - #include <unistd.h> - -+#include <linux/filter.h> -+#include <linux/if_ether.h> - #include <linux/errqueue.h> - #include <linux/net_tstamp.h> - #include <linux/sockios.h> --- -2.13.3 - diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch deleted file mode 100644 index b1d96ae5a7..0000000000 --- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch +++ /dev/null @@ -1,37 +0,0 @@ -From af485c638c61fa883212ea424e676fbf90bee594 Mon Sep 17 00:00:00 2001 -From: Otavio Salvador <otavio@ossystems.com.br> -Date: Tue, 1 Jul 2014 17:37:31 -0300 -Subject: [PATCH] build: Allow CC and prefix to be overriden - -Upstream-Status: Pending - -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> ---- - makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/makefile b/makefile -index 22e7d0d..809cc8f 100644 ---- a/makefile -+++ b/makefile -@@ -18,7 +18,7 @@ - KBUILD_OUTPUT = - - DEBUG = --CC = $(CROSS_COMPILE)gcc -+CC ?= $(CROSS_COMPILE)gcc - VER = -DVER=$(version) - CFLAGS = -Wall $(VER) $(incdefs) $(DEBUG) $(EXTRA_CFLAGS) - LDLIBS = -lm -lrt $(EXTRA_LDFLAGS) -@@ -35,7 +35,7 @@ incdefs := $(shell $(srcdir)/incdefs.sh) - version := $(shell $(srcdir)/version.sh $(srcdir)) - VPATH = $(srcdir) - --prefix = /usr/local -+prefix ?= /usr/local - sbindir = $(prefix)/sbin - mandir = $(prefix)/man - man8dir = $(mandir)/man8 --- -1.7.10.4 - diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch deleted file mode 100644 index 02dbb23465..0000000000 --- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8a4cad5e2f2cbb6a34bdc6e877fe499502b8c4c8 Mon Sep 17 00:00:00 2001 -From: Marcel Ziswiler <marcel.ziswiler@toradex.com> -Date: Fri, 23 Dec 2016 18:12:29 +0100 -Subject: [PATCH] linuxptp: no incdefs using host headers - -Avoid using host headers via incdefs.sh shell script. - -Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> ---- - - makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/makefile b/makefile -index 8cdbd15..85174b8 100644 ---- a/makefile -+++ b/makefile -@@ -33,7 +33,7 @@ OBJECTS = $(OBJ) hwstamp_ctl.o phc2sys.o phc_ctl.o pmc.o pmc_common.o \ - SRC = $(OBJECTS:.o=.c) - DEPEND = $(OBJECTS:.o=.d) - srcdir := $(dir $(lastword $(MAKEFILE_LIST))) --incdefs := $(shell $(srcdir)/incdefs.sh) -+#incdefs := $(shell $(srcdir)/incdefs.sh) - version := $(shell $(srcdir)/version.sh $(srcdir)) - VPATH = $(srcdir) - --- -2.9.3 - diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service.in b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service.in new file mode 100644 index 0000000000..f66dd2d010 --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service.in @@ -0,0 +1,13 @@ +[Unit] +Description=Synchronize system clock or PTP hardware clock (PHC) +Documentation=man:phc2sys +Requires=ptp4l.service +After=ptp4l.service +Before=time-sync.target + +[Service] +Type=simple +ExecStart=@SBINDIR@/phc2sys -w -s %I + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service.in b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service.in new file mode 100644 index 0000000000..2502181412 --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service.in @@ -0,0 +1,11 @@ +[Unit] +Description=Precision Time Protocol (PTP) service for %I +Documentation=man:ptp4l +After=sys-subsystem-net-devices-%i.device + +[Service] +Type=simple +ExecStart=@SBINDIR@/ptp4l -f @SYSCONFDIR@/linuxptp/ptp4l.conf -i %I + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb deleted file mode 100644 index c7b8b2933c..0000000000 --- a/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \ - file://build-Allow-CC-and-prefix-to-be-overriden.patch \ - file://no-incdefs-using-host-headers.patch \ - file://0003-include-missing-time.h-for-time_t.patch \ - file://0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch \ - " - -SRC_URI[md5sum] = "5688cdfe57932273e1dbf35b3b97b9a0" -SRC_URI[sha256sum] = "fa8e00f6ec73cefa7bb313dce7f60dfe5eb9e2bde3353594e9ac18edc93e5165" - -EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \ - EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'" - -do_install () { - install -d ${D}/${bindir} - install -p ${S}/ptp4l ${D}/${bindir} - install -p ${S}/pmc ${D}/${bindir} - install -p ${S}/phc2sys ${D}/${bindir} - install -p ${S}/hwstamp_ctl ${D}/${bindir} -} diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb new file mode 100644 index 0000000000..d1a73841a1 --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb @@ -0,0 +1,62 @@ +SUMMARY = "linuxptp package for linux" +DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 \ +for Linux" +HOMEPAGE = "http://linuxptp.sourceforge.net/" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +LINUXPTP_SRC_URI = "http://sourceforge.net/projects/linuxptp" + +SRC_URI = "${LINUXPTP_SRC_URI}/files/v4.1/linuxptp-${PV}.tgz \ + file://0001-include-string.h-for-strncpy.patch \ + file://0002-linuxptp-Use-CC-in-incdefs.sh.patch \ + file://systemd/phc2sys@.service.in \ + file://systemd/ptp4l@.service.in \ + " + +SRC_URI[md5sum] = "1db8699fc155965341759be5e5aad938" +SRC_URI[sha256sum] = "e1743d44f8208897e30895da3579e670ff919b914feb4b5a949f3e421ddde535" + +inherit systemd + +UPSTREAM_CHECK_URI = "${LINUXPTP_SRC_URI}/files/" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/" + +EXTRA_OEMAKE = "CC='${CC}' EXTRA_CFLAGS='${CFLAGS}' mandir='${mandir}' \ + sbindir='${sbindir}'" + +export KBUILD_OUTPUT="${RECIPE_SYSROOT}" + +LINUXPTP_SYSTEMD_SERVICES = "phc2sys@.service ptp4l@.service" + +do_install() { + oe_runmake install DESTDIR=${D} + + # Install example configs from source tree + install -d ${D}${docdir}/${PN} + cp -R --no-dereference --preserve=mode,links ${S}/configs \ + ${D}${docdir}/${PN} + + # Install default configuration files + install -d ${D}/${sysconfdir}/linuxptp/ + install -m 644 ${S}/configs/default.cfg \ + ${D}${sysconfdir}/linuxptp/ptp4l.conf + + # Install systemd services + install -d ${D}/${systemd_unitdir}/system/ + for service in ${LINUXPTP_SYSTEMD_SERVICES}; do + sed -i -e 's,@SBINDIR@,${sbindir},g' \ + ${UNPACKDIR}/systemd/$service.in + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + ${UNPACKDIR}/systemd/$service.in + install -m 644 ${UNPACKDIR}/systemd/$service.in \ + ${D}/${systemd_unitdir}/system/$service + done +} + +SYSTEMD_SERVICE:${PN} = "${LINUXPTP_SYSTEMD_SERVICES}" +SYSTEMD_AUTO_ENABLE:${PN} = "disable" + +PACKAGES =+ "${PN}-configs" + +FILES:${PN}-configs += "${docdir}" diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles b/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles deleted file mode 100644 index 0b80e2e479..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles +++ /dev/null @@ -1 +0,0 @@ -d /run/lirc 0755 root root - diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf b/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf deleted file mode 100644 index d8ddedd8fa..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf +++ /dev/null @@ -1,24 +0,0 @@ -# These are the default options to lircd, if installed as -# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8) -# manpages for info on the different options. - -[lircd] -nodaemon = False -permission = 666 -driver = default -device = /dev/lirc0 -output = /var/run/lirc/lircd -pidfile = /var/run/lirc/lircd.pid -plugindir = /usr/lib/lirc/plugins -allow-simulate = No -repeat-max = 600 -#listen = [address:]port -#connect = host[:port] -#debug = 5 -#uinput = ... -#release = ... -#logfile = ... - -[lircmd] -uinput = False -nodeamon = False diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf b/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf deleted file mode 100644 index 29b03c72a0..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf +++ /dev/null @@ -1,315 +0,0 @@ -# contributed by angelo castello -# -# note: this config file has been deduced starting from the -# raw codes provided to run mode2 utility. -# -# brand: futarque - -begin remote - name futarque - bits 8 - flags SPACE_ENC|CONST_LENGTH - eps 30 - aeps 100 - - header 8048 3898 - one 555 1436 - zero 555 439 - gap 113123 - ptrail 555 - pre_data_bits 8 - pre_data 0x54 - pre 570 3890 - - begin codes - MUTE 0x70 - EXIT 0xA8 - POWER 0xF0 - CHANNEL_UP 0x50 - CHANNEL_DOWN 0xD0 - VOLUME_UP 0x30 - VOLUME_DOWN 0xB0 - OK 0x98 - FAVORITES 0x04 - TEXT 0x68 - EPG 0xC8 - BACK 0x48 - MENU 0x88 - 1 0x00 - 2 0x80 - 3 0x40 - 4 0xC0 - 5 0x20 - 6 0xA0 - 7 0x60 - 8 0xE0 - 9 0x10 - 0 0x90 - PAUSE 0x84 - INFO 0x38 - RED 0xE8 - GREEN 0x08 - YELLOW 0x28 - BLUE 0x78 - UP 0xD8 - DOWN 0xB8 - REWIND 0x44 - FASTFORWARD 0x24 - PLAYPAUSE 0xC4 - STOP 0x64 - RECORD 0xA4 - AUDIO 0xE4 - TAPE 0x14 - DVD 0x94 - CAPITAL_A 0xF8 - CAPITAL_B 0x54 - end codes - -end remote - -# brand: STM PVR-1 - -begin remote - name stm_pvr_1 - bits 16 - flags SPACE_ENC|CONST_LENGTH - eps 30 - aeps 150 - - header 9000 4500 - one 572 1700 - zero 572 572 - ptrail 572 - repeat 9000 2200 - pre_data_bits 16 - pre_data 0xFE - gap 100000 - - begin codes - POWER 0x00ff - FAVORITES 0x7887 - MUTE 0x28d7 - 0 0x708F - 1 0xc03f - 2 0x40bf - 3 0x807f - 4 0xe01f - 5 0x609f - 6 0xa05f - 7 0xd02f - 8 0x50af - 9 0x906f - INFO 0x38c7 - SUBTITLE 0xe817 - MENU 0x9867 - EXIT 0x20df - EPG 0xa857 - BACK 0x48b7 - CURSOR_UP 0x58a7 - CURSOR_DOWN 0xd827 - CURSOR_LEFT 0x8877 - CURSOR_RIGHT 0xb04f - OK 0x10ef - VOLUME_UP 0x22dd - VOLUME_DOWN 0x8a75 - CHANNEL_UP 0x12ed - CHANNEL_DOWN 0x4ab5 - TEXT 0xf00f - RADIO 0x926d - ZOOM 0x6897 - AUDIO 0x08f7 - RED 0x42bd - GREEN 0xa25d - YELLOW 0x827d - BLUE 0x02fd - CUSTOM0 0x52ad - CUSTOM1 0x30cf - PLAY 0x629d - PAUSE 0xb24d - PREVIOUS 0xc837 - NEXT 0xf807 - REWIND 0x32cd - FASTFORWARD 0x0af5 - AUX 0x7a85 - CUSTOM3 0xb847 - PIP 0x3ac5 - SWAP 0xba45 - end codes - -end remote - -# brand: STM DTV-2 - -begin remote - - name stm_dtv_2 - flags SHIFT_ENC|CONST_LENGTH - bits 13 - aeps 150 - - one 850 850 - zero 850 850 - plead 850 - gap 67800 - toggle_bit 2 - - begin codes - POWER 0x100C - FAVORITES 0x1015 - AUX 0x1038 - 1 0x1001 - 2 0x1002 - 3 0x1003 - 4 0x1004 - 5 0x1005 - 6 0x1006 - 7 0x1007 - 8 0x1008 - 9 0x1009 - PERIOD 0x1024 - 0 0x103E - BACK 0x1023 - MENU 0x1016 - INFO 0x100F - EPG 0x101E - EXIT 0x1018 - CURSOR_UP 0x1017 - CURSOR_DOWN 0x101D - CURSOR_LEFT 0x1019 - CURSOR_RIGHT 0x101B - OK 0x101A - VOLUME_UP 0x1010 - VOLUME_DOWN 0x1011 - CHANNEL_UP 0x1020 - CHANNEL_DOWN 0x1021 - TEXT 0x102E - SUBTITLE 0x103C - FREEZE 0x1014 - ZOOM 0x102B - RED 0x1028 - GREEN 0x102A - YELLOW 0x102F - BLUE 0x1030 - CUSTOM10 0x1022 - INTERNET 0x1027 - CUSTOM11 0x102C - AUDIO 0x1025 - RECORD 0x102D - PLAYPAUSE 0x1029 - STOP 0x1026 - CUSTOM1 0x101C - MUTE 0x100d - CUSTOM12 0x101F - PIP 0x100B - SWAP 0x100E - end codes - -end remote - -# brand: Comcast -# model no. of remote control: XR2 -# 32 bits for the pre-date (should be value 0x170F443E) -# width between pre_bits and data: 12900 microseconds -# -# 24 bits for the data (key code) -# To get key REPEAT, XOR 0x088 with KEY value -# There are 8 post bits (both should be zero) -# -# Gap between keys: 8100 microseconds -begin remote - - name Xfinity-XR2 - bits 24 - flags XMP - eps 20 - aeps 300 - - one 0 137 - zero 250 710 - ptrail 250 - pre_data_bits 32 - pre_data 0x170F443E - post_data_bits 8 - post_data 0x0 - pre 250 12921 - gap 81698 - toggle_bit_mask 0x0 - - begin codes - 1 0x1E0001 - 1_repeat 0x168001 - 2 0x1D0002 - 2_repeat 0x158002 - 3 0x1C0003 - 3_repeat 0x148003 - 4 0x1B0004 - 4_repeat 0x138004 - 5 0x1A0005 - 5_repeat 0x128005 - 6 0x190006 - 6_repeat 0x118006 - 7 0x180007 - 7_repeat 0x108007 - 8 0x170008 - 8_repeat 0x1F8008 - 9 0x160009 - 9_repeat 0x1E8009 - 0 0x1F0000 - 0_repeat 0x178000 - OK 0x180025 - OK_repeat 0x108025 - POWER 0x10000F - POWER_repeat 0x18800F - UP 0x1C0021 - UP_repeat 0x148021 - DOWN 0x1B0022 - DOWN_repeat 0x138022 - LEFT 0x1A0023 - LEFT_repeat 0x128023 - RIGHT 0x190024 - RIGHT_repeat 0x118024 - REWIND 0x190033 - REWIND_repeat 0x118033 - PLAY 0x1C0030 - PLAY_repeat 0x148030 - FASTFORWARD 0x180034 - FASTFORWARD_repeat 0x108034 - RECORD 0x170035 - RECORD_repeat 0x1F8035 - REPLAY 0x170053 - REPLAY_repeat 0x1F8053 - A 0x190060 - A_repeat 0x118060 - B 0x180061 - B_repeat 0x108061 - C 0x170062 - C_repeat 0x1F8062 - D 0x160063 - D_repeat 0x1E8063 - PAGE_UP 0x150028 - PAGE_UP_repeat 0x1D8028 - PAGE_DOWN 0x140029 - PAGE_DOWN_repeat 0x1C8029 - GUIDE 0x160027 - GUIDE_repeat 0x1E8027 - MENU 0x1D0020 - MENU_repeat 0x158020 - EXIT 0x13002A - EXIT_repeat 0x1B802A - INFO 0x170026 - INFO_repeat 0x1F8026 - LAST 0x190051 - LAST_repeat 0x118051 - VOLUME_UP 0x15000A - VOLUME_UP_repeat 0x1D800A - CHANNEL_UP 0x12000D - CHANNEL_UP_repeat 0x1A800D - VOLUME_DOWN 0x14000B - VOLUME_DOWN_repeat 0x1C800B - CHANNEL_DOWN 0x11000E - CHANNEL_DOWN_repeat 0x19800E - MUTE 0x13000C - MUTE_repeat 0x1B800D - end codes - -end remote diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircd.init b/meta-oe/recipes-connectivity/lirc/lirc/lircd.init deleted file mode 100644 index 8b124af6f2..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc/lircd.init +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# -# This is an init script for Familiar -# Copy it to /etc/init.d/lircd and type -# > update-rc.d lircd defaults 20 -# - - -test -f /usr/sbin/lircd || exit 0 -test -f /etc/lircd.conf || exit 0 - -case "$1" in - start) - echo -n "Starting lirc daemon: lircd" - start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- --device=/dev/lirc0 - echo "." - ;; - stop) - echo -n "Stopping lirc daemon: lircd" - start-stop-daemon --stop --quiet --exec /usr/sbin/lircd - echo "." - ;; - reload|force-reload) - start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd - ;; - restart) - echo -n "Stopping lirc daemon: lircd" - start-stop-daemon --stop --quiet --exec /usr/sbin/lircd - sleep 1 - echo -n "Starting lirc daemon: lircd" - start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- --device=/dev/lirc0 - echo "." - ;; - *) - echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}" - exit 1 -esac - -exit 0 - diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircd.service b/meta-oe/recipes-connectivity/lirc/lirc/lircd.service deleted file mode 100644 index c8661368bb..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc/lircd.service +++ /dev/null @@ -1,20 +0,0 @@ -[Unit] -Description=LIRC Infrared Signal Decoder -After=network.target - -[Service] -Type=forking -EnvironmentFile=/etc/lirc/lircd.conf -PIDFile=/run/lirc/lircd.pid -ExecStartPre=/bin/mkdir -p /run/lirc -ExecStartPre=/bin/rm -f /dev/lircd -ExecStartPre=/bin/rm -f /run/lirc/lircd -ExecStartPre=/bin/ln -s /run/lirc/lircd /dev/lircd - -ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid --device=/dev/lirc0 - -ExecStopPost=/bin/rm -f /dev/lircd -ExecStopPost=/bin/rm -fR /run/lirc - -[Install] -WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init b/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init deleted file mode 100644 index 3a8c1a306e..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/sh -# -# This is an init script for Familiar -# Copy it to /etc/init.d/lircexecd and type -# > update-rc.d lircexecd defaults 20 -# It must be started after lircd (and it does alphabetically :-) -# irexec reads /etc/lircrc by default - - -test -f /usr/bin/irexec || exit 0 -test -f /etc/lircrc || exit 0 - -case "$1" in - start) - echo -n "Starting lircexec daemon: irexec" - start-stop-daemon --start --quiet --exec /usr/bin/irexec -- --daemon - echo "." - ;; - stop) - echo -n "Stopping lircexec daemon: irexec" - start-stop-daemon --stop --quiet --exec /usr/bin/irexec - echo "." - ;; - restart|force-restart) - echo -n "Stopping lircexec daemon: irexec" - start-stop-daemon --stop --quiet --exec /usr/bin/irexec - sleep 1 - echo -n "Starting lircexec daemon: irexec" - start-stop-daemon --start --quiet --exec /usr/bin/irexec -- --daemon - echo "." - ;; - *) - echo "Usage: /etc/init.d/lircexec {start|stop|reload|restart|force-restart}" - exit 1 -esac - -exit 0 diff --git a/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch b/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch deleted file mode 100644 index 4feea80346..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch +++ /dev/null @@ -1,101 +0,0 @@ -Index: lirc-0.9.4d/daemons/lircrcd.cpp -=================================================================== ---- lirc-0.9.4d.orig/daemons/lircrcd.cpp -+++ lirc-0.9.4d/daemons/lircrcd.cpp -@@ -29,10 +29,12 @@ - #include <sys/un.h> - #include <sys/stat.h> - #include <sys/types.h> -+#include <poll.h> - #include <syslog.h> - - #include "lirc_client.h" - #include "lirc/lirc_log.h" -+#include "lirc/curl_poll.h" - - #define MAX_CLIENTS 100 - #define WHITE_SPACE " \t" -Index: lirc-0.9.4d/lib/curl_poll.c -=================================================================== ---- lirc-0.9.4d.orig/lib/curl_poll.c -+++ lirc-0.9.4d/lib/curl_poll.c -@@ -36,6 +36,7 @@ - #include <stdlib.h> - #include <sys/time.h> - #include <sys/types.h> -+#include <sys/poll.h> - - #include "lirc_log.h" - #include "curl_poll.h" -@@ -67,7 +68,7 @@ static const logchannel_t logchannel = L - - #ifdef HAVE_POLL_FINE - --int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms) -+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms) - { - return poll(ufds, nfds, timeout_ms); - } -@@ -112,7 +113,7 @@ static int verify_sock(int s) - } - - --int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms) -+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms) - { - struct timeval pending_tv; - struct timeval* ptimeout; -Index: lirc-0.9.4d/lib/curl_poll.h -=================================================================== ---- lirc-0.9.4d.orig/lib/curl_poll.h -+++ lirc-0.9.4d/lib/curl_poll.h -@@ -1,5 +1,5 @@ --#ifndef _POLL_H --#define _POLL_H -+#ifndef _LIB_CURL_POLL_H -+#define _LIB_CURL_POLL_H - /*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | -@@ -29,13 +29,9 @@ - extern "C" { - #endif - --#ifdef HAVE_SYS_POLL_H --#include <sys/poll.h> --#else - #include <poll.h> --#endif - --int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms); -+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms); - - #ifdef __cplusplus - } -Index: lirc-0.9.4d/lib/lirc/curl_poll.h -=================================================================== ---- lirc-0.9.4d.orig/lib/lirc/curl_poll.h -+++ lirc-0.9.4d/lib/lirc/curl_poll.h -@@ -1,5 +1,5 @@ --#ifndef _POLL_H --#define _POLL_H -+#ifndef _LIRC_CURL_POLL_H -+#define _LIRC_CURL_POLL_H - /*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | -@@ -29,13 +29,9 @@ - extern "C" { - #endif - --#ifdef HAVE_SYS_POLL_H --#include <sys/poll.h> --#else - #include <poll.h> --#endif - --int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms); -+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms); - - #ifdef __cplusplus - } diff --git a/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb b/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb deleted file mode 100644 index b13163debb..0000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb +++ /dev/null @@ -1,87 +0,0 @@ -DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls." -DESCRIPTION_append_lirc = " This package contains the lirc daemon, libraries and tools." -DESCRIPTION_append_lirc-exec = " This package contains a daemon that runs programs on IR signals." -DESCRIPTION_append_lirc-remotes = " This package contains some config files for remotes." -DESCRIPTION_append_lirc-nslu2example = " This package contains a working config for RC5 remotes and a modified NSLU2." -HOMEPAGE = "http://www.lirc.org" -SECTION = "console/network" -LICENSE = "GPLv2" -DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19" - - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2 \ - file://pollfd.patch \ - file://lircd.service \ - file://lircd.init \ - file://lircexec.init \ - file://lircd.conf \ - file://lirc_options.conf \ - file://lirc.tmpfiles \ -" -SRC_URI[md5sum] = "0d11679cbdd94a5a6da00a8e7231b4bf" -SRC_URI[sha256sum] = "c68f18c35b489b865c0a741d119b136e8702191538cd3551b977a7af6c4e41ab" - -SYSTEMD_PACKAGES = "lirc lirc-exec" -SYSTEMD_SERVICE_${PN} = "lircd.service lircmd.service lircd-setup.service lircd-uinput.service" -SYSTEMD_SERVICE_${PN}-exec = "irexec.service" -SYSTEMD_AUTO_ENABLE_lirc = "enable" -SYSTEMD_AUTO_ENABLE_lirc-exec = "enable" - -inherit autotools pkgconfig systemd python3native - -PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd" -PACKAGECONFIG[x11] = "--with-x,--with-x=no,libx11," - -PACKAGECONFIG ?= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', '', d)} \ -" -CACHED_CONFIGUREVARS = "HAVE_WORKING_POLL=yes" - -#EXTRA_OEMAKE = 'SUBDIRS="lib daemons tools"' -do_install_append() { - install -m 0755 -d ${D}${sysconfdir} - install -m 0755 -d ${D}${sysconfdir}/lirc - install -m 0755 -d ${D}${systemd_unitdir}/system - install -m 0755 -d ${D}${libdir}/tmpfiles.d - install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/ - install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/ - install -m 0644 ${WORKDIR}/lircd.service ${D}${systemd_unitdir}/system/ - install -m 0755 ${WORKDIR}/lircexec.init ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/lirc.tmpfiles ${D}${libdir}/tmpfiles.d/lirc.conf - rm -rf ${D}${libdir}/lirc/plugins/*.la - rmdir ${D}/var/run/lirc ${D}/var/run - chown -R root:root ${D}${datadir}/lirc/contrib -} - -PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python" - -RDEPENDS_${PN} = "bash" -RDEPENDS_${PN}-exec = "${PN}" -RDEPENDS_${PN}-python = "python" - -RRECOMMENDS_lirc = "${PN}-exec ${PN}-plugins" - -FILES_${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs" -FILES_${PN}-contrib = "${datadir}/lirc/contrib" -FILES_${PN}-exec = "${bindir}/irexec ${sysconfdir}/lircexec ${systemd_unitdir}/system/irexec.service" -FILES_${PN} += "${systemd_unitdir}/system/lircexec.init" -FILES_${PN} += "${systemd_unitdir}/system/lircd.service" -FILES_${PN} += "${systemd_unitdir}/system/lircd.socket" -FILES_${PN} += "${libdir}/tmpfiles.d/lirc.conf" -FILES_${PN}-dbg += "${libdir}/lirc/plugins/.debug" -FILES_${PN}-python += "${libdir}/python*/site-packages" - - -INITSCRIPT_PACKAGES = "lirc lirc-exec" -INITSCRIPT_NAME_lirc-exec = "lircexec" -INITSCRIPT_PARAMS_lirc-exec = "defaults 21" - -# this is for distributions that don't use udev -pkg_postinst_${PN}_append() { - if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi -} - -SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch b/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch deleted file mode 100644 index 20f388e890..0000000000 --- a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch +++ /dev/null @@ -1,23 +0,0 @@ -Description: use pkg-config to detect gnutls -Debian: http://bugs.debian.org/529835 -Origin: http://groups.google.com/group/loudmouth-dev/browse_thread/thread/3f78255837048daf# - ---- a/configure.ac.orig 2009-08-16 20:29:36.000000000 +0200 -+++ b/configure.ac 2009-08-16 20:30:43.000000000 +0200 -@@ -146,10 +146,12 @@ AC_ARG_WITH(openssl-libs, - enable_ssl=no - if test "x$ac_ssl" = "xgnutls"; then - dnl Look for GnuTLS -- AM_PATH_LM_LIBGNUTLS($GNUTLS_REQUIRED, have_libgnutls=yes, have_libgnutls=no) -- if test "x$have_libgnutls" = "xyes"; then -- CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" -- LIBS="$LIBS $LIBGNUTLS_LIBS" -+ PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED, have_gnutls=yes, have_gnutls=no) -+ if test "x$have_gnutls" = "xyes"; then -+ AC_SUBST(ASYNCNS_CFLAGS) -+ AC_SUBST(ASYNCNS_LIBS) -+ CFLAGS="$CFLAGS $GNUTLS_CFLAGS" -+ LIBS="$LIBS $GNUTLS_LIBS" - AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.]) - enable_ssl=GnuTLS - else diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch b/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch deleted file mode 100644 index b6c9422e8c..0000000000 --- a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- loudmouth-1.4.3.orig/loudmouth/lm-error.c 2008-10-29 21:48:15.000000000 +0100 -+++ loudmouth-1.4.3/loudmouth/lm-error.c 2012-05-06 08:27:07.455739440 +0200 -@@ -19,7 +19,6 @@ - */ - - #include <config.h> --#include <glib/gerror.h> - #include "lm-error.h" - - /** diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb deleted file mode 100644 index 4f1430b9ec..0000000000 --- a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "Loudmouth is a lightweight and easy-to-use C library for programming with the Jabber protocol." -HOMEPAGE = "http://www.loudmouth-project.org/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=c4f38aef94828f6b280e00d1173be689" - -DEPENDS = "glib-2.0 libcheck openssl libidn" - -inherit gnomebase gtk-doc - -PR = "r2" - -SRC_URI += "file://04-use-pkg-config-for-gnutls.patch \ - file://glib-2.32.patch" - -SRC_URI[archive.md5sum] = "55339ca42494690c3942ee1465a96937" -SRC_URI[archive.sha256sum] = "95a93f5d009b71ea8193d994aa11f311bc330a3efe1b7cd74dc48f11c7f929e3" -GNOME_COMPRESS_TYPE="bz2" - -EXTRA_OECONF = "--with-ssl=openssl" - diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.5.4.bb b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.5.4.bb new file mode 100644 index 0000000000..f67c46b428 --- /dev/null +++ b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.5.4.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Loudmouth is a lightweight and easy-to-use C library for programming with the Jabber protocol." +HOMEPAGE = "http://www.loudmouth-project.org/" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "glib-2.0 libcheck openssl libidn" + +GNOMEBASEBUILDCLASS = "autotools" + +inherit gnomebase gtk-doc + +SRC_URI = "https://github.com/mcabber/${BPN}/releases/download/${PV}/${BP}.tar.bz2" +SRC_URI[sha256sum] = "31cbc91c1fddcc5346b3373b8fb45594e9ea9cc7fe36d0595e8912c47ad94d0d" + +EXTRA_OECONF = "--with-ssl=openssl --with-compile-warnings=no" diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch b/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch deleted file mode 100644 index a3fb0f3eb8..0000000000 --- a/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch +++ /dev/null @@ -1,21 +0,0 @@ -Fixes errors found bt Clang - -| ../../ModemManager-1.6.4/src/mm-bearer-qmi.c:774:50: error: implicit conversion from enumeration type 'MMBearerStatus' to different enumeration type 'MMBearerConnectionStatus' [-Werror,-Wenum-conversion] -| MMBearerConnectionStatus bearer_status = mm_base_bearer_get_status (MM_BASE_BEARER (self)); -| ~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -| 1 error generated. - - -Index: ModemManager-1.6.4/src/mm-bearer-qmi.c -=================================================================== ---- ModemManager-1.6.4.orig/src/mm-bearer-qmi.c -+++ ModemManager-1.6.4/src/mm-bearer-qmi.c -@@ -771,7 +771,7 @@ packet_service_status_indication_cb (Qmi - &connection_status, - NULL, - NULL)) { -- MMBearerConnectionStatus bearer_status = mm_base_bearer_get_status (MM_BASE_BEARER (self)); -+ MMBearerConnectionStatus bearer_status = (MMBearerConnectionStatus)mm_base_bearer_get_status (MM_BASE_BEARER (self)); - - if (connection_status == QMI_WDS_CONNECTION_STATUS_DISCONNECTED && - bearer_status != MM_BEARER_CONNECTION_STATUS_DISCONNECTED && diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.22.0.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.22.0.bb new file mode 100644 index 0000000000..6b4336eb80 --- /dev/null +++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.22.0.bb @@ -0,0 +1,55 @@ +SUMMARY = "ModemManager is a daemon controlling broadband devices/connections" +DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/" +LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +inherit gnomebase gettext systemd gobject-introspection bash-completion + +DEPENDS = "glib-2.0 libgudev libxslt-native dbus" + +SRCREV = "03f786ce66360d67c669f4f122f8aa458e6f01ea" +SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/ModemManager.git;protocol=https;branch=mm-1-22" + +S = "${WORKDIR}/git" + +# strict, permissive +MODEMMANAGER_POLKIT_TYPE ??= "permissive" + +PACKAGECONFIG ??= "vala mbim qmi \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd polkit', d)} \ +" + +PACKAGECONFIG[at] = "-Dat_command_via_dbus=true" +PACKAGECONFIG[systemd] = " \ + -Dsystemdsystemunitdir=${systemd_unitdir}/system/, \ + -Dsystemdsystemunitdir=no -Dsystemd_journal=false -Dsystemd_suspend_resume=false \ +" +PACKAGECONFIG[polkit] = "-Dpolkit=${MODEMMANAGER_POLKIT_TYPE},-Dpolkit=no,polkit" +# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol. +PACKAGECONFIG[mbim] = "-Dmbim=true,-Dmbim=false -Dplugin_dell=disabled -Dplugin_foxconn=disabled,libmbim" +# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol. +PACKAGECONFIG[qmi] = "-Dqmi=true,-Dqmi=false,libqmi" +PACKAGECONFIG[qrtr] = "-Dqrtr=true,-Dqrtr=false,libqrtr-glib" +PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false" + +inherit upstream-version-is-even ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)} + +EXTRA_OEMESON = " \ + -Dudevdir=${nonarch_base_libdir}/udev \ + -Dqrtr=false \ +" + +FILES:${PN} += " \ + ${datadir}/icons \ + ${datadir}/polkit-1 \ + ${datadir}/dbus-1 \ + ${datadir}/ModemManager \ + ${libdir}/ModemManager \ + ${systemd_unitdir}/system \ +" + +SYSTEMD_SERVICE:${PN} = "ModemManager.service" diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb deleted file mode 100644 index e60cd4b741..0000000000 --- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "ModemManager is a daemon controlling broadband devices/connections" -DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/" -LICENSE = "GPL-2.0 & LGPL-2.1" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -inherit gnomebase gettext systemd vala gobject-introspection bash-completion - -DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native" - -SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \ - file://enum-conversion.patch \ -" -SRC_URI[md5sum] = "06488186c7dd53f8104183b86f7a1568" -SRC_URI[sha256sum] = "cdd5b4cb1e4d7643643a28ccbfc4bb354bfa9cb89a77ea160ebdf7926171c668" - -S = "${WORKDIR}/ModemManager-${PV}" - -PACKAGECONFIG ??= "mbim qmi polkit \ - ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ -" - -PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,," -PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit" -# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol. -PACKAGECONFIG[mbim] = "--with-mbim,--enable-mbim=no,libmbim" -# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol. -PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi" - -FILES_${PN} += " \ - ${datadir}/icons \ - ${datadir}/polkit-1 \ - ${datadir}/dbus-1 \ - ${libdir}/ModemManager \ - ${systemd_unitdir}/system \ -" - -FILES_${PN}-dev += " \ - ${libdir}/ModemManager/*.la \ -" - -FILES_${PN}-staticdev += " \ - ${libdir}/ModemManager/*.a \ -" - -FILES_${PN}-dbg += "${libdir}/ModemManager/.debug" - -SYSTEMD_SERVICE_${PN} = "ModemManager.service" diff --git a/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch b/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch new file mode 100644 index 0000000000..088124391c --- /dev/null +++ b/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch @@ -0,0 +1,63 @@ +From d9a1a6aac5a3b270449d09ec0d2a556807ab9287 Mon Sep 17 00:00:00 2001 +From: Xiangyu Chen <xiangyu.chen@windriver.com> +Date: Wed, 29 Mar 2023 13:53:44 +0800 +Subject: [PATCH] configure.ac: add support of protobuf 4.22.x + +the protobuf 4.22x is using c++14 as default, this caused the mosh cannot compile anymore and report following error: + +.... +/usr/include/google/protobuf/port_def.inc:200:15: error: static assertion failed: Protobuf only supports C++14 and newer. +| 200 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer."); +| | ^~~~~~~~~~~~~~~~~~~~~~ +.... + +Upstream-Status: Pending [https://github.com/mobile-shell/mosh/pull/1266] + +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +--- + configure.ac | 8 ++++++++ + src/frontend/Makefile.am | 2 +- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ee70c7b..5457009 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -26,6 +26,10 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + AS_IF([pkg-config --atleast-version 3.6.0 protobuf], + [AX_CXX_COMPILE_STDCXX([11])]) + ++# If current protobuf 4.22+ update the requires to C++14. ++AS_IF([pkg-config --atleast-version 4.22.0 protobuf], ++ [AX_CXX_COMPILE_STDCXX([14])]) ++ + WARNING_CXXFLAGS="" + PICKY_CXXFLAGS="" + DISTCHECK_CXXFLAGS="" +@@ -311,6 +315,10 @@ AC_CHECK_FUNCS(m4_normalize([ + pledge + ])) + ++AS_IF([pkg-config --atleast-version 4.22.0 protobuf], ++ [PKG_CHECK_MODULES([ABSL_LOG_INTERNAL_CHECK_OP], [absl_log_internal_check_op],[], ++ [AC_MSG_ERROR([Missing abseil-cpp library.])])]) ++ + # Start by trying to find the needed tinfo parts by pkg-config + PKG_CHECK_MODULES([TINFO], [tinfo], + [AC_DEFINE([HAVE_CURSES_H], [1], [Define to 1 if <curses.h> is present])], +diff --git a/src/frontend/Makefile.am b/src/frontend/Makefile.am +index 1aa83fd..399ecd6 100644 +--- a/src/frontend/Makefile.am ++++ b/src/frontend/Makefile.am +@@ -1,7 +1,7 @@ + AM_CPPFLAGS = -I$(srcdir)/../statesync -I$(srcdir)/../terminal -I$(srcdir)/../network -I$(srcdir)/../crypto -I../protobufs -I$(srcdir)/../util $(TINFO_CFLAGS) $(protobuf_CFLAGS) $(CRYPTO_CFLAGS) + AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS) $(CODE_COVERAGE_CXXFLAGS) + AM_LDFLAGS = $(HARDEN_LDFLAGS) $(CODE_COVERAGE_LIBS) +-LDADD = ../crypto/libmoshcrypto.a ../network/libmoshnetwork.a ../statesync/libmoshstatesync.a ../terminal/libmoshterminal.a ../util/libmoshutil.a ../protobufs/libmoshprotos.a -lm $(TINFO_LIBS) $(protobuf_LIBS) $(CRYPTO_LIBS) ++LDADD = ../crypto/libmoshcrypto.a ../network/libmoshnetwork.a ../statesync/libmoshstatesync.a ../terminal/libmoshterminal.a ../util/libmoshutil.a ../protobufs/libmoshprotos.a -lm $(TINFO_LIBS) $(protobuf_LIBS) $(CRYPTO_LIBS) $(ABSL_LOG_INTERNAL_CHECK_OP_LIBS) + + mosh_server_LDADD = $(LDADD) + +-- +2.34.1 + diff --git a/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb b/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb index 9fc8435ee6..693ec12d3c 100644 --- a/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb +++ b/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb @@ -9,19 +9,21 @@ editing of user keystrokes. Mosh is a replacement for SSH. It's more \ robust and responsive, especially over Wi-Fi, cellular, and \ long-distance links." HOMEPAGE = "http://mosh.mit.edu" -LICENSE = "GPLv3+" +LICENSE = "GPL-3.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter" +DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter abseil-cpp" -SRC_URI = "http://mosh.mit.edu/mosh-${PV}.tar.gz" -SRC_URI[md5sum] = "d961276995936953bf2d5a794068b076" -SRC_URI[sha256sum] = "320e12f461e55d71566597976bd9440ba6c5265fa68fbf614c6f1c8401f93376" +SRC_URI = "https://mosh.org/${BP}.tar.gz \ + file://0001-configure.ac-add-support-of-protobuf-4.22.x.patch \ + " + +SRC_URI[sha256sum] = "872e4b134e5df29c8933dff12350785054d2fd2839b5ae6b5587b14db1465ddd" inherit autotools pkgconfig PACKAGE_BEFORE_PN += "${PN}-server" -FILES_${PN}-server = "${bindir}/mosh-server" +FILES:${PN}-server = "${bindir}/mosh-server" NEEDED_PERL_MODULES = "\ perl-module-socket \ @@ -32,9 +34,9 @@ NEEDED_PERL_MODULES = "\ " # mosh uses SSH to authenticate and the client uses OpenSSH-specific features -RDEPENDS_${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}" +RDEPENDS:${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}" # The server seemed not to work with dropbear either -RDEPENDS_${PN}-server += "openssh-sshd ${NEEDED_PERL_MODULES}" +RDEPENDS:${PN}-server += "openssh-sshd" # Fails to build with thumb-1 (qemuarm) #| {standard input}: Assembler messages: @@ -44,3 +46,5 @@ RDEPENDS_${PN}-server += "openssh-sshd ${NEEDED_PERL_MODULES}" #| {standard input}:2103: Error: instruction not supported in Thumb16 mode -- `adcs r7,r7,r7' #| {standard input}:2104: Error: selected processor does not support Thumb mode `it cs' ARM_INSTRUCTION_SET = "arm" + +CXXFLAGS:append = " -std=c++17" diff --git a/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch b/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch deleted file mode 100644 index a5aa277a08..0000000000 --- a/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0be38301249d797ec1f59071cc868ceda6d4720a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com> -Date: Tue, 12 Apr 2016 12:50:32 +0100 -Subject: [PATCH 1/2] config.mk: allow prefix / mandir / localedir from - environment -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We want to control them using OE environment variables. - -Upstream-Status: Inappropriate [embedded-specific] -Signed-off-by: André Draszik <andre.draszik@jci.com> ---- - config.mk | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/config.mk b/config.mk -index 71f17e5..81d9702 100644 ---- a/config.mk -+++ b/config.mk -@@ -249,7 +249,7 @@ ifeq ($(WITH_DOCS),yes) - endif - - INSTALL?=install --prefix=/usr/local --mandir=${prefix}/share/man --localedir=${prefix}/share/locale -+prefix?=/usr/local -+mandir?=${prefix}/share/man -+localedir?=${prefix}/share/locale - STRIP?=strip --- -2.15.1 - diff --git a/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch b/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch deleted file mode 100644 index c89dfe6bef..0000000000 --- a/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch +++ /dev/null @@ -1,975 +0,0 @@ -From d9aeef8d95a325942cc92f4d72415771d75d904c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com> -Date: Tue, 12 Apr 2016 13:05:10 +0100 -Subject: [PATCH 2/2] uthash: remove in-tree version -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We don't need it as we want to use the version provided by -meta-oe instead. - -Upstream-Status: Inappropriate [embedded-specific] -Signed-off-by: André Draszik <andre.draszik@jci.com> ---- - src/uthash.h | 948 ----------------------------------------------------------- - 1 file changed, 948 deletions(-) - delete mode 100644 src/uthash.h - -diff --git a/src/uthash.h b/src/uthash.h -deleted file mode 100644 -index 915a825..0000000 ---- a/src/uthash.h -+++ /dev/null -@@ -1,948 +0,0 @@ --/* --Copyright (c) 2003-2013, Troy D. Hanson http://troydhanson.github.com/uthash/ --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. -- --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. --*/ -- --#ifndef UTHASH_H --#define UTHASH_H -- --#include <string.h> /* memcmp,strlen */ --#include <stddef.h> /* ptrdiff_t */ --#include <stdlib.h> /* exit() */ -- --/* These macros use decltype or the earlier __typeof GNU extension. -- As decltype is only available in newer compilers (VS2010 or gcc 4.3+ -- when compiling c++ source) this code uses whatever method is needed -- or, for VS2008 where neither is available, uses casting workarounds. */ --#ifdef _MSC_VER /* MS compiler */ --#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */ --#define DECLTYPE(x) (decltype(x)) --#else /* VS2008 or older (or VS2010 in C mode) */ --#define NO_DECLTYPE --#define DECLTYPE(x) --#endif --#else /* GNU, Sun and other compilers */ --#define DECLTYPE(x) (__typeof(x)) --#endif -- --#ifdef NO_DECLTYPE --#define DECLTYPE_ASSIGN(dst,src) \ --do { \ -- char **_da_dst = (char**)(&(dst)); \ -- *_da_dst = (char*)(src); \ --} while(0) --#else --#define DECLTYPE_ASSIGN(dst,src) \ --do { \ -- (dst) = DECLTYPE(dst)(src); \ --} while(0) --#endif -- --/* a number of the hash function use uint32_t which isn't defined on win32 */ --#ifdef _MSC_VER --typedef unsigned int uint32_t; --typedef unsigned char uint8_t; --#else --#include <inttypes.h> /* uint32_t */ --#endif -- --#define UTHASH_VERSION 1.9.8 -- --#ifndef uthash_fatal --#define uthash_fatal(msg) exit(-1) /* fatal error (out of memory,etc) */ --#endif --#ifndef uthash_malloc --#define uthash_malloc(sz) malloc(sz) /* malloc fcn */ --#endif --#ifndef uthash_free --#define uthash_free(ptr,sz) free(ptr) /* free fcn */ --#endif -- --#ifndef uthash_noexpand_fyi --#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */ --#endif --#ifndef uthash_expand_fyi --#define uthash_expand_fyi(tbl) /* can be defined to log expands */ --#endif -- --/* initial number of buckets */ --#define HASH_INITIAL_NUM_BUCKETS 32 /* initial number of buckets */ --#define HASH_INITIAL_NUM_BUCKETS_LOG2 5 /* lg2 of initial number of buckets */ --#define HASH_BKT_CAPACITY_THRESH 10 /* expand when bucket count reaches */ -- --/* calculate the element whose hash handle address is hhe */ --#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho))) -- --#define HASH_FIND(hh,head,keyptr,keylen,out) \ --do { \ -- unsigned _hf_bkt,_hf_hashv; \ -- out=NULL; \ -- if (head) { \ -- HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \ -- if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \ -- HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \ -- keyptr,keylen,out); \ -- } \ -- } \ --} while (0) -- --#ifdef HASH_BLOOM --#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM) --#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0) --#define HASH_BLOOM_MAKE(tbl) \ --do { \ -- (tbl)->bloom_nbits = HASH_BLOOM; \ -- (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \ -- if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \ -- memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \ -- (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \ --} while (0) -- --#define HASH_BLOOM_FREE(tbl) \ --do { \ -- uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ --} while (0) -- --#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8))) --#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8))) -- --#define HASH_BLOOM_ADD(tbl,hashv) \ -- HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1))) -- --#define HASH_BLOOM_TEST(tbl,hashv) \ -- HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1))) -- --#else --#define HASH_BLOOM_MAKE(tbl) --#define HASH_BLOOM_FREE(tbl) --#define HASH_BLOOM_ADD(tbl,hashv) --#define HASH_BLOOM_TEST(tbl,hashv) (1) --#define HASH_BLOOM_BYTELEN 0 --#endif -- --#define HASH_MAKE_TABLE(hh,head) \ --do { \ -- (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \ -- sizeof(UT_hash_table)); \ -- if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \ -- memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \ -- (head)->hh.tbl->tail = &((head)->hh); \ -- (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \ -- (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \ -- (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \ -- (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \ -- HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ -- if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \ -- memset((head)->hh.tbl->buckets, 0, \ -- HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ -- HASH_BLOOM_MAKE((head)->hh.tbl); \ -- (head)->hh.tbl->signature = HASH_SIGNATURE; \ --} while(0) -- --#define HASH_ADD(hh,head,fieldname,keylen_in,add) \ -- HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add) -- --#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \ --do { \ -- replaced=NULL; \ -- HASH_FIND(hh,head,&((add)->fieldname),keylen_in,replaced); \ -- if (replaced!=NULL) { \ -- HASH_DELETE(hh,head,replaced); \ -- }; \ -- HASH_ADD(hh,head,fieldname,keylen_in,add); \ --} while(0) -- --#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \ --do { \ -- unsigned _ha_bkt; \ -- (add)->hh.next = NULL; \ -- (add)->hh.key = (char*)keyptr; \ -- (add)->hh.keylen = (unsigned)keylen_in; \ -- if (!(head)) { \ -- head = (add); \ -- (head)->hh.prev = NULL; \ -- HASH_MAKE_TABLE(hh,head); \ -- } else { \ -- (head)->hh.tbl->tail->next = (add); \ -- (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \ -- (head)->hh.tbl->tail = &((add)->hh); \ -- } \ -- (head)->hh.tbl->num_items++; \ -- (add)->hh.tbl = (head)->hh.tbl; \ -- HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \ -- (add)->hh.hashv, _ha_bkt); \ -- HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \ -- HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \ -- HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \ -- HASH_FSCK(hh,head); \ --} while(0) -- --#define HASH_TO_BKT( hashv, num_bkts, bkt ) \ --do { \ -- bkt = ((hashv) & ((num_bkts) - 1)); \ --} while(0) -- --/* delete "delptr" from the hash table. -- * "the usual" patch-up process for the app-order doubly-linked-list. -- * The use of _hd_hh_del below deserves special explanation. -- * These used to be expressed using (delptr) but that led to a bug -- * if someone used the same symbol for the head and deletee, like -- * HASH_DELETE(hh,users,users); -- * We want that to work, but by changing the head (users) below -- * we were forfeiting our ability to further refer to the deletee (users) -- * in the patch-up process. Solution: use scratch space to -- * copy the deletee pointer, then the latter references are via that -- * scratch pointer rather than through the repointed (users) symbol. -- */ --#define HASH_DELETE(hh,head,delptr) \ --do { \ -- unsigned _hd_bkt; \ -- struct UT_hash_handle *_hd_hh_del; \ -- if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \ -- uthash_free((head)->hh.tbl->buckets, \ -- (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \ -- HASH_BLOOM_FREE((head)->hh.tbl); \ -- uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ -- head = NULL; \ -- } else { \ -- _hd_hh_del = &((delptr)->hh); \ -- if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \ -- (head)->hh.tbl->tail = \ -- (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \ -- (head)->hh.tbl->hho); \ -- } \ -- if ((delptr)->hh.prev) { \ -- ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \ -- (head)->hh.tbl->hho))->next = (delptr)->hh.next; \ -- } else { \ -- DECLTYPE_ASSIGN(head,(delptr)->hh.next); \ -- } \ -- if (_hd_hh_del->next) { \ -- ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next + \ -- (head)->hh.tbl->hho))->prev = \ -- _hd_hh_del->prev; \ -- } \ -- HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \ -- HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \ -- (head)->hh.tbl->num_items--; \ -- } \ -- HASH_FSCK(hh,head); \ --} while (0) -- -- --/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */ --#define HASH_FIND_STR(head,findstr,out) \ -- HASH_FIND(hh,head,findstr,strlen(findstr),out) --#define HASH_ADD_STR(head,strfield,add) \ -- HASH_ADD(hh,head,strfield,strlen(add->strfield),add) --#define HASH_REPLACE_STR(head,strfield,add,replaced) \ -- HASH_REPLACE(hh,head,strfield,strlen(add->strfield),add,replaced) --#define HASH_FIND_INT(head,findint,out) \ -- HASH_FIND(hh,head,findint,sizeof(int),out) --#define HASH_ADD_INT(head,intfield,add) \ -- HASH_ADD(hh,head,intfield,sizeof(int),add) --#define HASH_REPLACE_INT(head,intfield,add,replaced) \ -- HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced) --#define HASH_FIND_PTR(head,findptr,out) \ -- HASH_FIND(hh,head,findptr,sizeof(void *),out) --#define HASH_ADD_PTR(head,ptrfield,add) \ -- HASH_ADD(hh,head,ptrfield,sizeof(void *),add) --#define HASH_REPLACE_PTR(head,ptrfield,add) \ -- HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced) --#define HASH_DEL(head,delptr) \ -- HASH_DELETE(hh,head,delptr) -- --/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined. -- * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined. -- */ --#ifdef HASH_DEBUG --#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0) --#define HASH_FSCK(hh,head) \ --do { \ -- unsigned _bkt_i; \ -- unsigned _count, _bkt_count; \ -- char *_prev; \ -- struct UT_hash_handle *_thh; \ -- if (head) { \ -- _count = 0; \ -- for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \ -- _bkt_count = 0; \ -- _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \ -- _prev = NULL; \ -- while (_thh) { \ -- if (_prev != (char*)(_thh->hh_prev)) { \ -- HASH_OOPS("invalid hh_prev %p, actual %p\n", \ -- _thh->hh_prev, _prev ); \ -- } \ -- _bkt_count++; \ -- _prev = (char*)(_thh); \ -- _thh = _thh->hh_next; \ -- } \ -- _count += _bkt_count; \ -- if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \ -- HASH_OOPS("invalid bucket count %d, actual %d\n", \ -- (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \ -- } \ -- } \ -- if (_count != (head)->hh.tbl->num_items) { \ -- HASH_OOPS("invalid hh item count %d, actual %d\n", \ -- (head)->hh.tbl->num_items, _count ); \ -- } \ -- /* traverse hh in app order; check next/prev integrity, count */ \ -- _count = 0; \ -- _prev = NULL; \ -- _thh = &(head)->hh; \ -- while (_thh) { \ -- _count++; \ -- if (_prev !=(char*)(_thh->prev)) { \ -- HASH_OOPS("invalid prev %p, actual %p\n", \ -- _thh->prev, _prev ); \ -- } \ -- _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \ -- _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \ -- (head)->hh.tbl->hho) : NULL ); \ -- } \ -- if (_count != (head)->hh.tbl->num_items) { \ -- HASH_OOPS("invalid app item count %d, actual %d\n", \ -- (head)->hh.tbl->num_items, _count ); \ -- } \ -- } \ --} while (0) --#else --#define HASH_FSCK(hh,head) --#endif -- --/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to -- * the descriptor to which this macro is defined for tuning the hash function. -- * The app can #include <unistd.h> to get the prototype for write(2). */ --#ifdef HASH_EMIT_KEYS --#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \ --do { \ -- unsigned _klen = fieldlen; \ -- write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \ -- write(HASH_EMIT_KEYS, keyptr, fieldlen); \ --} while (0) --#else --#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) --#endif -- --/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */ --#ifdef HASH_FUNCTION --#define HASH_FCN HASH_FUNCTION --#else --#define HASH_FCN HASH_JEN --#endif -- --/* The Bernstein hash function, used in Perl prior to v5.6 */ --#define HASH_BER(key,keylen,num_bkts,hashv,bkt) \ --do { \ -- unsigned _hb_keylen=keylen; \ -- char *_hb_key=(char*)(key); \ -- (hashv) = 0; \ -- while (_hb_keylen--) { (hashv) = ((hashv) * 33) + *_hb_key++; } \ -- bkt = (hashv) & (num_bkts-1); \ --} while (0) -- -- --/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at -- * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */ --#define HASH_SAX(key,keylen,num_bkts,hashv,bkt) \ --do { \ -- unsigned _sx_i; \ -- char *_hs_key=(char*)(key); \ -- hashv = 0; \ -- for(_sx_i=0; _sx_i < keylen; _sx_i++) \ -- hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \ -- bkt = hashv & (num_bkts-1); \ --} while (0) -- --#define HASH_FNV(key,keylen,num_bkts,hashv,bkt) \ --do { \ -- unsigned _fn_i; \ -- char *_hf_key=(char*)(key); \ -- hashv = 2166136261UL; \ -- for(_fn_i=0; _fn_i < keylen; _fn_i++) \ -- hashv = (hashv * 16777619) ^ _hf_key[_fn_i]; \ -- bkt = hashv & (num_bkts-1); \ --} while(0) -- --#define HASH_OAT(key,keylen,num_bkts,hashv,bkt) \ --do { \ -- unsigned _ho_i; \ -- char *_ho_key=(char*)(key); \ -- hashv = 0; \ -- for(_ho_i=0; _ho_i < keylen; _ho_i++) { \ -- hashv += _ho_key[_ho_i]; \ -- hashv += (hashv << 10); \ -- hashv ^= (hashv >> 6); \ -- } \ -- hashv += (hashv << 3); \ -- hashv ^= (hashv >> 11); \ -- hashv += (hashv << 15); \ -- bkt = hashv & (num_bkts-1); \ --} while(0) -- --#define HASH_JEN_MIX(a,b,c) \ --do { \ -- a -= b; a -= c; a ^= ( c >> 13 ); \ -- b -= c; b -= a; b ^= ( a << 8 ); \ -- c -= a; c -= b; c ^= ( b >> 13 ); \ -- a -= b; a -= c; a ^= ( c >> 12 ); \ -- b -= c; b -= a; b ^= ( a << 16 ); \ -- c -= a; c -= b; c ^= ( b >> 5 ); \ -- a -= b; a -= c; a ^= ( c >> 3 ); \ -- b -= c; b -= a; b ^= ( a << 10 ); \ -- c -= a; c -= b; c ^= ( b >> 15 ); \ --} while (0) -- --#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \ --do { \ -- unsigned _hj_i,_hj_j,_hj_k; \ -- unsigned char *_hj_key=(unsigned char*)(key); \ -- hashv = 0xfeedbeef; \ -- _hj_i = _hj_j = 0x9e3779b9; \ -- _hj_k = (unsigned)keylen; \ -- while (_hj_k >= 12) { \ -- _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \ -- + ( (unsigned)_hj_key[2] << 16 ) \ -- + ( (unsigned)_hj_key[3] << 24 ) ); \ -- _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \ -- + ( (unsigned)_hj_key[6] << 16 ) \ -- + ( (unsigned)_hj_key[7] << 24 ) ); \ -- hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \ -- + ( (unsigned)_hj_key[10] << 16 ) \ -- + ( (unsigned)_hj_key[11] << 24 ) ); \ -- \ -- HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ -- \ -- _hj_key += 12; \ -- _hj_k -= 12; \ -- } \ -- hashv += keylen; \ -- switch ( _hj_k ) { \ -- case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \ -- case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \ -- case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \ -- case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \ -- case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \ -- case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \ -- case 5: _hj_j += _hj_key[4]; \ -- case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \ -- case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \ -- case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \ -- case 1: _hj_i += _hj_key[0]; \ -- } \ -- HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ -- bkt = hashv & (num_bkts-1); \ --} while(0) -- --/* The Paul Hsieh hash function */ --#undef get16bits --#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ -- || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) --#define get16bits(d) (*((const uint16_t *) (d))) --#endif -- --#if !defined (get16bits) --#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \ -- +(uint32_t)(((const uint8_t *)(d))[0]) ) --#endif --#define HASH_SFH(key,keylen,num_bkts,hashv,bkt) \ --do { \ -- unsigned char *_sfh_key=(unsigned char*)(key); \ -- uint32_t _sfh_tmp, _sfh_len = keylen; \ -- \ -- int _sfh_rem = _sfh_len & 3; \ -- _sfh_len >>= 2; \ -- hashv = 0xcafebabe; \ -- \ -- /* Main loop */ \ -- for (;_sfh_len > 0; _sfh_len--) { \ -- hashv += get16bits (_sfh_key); \ -- _sfh_tmp = (uint32_t)(get16bits (_sfh_key+2)) << 11 ^ hashv; \ -- hashv = (hashv << 16) ^ _sfh_tmp; \ -- _sfh_key += 2*sizeof (uint16_t); \ -- hashv += hashv >> 11; \ -- } \ -- \ -- /* Handle end cases */ \ -- switch (_sfh_rem) { \ -- case 3: hashv += get16bits (_sfh_key); \ -- hashv ^= hashv << 16; \ -- hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)] << 18); \ -- hashv += hashv >> 11; \ -- break; \ -- case 2: hashv += get16bits (_sfh_key); \ -- hashv ^= hashv << 11; \ -- hashv += hashv >> 17; \ -- break; \ -- case 1: hashv += *_sfh_key; \ -- hashv ^= hashv << 10; \ -- hashv += hashv >> 1; \ -- } \ -- \ -- /* Force "avalanching" of final 127 bits */ \ -- hashv ^= hashv << 3; \ -- hashv += hashv >> 5; \ -- hashv ^= hashv << 4; \ -- hashv += hashv >> 17; \ -- hashv ^= hashv << 25; \ -- hashv += hashv >> 6; \ -- bkt = hashv & (num_bkts-1); \ --} while(0) -- --#ifdef HASH_USING_NO_STRICT_ALIASING --/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads. -- * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error. -- * MurmurHash uses the faster approach only on CPU's where we know it's safe. -- * -- * Note the preprocessor built-in defines can be emitted using: -- * -- * gcc -m64 -dM -E - < /dev/null (on gcc) -- * cc -## a.c (where a.c is a simple test file) (Sun Studio) -- */ --#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86)) --#define MUR_GETBLOCK(p,i) p[i] --#else /* non intel */ --#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0) --#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1) --#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2) --#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3) --#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL)) --#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__)) --#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24)) --#define MUR_TWO_TWO(p) ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16)) --#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >> 8)) --#else /* assume little endian non-intel */ --#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24)) --#define MUR_TWO_TWO(p) ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16)) --#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) << 8)) --#endif --#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) : \ -- (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \ -- (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) : \ -- MUR_ONE_THREE(p)))) --#endif --#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r)))) --#define MUR_FMIX(_h) \ --do { \ -- _h ^= _h >> 16; \ -- _h *= 0x85ebca6b; \ -- _h ^= _h >> 13; \ -- _h *= 0xc2b2ae35l; \ -- _h ^= _h >> 16; \ --} while(0) -- --#define HASH_MUR(key,keylen,num_bkts,hashv,bkt) \ --do { \ -- const uint8_t *_mur_data = (const uint8_t*)(key); \ -- const int _mur_nblocks = (keylen) / 4; \ -- uint32_t _mur_h1 = 0xf88D5353; \ -- uint32_t _mur_c1 = 0xcc9e2d51; \ -- uint32_t _mur_c2 = 0x1b873593; \ -- uint32_t _mur_k1 = 0; \ -- const uint8_t *_mur_tail; \ -- const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \ -- int _mur_i; \ -- for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) { \ -- _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i); \ -- _mur_k1 *= _mur_c1; \ -- _mur_k1 = MUR_ROTL32(_mur_k1,15); \ -- _mur_k1 *= _mur_c2; \ -- \ -- _mur_h1 ^= _mur_k1; \ -- _mur_h1 = MUR_ROTL32(_mur_h1,13); \ -- _mur_h1 = _mur_h1*5+0xe6546b64; \ -- } \ -- _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4); \ -- _mur_k1=0; \ -- switch((keylen) & 3) { \ -- case 3: _mur_k1 ^= _mur_tail[2] << 16; \ -- case 2: _mur_k1 ^= _mur_tail[1] << 8; \ -- case 1: _mur_k1 ^= _mur_tail[0]; \ -- _mur_k1 *= _mur_c1; \ -- _mur_k1 = MUR_ROTL32(_mur_k1,15); \ -- _mur_k1 *= _mur_c2; \ -- _mur_h1 ^= _mur_k1; \ -- } \ -- _mur_h1 ^= (keylen); \ -- MUR_FMIX(_mur_h1); \ -- hashv = _mur_h1; \ -- bkt = hashv & (num_bkts-1); \ --} while(0) --#endif /* HASH_USING_NO_STRICT_ALIASING */ -- --/* key comparison function; return 0 if keys equal */ --#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) -- --/* iterate over items in a known bucket to find desired item */ --#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \ --do { \ -- if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \ -- else out=NULL; \ -- while (out) { \ -- if ((out)->hh.keylen == keylen_in) { \ -- if ((HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break; \ -- } \ -- if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \ -- else out = NULL; \ -- } \ --} while(0) -- --/* add an item to a bucket */ --#define HASH_ADD_TO_BKT(head,addhh) \ --do { \ -- head.count++; \ -- (addhh)->hh_next = head.hh_head; \ -- (addhh)->hh_prev = NULL; \ -- if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \ -- (head).hh_head=addhh; \ -- if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH) \ -- && (addhh)->tbl->noexpand != 1) { \ -- HASH_EXPAND_BUCKETS((addhh)->tbl); \ -- } \ --} while(0) -- --/* remove an item from a given bucket */ --#define HASH_DEL_IN_BKT(hh,head,hh_del) \ -- (head).count--; \ -- if ((head).hh_head == hh_del) { \ -- (head).hh_head = hh_del->hh_next; \ -- } \ -- if (hh_del->hh_prev) { \ -- hh_del->hh_prev->hh_next = hh_del->hh_next; \ -- } \ -- if (hh_del->hh_next) { \ -- hh_del->hh_next->hh_prev = hh_del->hh_prev; \ -- } -- --/* Bucket expansion has the effect of doubling the number of buckets -- * and redistributing the items into the new buckets. Ideally the -- * items will distribute more or less evenly into the new buckets -- * (the extent to which this is true is a measure of the quality of -- * the hash function as it applies to the key domain). -- * -- * With the items distributed into more buckets, the chain length -- * (item count) in each bucket is reduced. Thus by expanding buckets -- * the hash keeps a bound on the chain length. This bounded chain -- * length is the essence of how a hash provides constant time lookup. -- * -- * The calculation of tbl->ideal_chain_maxlen below deserves some -- * explanation. First, keep in mind that we're calculating the ideal -- * maximum chain length based on the *new* (doubled) bucket count. -- * In fractions this is just n/b (n=number of items,b=new num buckets). -- * Since the ideal chain length is an integer, we want to calculate -- * ceil(n/b). We don't depend on floating point arithmetic in this -- * hash, so to calculate ceil(n/b) with integers we could write -- * -- * ceil(n/b) = (n/b) + ((n%b)?1:0) -- * -- * and in fact a previous version of this hash did just that. -- * But now we have improved things a bit by recognizing that b is -- * always a power of two. We keep its base 2 log handy (call it lb), -- * so now we can write this with a bit shift and logical AND: -- * -- * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0) -- * -- */ --#define HASH_EXPAND_BUCKETS(tbl) \ --do { \ -- unsigned _he_bkt; \ -- unsigned _he_bkt_i; \ -- struct UT_hash_handle *_he_thh, *_he_hh_nxt; \ -- UT_hash_bucket *_he_new_buckets, *_he_newbkt; \ -- _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \ -- 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ -- if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \ -- memset(_he_new_buckets, 0, \ -- 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ -- tbl->ideal_chain_maxlen = \ -- (tbl->num_items >> (tbl->log2_num_buckets+1)) + \ -- ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \ -- tbl->nonideal_items = 0; \ -- for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \ -- { \ -- _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \ -- while (_he_thh) { \ -- _he_hh_nxt = _he_thh->hh_next; \ -- HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \ -- _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \ -- if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \ -- tbl->nonideal_items++; \ -- _he_newbkt->expand_mult = _he_newbkt->count / \ -- tbl->ideal_chain_maxlen; \ -- } \ -- _he_thh->hh_prev = NULL; \ -- _he_thh->hh_next = _he_newbkt->hh_head; \ -- if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \ -- _he_thh; \ -- _he_newbkt->hh_head = _he_thh; \ -- _he_thh = _he_hh_nxt; \ -- } \ -- } \ -- uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \ -- tbl->num_buckets *= 2; \ -- tbl->log2_num_buckets++; \ -- tbl->buckets = _he_new_buckets; \ -- tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \ -- (tbl->ineff_expands+1) : 0; \ -- if (tbl->ineff_expands > 1) { \ -- tbl->noexpand=1; \ -- uthash_noexpand_fyi(tbl); \ -- } \ -- uthash_expand_fyi(tbl); \ --} while(0) -- -- --/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */ --/* Note that HASH_SORT assumes the hash handle name to be hh. -- * HASH_SRT was added to allow the hash handle name to be passed in. */ --#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn) --#define HASH_SRT(hh,head,cmpfcn) \ --do { \ -- unsigned _hs_i; \ -- unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \ -- struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \ -- if (head) { \ -- _hs_insize = 1; \ -- _hs_looping = 1; \ -- _hs_list = &((head)->hh); \ -- while (_hs_looping) { \ -- _hs_p = _hs_list; \ -- _hs_list = NULL; \ -- _hs_tail = NULL; \ -- _hs_nmerges = 0; \ -- while (_hs_p) { \ -- _hs_nmerges++; \ -- _hs_q = _hs_p; \ -- _hs_psize = 0; \ -- for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \ -- _hs_psize++; \ -- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ -- ((void*)((char*)(_hs_q->next) + \ -- (head)->hh.tbl->hho)) : NULL); \ -- if (! (_hs_q) ) break; \ -- } \ -- _hs_qsize = _hs_insize; \ -- while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \ -- if (_hs_psize == 0) { \ -- _hs_e = _hs_q; \ -- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ -- ((void*)((char*)(_hs_q->next) + \ -- (head)->hh.tbl->hho)) : NULL); \ -- _hs_qsize--; \ -- } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \ -- _hs_e = _hs_p; \ -- if (_hs_p){ \ -- _hs_p = (UT_hash_handle*)((_hs_p->next) ? \ -- ((void*)((char*)(_hs_p->next) + \ -- (head)->hh.tbl->hho)) : NULL); \ -- } \ -- _hs_psize--; \ -- } else if (( \ -- cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \ -- DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \ -- ) <= 0) { \ -- _hs_e = _hs_p; \ -- if (_hs_p){ \ -- _hs_p = (UT_hash_handle*)((_hs_p->next) ? \ -- ((void*)((char*)(_hs_p->next) + \ -- (head)->hh.tbl->hho)) : NULL); \ -- } \ -- _hs_psize--; \ -- } else { \ -- _hs_e = _hs_q; \ -- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ -- ((void*)((char*)(_hs_q->next) + \ -- (head)->hh.tbl->hho)) : NULL); \ -- _hs_qsize--; \ -- } \ -- if ( _hs_tail ) { \ -- _hs_tail->next = ((_hs_e) ? \ -- ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \ -- } else { \ -- _hs_list = _hs_e; \ -- } \ -- if (_hs_e) { \ -- _hs_e->prev = ((_hs_tail) ? \ -- ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \ -- } \ -- _hs_tail = _hs_e; \ -- } \ -- _hs_p = _hs_q; \ -- } \ -- if (_hs_tail){ \ -- _hs_tail->next = NULL; \ -- } \ -- if ( _hs_nmerges <= 1 ) { \ -- _hs_looping=0; \ -- (head)->hh.tbl->tail = _hs_tail; \ -- DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \ -- } \ -- _hs_insize *= 2; \ -- } \ -- HASH_FSCK(hh,head); \ -- } \ --} while (0) -- --/* This function selects items from one hash into another hash. -- * The end result is that the selected items have dual presence -- * in both hashes. There is no copy of the items made; rather -- * they are added into the new hash through a secondary hash -- * hash handle that must be present in the structure. */ --#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \ --do { \ -- unsigned _src_bkt, _dst_bkt; \ -- void *_last_elt=NULL, *_elt; \ -- UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \ -- ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \ -- if (src) { \ -- for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \ -- for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \ -- _src_hh; \ -- _src_hh = _src_hh->hh_next) { \ -- _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \ -- if (cond(_elt)) { \ -- _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \ -- _dst_hh->key = _src_hh->key; \ -- _dst_hh->keylen = _src_hh->keylen; \ -- _dst_hh->hashv = _src_hh->hashv; \ -- _dst_hh->prev = _last_elt; \ -- _dst_hh->next = NULL; \ -- if (_last_elt_hh) { _last_elt_hh->next = _elt; } \ -- if (!dst) { \ -- DECLTYPE_ASSIGN(dst,_elt); \ -- HASH_MAKE_TABLE(hh_dst,dst); \ -- } else { \ -- _dst_hh->tbl = (dst)->hh_dst.tbl; \ -- } \ -- HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \ -- HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \ -- (dst)->hh_dst.tbl->num_items++; \ -- _last_elt = _elt; \ -- _last_elt_hh = _dst_hh; \ -- } \ -- } \ -- } \ -- } \ -- HASH_FSCK(hh_dst,dst); \ --} while (0) -- --#define HASH_CLEAR(hh,head) \ --do { \ -- if (head) { \ -- uthash_free((head)->hh.tbl->buckets, \ -- (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \ -- HASH_BLOOM_FREE((head)->hh.tbl); \ -- uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ -- (head)=NULL; \ -- } \ --} while(0) -- --#define HASH_OVERHEAD(hh,head) \ -- (size_t)((((head)->hh.tbl->num_items * sizeof(UT_hash_handle)) + \ -- ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket)) + \ -- (sizeof(UT_hash_table)) + \ -- (HASH_BLOOM_BYTELEN))) -- --#ifdef NO_DECLTYPE --#define HASH_ITER(hh,head,el,tmp) \ --for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \ -- el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) --#else --#define HASH_ITER(hh,head,el,tmp) \ --for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \ -- el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL)) --#endif -- --/* obtain a count of items in the hash */ --#define HASH_COUNT(head) HASH_CNT(hh,head) --#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0) -- --typedef struct UT_hash_bucket { -- struct UT_hash_handle *hh_head; -- unsigned count; -- -- /* expand_mult is normally set to 0. In this situation, the max chain length -- * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If -- * the bucket's chain exceeds this length, bucket expansion is triggered). -- * However, setting expand_mult to a non-zero value delays bucket expansion -- * (that would be triggered by additions to this particular bucket) -- * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH. -- * (The multiplier is simply expand_mult+1). The whole idea of this -- * multiplier is to reduce bucket expansions, since they are expensive, in -- * situations where we know that a particular bucket tends to be overused. -- * It is better to let its chain length grow to a longer yet-still-bounded -- * value, than to do an O(n) bucket expansion too often. -- */ -- unsigned expand_mult; -- --} UT_hash_bucket; -- --/* random signature used only to find hash tables in external analysis */ --#define HASH_SIGNATURE 0xa0111fe1 --#define HASH_BLOOM_SIGNATURE 0xb12220f2 -- --typedef struct UT_hash_table { -- UT_hash_bucket *buckets; -- unsigned num_buckets, log2_num_buckets; -- unsigned num_items; -- struct UT_hash_handle *tail; /* tail hh in app order, for fast append */ -- ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */ -- -- /* in an ideal situation (all buckets used equally), no bucket would have -- * more than ceil(#items/#buckets) items. that's the ideal chain length. */ -- unsigned ideal_chain_maxlen; -- -- /* nonideal_items is the number of items in the hash whose chain position -- * exceeds the ideal chain maxlen. these items pay the penalty for an uneven -- * hash distribution; reaching them in a chain traversal takes >ideal steps */ -- unsigned nonideal_items; -- -- /* ineffective expands occur when a bucket doubling was performed, but -- * afterward, more than half the items in the hash had nonideal chain -- * positions. If this happens on two consecutive expansions we inhibit any -- * further expansion, as it's not helping; this happens when the hash -- * function isn't a good fit for the key domain. When expansion is inhibited -- * the hash will still work, albeit no longer in constant time. */ -- unsigned ineff_expands, noexpand; -- -- uint32_t signature; /* used only to find hash tables in external analysis */ --#ifdef HASH_BLOOM -- uint32_t bloom_sig; /* used only to test bloom exists in external analysis */ -- uint8_t *bloom_bv; -- char bloom_nbits; --#endif -- --} UT_hash_table; -- --typedef struct UT_hash_handle { -- struct UT_hash_table *tbl; -- void *prev; /* prev element in app order */ -- void *next; /* next element in app order */ -- struct UT_hash_handle *hh_prev; /* previous hh in bucket order */ -- struct UT_hash_handle *hh_next; /* next hh in bucket order */ -- void *key; /* ptr to enclosing struct's key */ -- unsigned keylen; /* enclosing struct's key len */ -- unsigned hashv; /* result of hash-fcn(key) */ --} UT_hash_handle; -- --#endif /* UTHASH_H */ --- -2.15.1 - diff --git a/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init deleted file mode 100644 index d2a27b2732..0000000000 --- a/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init +++ /dev/null @@ -1,89 +0,0 @@ -#! /bin/sh - -# Based on the Debian initscript for mosquitto - -### BEGIN INIT INFO -# Provides: mosquitto -# Required-Start: $remote_fs $syslog -# Required-Stop: $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: mosquitto MQTT v3.1 message broker -# Description: -# This is a message broker that supports version 3.1 of the MQ Telemetry -# Transport (MQTT) protocol. -# -# MQTT provides a method of carrying out messaging using a publish/subscribe -# model. It is lightweight, both in terms of bandwidth usage and ease of -# implementation. This makes it particularly useful at the edge of the network -# where a sensor or other simple device may be implemented using an arduino for -# example. -### END INIT INFO - -set -e - -PIDFILE=@LOCALSTATEDIR@/run/mosquitto.pid -DAEMON=@SBINDIR@/mosquitto - -# start and stop the mosquitto MQTT message broker - -test -x ${DAEMON} || exit 0 - -umask 022 - -. @SYSCONFDIR@/init.d/functions - -export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@" - -case "$1" in - start) - echo "Starting Mosquitto message broker" "mosquitto" - if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then - exit 0 - else - exit 1 - fi - ;; - stop) - echo "Stopping Mosquitto message broker" "mosquitto" - if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE}; then - rm -f ${PIDFILE} - exit 0 - else - exit 1 - fi - ;; - - - reload|force-reload) - if [ -f ${PIDFILE} ] ; then - echo "Reloading configuration for mosquitto" - pid=`cat ${PIDFILE}` - kill -HUP $pid - else - echo "mosquitto does not seem to be running" - fi - ;; - - restart) - echo "Restarting Mosquitto message broker" "mosquitto" - if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then - rm -f ${PIDFILE} - fi - if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then - exit 0 - else - exit 1 - fi - ;; - - status) - status ${DAEMON} && exit 0 || exit $? - ;; - - *) - echo "Usage: $0 {start|stop|reload|force-reload|restart|status}" - exit 1 -esac - -exit 0 diff --git a/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service b/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service deleted file mode 100644 index 25f68fae05..0000000000 --- a/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Mosquitto - lightweight server implementation of the MQTT and MQTT-SN protocols -ConditionPathExists=/etc/mosquitto/mosquitto.conf -After=network.target - -[Service] -Type=simple -ExecStartPre=/bin/rm -f /var/run/mosquitto.pid -ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf -ExecReload=/bin/kill -HUP $MAINPID -PIDFile=/var/run/mosquitto.pid -Restart=on-failure - -[Install] -WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb b/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb deleted file mode 100644 index 13ce3811d4..0000000000 --- a/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb +++ /dev/null @@ -1,83 +0,0 @@ -SUMMARY = "Open source MQTT v3.1/3.1.1 implemention" -DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. " -HOMEPAGE = "http://mosquitto.org/" -SECTION = "console/network" -LICENSE = "EPL-1.0 | EDL-1.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20 \ - file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \ - file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \ - file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \ -" -DEPENDS = "uthash" - -SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \ - file://0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch \ - file://0002-uthash-remove-in-tree-version.patch \ - file://mosquitto.service \ - file://mosquitto.init \ -" - -SRC_URI[md5sum] = "6b0966e93f118bc71ad7b61600a6c2d3" -SRC_URI[sha256sum] = "156b1fa731d12baad4b8b22f7b6a8af50ba881fc711b81e9919ec103cf2942d1" - -inherit systemd update-rc.d useradd - -PACKAGECONFIG ??= "ssl uuid" - -PACKAGECONFIG[dns-srv] = ",,c-ares" -PACKAGECONFIG[ssl] = ",,openssl" -PACKAGECONFIG[uuid] = ",,util-linux" -EXTRA_OEMAKE = "${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \ - STRIP=/bin/true \ - WITH_DOCS=no \ - ${@bb.utils.contains('PACKAGECONFIG', 'ssl', 'WITH_TLS=yes WITH_TLS_PSK=yes', 'WITH_TLS=no WITH_TLS_PSK=no', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'uuid', 'WITH_UUID=yes', 'WITH_UUID=no', d)}" - -export LIB_SUFFIX="${@d.getVar('baselib', True).replace('lib', '')}" - -do_compile() { - oe_runmake PREFIX=${prefix} -} - -do_install() { - oe_runmake install DESTDIR=${D} - install -d ${D}${libdir} - install -m 0644 lib/libmosquitto.a ${D}${libdir}/ - - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/mosquitto.service ${D}${systemd_unitdir}/system/ - - install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto - sed -i -e 's,@SBINDIR@,${sbindir},g' \ - -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ - -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ - -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - ${D}${sysconfdir}/init.d/mosquitto -} - -PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients" - -FILES_${PN} = "${sbindir}/mosquitto \ - ${bindir}/mosquitto_passwd \ - ${sysconfdir}/mosquitto \ - ${sysconfdir}/init.d \ - ${systemd_unitdir}/system/mosquitto.service \ -" - -FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1" - -FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1" - -FILES_${PN}-clients = "${bindir}/mosquitto_pub \ - ${bindir}/mosquitto_sub \ -" - -SYSTEMD_SERVICE_${PN} = "mosquitto.service" - -INITSCRIPT_NAME = "mosquitto" -INITSCRIPT_PARAMS = "defaults 30" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false \ - --user-group mosquitto" diff --git a/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch b/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch index e2c4e9ff6c..c18627b2fa 100644 --- a/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch +++ b/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch @@ -1,10 +1,11 @@ Submitted By: Armin K. <krejzi at email dot com> Date: 2012-07-06 Initial Package Version: 0.4.6 -Upstream Status: Unknown Origin: Self Description: Some build fixes. +Upstream-Status: Pending + Index: obex-data-server-0.4.6/src/ods-obex.c =================================================================== --- obex-data-server-0.4.6.orig/src/ods-obex.c diff --git a/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb b/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb index 715b02352e..3e59af8e2e 100644 --- a/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb +++ b/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb @@ -1,18 +1,16 @@ DESCRIPTION = "obex-data-server is a D-Bus service providing high-level OBEX client and server side functionality" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "gtk+ dbus-glib dbus-glib-native imagemagick openobex" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}" +DEPENDS = "gtk+ dbus-glib dbus-glib-native imagemagick openobex bluez5" -SRC_URI = "http://tadas.dailyda.com/software/obex-data-server-${PV}.tar.gz \ +SRC_URI = "https://ftp.osuosl.org/pub/blfs/conglomeration/${BPN}/obex-data-server-${PV}.tar.gz \ file://obex-data-server-0.4.6-build-fixes-1.patch \ " -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" -FILES_${PN} += "${datadir}/dbus-1/" +FILES:${PN} += "${datadir}/dbus-1/" diff --git a/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb b/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb index 2db48f3418..7348274948 100644 --- a/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb +++ b/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb @@ -2,37 +2,36 @@ DESCRIPTION = "The Openobex project is an open source implementation of the \ Object Exchange (OBEX) protocol." HOMEPAGE = "http://openobex.triq.net" SECTION = "libs" -DEPENDS = "virtual/libusb0" -DEPENDS_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}" - -LICENSE = "GPLv2 & LGPLv2.1" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ " +DEPENDS = "virtual/libusb0" +DEPENDS:append:class-target = " bluez5" + SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}-Source.tar.gz \ " - SRC_URI[md5sum] = "f6e0b6cb7dcfd731460a7e9a91429a3a" SRC_URI[sha256sum] = "158860aaea52f0fce0c8e4b64550daaae06df2689e05834697b7e8c7d73dd4fc" -inherit cmake pkgconfig - S = "${WORKDIR}/${BP}-Source" +inherit cmake pkgconfig + EXTRA_OECONF = " -DCMAKE_SKIP_RPATH=ON " EXTRA_OECMAKE += "-DBUILD_DOCUMENTATION=OFF" -#--enable-apps --enable-syslog +ASNEEDED = "" -do_install_append () { +do_install:append () { rmdir ${D}${bindir} } PACKAGES =+ "openobex-apps" -FILES_${PN}-apps = "${bindir}/*" -FILES_${PN} += "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${bindir}/openobex-config ${libdir}/cmake" -DEBIAN_NOAUTONAME_${PN}-apps = "1" +FILES:${PN}-apps = "${bindir}/*" +FILES:${PN} += "${libdir}/lib*.so.*" +FILES:${PN}-dev += "${bindir}/openobex-config" +DEBIAN_NOAUTONAME:${PN}-apps = "1" BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch index 1f6de87c8d..7a19b6172f 100644 --- a/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch +++ b/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch @@ -9,6 +9,8 @@ they are required to be added to link line explicitly. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + apps/CMakeLists.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch index 8b73af32e8..23e92885e8 100644 --- a/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch +++ b/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch @@ -1,6 +1,6 @@ Signed-off-by: Jun Zhu <R01007@freescale.com> -Upstream-Status: Not applicable +Upstream-Status: Inappropriate [embedded specific] diff -Nru obexftp-0.23/apps.orig/obexftpd.c obexftp-0.23/apps/obexftpd.c --- obexftp-0.23/apps.orig/obexftpd.c 2013-11-08 10:42:20.816631583 +0800 diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch index 84b143bf51..25f2a7d9e7 100644 --- a/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch +++ b/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Index: obexftp-0.24.2-Source/CMakeLists.txt =================================================================== --- obexftp-0.24.2-Source.orig/CMakeLists.txt diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb b/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb index b4a914d929..f7a98fb61e 100644 --- a/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb +++ b/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb @@ -1,5 +1,5 @@ DESCRIPTION = "A tool for transfer files to/from any OBEX enabled device" -LICENSE = "GPLv2 & PD & LGPLv2.1" +LICENSE = "GPL-2.0-only & PD & LGPL-2.1-only" LIC_FILES_CHKSUM = "file://LGPL-2.1.txt;md5=4fbd65380cdd255951079008b364516c \ file://GPL-2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://License.txt;md5=fcbddc3c1debed80dd80da2d3e5f0dc1 \ @@ -23,7 +23,7 @@ PACKAGECONFIG ?= "" PACKAGECONFIG[fuse] = "-DENABLE_FUSE=ON,-DENABLE_FUSE=OFF,fuse" PACKAGECONFIG[swig] = "-DENABLE_SWIG=ON,-DENABLE_SWIG=OFF,swig" -DEPENDS_remove_class-native = "fuse-native" +DEPENDS:remove:class-native = "fuse-native" S = "${WORKDIR}/${BP}-Source" @@ -32,11 +32,11 @@ EXTRA_OECMAKE += "-DCMAKE_SKIP_RPATH=ON \ -DENABLE_RUBY=OFF -DENABLE_TCL=OFF \ " -do_compile_class-native () { +do_compile:class-native () { oe_runmake crctable } -do_install_class-native () { +do_install:class-native () { install -D -m 0755 ${B}/bfb/crctable ${D}${bindir}/crctable } diff --git a/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb index f2a16dcf71..f976ca109c 100644 --- a/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb +++ b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb @@ -6,19 +6,12 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" SUMMARY = "Set of Bluetooth related tools for inclusion in images" -DESCRIPTION = "Includes bluetooth specific tools for this version of BlueZ.\ -These tools are used at runtime. \ -Supports BlueZ4 and BlueZ5." +DESCRIPTION = "Includes bluetooth specific tools for BlueZ.\ +These tools are used at runtime." inherit packagegroup -inherit bluetooth -RDEPENDS_bluez4 = " \ - obexftp \ - ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'libasound-module-bluez', '', d)} \ -" - -RDEPENDS_bluez5 = " \ +RDEPENDS:${PN} = " \ bluez5-noinst-tools \ bluez5-obex \ bluez5-testtools \ @@ -31,7 +24,3 @@ RDEPENDS_bluez5 = " \ pulseaudio-module-loopback', \ '', d)} \ " - -# Install bluez4 tools or bluez5 tools depending on what is specified in the distro. -# Otherwise install nothing. -RDEPENDS_${PN} = "${RDEPENDS_${BLUEZ}}" diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch b/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch deleted file mode 100644 index a31bfaa749..0000000000 --- a/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch +++ /dev/null @@ -1,25 +0,0 @@ -Disable building some things we don't need - -Upstream-Status: Inappropriate [config] - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> - ---- - Makefile | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 33bd2d0..84262bd 100644 ---- a/Makefile -+++ b/Makefile -@@ -115,7 +115,8 @@ LDFLAGS_AS = -shared -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -lpthread - - all: build - --build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET} ${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS} -+build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET} -+#${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS} - - clean: - rm -rf ${blddir}/* --- diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb deleted file mode 100644 index fec380ce6f..0000000000 --- a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols" -DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)." -HOMEPAGE = "http://www.eclipse.org/paho/" -SECTION = "console/network" -LICENSE = "EPL-1.0 | EDL-1.0" - -LIC_FILES_CHKSUM = " \ - file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \ - file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \ - file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \ - file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \ -" - -SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http" - -SRCREV = "e8d34da24ad807f5e698b327d67591fd4b4bfa7e" - -DEPENDS = "openssl" - -S = "${WORKDIR}/git" - -TARGET_CC_ARCH += "${LDFLAGS}" - -do_install() { - install -d ${D}${libdir} - oe_libinstall -C build/output -so libpaho-mqtt3a ${D}${libdir} - oe_libinstall -C build/output -so libpaho-mqtt3as ${D}${libdir} - oe_libinstall -C build/output -so libpaho-mqtt3c ${D}${libdir} - oe_libinstall -C build/output -so libpaho-mqtt3cs ${D}${libdir} - install -d ${D}${includedir} - install -m 644 src/MQTTAsync.h ${D}${includedir} - install -m 644 src/MQTTClient.h ${D}${includedir} - install -m 644 src/MQTTClientPersistence.h ${D}${includedir} -} - diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.13.bb b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.13.bb new file mode 100644 index 0000000000..6f229001f6 --- /dev/null +++ b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.13.bb @@ -0,0 +1,33 @@ +SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols" +DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)." +HOMEPAGE = "http://www.eclipse.org/paho/" +SECTION = "console/network" +LICENSE = "EPL-2.0 | EDL-1.0" + +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=fd3b896dadaeec3410d753ffaeadcfac \ + file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \ + file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \ +" + +SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=https;branch=master" + +SRCREV = "07a875788d8cc6f5833b12581d6e3e349b34d719" + +DEPENDS = "openssl" + +S = "${WORKDIR}/git" + +inherit cmake + +do_configure:prepend() { + sed -i s:\ lib/cmake:\ ${baselib}/cmake:g ${S}/src/CMakeLists.txt +} + +do_install:append() { + # paho-mqtt installes some thing that we don't want. + rm -rf ${D}${prefix}/samples + find ${D}${prefix} -maxdepth 1 -type f -delete +} + +EXTRA_OECMAKE = "-DPAHO_WITH_SSL=ON -DPAHO_ENABLE_TESTING=OFF -DPAHO_HIGH_PERFORMANCE=ON" diff --git a/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch new file mode 100644 index 0000000000..fba9a8767f --- /dev/null +++ b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch @@ -0,0 +1,59 @@ +From 2a0dd2b300242230faa92cf8e26ccd70231bc9ef Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 19 Mar 2022 23:37:58 -0700 +Subject: [PATCH] cmake: Use CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_BINDIR + +This ensures the install paths are not hardcoded. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending +--- + cmake/CMakeLists.txt | 4 ++-- + src/samples/CMakeLists.txt | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +index a9f8908..7eadc60 100644 +--- a/cmake/CMakeLists.txt ++++ b/cmake/CMakeLists.txt +@@ -11,7 +11,7 @@ export(EXPORT ${package_name} + FILE "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Targets.cmake" + NAMESPACE ${package_name}::) + +-install(EXPORT ${package_name} DESTINATION lib/cmake/${package_name} ++install(EXPORT ${package_name} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${package_name} + FILE ${package_name}Targets.cmake + NAMESPACE ${package_name}::) + +@@ -19,4 +19,4 @@ install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Config.cmake" + FindPahoMqttC.cmake + "${CMAKE_CURRENT_BINARY_DIR}/${package_name}ConfigVersion.cmake" +- DESTINATION lib/cmake/${package_name}) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${package_name}) +diff --git a/src/samples/CMakeLists.txt b/src/samples/CMakeLists.txt +index 3ca0a75..c915cd5 100644 +--- a/src/samples/CMakeLists.txt ++++ b/src/samples/CMakeLists.txt +@@ -71,7 +71,7 @@ endforeach() + + ## install binaries + install(TARGETS ${EXECUTABLES} EXPORT PahoMqttCppSamples +- RUNTIME DESTINATION bin ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) + + ## Build the SSL/TLS samples, if selected +@@ -89,7 +89,7 @@ if(PAHO_WITH_SSL) + endforeach() + + install(TARGETS ${SSL_EXECUTABLES} EXPORT PahoMqttCppSamples +- RUNTIME DESTINATION bin ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) + endif() + +-- +2.34.1 + diff --git a/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.3.2.bb b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.3.2.bb new file mode 100644 index 0000000000..1b2e51c3ac --- /dev/null +++ b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.3.2.bb @@ -0,0 +1,24 @@ +SUMMARY = "Paho MQTT - C++ libraries for the MQTT and MQTT-SN protocols" +DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)." +HOMEPAGE = "http://www.eclipse.org/paho/" +SECTION = "console/network" +LICENSE = "EPL-2.0 | EDL-1.0" + +LIC_FILES_CHKSUM = " \ + file://src/mqtt/message.h;beginline=9;endline=18;md5=c5ceecf5ab99d44dcfaaabdce289071b \ + file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \ + file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \ +" + +SRC_URI = "git://github.com/eclipse/paho.mqtt.cpp;protocol=https;branch=v1.3.x \ + file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch \ + " +SRCREV = "5e0d1bf37b4826d680ec066ec42afd133851a681" + +DEPENDS = "openssl paho-mqtt-c" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE += "-DPAHO_WITH_SSL=ON" diff --git a/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus/0001-initialize-timespec-variable.patch b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus/0001-initialize-timespec-variable.patch new file mode 100644 index 0000000000..f2e210fc67 --- /dev/null +++ b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus/0001-initialize-timespec-variable.patch @@ -0,0 +1,35 @@ +From 298dec6f87061914c85049faca3d0ff3310d1794 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 6 May 2024 12:15:30 -0700 +Subject: [PATCH] initialize timespec variable + +Fixes build warnings with GCC14 + +/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/pcapplusplus/23.09/git/Packet++/src/RawPacket.cpp: In constructor 'pcpp::RawPacket::RawPacket(const uint8_t*, int, timeval, bool, pcpp::LinkLayerType)': +/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/pcapplusplus/23.09/git/Packet++/src/RawPacket.cpp:23:18: error: 'nsec_time.timespec::<anonymous>' is used uninitialized [-Werror=uninitialized] + 23 | timespec nsec_time; + | ^~~~~~~~~ +cc1plus: all warnings being treated as errors + +Upstream-Status: Submitted [https://github.com/seladb/PcapPlusPlus/pull/1389] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Packet++/src/RawPacket.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Packet++/src/RawPacket.cpp b/Packet++/src/RawPacket.cpp +index 8ad52d52..07dbbbe2 100644 +--- a/Packet++/src/RawPacket.cpp ++++ b/Packet++/src/RawPacket.cpp +@@ -20,7 +20,7 @@ void RawPacket::init(bool deleteRawDataAtDestructor) + + RawPacket::RawPacket(const uint8_t* pRawData, int rawDataLen, timeval timestamp, bool deleteRawDataAtDestructor, LinkLayerType layerType) + { +- timespec nsec_time; ++ timespec nsec_time = {}; + TIMEVAL_TO_TIMESPEC(×tamp, &nsec_time); + init(deleteRawDataAtDestructor); + setRawData(pRawData, rawDataLen, nsec_time, layerType); +-- +2.45.0 + diff --git a/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus/0001-packet-Initialize-m_ExternalRawData-in-IDnsResource-.patch b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus/0001-packet-Initialize-m_ExternalRawData-in-IDnsResource-.patch new file mode 100644 index 0000000000..b6389e0e3f --- /dev/null +++ b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus/0001-packet-Initialize-m_ExternalRawData-in-IDnsResource-.patch @@ -0,0 +1,34 @@ +From 742f564ee80749e9f1f3363092775545e37c0f87 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 9 May 2024 17:02:09 -0700 +Subject: [PATCH] packet++: Initialize m_ExternalRawData in IDnsResource + constructor + +Fixes following warning with GCC-14 + +Packet++/src/DnsResource.cpp:29:24: error: '*this.pcpp::IDnsResource::m_ExternalRawData' may be used uninitialized [-Werror=maybe-uninitialized] + 29 | return m_ExternalRawData; + | ^~~~~~~~~~~~~~~~~ + +Upstream-Status: Submitted [https://github.com/seladb/PcapPlusPlus/pull/1391] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Packet++/src/DnsResource.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Packet++/src/DnsResource.cpp b/Packet++/src/DnsResource.cpp +index fec1bf05..c1f97041 100644 +--- a/Packet++/src/DnsResource.cpp ++++ b/Packet++/src/DnsResource.cpp +@@ -10,7 +10,7 @@ namespace pcpp + { + + IDnsResource::IDnsResource(DnsLayer* dnsLayer, size_t offsetInLayer) +- : m_DnsLayer(dnsLayer), m_OffsetInLayer(offsetInLayer), m_NextResource(nullptr) ++ : m_DnsLayer(dnsLayer), m_OffsetInLayer(offsetInLayer), m_NextResource(nullptr), m_ExternalRawData(nullptr) + { + char decodedName[4096]; + m_NameLength = decodeName((const char*)getRawData(), decodedName); +-- +2.45.0 + diff --git a/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus_23.09.bb b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus_23.09.bb new file mode 100644 index 0000000000..9db0222172 --- /dev/null +++ b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus_23.09.bb @@ -0,0 +1,24 @@ +SUMMARY = "A multiplatform C++ library for capturing, parsing and crafting of network packets" +HOMEPAGE = "https://pcapplusplus.github.io/" +BUGTRACKER = "https://github.com/seladb/PcapPlusPlus/issues" +SECTION = "libs/network" +LICENSE = "Unlicense" +LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f" + +DEPENDS = "libpcap" + +SRC_URI = "git://github.com/seladb/PcapPlusPlus.git;protocol=https;branch=master \ + file://0001-packet-Initialize-m_ExternalRawData-in-IDnsResource-.patch \ + file://0001-initialize-timespec-variable.patch" + +SRCREV = "4cf8ed44f9dd145f874dc1dd747dfefcfcab75be" + +S = "${WORKDIR}/git" + +inherit cmake + +PACKAGECONFIG ??= "" +PACKAGECONFIG[examples] = "-DPCAPPP_BUILD_EXAMPLES=ON,-DPCAPPP_BUILD_EXAMPLES=OFF" +PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF" +PACKAGECONFIG[tests] = "-DPCAPPP_BUILD_TESTS=ON,-DPCAPPP_BUILD_TESTS=OFF" +PACKAGECONFIG[zstd] = "-DLIGHT_PCAPNG_ZSTD=ON,-DLIGHT_PCAPNG_ZSTD=OFF,zstd" diff --git a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch deleted file mode 100644 index 8bb7e5a188..0000000000 --- a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f7ad9a4471cee2324f216a0d82ba8097ec746c56 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 15 Jul 2017 11:48:12 -0700 -Subject: [PATCH] Include limits.h for PATH_MAX - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/pnstat.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/pnstat.c b/src/pnstat.c -index 661a5bc..76068e6 100644 ---- a/src/pnstat.c -+++ b/src/pnstat.c -@@ -35,6 +35,7 @@ - #include <dirent.h> - #include <unistd.h> - #include <netinet/tcp.h> -+#include <limits.h> - - struct fd - { --- -2.13.3 - diff --git a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb deleted file mode 100644 index 3c599950fe..0000000000 --- a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "This small package provides a few command line tools for Linux Phonet" -HOMEPAGE = "" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRC_URI = "git://gitorious.org/meego-cellular/phonet-utils.git;branch=master \ - file://0001-Include-limits.h-for-PATH_MAX.patch \ - " -PR = "r2" -S = "${WORKDIR}/git" -SRCREV = "4acfa720fd37d178a048fc2be17180137d4a70ea" -PV = "0.0.0+gitr${SRCPV}" - -inherit autotools-brokensep - -FILES_${PN} += "${base_libdir}/udev/rules.d/85-phonet-utils.rules" diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch b/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch new file mode 100644 index 0000000000..dfd1f98759 --- /dev/null +++ b/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch @@ -0,0 +1,131 @@ +CVE: CVE-2023-35789 +Upstream-Status: Backport [ https://github.com/alanxz/rabbitmq-c/commit/463054383fbeef889b409a7f843df5365288e2a0 ] +Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> + +From 463054383fbeef889b409a7f843df5365288e2a0 Mon Sep 17 00:00:00 2001 +From: Christian Kastner <ckk@kvr.at> +Date: Tue, 13 Jun 2023 14:21:52 +0200 +Subject: [PATCH] Add option to read username/password from file (#781) + +* Add option to read username/password from file +--- + tools/common.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 66 insertions(+) + +diff --git a/tools/common.c b/tools/common.c +index 73b47e25..7efe557b 100644 +--- a/tools/common.c ++++ b/tools/common.c +@@ -18,6 +18,11 @@ + #include "compat.h" + #endif + ++/* For when reading auth data from a file */ ++#define MAXAUTHTOKENLEN 128 ++#define USERNAMEPREFIX "username:" ++#define PASSWORDPREFIX "password:" ++ + void die(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); +@@ -125,6 +130,7 @@ static char *amqp_vhost; + static char *amqp_username; + static char *amqp_password; + static int amqp_heartbeat = 0; ++static char *amqp_authfile; + #ifdef WITH_SSL + static int amqp_ssl = 0; + static char *amqp_cacert = "/etc/ssl/certs/cacert.pem"; +@@ -147,6 +153,8 @@ struct poptOption connect_options[] = { + "the password to login with", "password"}, + {"heartbeat", 0, POPT_ARG_INT, &amqp_heartbeat, 0, + "heartbeat interval, set to 0 to disable", "heartbeat"}, ++ {"authfile", 0, POPT_ARG_STRING, &amqp_authfile, 0, ++ "path to file containing username/password for authentication", "file"}, + #ifdef WITH_SSL + {"ssl", 0, POPT_ARG_NONE, &amqp_ssl, 0, "connect over SSL/TLS", NULL}, + {"cacert", 0, POPT_ARG_STRING, &amqp_cacert, 0, +@@ -158,6 +166,50 @@ struct poptOption connect_options[] = { + #endif /* WITH_SSL */ + {NULL, '\0', 0, NULL, 0, NULL, NULL}}; + ++void read_authfile(const char *path) { ++ size_t n; ++ FILE *fp = NULL; ++ char token[MAXAUTHTOKENLEN]; ++ ++ if ((amqp_username = malloc(MAXAUTHTOKENLEN)) == NULL || ++ (amqp_password = malloc(MAXAUTHTOKENLEN)) == NULL) { ++ die("Out of memory"); ++ } else if ((fp = fopen(path, "r")) == NULL) { ++ die("Could not read auth data file %s", path); ++ } ++ ++ if (fgets(token, MAXAUTHTOKENLEN, fp) == NULL || ++ strncmp(token, USERNAMEPREFIX, strlen(USERNAMEPREFIX))) { ++ die("Malformed auth file (missing username)"); ++ } ++ strncpy(amqp_username, &token[strlen(USERNAMEPREFIX)], MAXAUTHTOKENLEN); ++ /* Missing newline means token was cut off */ ++ n = strlen(amqp_username); ++ if (amqp_username[n - 1] != '\n') { ++ die("Username too long"); ++ } else { ++ amqp_username[n - 1] = '\0'; ++ } ++ ++ if (fgets(token, MAXAUTHTOKENLEN, fp) == NULL || ++ strncmp(token, PASSWORDPREFIX, strlen(PASSWORDPREFIX))) { ++ die("Malformed auth file (missing password)"); ++ } ++ strncpy(amqp_password, &token[strlen(PASSWORDPREFIX)], MAXAUTHTOKENLEN); ++ /* Missing newline means token was cut off */ ++ n = strlen(amqp_password); ++ if (amqp_password[n - 1] != '\n') { ++ die("Password too long"); ++ } else { ++ amqp_password[n - 1] = '\0'; ++ } ++ ++ (void)fgetc(fp); ++ if (!feof(fp)) { ++ die("Malformed auth file (trailing data)"); ++ } ++} ++ + static void init_connection_info(struct amqp_connection_info *ci) { + ci->user = NULL; + ci->password = NULL; +@@ -237,6 +289,8 @@ static void init_connection_info(struct amqp_connection_info *ci) { + if (amqp_username) { + if (amqp_url) { + die("--username and --url options cannot be used at the same time"); ++ } else if (amqp_authfile) { ++ die("--username and --authfile options cannot be used at the same time"); + } + + ci->user = amqp_username; +@@ -245,11 +299,23 @@ static void init_connection_info(struct amqp_connection_info *ci) { + if (amqp_password) { + if (amqp_url) { + die("--password and --url options cannot be used at the same time"); ++ } else if (amqp_authfile) { ++ die("--password and --authfile options cannot be used at the same time"); + } + + ci->password = amqp_password; + } + ++ if (amqp_authfile) { ++ if (amqp_url) { ++ die("--authfile and --url options cannot be used at the same time"); ++ } ++ ++ read_authfile(amqp_authfile); ++ ci->user = amqp_username; ++ ci->password = amqp_password; ++ } ++ + if (amqp_vhost) { + if (amqp_url) { + die("--vhost and --url options cannot be used at the same time"); diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb new file mode 100644 index 0000000000..ea80ec3344 --- /dev/null +++ b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker" +HOMEPAGE = "https://github.com/alanxz/rabbitmq-c" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7e12f6e40e662e039e2f02b4893011ec" +LICENSE = "MIT" + +SRC_URI = "git://github.com/alanxz/rabbitmq-c.git;branch=master;protocol=https \ + file://CVE-2023-35789.patch \ +" +# v0.13.0-master +SRCREV = "974d71adceae6d742ae20a4c880d99c131f1460a" + +S = "${WORKDIR}/git" + +DEPENDS = "popt openssl" + +EXTRA_OECMAKE = "-DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=ON -DBUILD_TOOLS_DOCS=OFF -DBUILD_API_DOCS=OFF" + +inherit cmake pkgconfig + +PACKAGE_BEFORE_PN += "${PN}-tools" +FILES:${PN}-tools = "${bindir}" diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb deleted file mode 100644 index e9846fdea5..0000000000 --- a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION = "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker" -HOMEPAGE = "https://github.com/alanxz/rabbitmq-c" -LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=6b7424f9db80cfb11fdd5c980b583f53" -LICENSE = "MIT" - -SRC_URI = "git://github.com/alanxz/rabbitmq-c.git" -SRCREV = "4dde30ce8d984edda540349f57eb7995a87ba9de" - -S = "${WORKDIR}/git" - -DEPENDS = "popt openssl" - -EXTRA_OECONF = "--disable-examples --enable-tools --disable-docs" - -inherit autotools pkgconfig - -PACKAGE_BEFORE_PN += "${PN}-tools" -FILES_${PN}-tools = "${bindir}" diff --git a/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch b/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch index c6f60d0ede..89a7d6f34a 100644 --- a/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch +++ b/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch @@ -5,6 +5,8 @@ Subject: [PATCH] rfkill makefile: don't use -t, the OE install wrapper dislikes Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> --- +Upstream-Status: Pending + Makefile | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch b/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch index 2b83689127..020419ea8a 100644 --- a/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch +++ b/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch @@ -1,3 +1,5 @@ +Upstream-Status: Pending + When WORKDIR is included in some other git checkout, version.sh calls git rev-parse and it returns some description from that upper git checkout even when rfkill is being built from release tarball. diff --git a/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb b/meta-oe/recipes-connectivity/rfkill/rfkill_1.0.bb index 3e644760ce..c9c0738abe 100644 --- a/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb +++ b/meta-oe/recipes-connectivity/rfkill/rfkill_1.0.bb @@ -1,15 +1,14 @@ SUMMARY = "Radio enable/disable command line utility" HOMEPAGE = "http://linuxwireless.org/en/users/Documentation/rfkill" SECTION = "base" -LICENSE = "BSD" +LICENSE = "0BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=c6036d0eb7edbfced28c4160e5d3fa94" -SRC_URI = "http://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.bz2 \ +SRC_URI = "http://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \ file://0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch \ file://dont.call.git.rev-parse.on.parent.dir.patch" -SRC_URI[md5sum] = "b957713a6cfbcd8ac0e94420aeddcf1a" -SRC_URI[sha256sum] = "3e160cca504a53679f2b3254f31c53a4fb38a021bc50fed8eb57a436d33dfa07" +SRC_URI[sha256sum] = "dffc631c611520478b8a286f57c67a35e8cb5802d376c6ca13b057365432389c" do_compile() { oe_runmake @@ -21,7 +20,6 @@ do_install() { inherit update-alternatives -ALTERNATIVE_${PN} = "rfkill" +ALTERNATIVE:${PN} = "rfkill" ALTERNATIVE_PRIORITY = "60" ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill" - diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch b/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch deleted file mode 100644 index 79d4f29fab..0000000000 --- a/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch +++ /dev/null @@ -1,94 +0,0 @@ -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 @@ - - AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [ - AC_MSG_CHECKING(whether kqueue supports pipes and ptys) -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([ -- #include <fcntl.h> -- #include <stdlib.h> -- #include <unistd.h> -- #include <sys/event.h> -- #include <sys/time.h> -- int main() { -- struct kevent ev@<:@2@:>@, ev_out@<:@2@:>@; -- struct timespec ts = { 0, 0 }; -- int pfd@<:@2@:>@, pty@<:@2@:>@, kfd, n; -- char buffer@<:@9001@:>@; -- if (pipe(pfd) == -1) return 1; -- if (fcntl(pfd@<:@1@:>@, F_SETFL, O_NONBLOCK) == -1) return 2; -- while ((n = write(pfd@<:@1@:>@, buffer, sizeof(buffer))) == sizeof(buffer)); -- if ((pty@<:@0@:>@=posix_openpt(O_RDWR | O_NOCTTY)) == -1) return 3; -- if ((pty@<:@1@:>@=grantpt(pty@<:@0@:>@)) == -1) return 4; -- EV_SET(ev+0, pfd@<:@1@:>@, EVFILT_WRITE, EV_ADD | EV_ENABLE, 0, 0, NULL); -- EV_SET(ev+1, pty@<:@1@:>@, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, NULL); -- if ((kfd = kqueue()) == -1) return 5; -- if ((n = kevent(kfd, ev, 2, NULL, 0, NULL)) == -1) return 6; -- if (ev_out@<:@0@:>@.flags & EV_ERROR) return 7; -- if (ev_out@<:@1@:>@.flags & EV_ERROR) return 8; -- read(pfd@<:@0@:>@, buffer, sizeof(buffer)); -- if ((n = kevent(kfd, NULL, 0, ev_out, 2, &ts)) < 1) return 9; -- return 0; -- } -- ])], -- [ -- AC_MSG_RESULT(yes) -- ], [ -- AC_DEFINE(KQUEUE_SOCKET_ONLY, 1, kqueue only supports sockets.) -- 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 @@ - - AC_DEFUN([TORRENT_CHECK_EXECINFO], [ - AC_MSG_CHECKING(for execinfo.h) -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([ -- #include <execinfo.h> -- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;} -- ])], -- [ -- AC_MSG_RESULT(yes) -- AC_DEFINE(USE_EXECINFO, 1, Use execinfo.h) -- ], [ -- AC_MSG_RESULT(no) -- ]) - ]) - - AC_DEFUN([TORRENT_CHECK_ALIGNED], [ - AC_MSG_CHECKING(the byte alignment) -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([ -- #include <inttypes.h> -- int main() { -- char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 }; -- int i; -- for (i = 1; i < 4; ++i) -- if (*(uint32_t*)(buf + i) == 0) return -1; -- return 0; -- } -- ])], -- [ -- AC_MSG_RESULT(none needed) -- ], [ -- AC_DEFINE(USE_ALIGNED, 1, Require byte alignment) -- AC_MSG_RESULT(required) -- ]) - ]) - - diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb index c731cf7079..d9cca404d7 100644 --- a/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb +++ b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb @@ -1,16 +1,14 @@ SUMMARY = "Torrent client" HOMEPAGE = "http://libtorrent.rakshasa.no/" -LICENSE = "GPL-2.0" +LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses" +DEPENDS = "autoconf-archive libsigc++-2.0 curl cppunit libtool libtorrent ncurses" -SRC_URI = "git://github.com/rakshasa/rtorrent \ - file://don-t-run-code-while-configuring-package.patch \ -" -SRCREV = "226e670decf92e7adaa845a6982aca4f164ea740" +SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https" +SRCREV = "d067bd802e44f0e6a747aabcc311ada2175fd550" -PV = "0.9.6+git${SRCPV}" +PV = "0.9.8+git" S = "${WORKDIR}/git" @@ -20,6 +18,6 @@ PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," inherit autotools pkgconfig -do_configure_prepend() { - (cd ${S}; ./autogen.sh; cd -) -} +EXTRA_AUTORECONF += "--exclude=aclocal" + +CXXFLAGS += "-std=gnu++14" diff --git a/meta-oe/recipes-connectivity/ser2net/files/ser2net.service b/meta-oe/recipes-connectivity/ser2net/files/ser2net.service new file mode 100644 index 0000000000..13d8ee4ff3 --- /dev/null +++ b/meta-oe/recipes-connectivity/ser2net/files/ser2net.service @@ -0,0 +1,13 @@ +[Unit] +Description=Serial port to network proxy +Documentation=man:ser2net(8) +After=network.target +Wants=network.target +ConditionFileNotEmpty=@SYSCONFDIR@/ser2net/ser2net.yaml + +[Service] +Type=exec +ExecStart=@SBINDIR@/ser2net -n + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb deleted file mode 100644 index 708650fb9b..0000000000 --- a/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "A serial to network proxy" -SECTION = "console/network" -HOMEPAGE = "http://sourceforge.net/projects/ser2net/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz" - -SRC_URI[md5sum] = "562274d783534276a9feac913b7d8c4e" -SRC_URI[sha256sum] = "d846066e27c3072565990745d030357aa0c278f96b7d1d4f59023347c1db8824" - -inherit autotools pkgconfig - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-connectivity/ser2net/ser2net_4.6.2.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_4.6.2.bb new file mode 100644 index 0000000000..f23692816c --- /dev/null +++ b/meta-oe/recipes-connectivity/ser2net/ser2net_4.6.2.bb @@ -0,0 +1,30 @@ +SUMMARY = "A serial to network proxy" +SECTION = "console/network" +HOMEPAGE = "http://sourceforge.net/projects/ser2net/" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "gensio libyaml" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz \ + file://ser2net.service \ +" + +SRC_URI[sha256sum] = "63bafcd65bb9270a93b7d5cdde58ccf4d279603ff6d044ac4b484a257cda82ce" + +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net" + +inherit autotools pkgconfig systemd + +SYSTEMD_SERVICE:${PN} = "ser2net.service" + +CONFFILES:${PN} += "${sysconfdir}/ser2net/ser2net.yaml" + +do_install:append() { + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${UNPACKDIR}/ser2net.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/ser2net.service + fi +} diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch b/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch new file mode 100644 index 0000000000..c714f74916 --- /dev/null +++ b/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch @@ -0,0 +1,606 @@ +From 77532d2e99252e3e07afa0f918bb8c9d73798f39 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Aug 2020 16:56:22 -0700 +Subject: [PATCH] Make extern declarations to avoid duplicate var definitions + +gcc-10+ defaults to -fno-common which flags these errors about mulitple +definitions since the variables are defined in header files which are +included from multiple sources, this patch ensures that extern +declaration is added appropriately + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/blacklist.c | 2 +- + src/blacklist.h | 2 +- + src/charset.c | 2 +- + src/charshift.c | 2 +- + src/logging.c | 2 +- + src/logging.h | 4 +- + src/modeminit.c | 6 +- + src/smsd_cfg.c | 2 + + src/smsd_cfg.h | 274 ++++++++++++++++++++++++------------------------ + src/stats.h | 22 ++-- + src/whitelist.c | 2 +- + src/whitelist.h | 2 +- + 12 files changed, 164 insertions(+), 158 deletions(-) + +diff --git a/src/blacklist.c b/src/blacklist.c +index 7440cca..0c00dd9 100755 +--- a/src/blacklist.c ++++ b/src/blacklist.c +@@ -17,11 +17,11 @@ Either version 2 of the License, or (at your option) any later version. + #include <stdlib.h> + #include <string.h> + #include <signal.h> ++#include "smsd_cfg.h" + #include "blacklist.h" + #include "extras.h" + #include "logging.h" + #include "alarm.h" +-#include "smsd_cfg.h" + + int inblacklist(char* msisdn) + { +diff --git a/src/blacklist.h b/src/blacklist.h +index 4f99050..61fd294 100755 +--- a/src/blacklist.h ++++ b/src/blacklist.h +@@ -15,7 +15,7 @@ Either version 2 of the License, or (at your option) any later version. + #ifndef BLACK_H + #define BLACK_H + +-char blacklist[256]; // Filename of the black-list ++EXTERN char blacklist[256]; // Filename of the black-list + + int inblacklist(char* msisdn); + +diff --git a/src/charset.c b/src/charset.c +index cd7c997..1716d70 100755 +--- a/src/charset.c ++++ b/src/charset.c +@@ -19,9 +19,9 @@ Either version 2 of the License, or (at your option) any later version. + #include <syslog.h> + #include <ctype.h> + ++#include "smsd_cfg.h" + #include "charset.h" + #include "logging.h" +-#include "smsd_cfg.h" + #include "pdu.h" + #include "extras.h" + #include "charshift.h" +diff --git a/src/charshift.c b/src/charshift.c +index 48ba340..2d7b26c 100755 +--- a/src/charshift.c ++++ b/src/charshift.c +@@ -25,8 +25,8 @@ Either version 2 of the License, or (at your option) any later version. + #include <stdio.h> + #include <stdarg.h> + +-#include "logging.h" + #include "smsd_cfg.h" ++#include "logging.h" + #include "pdu.h" + #include "charset.h" + #include "extras.h" +diff --git a/src/logging.c b/src/logging.c +index 6ee2c4e..4af341f 100755 +--- a/src/logging.c ++++ b/src/logging.c +@@ -12,6 +12,7 @@ the GNU General Public License as published by the Free Software Foundation. + Either version 2 of the License, or (at your option) any later version. + */ + ++#include "smsd_cfg.h" + #include "logging.h" + #include "extras.h" + #include <stdio.h> +@@ -22,7 +23,6 @@ Either version 2 of the License, or (at your option) any later version. + #include <time.h> + #include <fcntl.h> + #include <unistd.h> +-#include "smsd_cfg.h" + #include "stats.h" + + int Filehandle = -1; +diff --git a/src/logging.h b/src/logging.h +index 4f27906..4550234 100755 +--- a/src/logging.h ++++ b/src/logging.h +@@ -18,7 +18,7 @@ Either version 2 of the License, or (at your option) any later version. + #include <time.h> + + // 3.1.16beta2: Moved logch() and prch() from charset.c to logging.c: +-char logch_buffer[8192]; ++EXTERN char logch_buffer[8192]; + + #ifdef __GNUC__ + void logch(char* format, ...) __attribute__ ((format(printf, 1, 2))); +@@ -30,7 +30,7 @@ char prch(char ch); + + // 3.1.16beta: changed type: + //int trouble_logging_started; +-time_t trouble_logging_started; ++EXTERN time_t trouble_logging_started; + + int change_loglevel(int new_level); + void restore_loglevel(); +diff --git a/src/modeminit.c b/src/modeminit.c +index 42ff6b4..0d05fe9 100755 +--- a/src/modeminit.c ++++ b/src/modeminit.c +@@ -19,8 +19,6 @@ Either version 2 of the License, or (at your option) any later version. + #include <regex.h> + #include <ctype.h> + #include <time.h> +-#include "logging.h" +-#include "alarm.h" + + #ifdef SOLARIS + #include <sys/filio.h> +@@ -42,9 +40,11 @@ Either version 2 of the License, or (at your option) any later version. + #include <netdb.h> + #endif + ++#include "smsd_cfg.h" ++#include "logging.h" ++#include "alarm.h" + #include "extras.h" + #include "modeminit.h" +-#include "smsd_cfg.h" + #include "version.h" + #include "pdu.h" + #include "stats.h" +diff --git a/src/smsd_cfg.c b/src/smsd_cfg.c +index 35c1198..32472b4 100755 +--- a/src/smsd_cfg.c ++++ b/src/smsd_cfg.c +@@ -26,6 +26,8 @@ Either version 2 of the License, or (at your option) any later version. + #include <ctype.h> + #include <grp.h> + ++#define EXTERN ++ + #include "extras.h" + #include "cfgfile.h" + #include "smsd_cfg.h" +diff --git a/src/smsd_cfg.h b/src/smsd_cfg.h +index 8ae208d..d6ece37 100755 +--- a/src/smsd_cfg.h ++++ b/src/smsd_cfg.h +@@ -15,6 +15,10 @@ Either version 2 of the License, or (at your option) any later version. + #ifndef SMSD_CFG_H + #define SMSD_CFG_H + ++#ifndef EXTERN ++#define EXTERN extern ++#endif ++ + #include <limits.h> + #include <sys/types.h> + #include <time.h> +@@ -126,17 +130,17 @@ Either version 2 of the License, or (at your option) any later version. + #define ALPHABET_UNKNOWN 4 + #define ALPHABET_DEFAULT 0 + +-char process_title[32]; // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks. +-int process_id; // -1 for main task, all modems have numbers starting with 0. ++EXTERN char process_title[32]; // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks. ++EXTERN int process_id; // -1 for main task, all modems have numbers starting with 0. + // This is the same as device, can be used like devices[process_id] if IS_MODEM_PROCESS. + +-time_t process_start_time; ++EXTERN time_t process_start_time; + +-int modem_handle; // Handle for modem. ++EXTERN int modem_handle; // Handle for modem. + +-int put_command_timeouts; +-unsigned long long put_command_sent; // 3.1.16beta. +-char tmpdir[PATH_MAX]; // 3.1.16beta. ++EXTERN int put_command_timeouts; ++EXTERN unsigned long long put_command_sent; // 3.1.16beta. ++EXTERN char tmpdir[PATH_MAX]; // 3.1.16beta. + + typedef struct + { +@@ -284,204 +288,204 @@ typedef struct + + // NOTE for regular run intervals: effective value is at least delaytime. + +-char configfile[PATH_MAX]; // Path to config file +-char d_spool[PATH_MAX]; // Spool directory +-char d_failed[PATH_MAX]; // Failed spool directory +-char d_failed_copy[PATH_MAX]; // 3.1.17. +-char d_incoming[PATH_MAX]; // Incoming spool directory +-char d_incoming_copy[PATH_MAX]; // 3.1.16beta2. +-char d_report[PATH_MAX]; // Incoming report spool directory +-char d_report_copy[PATH_MAX]; // 3.1.17. +-char d_phonecalls[PATH_MAX]; // Incoming phonecalls data directory +-char d_saved[PATH_MAX]; // Directory for smsd's internal use, concatenation storage files etc. +-char d_sent[PATH_MAX]; // Sent spool directory +-char d_sent_copy[PATH_MAX]; // 3.1.17. +-char d_checked[PATH_MAX]; // Spool directory for checked messages (only used when no provider queues used) +-char eventhandler[PATH_MAX]; // Global event handler program or script +-char alarmhandler[PATH_MAX]; // Global alarm handler program or script +-char checkhandler[PATH_MAX]; // Handler that checks if the sms file is valid. +-int alarmlevel; // Alarm Level (9=highest). Verbosity of alarm handler. +-char logfile[PATH_MAX]; // Name or Handle of Log File +-int loglevel; // Log Level (9=highest). Verbosity of log file. +-_queue queues[NUMBER_OF_MODEMS]; // Queues +-_device devices[NUMBER_OF_MODEMS]; // Modem devices +-int delaytime; // sleep-time after workless +-int delaytime_mainprocess; // sleep-time after workless, main process. If -1, delaytime is used. +-int blocktime; // sleep-time after multiple errors +-int blockafter; // Block modem after n errors +-int errorsleeptime; // sleep-time after each error +-int autosplit; // Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH +-int receive_before_send; // if 1 smsd tries to receive one message before sending +-int store_received_pdu; // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all +-int store_sent_pdu; // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all +-int validity_period; // Validity period for messages. +-int decode_unicode_text; // 1 if unicode text is decoded internally. +-int internal_combine; // 1 if multipart message is combined internally. +-int internal_combine_binary; // 1 if multipart binary message is combined internally. Defaults to internal_combine. +-int keep_filename; // 0 if unique filename is created to each directory when a message file is moved. +-int store_original_filename; // 1 if an original filename is saved to message file when it's moved from ++EXTERN char configfile[PATH_MAX]; // Path to config file ++EXTERN char d_spool[PATH_MAX]; // Spool directory ++EXTERN char d_failed[PATH_MAX]; // Failed spool directory ++EXTERN char d_failed_copy[PATH_MAX]; // 3.1.17. ++EXTERN char d_incoming[PATH_MAX]; // Incoming spool directory ++EXTERN char d_incoming_copy[PATH_MAX]; // 3.1.16beta2. ++EXTERN char d_report[PATH_MAX]; // Incoming report spool directory ++EXTERN char d_report_copy[PATH_MAX]; // 3.1.17. ++EXTERN char d_phonecalls[PATH_MAX]; // Incoming phonecalls data directory ++EXTERN char d_saved[PATH_MAX]; // Directory for smsd's internal use, concatenation storage files etc. ++EXTERN char d_sent[PATH_MAX]; // Sent spool directory ++EXTERN char d_sent_copy[PATH_MAX]; // 3.1.17. ++EXTERN char d_checked[PATH_MAX]; // Spool directory for checked messages (only used when no provider queues used) ++EXTERN char eventhandler[PATH_MAX]; // Global event handler program or script ++EXTERN char alarmhandler[PATH_MAX]; // Global alarm handler program or script ++EXTERN char checkhandler[PATH_MAX]; // Handler that checks if the sms file is valid. ++EXTERN int alarmlevel; // Alarm Level (9=highest). Verbosity of alarm handler. ++EXTERN char logfile[PATH_MAX]; // Name or Handle of Log File ++EXTERN int loglevel; // Log Level (9=highest). Verbosity of log file. ++EXTERN _queue queues[NUMBER_OF_MODEMS]; // Queues ++EXTERN _device devices[NUMBER_OF_MODEMS]; // Modem devices ++EXTERN int delaytime; // sleep-time after workless ++EXTERN int delaytime_mainprocess; // sleep-time after workless, main process. If -1, delaytime is used. ++EXTERN int blocktime; // sleep-time after multiple errors ++EXTERN int blockafter; // Block modem after n errors ++EXTERN int errorsleeptime; // sleep-time after each error ++EXTERN int autosplit; // Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH ++EXTERN int receive_before_send; // if 1 smsd tries to receive one message before sending ++EXTERN int store_received_pdu; // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all ++EXTERN int store_sent_pdu; // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all ++EXTERN int validity_period; // Validity period for messages. ++EXTERN int decode_unicode_text; // 1 if unicode text is decoded internally. ++EXTERN int internal_combine; // 1 if multipart message is combined internally. ++EXTERN int internal_combine_binary; // 1 if multipart binary message is combined internally. Defaults to internal_combine. ++EXTERN int keep_filename; // 0 if unique filename is created to each directory when a message file is moved. ++EXTERN int store_original_filename; // 1 if an original filename is saved to message file when it's moved from + // outgoing directory to spooler. Works together with keep_filename. +-int date_filename; // 1 or 2 if YYYYMMDD is included to the filename of incoming message. +-char regular_run[PATH_MAX]; // Script/program which is run regularly. +-int regular_run_interval; // Number of seconds between running a regular_run script/progdam. +-char admin_to[SIZE_TO]; // Destination number for administrative messages. +-int filename_preview; // Number of chars of message text to concatenate to filename. +-int incoming_utf8; // 1 if incoming files are saved using UTF-8 character set. +-int outgoing_utf8; // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM. +-int log_charconv; // 1 if character set conversion is logged. +-int log_single_lines; // 1 if linefeeds are removed from the modem response to be logged. +-int executable_check; // 0 if eventhandler and other executables are NOT checked during the startup checking. +-int keep_messages; // For testing purposes: messages are not deleted and smsd stops after first run. +-char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages. +-int ic_purge_hours; // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes +-int ic_purge_minutes; // and if there is message parts older than defined, they are handled or deleted. +-int ic_purge_read; // 1 = message parts are stored as single messages. 0 = parts are just deleted. +-int ic_purge_interval; // +-char shell[PATH_MAX]; // Shell used to run eventhandler, defaults to /bin/sh +-char adminmessage_device[32]; // Name of device used to send administrative messages of mainspooler. +-int smart_logging; // 1 = if loglevel is less than 7, degug log is written is there has been any errors. +-int status_signal_quality; // 1 = signal quality is written to status file. +-int status_include_counters; // 1 = succeeded, failed and received counters are included in the status line. +-int status_include_uptime; // 3.1.16beta: 1 = include started & uptime line in the status file. +-int hangup_incoming_call; // 1 = if detected unexpected input contains RING and we want to end call. +-int max_continuous_sending; // Defines when sending is breaked to do check/do other tasks. Time in minutes. +-int voicecall_hangup_ath; // If ATH is used instead of AT+CHUP. ++EXTERN int date_filename; // 1 or 2 if YYYYMMDD is included to the filename of incoming message. ++EXTERN char regular_run[PATH_MAX]; // Script/program which is run regularly. ++EXTERN int regular_run_interval; // Number of seconds between running a regular_run script/progdam. ++EXTERN char admin_to[SIZE_TO]; // Destination number for administrative messages. ++EXTERN int filename_preview; // Number of chars of message text to concatenate to filename. ++EXTERN int incoming_utf8; // 1 if incoming files are saved using UTF-8 character set. ++EXTERN int outgoing_utf8; // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM. ++EXTERN int log_charconv; // 1 if character set conversion is logged. ++EXTERN int log_single_lines; // 1 if linefeeds are removed from the modem response to be logged. ++EXTERN int executable_check; // 0 if eventhandler and other executables are NOT checked during the startup checking. ++EXTERN int keep_messages; // For testing purposes: messages are not deleted and smsd stops after first run. ++EXTERN char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages. ++EXTERN int ic_purge_hours; // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes ++EXTERN int ic_purge_minutes; // and if there is message parts older than defined, they are handled or deleted. ++EXTERN int ic_purge_read; // 1 = message parts are stored as single messages. 0 = parts are just deleted. ++EXTERN int ic_purge_interval; // ++EXTERN char shell[PATH_MAX]; // Shell used to run eventhandler, defaults to /bin/sh ++EXTERN char adminmessage_device[32]; // Name of device used to send administrative messages of mainspooler. ++EXTERN int smart_logging; // 1 = if loglevel is less than 7, degug log is written is there has been any errors. ++EXTERN int status_signal_quality; // 1 = signal quality is written to status file. ++EXTERN int status_include_counters; // 1 = succeeded, failed and received counters are included in the status line. ++EXTERN int status_include_uptime; // 3.1.16beta: 1 = include started & uptime line in the status file. ++EXTERN int hangup_incoming_call; // 1 = if detected unexpected input contains RING and we want to end call. ++EXTERN int max_continuous_sending; // Defines when sending is breaked to do check/do other tasks. Time in minutes. ++EXTERN int voicecall_hangup_ath; // If ATH is used instead of AT+CHUP. + + // 3.1.5: +-int trust_outgoing; // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling. ++EXTERN int trust_outgoing; // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling. + + // 3.1.5: +-int ignore_outgoing_priority; // 1 = Priority: high header is not checked. Speeds up spooling. ++EXTERN int ignore_outgoing_priority; // 1 = Priority: high header is not checked. Speeds up spooling. + + // 3.1.7: +-int ignore_exec_output; // 1 = stdout and stderr of eventhandlers is _not_ checked. ++EXTERN int ignore_exec_output; // 1 = stdout and stderr of eventhandlers is _not_ checked. + + // 3.1.7: +-mode_t conf_umask; // File mode creation mask for smsd and modem processes. ++EXTERN mode_t conf_umask; // File mode creation mask for smsd and modem processes. + + // 3.1.7: +-int trim_text; // 1 = trailing whitespaces are removed from text: ++EXTERN int trim_text; // 1 = trailing whitespaces are removed from text: + + // 3.1.7: +-int use_linux_ps_trick; // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc. ++EXTERN int use_linux_ps_trick; // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc. + + // 3.1.7: +-int log_unmodified; ++EXTERN int log_unmodified; + + // 3.1.7: +-char suspend_filename[PATH_MAX]; ++EXTERN char suspend_filename[PATH_MAX]; + + // 3.1.9: +-int spool_directory_order; ++EXTERN int spool_directory_order; + + // 3.1.9: 1 if read_from_modem is logged. +-int log_read_from_modem; ++EXTERN int log_read_from_modem; + + // 3.1.16beta2: log_read_timing for performance tuning. +-int log_read_timing; ++EXTERN int log_read_timing; + + // 3.1.16beta: +-int log_response_time; ++EXTERN int log_response_time; + + // 3.1.16beta2: +-int default_alphabet; ++EXTERN int default_alphabet; + + // 3.1.17: Child process for the mainprocess: +-char mainprocess_child[PATH_MAX]; +-char mainprocess_child_args[PATH_MAX]; ++EXTERN char mainprocess_child[PATH_MAX]; ++EXTERN char mainprocess_child_args[PATH_MAX]; + + // 3.1.17: Notifier for the mainprocess: +-int mainprocess_notifier; ++EXTERN int mainprocess_notifier; + + // 3.1.17: If *_copy was made, evenhandler can use it instead of original file: +-int eventhandler_use_copy; ++EXTERN int eventhandler_use_copy; + + // 3.1.17: This defines how long to sleep while looping: +-int sleeptime_mainprocess; ++EXTERN int sleeptime_mainprocess; + + // 3.1.17: Defines how often PID is checked to detect if another smsd is running: +-int check_pid_interval; ++EXTERN int check_pid_interval; + + // 3.1.18: start script/program for mainprocess: +-char mainprocess_start[PATH_MAX]; +-char mainprocess_start_args[PATH_MAX]; ++EXTERN char mainprocess_start[PATH_MAX]; ++EXTERN char mainprocess_start_args[PATH_MAX]; + +-int message_count; // Counter for sent messages. Multipart message is one message. ++EXTERN int message_count; // Counter for sent messages. Multipart message is one message. + +-volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received. +-volatile sig_atomic_t terminate; // To terminate when SIGTERM is received. ++EXTERN volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received. ++EXTERN volatile sig_atomic_t terminate; // To terminate when SIGTERM is received. + +-char username[65]; // user and group name which are used to run. +-char groupname[65]; // (max length is just a guess) ++EXTERN char username[65]; // user and group name which are used to run. ++EXTERN char groupname[65]; // (max length is just a guess) + +-char infofile[PATH_MAX]; // Hepler file for stopping the smsd smoothly. +-char pidfile[PATH_MAX]; // File where a process id is stored. ++EXTERN char infofile[PATH_MAX]; // Hepler file for stopping the smsd smoothly. ++EXTERN char pidfile[PATH_MAX]; // File where a process id is stored. + + // Command line arguments: +-char arg_username[65]; +-char arg_groupname[65]; +-char arg_infofile[PATH_MAX]; +-char arg_pidfile[PATH_MAX]; +-char arg_logfile[PATH_MAX]; +-int arg_terminal; ++EXTERN char arg_username[65]; ++EXTERN char arg_groupname[65]; ++EXTERN char arg_infofile[PATH_MAX]; ++EXTERN char arg_pidfile[PATH_MAX]; ++EXTERN char arg_logfile[PATH_MAX]; ++EXTERN int arg_terminal; + // 3.1.7: +-char arg_7bit_packed[512]; +-int do_encode_decode_arg_7bit_packed; ++EXTERN char arg_7bit_packed[512]; ++EXTERN int do_encode_decode_arg_7bit_packed; + +-int terminal; // 1 if smsd is communicating with terminal. +-pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes. +-char run_info[PATH_MAX]; // Information about external script/program execution. ++EXTERN int terminal; // 1 if smsd is communicating with terminal. ++EXTERN pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes. ++EXTERN char run_info[PATH_MAX]; // Information about external script/program execution. + +-char communicate[32]; // Device name for terminal communication mode. ++EXTERN char communicate[32]; // Device name for terminal communication mode. + +-char international_prefixes[PATH_MAX +1]; +-char national_prefixes[PATH_MAX +1]; ++EXTERN char international_prefixes[PATH_MAX +1]; ++EXTERN char national_prefixes[PATH_MAX +1]; + + // Storage for startup errors: +-char *startup_err_str; +-int startup_err_count; ++EXTERN char *startup_err_str; ++EXTERN int startup_err_count; + + // Storage for PDU's: +-char *incoming_pdu_store; +-char *outgoing_pdu_store; +-char *routed_pdu_store; ++EXTERN char *incoming_pdu_store; ++EXTERN char *outgoing_pdu_store; ++EXTERN char *routed_pdu_store; + + // Storage for getfile errors: +-char *getfile_err_store; ++EXTERN char *getfile_err_store; + + // Text buffer for error messages: +-char tb[SIZE_TB]; ++EXTERN char tb[SIZE_TB]; + + // Buffer for SIM memory checking: +-char *check_memory_buffer; +-size_t check_memory_buffer_size; ++EXTERN char *check_memory_buffer; ++EXTERN size_t check_memory_buffer_size; + +-int os_cygwin; // 1 if we are on Cygwin. ++EXTERN int os_cygwin; // 1 if we are on Cygwin. + +-char language_file[PATH_MAX]; // File name of translated headers. +-char yes_chars[SIZE_HEADER]; // Characters which mean "yes" in the yesno() question. +-char no_chars[SIZE_HEADER]; // See details inside read_translation() function. +-char yes_word[SIZE_HEADER]; // "yes" printed as an output. +-char no_word[SIZE_HEADER]; // "no" +-char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports). +-char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps +-char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename +-int translate_incoming; // 0 if incoming message headers are NOT transtaled. ++EXTERN char language_file[PATH_MAX]; // File name of translated headers. ++EXTERN char yes_chars[SIZE_HEADER]; // Characters which mean "yes" in the yesno() question. ++EXTERN char no_chars[SIZE_HEADER]; // See details inside read_translation() function. ++EXTERN char yes_word[SIZE_HEADER]; // "yes" printed as an output. ++EXTERN char no_word[SIZE_HEADER]; // "no" ++EXTERN char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports). ++EXTERN char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps ++EXTERN char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename ++EXTERN int translate_incoming; // 0 if incoming message headers are NOT transtaled. + + // 3.1.14: +-int logtime_us; +-int logtime_ms; ++EXTERN int logtime_us; ++EXTERN int logtime_ms; + + // 3.1.14: +-int shell_test; ++EXTERN int shell_test; + + // Next two are for debugging purposes: +-int enable_smsd_debug; +-char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file. ++EXTERN int enable_smsd_debug; ++EXTERN char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file. + + // 3.1.20: Alt keys in communication mode: + #define COMMUNICATE_A_KEY_COUNT 10 +-char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256]; ++EXTERN char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256]; + + /* initialize all variable with default values */ + +diff --git a/src/stats.h b/src/stats.h +index bd5cdc9..a614af1 100755 +--- a/src/stats.h ++++ b/src/stats.h +@@ -33,17 +33,17 @@ typedef struct + int ber; + } _stats; + +-_stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!) +-int rejected_counter; // Statistic counter, rejected SM, number does not fit into any queue +-time_t start_time; // Start time of smsd, allows statistic functions +-int printstatus; // if 1 smsd outputs status on stdout +-time_t last_stats; // time when the last stats file was created +-char d_stats[PATH_MAX]; // path to statistic files +-int stats_interval; // time between statistic files in seconds. +-int stats_no_zeroes; // Suppress files that contain only zeroes +-int status_interval; // time between updating status file in seconds +- +-char *shared_buffer; ++EXTERN _stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!) ++EXTERN int rejected_counter; // Statistic counter, rejected SM, number does not fit into any queue ++EXTERN time_t start_time; // Start time of smsd, allows statistic functions ++EXTERN int printstatus; // if 1 smsd outputs status on stdout ++EXTERN time_t last_stats; // time when the last stats file was created ++EXTERN char d_stats[PATH_MAX]; // path to statistic files ++EXTERN int stats_interval; // time between statistic files in seconds. ++EXTERN int stats_no_zeroes; // Suppress files that contain only zeroes ++EXTERN int status_interval; // time between updating status file in seconds ++ ++EXTERN char *shared_buffer; + + /* Creates shared memory variables for statistic data */ + +diff --git a/src/whitelist.c b/src/whitelist.c +index 4ee7a69..3d90bf4 100755 +--- a/src/whitelist.c ++++ b/src/whitelist.c +@@ -17,11 +17,11 @@ Either version 2 of the License, or (at your option) any later version. + #include <stdlib.h> + #include <string.h> + #include <signal.h> ++#include "smsd_cfg.h" + #include "whitelist.h" + #include "extras.h" + #include "logging.h" + #include "alarm.h" +-#include "smsd_cfg.h" + + /* Used with >= 3.1x */ + int inwhitelist_q(char* msisdn, char *queuename) +diff --git a/src/whitelist.h b/src/whitelist.h +index 88aea86..3f904f4 100755 +--- a/src/whitelist.h ++++ b/src/whitelist.h +@@ -15,7 +15,7 @@ Either version 2 of the License, or (at your option) any later version. + #ifndef WHITE_H + #define WHITE_H + +-char whitelist[256]; // Filename of the white-list ++EXTERN char whitelist[256]; // Filename of the white-list + + /* Used with >= 3.1x */ + int inwhitelist_q(char* msisdn, char *queuename); +-- +2.28.0 + diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch b/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch index 49b4d1ddac..e287ae5e73 100644 --- a/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch +++ b/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch @@ -3,6 +3,8 @@ From: Bill Randle <bill.randle@gmail.com> Date: Sun, 31 Dec 2017 09:08:23 -0800 --- +Upstream-Status: Pending + scripts/sendsms | 2 +- scripts/sms2html | 2 +- scripts/sms2unicode | 2 +- diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch b/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch index e1d79d3327..db829744d3 100644 --- a/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch +++ b/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch @@ -3,6 +3,8 @@ From: Kai Ulrich <kaiu@gmx.de> Date: Wed, 18 Mar 2015 11:20:53 +0100 --- +Upstream-Status: Pending + scripts/sms3 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb b/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb index 6e6413b4bc..9e54968633 100644 --- a/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb +++ b/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb @@ -1,13 +1,15 @@ SUMMARY = "SMS Gateway software" DESCRIPTION = "The SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones." SECTION = "console/network" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=4d21efa1bb2a186360dde4035f860682" HOMEPAGE = "http://smstools3.kekekasvi.com" SRC_URI = "http://smstools3.kekekasvi.com/packages/${BP}.tar.gz \ file://sms_binpath.patch \ - file://scripts_no_bash.patch" + file://scripts_no_bash.patch \ + file://0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch \ + " SRC_URI[md5sum] = "6a9f038fb38a49cc3a4f8f14a88fb8af" SRC_URI[sha256sum] = "a26ba4c02b16f6cf13177bffca6c9230dc5fefaeba8e3030cd4e4905f6a92084" diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb deleted file mode 100644 index 01c6e3781e..0000000000 --- a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Telepathy Framework glib-base helper library" -DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection managers" -HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" -DEPENDS = "glib-2.0 dbus hostpython-runtime-native dbus-native dbus-glib libxslt-native" -LICENSE = "LGPLv2.1+" - -SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BP}.tar.gz" -SRC_URI[md5sum] = "93c429e37750b25dcf8de86bb514664f" -SRC_URI[sha256sum] = "ae0002134991217f42e503c43dea7817853afc18863b913744d51ffa029818cf" - -LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e" - -inherit autotools pkgconfig gettext gobject-introspection - -FILES_${PN} += "${datadir}/telepathy \ - ${datadir}/dbus-1" diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb new file mode 100644 index 0000000000..e083039232 --- /dev/null +++ b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "Telepathy Framework glib-base helper library" +DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection managers" +HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" +DEPENDS = "glib-2.0 dbus hostpython-runtime-native dbus-native dbus-glib libxslt-native" +LICENSE = "LGPL-2.1-or-later" + +SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BP}.tar.gz" +SRC_URI[md5sum] = "cbeb0a24acc26e7f095be281c324da69" +SRC_URI[sha256sum] = "9e0df1d8f857e0270cf0b32e2d1ca5a24aa7282873361785d573f72ad7f7d5eb" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e" + +inherit autotools pkgconfig gettext gobject-introspection vala gtk-doc + +# Respect GI_DATA_ENABLED value when enabling vala-bindings: +# configure: error: GObject-Introspection must be enabled for Vala bindings +EXTRA_OECONF = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-vala-bindings', '--disable-vala-bindings', d)}" + +FILES:${PN} += "${datadir}/telepathy \ + ${datadir}/dbus-1" diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb index ca09f6daf3..039cfc3a89 100644 --- a/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb +++ b/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb @@ -2,7 +2,7 @@ SUMMARY = "Telepathy IRC connection manager" DESCRIPTION = "Telepathy implementation of the Internet Relay Chat protocols." HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" DEPENDS = "glib-2.0 dbus telepathy-glib openssl libxslt-native" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \ file://src/idle.c;beginline=1;endline=19;md5=b06b1e2594423111a1a7910b0eefc7f9" @@ -11,7 +11,12 @@ SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz SRC_URI[md5sum] = "92a2de5198284cbd3c430b0d1a971a86" SRC_URI[sha256sum] = "3013ad4b38d14ee630b8cc8ada5e95ccaa849b9a6fe15d2eaf6d0717d76f2fab" -inherit autotools pkgconfig pythonnative +inherit autotools pkgconfig ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)} -FILES_${PN} += "${datadir}/telepathy \ +FILES:${PN} += "${datadir}/telepathy \ ${datadir}/dbus-1" + +python() { + if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires meta-python2 to be present.') +} diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch deleted file mode 100644 index fcc2f08214..0000000000 --- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b3da0d8677b7e8467367a303c18551c56ed20e15 Mon Sep 17 00:00:00 2001 -From: Philip Balister <philip@balister.org> -Date: Tue, 12 Apr 2016 17:30:15 -0400 -Subject: [PATCH] Forcibly disable check for Qt5. - -Signed-off-by: Philip Balister <philip@balister.org> ---- - build/cmake/DefineOptions.cmake | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/build/cmake/DefineOptions.cmake b/build/cmake/DefineOptions.cmake -index 62e240f..f8b4493 100644 ---- a/build/cmake/DefineOptions.cmake -+++ b/build/cmake/DefineOptions.cmake -@@ -52,9 +52,6 @@ CMAKE_DEPENDENT_OPTION(WITH_LIBEVENT "Build with libevent support" ON - find_package(Qt4 QUIET COMPONENTS QtCore QtNetwork) - CMAKE_DEPENDENT_OPTION(WITH_QT4 "Build with Qt4 support" ON - "QT4_FOUND" OFF) --find_package(Qt5 QUIET COMPONENTS Core Network) --CMAKE_DEPENDENT_OPTION(WITH_QT5 "Build with Qt5 support" ON -- "Qt5_FOUND" OFF) - if(${WITH_QT4} AND ${WITH_QT5} AND ${CMAKE_MAJOR_VERSION} LESS 3) - # cmake < 3.0.0 causes conflict when building both Qt4 and Qt5 - set(WITH_QT4 OFF) --- -2.5.5 - diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch deleted file mode 100644 index 7cc8d17393..0000000000 --- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch +++ /dev/null @@ -1,110 +0,0 @@ -From bc577820ad25795543b31f123e309cdaebc7d6c6 Mon Sep 17 00:00:00 2001 -From: Cody P Schafer <dev@codyps.com> -Date: Mon, 16 May 2016 15:21:10 -0400 -Subject: [PATCH 1/2] THRIFT-3828 In cmake avoid use of both quoted paths and - SYSTEM with include_directories() - -This allows us to avoid issues where there are no paths to be added to -the include path (include_directories() errors when given an empty -string). - -Specifically, gcc-6 requires that libraries stop passing paths like -'/usr/include' (or they will get libstdc++ build errors), so these paths -will be empty more often in the future. ---- - lib/cpp/CMakeLists.txt | 8 ++++---- - lib/cpp/test/CMakeLists.txt | 2 +- - test/cpp/CMakeLists.txt | 6 +++--- - tutorial/cpp/CMakeLists.txt | 2 +- - 4 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/lib/cpp/CMakeLists.txt b/lib/cpp/CMakeLists.txt -index 4c7caeb..a716ac3 100755 ---- a/lib/cpp/CMakeLists.txt -+++ b/lib/cpp/CMakeLists.txt -@@ -24,7 +24,7 @@ else() - find_package(Boost 1.53.0 REQUIRED) - endif() - --include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") -+include_directories(${Boost_INCLUDE_DIRS}) - include_directories(src) - - # SYSLIBS contains libraries that need to be linked to all lib targets -@@ -104,7 +104,7 @@ if(OPENSSL_FOUND AND WITH_OPENSSL) - src/thrift/transport/TSSLSocket.cpp - src/thrift/transport/TSSLServerSocket.cpp - ) -- include_directories(SYSTEM "${OPENSSL_INCLUDE_DIR}") -+ include_directories(${OPENSSL_INCLUDE_DIR}) - list(APPEND SYSLIBS "${OPENSSL_LIBRARIES}") - endif() - -@@ -162,7 +162,7 @@ TARGET_LINK_LIBRARIES_THRIFT(thrift ${SYSLIBS}) - - if(WITH_LIBEVENT) - find_package(Libevent REQUIRED) # Libevent comes with CMake support form upstream -- include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS}) -+ include_directories(${LIBEVENT_INCLUDE_DIRS}) - - ADD_LIBRARY_THRIFT(thriftnb ${thriftcppnb_SOURCES}) - TARGET_LINK_LIBRARIES_THRIFT(thriftnb ${SYSLIBS} ${LIBEVENT_LIBRARIES}) -@@ -171,7 +171,7 @@ endif() - - if(WITH_ZLIB) - find_package(ZLIB REQUIRED) -- include_directories(SYSTEM ${ZLIB_INCLUDE_DIRS}) -+ include_directories(${ZLIB_INCLUDE_DIRS}) - - ADD_LIBRARY_THRIFT(thriftz ${thriftcppz_SOURCES}) - TARGET_LINK_LIBRARIES_THRIFT(thriftz ${SYSLIBS} ${ZLIB_LIBRARIES}) -diff --git a/lib/cpp/test/CMakeLists.txt b/lib/cpp/test/CMakeLists.txt -index 5de9fc4..c956c38 100644 ---- a/lib/cpp/test/CMakeLists.txt -+++ b/lib/cpp/test/CMakeLists.txt -@@ -20,7 +20,7 @@ - # Find required packages - set(Boost_USE_STATIC_LIBS ON) # Force the use of static boost test framework - find_package(Boost 1.53.0 REQUIRED COMPONENTS chrono filesystem system thread unit_test_framework) --include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") -+include_directories(${Boost_INCLUDE_DIRS}) - - #Make sure gen-cpp files can be included - include_directories("${CMAKE_CURRENT_BINARY_DIR}") -diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt -index 2d75f2e..b1409de 100755 ---- a/test/cpp/CMakeLists.txt -+++ b/test/cpp/CMakeLists.txt -@@ -22,13 +22,13 @@ include(ThriftMacros) - - set(Boost_USE_STATIC_LIBS ON) - find_package(Boost 1.53.0 REQUIRED COMPONENTS program_options system filesystem) --include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") -+include_directories(${Boost_INCLUDE_DIRS}) - - find_package(OpenSSL REQUIRED) --include_directories(SYSTEM "${OPENSSL_INCLUDE_DIR}") -+include_directories(${OPENSSL_INCLUDE_DIR}) - - find_package(Libevent REQUIRED) # Libevent comes with CMake support from upstream --include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS}) -+include_directories(${LIBEVENT_INCLUDE_DIRS}) - - #Make sure gen-cpp files can be included - include_directories("${CMAKE_CURRENT_BINARY_DIR}") -diff --git a/tutorial/cpp/CMakeLists.txt b/tutorial/cpp/CMakeLists.txt -index 2b0c143..5ecae17 100644 ---- a/tutorial/cpp/CMakeLists.txt -+++ b/tutorial/cpp/CMakeLists.txt -@@ -18,7 +18,7 @@ - # - - find_package(Boost 1.53.0 REQUIRED) --include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") -+include_directories(${Boost_INCLUDE_DIRS}) - - #Make sure gen-cpp files can be included - include_directories("${CMAKE_CURRENT_BINARY_DIR}") --- -2.9.3 - diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch deleted file mode 100644 index f13adbb6bc..0000000000 --- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch +++ /dev/null @@ -1,40 +0,0 @@ -From f6cad0580e5391c37af7f60adddb71bf1a403dc4 Mon Sep 17 00:00:00 2001 -From: Cody P Schafer <dev@codyps.com> -Date: Fri, 9 Sep 2016 15:50:26 -0400 -Subject: [PATCH 2/2] THRIFT-3831 in test/cpp explicitly use `signed char` - -`char`'s signed-ness is implimentation dependent, and in the case where -`char` was not signed, we previously recieved errors like - - thrift/0.9.3-r0/git/test/cpp/src/TestClient.cpp:404:15: error: narrowing conversion of '-127' from 'int' to 'char' inside { } [-Wnarrowing] - -(This example from gcc-6 on arm) ---- - test/cpp/src/TestClient.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp -index e709899..4a961f8 100644 ---- a/test/cpp/src/TestClient.cpp -+++ b/test/cpp/src/TestClient.cpp -@@ -383,7 +383,7 @@ int main(int argc, char** argv) { - * BINARY TEST - */ - printf("testBinary([-128..127]) = {"); -- const char bin_data[256] -+ const signed char bin_data[256] - = {-128, -127, -126, -125, -124, -123, -122, -121, -120, -119, -118, -117, -116, -115, -114, - -113, -112, -111, -110, -109, -108, -107, -106, -105, -104, -103, -102, -101, -100, -99, - -98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -88, -87, -86, -85, -84, -@@ -404,7 +404,7 @@ int main(int argc, char** argv) { - 127}; - try { - string bin_result; -- testClient.testBinary(bin_result, string(bin_data, 256)); -+ testClient.testBinary(bin_result, string(reinterpret_cast<const char *>(bin_data), 256)); - if (bin_result.size() != 256) { - printf("}\n*** FAILED ***\n"); - printf("invalid length: %lu\n", bin_result.size()); --- -2.9.3 - diff --git a/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch b/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch new file mode 100644 index 0000000000..bbfc6c8069 --- /dev/null +++ b/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch @@ -0,0 +1,42 @@ +From a07e56e1a2e70a9b81eb0a65f345cf45a7a93a81 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 19 Dec 2019 21:56:23 -0800 +Subject: [PATCH] DefineInstallationPaths.cmake: Define libdir in terms of + LIB_SUFFIX + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + build/cmake/DefineInstallationPaths.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/build/cmake/DefineInstallationPaths.cmake ++++ b/build/cmake/DefineInstallationPaths.cmake +@@ -26,11 +26,11 @@ else() + set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The library install dir (default: lib${LIB_SUFFIX})") + endif() + set(INCLUDE_INSTALL_DIR "include" CACHE PATH "The library install dir (default: include)") +-set(CMAKE_INSTALL_DIR "lib/cmake" CACHE PATH "The subdirectory to install cmake config files (default: cmake)") +-set(PKGCONFIG_INSTALL_DIR "lib/pkgconfig" CACHE PATH "The subdirectory to install pkgconfig config files (default: lib/pkgconfig)") ++set(CMAKE_INSTALL_DIR "lib${LIB_SUFFIX}/cmake" CACHE PATH "The subdirectory to install cmake config files (default: cmake)") ++set(PKGCONFIG_INSTALL_DIR "lib${LIB_SUFFIX}/pkgconfig" CACHE PATH "The subdirectory to install pkgconfig config files (default: lib/pkgconfig)") + set(DOC_INSTALL_DIR "share/doc" CACHE PATH "The subdirectory to install documentation files (default: share/doc)") + set(prefix "${CMAKE_INSTALL_PREFIX}") + set(exec_prefix "${CMAKE_INSTALL_PREFIX}/bin") +-set(libdir "${CMAKE_INSTALL_PREFIX}/lib") ++set(libdir "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") + set(includedir "${CMAKE_INSTALL_PREFIX}/include") + set(cmakedir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DIR}") +--- a/build/cmake/DefineCMakeDefaults.cmake ++++ b/build/cmake/DefineCMakeDefaults.cmake +@@ -44,8 +44,8 @@ include(BuildType) + # top of the build tree rather than in hard-to-find leaf + # directories. This simplifies manual testing and the use of the build + # tree rather than installed thrift libraries. +-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) ++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIB_SUFFIX}) ++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIB_SUFFIX}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + + # diff --git a/meta-oe/recipes-connectivity/thrift/thrift_0.20.0.bb b/meta-oe/recipes-connectivity/thrift/thrift_0.20.0.bb new file mode 100644 index 0000000000..23db052b9e --- /dev/null +++ b/meta-oe/recipes-connectivity/thrift/thrift_0.20.0.bb @@ -0,0 +1,71 @@ +SUMMARY = "Apache Thrift" +DESCRIPTION = "A software framework, for scalable cross-language services development" +HOMEPAGE = "https://thrift.apache.org/" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c40a383cb3f747e0c7abbf1482f194f0 \ + file://NOTICE;md5=2659b43daca219f99a2f2626ea128f73" + +DEPENDS = "thrift-native boost flex-native bison-native openssl zlib" + +SRC_URI = "https://downloads.apache.org/${BPN}/${PV}/${BP}.tar.gz \ + file://0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch" +SRC_URI[sha256sum] = "b5d8311a779470e1502c027f428a1db542f5c051c8e1280ccd2163fa935ff2d6" + +BBCLASSEXTEND = "native nativesdk" + +CVE_PRODUCT = "apache:thrift" + +inherit pkgconfig cmake python3native + +export STAGING_INCDIR +export STAGING_LIBDIR +export BUILD_SYS +export HOST_SYS + +EXTRA_OECMAKE = " \ + -DBUILD_LIBRARIES=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_COMPILER=ON \ + -DBUILD_TESTING=OFF \ + -DBUILD_TUTORIALS=OFF \ + -DWITH_AS3=OFF \ + -DWITH_CPP=ON \ + -DWITH_JAVA=OFF \ + -DWITH_OPENSSL=ON \ + -DWITH_QT5=OFF \ + -DWITH_ZLIB=ON \ + -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \ + -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \ +" + +PACKAGECONFIG ??= "glib libevent" +PACKAGECONFIG[glib] = "-DWITH_C_GLIB=ON,-DWITH_C_GLIB=OFF,glib-2.0" +PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent" +PACKAGECONFIG[javascript] = "-DWITH_JAVASCRIPT=ON,-DWITH_JAVASCRIPT=OFF,nodejs" +PACKAGECONFIG[nodejs] = "-DWITH_NODEJS=ON,-DWITH_NODEJS=OFF,nodejs" +PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python" + +do_install:append () { + ln -sf thrift ${D}/${bindir}/thrift-compiler + # remove absolute paths + sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thriftnbTargets.cmake + sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thrift_c_glibTargets.cmake + sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thrift_c_glib_zlibTargets.cmake +} + +LEAD_SONAME = "libthrift.so.${PV}" + +# thrift packages +PACKAGE_BEFORE_PN = "${PN}-compiler lib${BPN} lib${BPN}z lib${BPN}nb lib${BPN}-c-glib" +FILES:lib${BPN} = "${libdir}/libthrift.so.*" +FILES:lib${BPN}z = "${libdir}/libthriftz.so.*" +FILES:lib${BPN}nb = "${libdir}/libthriftnb.so.*" +FILES:lib${BPN}-c-glib = "${libdir}/libthrift_c_glib.so.*" +FILES:${PN}-compiler = "${bindir}/*" + +# The thrift packages just pulls in some default dependencies but is otherwise empty +RRECOMMENDS:${PN} = "${PN}-compiler lib${BPN}" +ALLOW_EMPTY:${PN} = "1" +RRECOMMENDS:${PN}:class-native = "" +RRECOMMENDS:${PN}:class-nativesdk = "" diff --git a/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb b/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb deleted file mode 100644 index aa93283712..0000000000 --- a/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb +++ /dev/null @@ -1,64 +0,0 @@ -SUMMARY = "Apache Thrift" -DESCRIPTION = "A software framework, for scalable cross-language services development" -HOMEPAGE = "https://thrift.apache.org/" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e4ed21f679b2aafef26eac82ab0c2cbf \ - file://NOTICE;md5=115f49498b66b494b0472658f2bfe80b" - -DEPENDS = "thrift-native boost flex-native bison-native openssl" - -SRC_URI = "http://mirror.switch.ch/mirror/apache/dist/thrift/${PV}/${BPN}-${PV}.tar.gz \ - file://0001-Forcibly-disable-check-for-Qt5.patch \ - file://0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch \ - file://0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch \ -" - -SRC_URI[md5sum] = "88d667a8ae870d5adeca8cb7d6795442" -SRC_URI[sha256sum] = "b0740a070ac09adde04d43e852ce4c320564a292f26521c46b78e0641564969e" - -BBCLASSEXTEND = "native nativesdk" - -inherit pkgconfig cmake pythonnative - -export STAGING_INCDIR -export STAGING_LIBDIR -export BUILD_SYS -export HOST_SYS - -EXTRA_OECMAKE = " \ - -DBUILD_LIBRARIES=ON \ - -DBUILD_COMPILER=ON \ - -DBUILD_TESTING=OFF \ - -DBUILD_EXAMPLES=OFF \ - -DBUILD_TUTORIALS=OFF \ - -DWITH_CPP=ON \ - -DWITH_JAVA=OFF \ - -DWITH_STATIC_LIB=ON \ - -DWITH_SHARED_LIB=ON \ - -DWITH_OPENSSL=ON \ - -DWITH_QT4=OFF \ - -DWITH_QT5=OFF \ -" - -PACKAGECONFIG ??= "libevent glib python" -PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent," -PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python," -PACKAGECONFIG[glib] = "-DWITH_C_GLIB=ON,-DWITH_C_GLIB=OFF,glib-2.0 ," - -do_install_append () { - ln -sf thrift ${D}/${bindir}/thrift-compiler -} - -LEAD_SONAME = "libthrift.so.${PV}" - -# thrift packages -PACKAGE_BEFORE_PN = "${PN}-compiler lib${BPN}" -FILES_lib${BPN} = "${libdir}/*.so.*" -FILES_${PN}-compiler = "${bindir}/*" - -# The thrift packages just pulls in some default dependencies but is otherwise empty -RRECOMMENDS_${PN} = "${PN}-compiler lib${BPN}" -ALLOW_EMPTY_${PN} = "1" -RRECOMMENDS_${PN}_class-native = "" -RRECOMMENDS_${PN}_class-nativesdk = "" diff --git a/meta-oe/recipes-connectivity/transmission/files/transmission-daemon b/meta-oe/recipes-connectivity/transmission/files/transmission-daemon new file mode 100644 index 0000000000..d1ffff58b0 --- /dev/null +++ b/meta-oe/recipes-connectivity/transmission/files/transmission-daemon @@ -0,0 +1,163 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: transmission-daemon +# Required-Start: networking +# Required-Stop: networking +# Default-Start: 2 3 5 +# Default-Stop: 0 1 6 +# Short-Description: Start the transmission BitTorrent daemon client. +### END INIT INFO + +# Original Author: Lennart A. JÃŒtte, based on Rob Howell's script +# Modified by Maarten Van Coile & others (on IRC) + +# Do NOT "set -e" + +# +# ----- CONFIGURATION ----- +# +# For the default location Transmission uses, visit: +# http://trac.transmissionbt.com/wiki/ConfigFiles +# For a guide on how set the preferences, visit: +# http://trac.transmissionbt.com/wiki/EditConfigFiles +# For the available environement variables, visit: +# http://trac.transmissionbt.com/wiki/EnvironmentVariables +# +# The name of the user that should run Transmission. +# It's RECOMENDED to run Transmission in it's own user, +# by default, this is set to 'transmission'. +# For the sake of security you shouldn't set a password +# on this user +USERNAME=transmission + + +# ----- *ADVANCED* CONFIGURATION ----- +# Only change these options if you know what you are doing! +# +# The folder where Transmission stores the config & web files. +# ONLY change this you have it at a non-default location +#TRANSMISSION_HOME="/var/config/transmission-daemon" +#TRANSMISSION_WEB_HOME="/usr/share/transmission/web" +# +# The arguments passed on to transmission-daemon. +# ONLY change this you need to, otherwise use the +# settings file as per above. +#TRANSMISSION_ARGS="" + + +# ----- END OF CONFIGURATION ----- +# +# PATH should only include /usr/* if it runs after the mountnfs.sh script. +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +DESC="bittorrent client" +NAME=transmission-daemon +DAEMON=$(which $NAME) +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# Load the VERBOSE setting and other rcS variables +[ -f /etc/default/rcS ] && . /etc/default/rcS + +# +# Function that starts the daemon/service +# + +do_start() +{ + # Export the configuration/web directory, if set + if [ -n "$TRANSMISSION_HOME" ]; then + export TRANSMISSION_HOME + fi + if [ -n "$TRANSMISSION_WEB_HOME" ]; then + export TRANSMISSION_WEB_HOME + fi + + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \ + --exec $DAEMON --background --test -- -f $TRANSMISSION_ARGS > /dev/null \ + || return 1 + start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \ + --exec $DAEMON --background -- -f $TRANSMISSION_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + + # Wait for children to finish too if this is a daemon that forks + # and if the daemon is only ever run from this initscript. + # If the above conditions are not satisfied then add some other code + # that waits for the process to drop all resources that could be + # needed by services started subsequently. A last resort is to + # sleep for some time. + + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + + return "$RETVAL" +} + +case "$1" in + start) + echo "Starting $DESC" "$NAME..." + do_start + case "$?" in + 0|1) echo " Starting $DESC $NAME succeeded" ;; + *) echo " Starting $DESC $NAME failed" ;; + esac + ;; + stop) + echo "Stopping $DESC $NAME..." + do_stop + case "$?" in + 0|1) echo " Stopping $DESC $NAME succeeded" ;; + *) echo " Stopping $DESC $NAME failed" ;; + esac + ;; + restart|force-reload) + # + # If the "reload" option is implemented then remove the + # 'force-reload' alias + # + echo "Restarting $DESC $NAME..." + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0|1) echo " Restarting $DESC $NAME succeeded" ;; + *) echo " Restarting $DESC $NAME failed: couldn't start $NAME" ;; + esac + ;; + *) + echo " Restarting $DESC $NAME failed: couldn't stop $NAME" ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 3 + ;; +esac diff --git a/meta-oe/recipes-connectivity/transmission/transmission_4.0.5.bb b/meta-oe/recipes-connectivity/transmission/transmission_4.0.5.bb new file mode 100644 index 0000000000..b9ed3d925d --- /dev/null +++ b/meta-oe/recipes-connectivity/transmission/transmission_4.0.5.bb @@ -0,0 +1,61 @@ +DESCRIPTION = "Transmission is a fast, easy, and free BitTorrent client" +SECTION = "network" +HOMEPAGE = "https://transmissionbt.com/" +LICENSE = "MIT & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=ba8199e739948e198310093de27175fa" + +DEPENDS = "curl libevent gnutls openssl libtool intltool-native glib-2.0-native" +RDEPENDS:${PN}-web = "${PN}" + +SRC_URI = " \ + gitsm://github.com/transmission/transmission;branch=4.0.x;protocol=https \ + file://transmission-daemon \ +" + +# Transmission release 4.0.5 +SRCREV = "a6fe2a64aa7eca089f96006cf082a12f0cde937f" + +S = "${WORKDIR}/git" + +inherit cmake gettext update-rc.d pkgconfig systemd mime-xdg + +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" + +PACKAGECONFIG[gtk] = "-DENABLE_GTK=ON,-DENABLE_GTK=OFF,gtk4 gtkmm4," +PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd," + +# Weak default values for transmission user and group +# Change them in bbappend if needed +TRANSMISSION_USER ??= "root" +TRANSMISSION_GROUP ??= "root" + +do_install:append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + sed -i '/USERNAME=/c\USERNAME=${TRANSMISSION_USER}' ${UNPACKDIR}/transmission-daemon + install -d ${D}${sysconfdir}/init.d + install -m 0744 ${UNPACKDIR}/transmission-daemon ${D}${sysconfdir}/init.d/ + chown ${TRANSMISSION_USER}:${TRANSMISSION_GROUP} ${D}${sysconfdir}/init.d/transmission-daemon + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + sed -i '/User=/c\User=${TRANSMISSION_USER}' ${S}/daemon/transmission-daemon.service + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${S}/daemon/transmission-daemon.service ${D}${systemd_unitdir}/system + fi +} + +PACKAGES += "${PN}-gtk ${PN}-client ${PN}-web" + +FILES:${PN}-client = "${bindir}/transmission-remote ${bindir}/transmission-cli ${bindir}/transmission-create ${bindir}/transmission-show ${bindir}/transmission-edit" +FILES:${PN}-gtk += "${bindir}/transmission-gtk ${datadir}/icons ${datadir}/applications ${datadir}/pixmaps ${datadir}/metainfo" +FILES:${PN}-web = "${datadir}/transmission/web ${datadir}/transmission/public_html" +FILES:${PN} = "${bindir}/transmission-daemon ${sysconfdir}/init.d/transmission-daemon ${datadir}/appdata" + +SYSTEMD_SERVICE:${PN} = "transmission-daemon.service" + +# Script transmission-daemon following the guidelines in: +# https://trac.transmissionbt.com/wiki/Scripts/initd +INITSCRIPT_PACKAGES = "transmission-daemon" +INITSCRIPT_NAME = "transmission-daemon" +INITSCRIPT_PARAMS = "start 99 5 3 2 . stop 10 0 1 6 ." diff --git a/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch b/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch deleted file mode 100644 index 8e5f4da362..0000000000 --- a/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a0ad5128d14b022239445e251cf4a9826e86aa96 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 27 Jun 2017 07:48:31 -0700 -Subject: [PATCH] Add format string to fprintf() call - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/vt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/vt.c b/src/vt.c -index 795d393..a533d3d 100644 ---- a/src/vt.c -+++ b/src/vt.c -@@ -499,7 +499,7 @@ static int vt_cmd_dump_candidates(const struct vt_handle *vh, - } - llen += cmdlen; - -- ret = fprintf(vh->vh_stream, e->cmd); -+ ret = fprintf(vh->vh_stream, "%s", e->cmd); - if (ret < 0) - return ret; - --- -2.13.2 - diff --git a/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch b/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch deleted file mode 100644 index 8192056d13..0000000000 --- a/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f567740cf64978ac9db014c786b6d0267b244f33 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 4 Mar 2018 22:30:30 -0800 -Subject: [PATCH 1/2] replace SIGCLD with SIGCHLD and include sys/types.h - -Fixes -main.c:129:10: error: 'SIGCLD' undeclared (first use in this function); did you mean 'SIGCHLD'? - signal(SIGCLD, sig_child); - ^~~~~~ - SIGCHLD - -main.c:125:2: warning: implicit declaration of function 'umask' [-Wimplicit-function-declaration] - umask(0); - ^~~~~ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - src/main.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/main.c b/src/main.c -index 3cf4072..cd34196 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -31,6 +31,7 @@ - #include <sys/ioctl.h> - #include <sys/wait.h> - #include <sys/param.h> -+#include <sys/types.h> - #include <pthread.h> - #include <fcntl.h> - #include <unistd.h> -@@ -126,9 +127,9 @@ static void daemon_start(int ignsigcld) - - if (ignsigcld) { - #ifdef SIGTSTP -- signal(SIGCLD, sig_child); -+ signal(SIGCHLD, sig_child); - #else -- signal(SIGCLD, SIG_IGN); -+ signal(SIGCHLD, SIG_IGN); - #endif - } - } --- -2.16.2 - diff --git a/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch b/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch deleted file mode 100644 index 90d12da149..0000000000 --- a/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 19b6cf8099e1974b5fc39086fc54103b0cbc2658 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 4 Mar 2018 23:01:25 -0800 -Subject: [PATCH 2/2] replace PTHREAD_MUTEX_FAST_NP with PTHREAD_MUTEX_NORMAL - -PTHREAD_MUTEX_FAST_NP is not available on non-posix systems -e.g. musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - src/ha.c | 2 +- - src/icmp6.c | 2 +- - src/mh.c | 2 +- - src/mn.c | 2 +- - src/movement.c | 2 +- - src/mpdisc_ha.c | 2 +- - src/mpdisc_mn.c | 2 +- - src/tqueue.c | 2 +- - src/tunnelctl.c | 2 +- - 9 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/src/ha.c b/src/ha.c -index fbdcff0..b2f811e 100644 ---- a/src/ha.c -+++ b/src/ha.c -@@ -1246,7 +1246,7 @@ int ha_init(void) - { - pthread_mutexattr_t mattrs; - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&bu_worker_mutex, &mattrs) || - pthread_cond_init(&cond, NULL)) - return -1; -diff --git a/src/icmp6.c b/src/icmp6.c -index 3695135..6460634 100644 ---- a/src/icmp6.c -+++ b/src/icmp6.c -@@ -243,7 +243,7 @@ int icmp6_init(void) - return -1; - /* create ICMP listener thread */ - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&icmp6_sock.send_mutex, &mattrs) || - pthread_rwlock_init(&handler_lock, NULL) || - pthread_create(&icmp6_listener, NULL, icmp6_listen, NULL)) -diff --git a/src/mh.c b/src/mh.c -index 60e345e..7928f4c 100644 ---- a/src/mh.c -+++ b/src/mh.c -@@ -204,7 +204,7 @@ int mh_init(void) - return -1; - - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&mh_sock.send_mutex, &mattrs) || - pthread_rwlock_init(&handler_lock, NULL) || - pthread_create(&mh_listener, NULL, mh_listen, NULL)) -diff --git a/src/mn.c b/src/mn.c -index 092cfcb..8f7f448 100644 ---- a/src/mn.c -+++ b/src/mn.c -@@ -1478,7 +1478,7 @@ static struct home_addr_info *hai_copy(struct home_addr_info *conf_hai) - if (hai != NULL) { - pthread_mutexattr_t mattrs; - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - - memcpy(hai, conf_hai, sizeof(struct home_addr_info)); - -diff --git a/src/movement.c b/src/movement.c -index d985937..6400448 100644 ---- a/src/movement.c -+++ b/src/movement.c -@@ -2013,7 +2013,7 @@ int md_init(void) - int val; - - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&iface_lock, &mattrs)) - return -1; - -diff --git a/src/mpdisc_ha.c b/src/mpdisc_ha.c -index 40ba05f..fd7a90d 100644 ---- a/src/mpdisc_ha.c -+++ b/src/mpdisc_ha.c -@@ -559,7 +559,7 @@ int mpd_ha_init(void) - { - pthread_mutexattr_t mattrs; - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&mpa_lock, &mattrs) || - pthread_rwlock_init(&prefix_lock, NULL) || - hash_init(&mpa_hash, DOUBLE_ADDR, MPA_BUCKETS) < 0) -diff --git a/src/mpdisc_mn.c b/src/mpdisc_mn.c -index 4873bd6..ada02bd 100644 ---- a/src/mpdisc_mn.c -+++ b/src/mpdisc_mn.c -@@ -267,7 +267,7 @@ int mpd_mn_init(void) - { - pthread_mutexattr_t mattrs; - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&mps_lock, &mattrs)) - return -1; - if (hash_init(&mps_hash, DOUBLE_ADDR, MPS_BUCKETS) < 0) -diff --git a/src/tqueue.c b/src/tqueue.c -index 2f7aa0b..9c185b8 100644 ---- a/src/tqueue.c -+++ b/src/tqueue.c -@@ -65,7 +65,7 @@ int taskqueue_init(void) - { - pthread_mutexattr_t mattrs; - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&mutex, &mattrs) || - pthread_cond_init(&cond, NULL) || - pthread_create(&tq_runner, NULL, runner, NULL)) -diff --git a/src/tunnelctl.c b/src/tunnelctl.c -index 23fc20b..813b8ec 100644 ---- a/src/tunnelctl.c -+++ b/src/tunnelctl.c -@@ -433,7 +433,7 @@ int tunnelctl_init(void) - return -1; - - pthread_mutexattr_init(&mattrs); -- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP); -+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL); - if (pthread_mutex_init(&tnl_lock, &mattrs)) - return -1; - --- -2.16.2 - diff --git a/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch b/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch deleted file mode 100644 index dbf0082640..0000000000 --- a/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch +++ /dev/null @@ -1,23 +0,0 @@ -When "make -j10", the compilation will fail, -because scan.c has included gram.h, but gram.h was produced -after scan.c was compiled - -So add this dependency to ensure that gram.h is produced -before scan.c is produced. - -Upstream-Status: Inappropriate [upstream is not active] - -Signed-off-by: Roy.Li <RongQing.Li@windriver.com> -Signed-off-by: Jackie Huang <jackie.huang@windriver.com> ---- - src/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -81,3 +81,5 @@ CLEANFILES = gram.c gram.h \ - - DISTCLEANFILES = $(BUILT_SOURCES) - MAINTAINERCLEANFILES = Makefile.in -+ -+scan.c: gram.h diff --git a/meta-oe/recipes-connectivity/umip/files/mip6d b/meta-oe/recipes-connectivity/umip/files/mip6d deleted file mode 100755 index ebd70a6cca..0000000000 --- a/meta-oe/recipes-connectivity/umip/files/mip6d +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -# -# mip6d Start script for the Mobile IPv6 daemon -# -# chkconfig: - 55 25 -# description: The mobile IPv6 daemon allows nodes to remain \ -# reachable while moving around in the IPv6 Internet. -# processname: mip6d -# config: /etc/mip6d.conf -# config: /etc/sysconfig/mip6d -# -### BEGIN INIT INFO -# Provides: mipv6-daemon -# Required-Start: $local_fs $remote_fs $network $named -# Required-Stop: $local_fs $remote_fs $network -# Should-Start: $syslog -# Should-Stop: $network $syslog -# Default-Start: -# Default-Stop: 0 1 6 -# Short-Description: Start and stop Mobile IPV6 daemon -# Description: The mobile IPv6 daemon allows nodes to remain -# reachable while moving around in the IPv6 Internet. -### END INIT INFO - -# Source function library. -. /etc/init.d/functions - -if [ -f /etc/sysconfig/mip6d ]; then - . /etc/sysconfig/mip6d -fi - -mip6d=/usr/sbin/mip6d -prog="mip6d" -lockfile=/var/lock/subsys/$prog - -start() { - [ -x $mip6d ] || exit 5 - echo -n $"Starting $prog: " - start-stop-daemon -S -x ${mip6d} && success || failure - retval=$? - echo - [ $retval -eq 0 ] && touch ${lockfile} - return $retval -} - -stop() { - echo -n $"Stopping $prog: " - start-stop-daemon -K -x $mip6d - retval=$? - echo - [ $retval -eq 0 ] && rm -f ${lockfile} - return $retval -} - -restart() { - stop - start -} - -reload() -{ - echo -n $"Reloading $prog configuration: " - killproc $mip6d -HUP - retval=$? - echo - return $retval -} - -force_reload() { - restart -} - -rh_status() { - status $prog -} - -rh_status_q() { - rh_status > /dev/null 2>&1 -} - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - rh_status_q || exit 7 - $1 - ;; - force-reload) - force_reload - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $prog {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - exit 2 -esac - -exit $? diff --git a/meta-oe/recipes-connectivity/umip/files/mip6d.service b/meta-oe/recipes-connectivity/umip/files/mip6d.service deleted file mode 100644 index 2b5a5b9f1d..0000000000 --- a/meta-oe/recipes-connectivity/umip/files/mip6d.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=MIPL Mobile IPv6 -After=network.target - -[Service] -EnvironmentFile=-@SYSCONFDIR@/sysconfig/mip6d -ExecStart=@SBINDIR@/mip6d $ARGS - -[Install] -WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/umip/umip_1.0.bb b/meta-oe/recipes-connectivity/umip/umip_1.0.bb deleted file mode 100644 index 0c120bfd84..0000000000 --- a/meta-oe/recipes-connectivity/umip/umip_1.0.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Mobile IPv6 and NEMO for Linux" -DESCRIPTION = "UMIP is an open source implementation of Mobile IPv6 and NEMO \ -Basic Support for Linux. It is released under the GPLv2 license. It supports \ -the following IETF RFC: RFC6275 (Mobile IPv6), RFC3963 (NEMO), RFC3776 and \ -RFC4877 (IPsec and IKEv2)." -HOMEPAGE = "http://umip.org/" -SECTION = "System Environment/Base" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33" -DEPENDS = "rpm indent-native" - -SRC_URI = "git://github.com/jlanza/umip \ - file://add-dependency-to-support-parallel-compilation.patch \ - file://mip6d \ - file://mip6d.service \ - file://0001-Add-format-string-to-fprintf-call.patch \ - file://0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch \ - file://0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch \ - " -SRCREV = "7d67209cd1bba2dd0e183a0fa07eeef07964dd14" - -S = "${WORKDIR}/git" - -EXTRA_OECONF = "--enable-vt" - -inherit autotools-brokensep systemd update-rc.d - -INITSCRIPT_NAME = "mip6d" -INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ." - -SYSTEMD_SERVICE_${PN} = "mip6d.service" -SYSTEMD_AUTO_ENABLE = "disable" - -do_install_append() { - install -D -m 0755 ${WORKDIR}/mip6d ${D}${sysconfdir}/init.d/mip6d - install -D -m 0644 ${WORKDIR}/mip6d.service ${D}${systemd_system_unitdir}/mip6d.service - sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - -e 's,@SBINDIR@,${sbindir},g' \ - ${D}${systemd_system_unitdir}/mip6d.service -} - -RRECOMMENDS_${PN} = "kernel-module-mip6 kernel-module-ipv6" diff --git a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb index 4365aa4bc6..569d6a41cf 100644 --- a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb +++ b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb @@ -1,24 +1,23 @@ DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch." -LICENSE = "GPLv3 & GPLv2 & LGPLv2.1" +HOMEPAGE = "https://github.com/libimobiledevice/usbmuxd" +LICENSE = "GPL-3.0-only & GPL-2.0-only & LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=ebb5c50ab7cab4baeffba14977030c07 \ - file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LGPLv2.1;md5=6ab17b41640564434dda85c06b7124f7" + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "udev libusb1" +DEPENDS = "udev libusb1 libplist libimobiledevice-glue" -inherit cmake pkgconfig gitpkgv +inherit autotools pkgconfig gitpkgv systemd PKGV = "${GITPKGVTAG}" +PV = "1.1.2+git" -SRCREV = "919587580c5e77f3936f3432115d2e10c7bac7c5" -SRC_URI = "git://git.sukimashita.com/usbmuxd.git;protocol=http" +SRCREV = "01c94c77f59404924f1c46d99c4e5e0c7817281b" +SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https;branch=master" S = "${WORKDIR}/git" -FILES_${PN} += "${base_libdir}/udev/rules.d/" +EXTRA_OECONF += "--without-preflight" -# fix usbmuxd installing files to /usr/lib64 on 64bit hosts: -EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" +FILES:${PN} += "${base_libdir}/udev/rules.d/" -PACKAGECONFIG ??= "" -PACKAGECONFIG[plist] = "-DWANT_PLIST=1,-DWANT_PLIST=0,libplist" +SYSTEMD_SERVICE:${PN} = "usbmuxd.service" diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch new file mode 100644 index 0000000000..9ee4a51f99 --- /dev/null +++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch @@ -0,0 +1,92 @@ +From 6b822b36739222d0c864249992b5d28e3ff4d948 Mon Sep 17 00:00:00 2001 +From: Adrian Friedli <adrian.friedli@husqvarnagroup.com> +Date: Mon, 3 Sep 2018 17:58:27 +0200 +Subject: [PATCH] Use toolchain from environment variables + +Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/42] +Signed-off-by: Adrian Friedli <adrian.friedli@husqvarnagroup.com> +Signed-off-by: Ankit Navik <ankit.tarot@gmail.com> +--- + Makefile.inc | 7 ++++--- + WTGService/Makefile | 2 +- + console_src/Makefile | 2 +- + lib/Makefile | 6 +++--- + 4 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/Makefile.inc b/Makefile.inc +index b0edf5a..0094bdf 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -13,14 +13,15 @@ + # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + # USE OR PERFORMANCE OF THIS SOFTWARE. + # +-CC = gcc ++CC ?= gcc ++AR ?= ar + LIB=lib + DUT=dut + CA=ca + UCC=ucc + CON=console_src + WTG=WTGService +-MAKE=make ++MAKE?=make + + # This is for WMM-PS + #for Ext TG +@@ -46,7 +47,7 @@ CFLAGS = -g -O2 -D_REENTRANT -Wall -I../inc + + DUTLIBS = ../lib/libwfa_dut.a -lpthread + CALIBS = ../lib/libwfa_ca.a -lpthread +-RANLIB = ranlib ++RANLIB ?= ranlib + + LIBWFA_NAME_DUT = libwfa_dut.a + LIBWFA_NAME_CA = libwfa_ca.a +diff --git a/WTGService/Makefile b/WTGService/Makefile +index 5312eb6..4855771 100644 +--- a/WTGService/Makefile ++++ b/WTGService/Makefile +@@ -13,7 +13,7 @@ + # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + # USE OR PERFORMANCE OF THIS SOFTWARE. + # +-CC=gcc ++CC?=gcc + CFLAGS= -Wall + LIB=-lpthread + +diff --git a/console_src/Makefile b/console_src/Makefile +index 8282283..d1098eb 100644 +--- a/console_src/Makefile ++++ b/console_src/Makefile +@@ -14,7 +14,7 @@ + # USE OR PERFORMANCE OF THIS SOFTWARE. + # + +-CC = gcc ++CC ?= gcc + CFLAGS = -g -DWFA_DEBUG -pthread + + TARGETS = wfa_con +diff --git a/lib/Makefile b/lib/Makefile +index ffcef94..299b8d6 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -17,9 +17,9 @@ + include ../Makefile.inc + + all: ${LIB_OBJS} +- ar crv ${LIBWFA_NAME} $? +- ar crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT} +- ar crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA} ++ $(AR) crv ${LIBWFA_NAME} $? ++ $(AR) crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT} ++ $(AR) crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA} + ${RANLIB} ${LIBWFA_NAME} ${LIBWFA_NAME_DUT} ${LIBWFA_NAME_CA} + + wfa_tg.o: wfa_tg.c ../inc/wfa_agt.h ../inc/wfa_types.h ../inc/wfa_rsp.h ../inc/wfa_tlv.h ../inc/wfa_tg.h +-- +2.7.4 + diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-wfa_cmdproc-Store-return-value-into-location.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-wfa_cmdproc-Store-return-value-into-location.patch new file mode 100644 index 0000000000..074f0fe7bb --- /dev/null +++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-wfa_cmdproc-Store-return-value-into-location.patch @@ -0,0 +1,32 @@ +From 2b7d6cf62296ff4e25e5ad909aa39a257bf9ff78 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 31 Aug 2022 19:37:35 -0700 +Subject: [PATCH] wfa_cmdproc: Store return value into location + +Fixes +| wfa_cmdproc.c:100:20: error: incompatible integer to pointer conversion assigning to 'int *' from 'int' [-Wint-conversion] +| paramValue = atoi(str); +| ^ ~~~~~~~~~ + +Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/57] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/wfa_cmdproc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/wfa_cmdproc.c b/lib/wfa_cmdproc.c +index 9f5fd16..49a3f16 100644 +--- a/lib/wfa_cmdproc.c ++++ b/lib/wfa_cmdproc.c +@@ -97,7 +97,7 @@ int getParamValueInt(char *pcmdStr, char *pParam, int *paramValue) + if(strcasecmp(pcmdStr, pParam) == 0) + { + str = strtok_r(NULL, ",", &pcmdStr); +- paramValue = atoi(str); ++ *paramValue = atoi(str); + return 0; + } + return -1; +-- +2.37.3 + diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch new file mode 100644 index 0000000000..20fb6473f8 --- /dev/null +++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch @@ -0,0 +1,45 @@ +From 451b162c903a1ef070a75dc18171620f3beef7b3 Mon Sep 17 00:00:00 2001 +From: Ankit Navik <ankit.tarot@gmail.com> +Date: Tue, 25 Dec 2018 00:36:59 +0530 +Subject: [PATCH 2/3] Add missing include, removes unnedded stuff and add non + glibc rpc + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Reto Schneider <code@reto-schneider.ch> +Signed-off-by: Ankit Navik <ankit.tarot@gmail.com> +--- + Makefile | 2 +- + inc/wfa_tg.h | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 2c41a17..5c4ad8c 100644 +--- a/Makefile ++++ b/Makefile +@@ -15,7 +15,7 @@ + # + include Makefile.inc + +-DIRS= ${LIB} ${DUT} ${CA} ${TC} ${WTG} ${CON} ++DIRS= ${LIB} ${DUT} ${CA} ${TC} + + all: + for i in ${DIRS}; do \ +diff --git a/inc/wfa_tg.h b/inc/wfa_tg.h +index 799bf9f..a1804dd 100644 +--- a/inc/wfa_tg.h ++++ b/inc/wfa_tg.h +@@ -24,6 +24,9 @@ + #ifndef _WFA_TG_H + #define _WFA_TG_H + ++#ifndef _WINDOWS ++#include <pthread.h> ++#endif + #include <sys/time.h> + + /* maximum number of streams to support */ +-- +2.7.4 + diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch new file mode 100644 index 0000000000..cfa46ff496 --- /dev/null +++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch @@ -0,0 +1,60 @@ +From fc7b7106dd0d8d123f20cbd8d408637fbc315e17 Mon Sep 17 00:00:00 2001 +From: Ankit Navik <ankit.tarot@gmail.com> +Date: Tue, 25 Dec 2018 01:12:32 +0530 +Subject: [PATCH 3/3] fix path to /usr/sbin for script and make script for + generic shell + +Signed-off-by: Ankit Navik <ankit.tarot@gmail.com> +--- +Upstream-Status: Pending + + lib/wfa_cs.c | 4 ++-- + scripts/dev_send_frame | 2 +- + scripts/sta_reset_parm | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/lib/wfa_cs.c b/lib/wfa_cs.c +index 6b1f5a2..2a18533 100644 +--- a/lib/wfa_cs.c ++++ b/lib/wfa_cs.c +@@ -319,7 +319,7 @@ int wfaStaGetIpConfig(int len, BYTE *caCmdBuf, int *respLen, BYTE *respBuf) + /* + * check a script file (the current implementation specific) + */ +- ret = access("/usr/local/sbin/getipconfig.sh", F_OK); ++ ret = access("/usr/sbin/getipconfig.sh", F_OK); + if(ret == -1) + { + ipconfigResp->status = STATUS_ERROR; +@@ -2115,7 +2115,7 @@ int wfaStaPresetParams(int len, BYTE *caCmdBuf, int *respLen, BYTE *respBuf) + st = remove("/tmp/processid.txt"); + } + +- sprintf(cmdStr, "/usr/local/sbin/findprocess.sh %s /tmp/processid.txt\n", "wpa_supplicant"); ++ sprintf(cmdStr, "/usr/sbin/findprocess.sh %s /tmp/processid.txt\n", "wpa_supplicant"); + st = system(cmdStr); + + tmpfd = fopen("/tmp/processid.txt", "r+"); +diff --git a/scripts/dev_send_frame b/scripts/dev_send_frame +index 9e6afd3..3c37d61 100644 +--- a/scripts/dev_send_frame ++++ b/scripts/dev_send_frame +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env sh + + # + # Copyright (c) 2016 Wi-Fi Alliance +diff --git a/scripts/sta_reset_parm b/scripts/sta_reset_parm +index 2aff1f1..2c1c31e 100644 +--- a/scripts/sta_reset_parm ++++ b/scripts/sta_reset_parm +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env sh + + # + # Copyright (c) 2016 Wi-Fi Alliance +-- +2.7.4 + diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch new file mode 100644 index 0000000000..40af48970f --- /dev/null +++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch @@ -0,0 +1,38 @@ +From cca2f9901fb4fdcdd49066fe434eae512964143f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 9 Feb 2019 07:59:47 -0800 +Subject: [PATCH 4/4] run ranlib per library and use AR + +Use AR variable to invoke archiver instead of hardcoding, helps cross +compile + +compiler ranlib e.g. llvm-ranlib fails to operate on multiple archives +on single invocation + +fixes errors like +arm-yoe-linux-musleabi-llvm-ranlib: error: Exactly one archive should be specified. + +Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/47] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/lib/Makefile b/lib/Makefile +index 299b8d6..5fca322 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -20,7 +20,9 @@ all: ${LIB_OBJS} + $(AR) crv ${LIBWFA_NAME} $? + $(AR) crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT} + $(AR) crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA} +- ${RANLIB} ${LIBWFA_NAME} ${LIBWFA_NAME_DUT} ${LIBWFA_NAME_CA} ++ ${RANLIB} ${LIBWFA_NAME} ++ ${RANLIB} ${LIBWFA_NAME_DUT} ++ ${RANLIB} ${LIBWFA_NAME_CA} + + wfa_tg.o: wfa_tg.c ../inc/wfa_agt.h ../inc/wfa_types.h ../inc/wfa_rsp.h ../inc/wfa_tlv.h ../inc/wfa_tg.h + +-- +2.20.1 + diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch new file mode 100644 index 0000000000..fc5e2e99c5 --- /dev/null +++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch @@ -0,0 +1,29 @@ +Mark extern variables with 'extern' keyword + +This ensures that compilers with -fno-common does not generate multiple definitions + +Upstream-Status: Pending +Signedd-off-by: Khem Raj <raj.khem@gmail.com> + +--- a/lib/wfa_cs.c ++++ b/lib/wfa_cs.c +@@ -71,7 +71,7 @@ int wfaExecuteCLI(char *CLI); + + /* Since the two definitions are used all over the CA function */ + char gCmdStr[WFA_CMD_STR_SZ]; +-dutCmdResponse_t gGenericResp; ++extern dutCmdResponse_t gGenericResp; + int wfaTGSetPrio(int sockfd, int tgClass); + void create_apts_msg(int msg, unsigned int txbuf[],int id); + +--- a/lib/wfa_thr.c ++++ b/lib/wfa_thr.c +@@ -41,7 +41,7 @@ + /* + * external global thread sync variables + */ +-tgWMM_t wmm_thr[WFA_THREADS_NUM]; ++extern tgWMM_t wmm_thr[WFA_THREADS_NUM]; + extern int resetsnd; + extern int resetrcv; + extern int newCmdOn; diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb b/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb new file mode 100644 index 0000000000..eda01ca388 --- /dev/null +++ b/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb @@ -0,0 +1,40 @@ +SUMMARY = "Wi-Fi Test Suite Linux Control Agent" +DESCRIPTION = "Wi-Fi Test Suite is a software platform originally developed \ +by Wi-Fi Alliance, the global non-profit industry association that brings you \ +Wi-Fi, to support certification program development and device certification." +HOMEPAGE = "https://www.wi-fi.org/certification/wi-fi-test-suite" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0542427ed5c315ca34aa09ae7a85ed32" +SECTION = "test" + +S = "${WORKDIR}/git" +SRCREV = "12e85fbeca8ca21a632d18e55089a8a7606d64aa" +SRC_URI = "git://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT.git;branch=master;protocol=https \ + file://0001-Use-toolchain-from-environment-variables.patch \ + file://0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch \ + file://0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch \ + file://0004-run-ranlib-per-library-and-use-AR.patch \ + file://fno-common.patch \ + file://0001-wfa_cmdproc-Store-return-value-into-location.patch \ +" + +# to avoid host path QA error +CFLAGS += "-I${STAGING_INCDIR}/tirpc" +# Fix GNU HASH error +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install () { + install -d ${D}${libdir} + install -m 0644 ${S}/lib/libwfa.a ${D}${libdir} + install -m 0644 ${S}/lib/libwfa_ca.a ${D}${libdir} + install -m 0644 ${S}/lib/libwfa_dut.a ${D}${libdir} + install -d ${D}${sbindir} + install -m 0755 ${S}/dut/wfa_dut ${D}${sbindir} + install -m 0755 ${S}/ca/wfa_ca ${D}${sbindir} + install -m 0755 ${S}/scripts/*.sh ${D}${sbindir} + install -m 0755 ${S}/scripts/arp_neigh_loop ${D}${sbindir} + install -m 0755 ${S}/scripts/dev_send_frame ${D}${sbindir} + install -m 0755 ${S}/scripts/sta_reset_parm ${D}${sbindir} +} + +RDEPENDS:${PN} = "wpa-supplicant" diff --git a/meta-oe/recipes-connectivity/wvdial/wvdial/musl-support.patch b/meta-oe/recipes-connectivity/wvdial/wvdial/musl-support.patch new file mode 100644 index 0000000000..b5ad4823a0 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvdial/musl-support.patch @@ -0,0 +1,25 @@ +Drop support for glibc < 2.10, in master we are at 2.28 +in process get it working with musl as well. + +Upstream-Status: Inappropriate [No upstream] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/wvmodemscan.cc ++++ b/wvmodemscan.cc +@@ -495,16 +495,8 @@ static int fileselect(const struct diren + // (no internal ISDN support) || !strncmp(e->d_name, "ttyI", 4); + } + +-#if defined(__GLIBC__) && __GLIBC_PREREQ(2, 10) + static int filesort(const dirent **e1, const dirent **e2) +-#else +-static int filesort(const void *_e1, const void *_e2) +-#endif + { +-#if !(defined(__GLIBC__) && __GLIBC_PREREQ(2, 10)) +- dirent const * const *e1 = (dirent const * const *)_e1; +- dirent const * const *e2 = (dirent const * const *)_e2; +-#endif + const char *p1, *p2; + int diff; + diff --git a/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch b/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch index eec5a5d646..5f9cf8a31f 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Remove warnings found by lintian Last-Update: 2011-01-09 Index: wvdial-1.61/pon.wvdial.1 diff --git a/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb index 3a71fb9790..99e3ccacac 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb +++ b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb @@ -1,28 +1,27 @@ HOMEPAGE = "http://www.alumnit.ca/wiki/?WvDial" DESCRIPTION = "WvDial is a program that makes it easy to connect your Linux workstation to the Internet." -LICENSE = "LGPLv2" +LICENSE = "LGPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" inherit pkgconfig DEPENDS = "wvstreams" -RDEPENDS_${PN} = "ppp" +RDEPENDS:${PN} = "ppp" -SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.bz2 \ +SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${BPN}/${BP}.tar.bz2 \ file://typo_pon.wvdial.1.patch \ + file://musl-support.patch \ " - SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de" SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82" +COMPATIBLE_HOST:libc-musl = "null" EXTRA_OEMAKE = "" export WVLINK="${LD}" PARALLEL_MAKE = "" -BUILD_CPPFLAGS += "-I${STAGING_INCDIR}/wvstreams" - do_configure() { sed -i 's/LDFLAGS+=-luniconf/LIBS+=-luniconf/' ${S}/Makefile } diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch index b092ba2fce..42f3e42757 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch @@ -5,6 +5,8 @@ Subject: [PATCH 1/5] Check for limits.h during configure Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + configure.ac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Fix-narrowing-conversion-error.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Fix-narrowing-conversion-error.patch new file mode 100644 index 0000000000..fc9abd8e63 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Fix-narrowing-conversion-error.patch @@ -0,0 +1,29 @@ +From c86c524f951f6e973473bfee76fd5366368b2cbc Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 25 Dec 2019 09:32:41 -0800 +Subject: [PATCH] Fix narrowing conversion error + +xplc/moduleloader.cc: In static member function 'static Module* Module::loadModule(const char*)': xplc/moduleloader.cc:67:14: error: narrowing conversion of '-1' from 'int' to 'unsigned int' [-Wnarrowing] 67 | case (int)-1: | ^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + xplc/moduleloader.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xplc/moduleloader.cc b/xplc/moduleloader.cc +index 02dd9a4..c53f5d2 100644 +--- a/xplc/moduleloader.cc ++++ b/xplc/moduleloader.cc +@@ -62,7 +62,7 @@ Module* Module::loadModule(const char* modulename) { + return NULL; + } + +- switch(moduleinfo->version_major) { ++ switch((int)moduleinfo->version_major) { + #ifdef UNSTABLE + case -1: + /* nothing to do */ +-- +2.24.1 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch new file mode 100644 index 0000000000..19a2e26f2a --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch @@ -0,0 +1,557 @@ +From 0c35749891bf834c1f3c1c4c330266bd2f4733cc Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 9 Sep 2018 10:40:09 -0700 +Subject: [PATCH] Forward port to OpenSSL 1.1.x + +* import patch from debian +https://sources.debian.org/src/wvstreams/4.6.1-14/debian/patches/wvstreams_openssl1.1.patch +Author: Reiner Herrmann <reiner@reiner-h.de> + +Upstream-Status: Submitted [https://github.com/apenwarr/wvstreams/pull/2] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + crypto/wvcrl.cc | 38 +++++++++++++------------------------- + crypto/wvdiffiehellman.cc | 30 +++++++++++++++++++----------- + crypto/wvdigest.cc | 16 ++++++++-------- + crypto/wvocsp.cc | 35 +++++++++-------------------------- + crypto/wvx509.cc | 31 ++++++++++++++++--------------- + crypto/wvx509mgr.cc | 27 ++++++++++++++++----------- + include/wvdiffiehellman.h | 2 +- + include/wvdigest.h | 14 ++++++-------- + include/wvtripledes.h | 10 +++++----- + 9 files changed, 93 insertions(+), 110 deletions(-) + +diff --git a/crypto/wvcrl.cc b/crypto/wvcrl.cc +index fa00c76..880ad85 100644 +--- a/crypto/wvcrl.cc ++++ b/crypto/wvcrl.cc +@@ -357,31 +357,19 @@ bool WvCRL::isrevoked(WvStringParm serial_number) const + ASN1_INTEGER *serial = serial_to_int(serial_number); + if (serial) + { +- X509_REVOKED mayberevoked; +- mayberevoked.serialNumber = serial; +- if (crl->crl->revoked) +- { +- int idx = sk_X509_REVOKED_find(crl->crl->revoked, +- &mayberevoked); +- ASN1_INTEGER_free(serial); +- if (idx >= 0) +- { +- debug("Certificate is revoked.\n"); +- return true; +- } +- else +- { +- debug("Certificate is not revoked.\n"); +- return false; +- } +- } +- else +- { +- ASN1_INTEGER_free(serial); +- debug("CRL does not have revoked list.\n"); +- return false; +- } +- ++ X509_REVOKED *revoked_entry = NULL; ++ int idx = X509_CRL_get0_by_serial(crl, &revoked_entry, serial); ++ ASN1_INTEGER_free(serial); ++ if (idx >= 1 || revoked_entry) ++ { ++ debug("Certificate is revoked.\n"); ++ return true; ++ } ++ else ++ { ++ debug("Certificate is not revoked.\n"); ++ return false; ++ } + } + else + debug(WvLog::Warning, "Can't convert serial number to ASN1 format. " +diff --git a/crypto/wvdiffiehellman.cc b/crypto/wvdiffiehellman.cc +index 7c0bf32..15cd104 100644 +--- a/crypto/wvdiffiehellman.cc ++++ b/crypto/wvdiffiehellman.cc +@@ -39,24 +39,25 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen, + { + int problems; + int check; +- { ++ + info = DH_new(); +- info->p = BN_bin2bn(_key, _keylen, NULL); ++ BIGNUM *p = BN_bin2bn(_key, _keylen, NULL); + // info->p->top = 0; + // info->p->dmax = _keylen * 8 / BN_BITS2; + // info->p->neg = 0; + // info->p->flags = 0; + +- info->g = BN_new(); +- BN_set_word(info->g, generator); ++ BIGNUM *g = BN_new(); ++ BN_set_word(g, generator); + // info->g->d = &generator; + // info->g->top = 0; + // info->g->dmax = 1; + // info->g->neg = 0; + // info->g->flags = 0; +- } + +- check = BN_mod_word(info->p, 24); ++ DH_set0_pqg(info, p, NULL, g); ++ ++ check = BN_mod_word(p, 24); + DH_check(info, &problems); + if (problems & DH_CHECK_P_NOT_PRIME) + log(WvLog::Error, "Using a composite number for authentication.\n"); +@@ -64,7 +65,7 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen, + log(WvLog::Error,"Using an unsafe prime number for authentication.\n"); + if (problems & DH_NOT_SUITABLE_GENERATOR) + log(WvLog::Error, "Can you just use 2 instead of %s (%s)!!\n", +- BN_bn2hex(info->g), check); ++ BN_bn2hex(g), check); + if (problems & DH_UNABLE_TO_CHECK_GENERATOR) + log(WvLog::Notice, "Using a strange argument for diffie-hellman.\n"); + DH_generate_key(info); +@@ -72,18 +73,23 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen, + + int WvDiffieHellman::pub_key_len() + { +- return BN_num_bytes(info->pub_key); ++ const BIGNUM *pub_key = NULL; ++ DH_get0_key(info, &pub_key, NULL); ++ return BN_num_bytes(pub_key); + } + + int WvDiffieHellman::get_public_value(WvBuf &outbuf, int len) + { +- int key_len = BN_num_bytes(info->pub_key); ++ const BIGNUM *pub_key = NULL; ++ DH_get0_key(info, &pub_key, NULL); ++ ++ int key_len = BN_num_bytes(pub_key); + if (key_len < len) + len = key_len; + + // alloca is stack allocated, don't free it. + unsigned char *foo = (unsigned char*)alloca(key_len); +- BN_bn2bin(info->pub_key, foo); ++ BN_bn2bin(pub_key, foo); + outbuf.put(foo, len); + + return len; +@@ -91,8 +97,10 @@ int WvDiffieHellman::get_public_value(WvBuf &outbuf, int len) + + bool WvDiffieHellman::create_secret(WvBuf &inbuf, size_t in_len, WvBuf& outbuf) + { ++ const BIGNUM *pub_key = NULL; ++ DH_get0_key(info, &pub_key, NULL); + unsigned char *foo = (unsigned char *)alloca(DH_size(info)); +- log("My public value\n%s\nYour public value\n%s\n",BN_bn2hex(info->pub_key), ++ log("My public value\n%s\nYour public value\n%s\n",BN_bn2hex(pub_key), + hexdump_buffer(inbuf.peek(0, in_len), in_len, false)); + int len = DH_compute_key (foo, BN_bin2bn(inbuf.get(in_len), in_len, NULL), + info); +diff --git a/crypto/wvdigest.cc b/crypto/wvdigest.cc +index 150edee..73ebb5d 100644 +--- a/crypto/wvdigest.cc ++++ b/crypto/wvdigest.cc +@@ -13,10 +13,10 @@ + + /***** WvEVPMDDigest *****/ + +-WvEVPMDDigest::WvEVPMDDigest(const env_md_st *_evpmd) : ++WvEVPMDDigest::WvEVPMDDigest(const EVP_MD*_evpmd) : + evpmd(_evpmd), active(false) + { +- evpctx = new EVP_MD_CTX; ++ evpctx = EVP_MD_CTX_new(); + _reset(); + } + +@@ -24,7 +24,7 @@ WvEVPMDDigest::WvEVPMDDigest(const env_md_st *_evpmd) : + WvEVPMDDigest::~WvEVPMDDigest() + { + cleanup(); +- delete evpctx; ++ EVP_MD_CTX_free(evpctx); + } + + +@@ -60,7 +60,7 @@ bool WvEVPMDDigest::_reset() + // the typecast is necessary for API compatibility with different + // versions of openssl. None of them *actually* change the contents of + // the pointer. +- EVP_DigestInit(evpctx, (env_md_st *)evpmd); ++ EVP_DigestInit(evpctx, evpmd); + active = true; + return true; + } +@@ -79,7 +79,7 @@ void WvEVPMDDigest::cleanup() + + size_t WvEVPMDDigest::digestsize() const + { +- return EVP_MD_size((env_md_st *)evpmd); ++ return EVP_MD_size(evpmd); + } + + +@@ -104,14 +104,14 @@ WvHMACDigest::WvHMACDigest(WvEVPMDDigest *_digest, + { + key = new unsigned char[keysize]; + memcpy(key, _key, keysize); +- hmacctx = new HMAC_CTX; ++ hmacctx = HMAC_CTX_new(); + _reset(); + } + + WvHMACDigest::~WvHMACDigest() + { + cleanup(); +- delete hmacctx; ++ HMAC_CTX_free(hmacctx); + deletev key; + delete digest; + } +@@ -145,7 +145,7 @@ bool WvHMACDigest::_finish(WvBuf &outbuf) + bool WvHMACDigest::_reset() + { + cleanup(); +- HMAC_Init(hmacctx, key, keysize, (env_md_st *)digest->getevpmd()); ++ HMAC_Init(hmacctx, key, keysize, digest->getevpmd()); + active = true; + return true; + } +diff --git a/crypto/wvocsp.cc b/crypto/wvocsp.cc +index ddb2de4..7d5da07 100644 +--- a/crypto/wvocsp.cc ++++ b/crypto/wvocsp.cc +@@ -118,9 +118,10 @@ bool WvOCSPResp::check_nonce(const WvOCSPReq &req) const + + bool WvOCSPResp::signedbycert(const WvX509 &cert) const + { +- EVP_PKEY *skey = X509_get_pubkey(cert.cert); +- int i = OCSP_BASICRESP_verify(bs, skey, 0); +- EVP_PKEY_free(skey); ++ STACK_OF(X509) *sk = sk_X509_new_null(); ++ sk_X509_push(sk, cert.cert); ++ int i = OCSP_basic_verify(bs, sk, NULL, OCSP_NOVERIFY); ++ sk_X509_free(sk); + + if(i > 0) + return true; +@@ -131,33 +132,15 @@ bool WvOCSPResp::signedbycert(const WvX509 &cert) const + + WvX509 WvOCSPResp::get_signing_cert() const + { +- if (!bs || !sk_X509_num(bs->certs)) ++ const STACK_OF(X509) *certs = OCSP_resp_get0_certs(bs); ++ if (!bs || !sk_X509_num(certs)) + return WvX509(); + +- // note: the following bit of code is taken almost verbatim from +- // ocsp_vfy.c in OpenSSL 0.9.8. Copyright and attribution should +- // properly belong to them +- +- OCSP_RESPID *id = bs->tbsResponseData->responderId; +- +- if (id->type == V_OCSP_RESPID_NAME) +- { +- X509 *x = X509_find_by_subject(bs->certs, id->value.byName); +- if (x) +- return WvX509(X509_dup(x)); ++ X509 *signer = NULL; ++ if (OCSP_resp_get0_signer(bs, &signer, NULL) == 1) { ++ return WvX509(X509_dup(signer)); + } + +- if (id->value.byKey->length != SHA_DIGEST_LENGTH) return NULL; +- unsigned char tmphash[SHA_DIGEST_LENGTH]; +- unsigned char *keyhash = id->value.byKey->data; +- for (int i = 0; i < sk_X509_num(bs->certs); i++) +- { +- X509 *x = sk_X509_value(bs->certs, i); +- X509_pubkey_digest(x, EVP_sha1(), tmphash, NULL); +- if(!memcmp(keyhash, tmphash, SHA_DIGEST_LENGTH)) +- return WvX509(X509_dup(x)); +- } +- + return WvX509(); + } + +diff --git a/crypto/wvx509.cc b/crypto/wvx509.cc +index e4925ce..984156c 100644 +--- a/crypto/wvx509.cc ++++ b/crypto/wvx509.cc +@@ -974,7 +974,7 @@ static void add_aia(WvStringParm type, WvString identifier, + sk_ACCESS_DESCRIPTION_push(ainfo, acc); + acc->method = OBJ_txt2obj(type.cstr(), 0); + acc->location->type = GEN_URI; +- acc->location->d.ia5 = M_ASN1_IA5STRING_new(); ++ acc->location->d.ia5 = ASN1_IA5STRING_new(); + unsigned char *cident + = reinterpret_cast<unsigned char *>(identifier.edit()); + ASN1_STRING_set(acc->location->d.ia5, cident, identifier.len()); +@@ -1059,7 +1059,7 @@ void WvX509::set_crl_urls(WvStringList &urls) + GENERAL_NAMES *uris = GENERAL_NAMES_new(); + GENERAL_NAME *uri = GENERAL_NAME_new(); + uri->type = GEN_URI; +- uri->d.ia5 = M_ASN1_IA5STRING_new(); ++ uri->d.ia5 = ASN1_IA5STRING_new(); + unsigned char *cident + = reinterpret_cast<unsigned char *>(i().edit()); + ASN1_STRING_set(uri->d.ia5, cident, i().len()); +@@ -1162,10 +1162,11 @@ WvString WvX509::get_extension(int nid) const + #else + X509V3_EXT_METHOD *method = X509V3_EXT_get(ext); + #endif ++ ASN1_OCTET_STRING *ext_data_str = X509_EXTENSION_get_data(ext); + if (!method) + { + WvDynBuf buf; +- buf.put(ext->value->data, ext->value->length); ++ buf.put(ext_data_str->data, ext_data_str->length); + retval = buf.getstr(); + } + else +@@ -1176,21 +1177,21 @@ WvString WvX509::get_extension(int nid) const + // even though it's const (at least as of version 0.9.8e). + // gah. + #if OPENSSL_VERSION_NUMBER >= 0x0090800fL +- const unsigned char * ext_value_data = ext->value->data; ++ const unsigned char * ext_value_data = ext_data_str->data; + #else + unsigned char *ext_value_data = ext->value->data; + #endif + if (method->it) + { + ext_data = ASN1_item_d2i(NULL, &ext_value_data, +- ext->value->length, ++ ext_data_str->length, + ASN1_ITEM_ptr(method->it)); + TRACE("Applied generic conversion!\n"); + } + else + { + ext_data = method->d2i(NULL, &ext_value_data, +- ext->value->length); ++ ext_data_str->length); + TRACE("Applied method specific conversion!\n"); + } + +@@ -1325,13 +1326,13 @@ bool WvX509::verify(WvBuf &original, WvStringParm signature) const + return false; + + /* Verify the signature */ +- EVP_MD_CTX sig_ctx; +- EVP_VerifyInit(&sig_ctx, EVP_sha1()); +- EVP_VerifyUpdate(&sig_ctx, original.peek(0, original.used()), ++ EVP_MD_CTX *sig_ctx = EVP_MD_CTX_new(); ++ EVP_VerifyInit(sig_ctx, EVP_sha1()); ++ EVP_VerifyUpdate(sig_ctx, original.peek(0, original.used()), + original.used()); +- int sig_err = EVP_VerifyFinal(&sig_ctx, sig_buf, sig_size, pk); ++ int sig_err = EVP_VerifyFinal(sig_ctx, sig_buf, sig_size, pk); + EVP_PKEY_free(pk); +- EVP_MD_CTX_cleanup(&sig_ctx); // Again, not my fault... ++ EVP_MD_CTX_free(sig_ctx); // Again, not my fault... + if (sig_err != 1) + { + debug("Verify failed!\n"); +@@ -1450,19 +1451,19 @@ void WvX509::set_ski() + { + CHECK_CERT_EXISTS_SET("ski"); + +- ASN1_OCTET_STRING *oct = M_ASN1_OCTET_STRING_new(); +- ASN1_BIT_STRING *pk = cert->cert_info->key->public_key; ++ ASN1_OCTET_STRING *oct = ASN1_OCTET_STRING_new(); ++ ASN1_BIT_STRING *pk = X509_get0_pubkey_bitstr(cert); + unsigned char pkey_dig[EVP_MAX_MD_SIZE]; + unsigned int diglen; + + EVP_Digest(pk->data, pk->length, pkey_dig, &diglen, EVP_sha1(), NULL); + +- M_ASN1_OCTET_STRING_set(oct, pkey_dig, diglen); ++ ASN1_OCTET_STRING_set(oct, pkey_dig, diglen); + X509_EXTENSION *ext = X509V3_EXT_i2d(NID_subject_key_identifier, 0, + oct); + X509_add_ext(cert, ext, -1); + X509_EXTENSION_free(ext); +- M_ASN1_OCTET_STRING_free(oct); ++ ASN1_OCTET_STRING_free(oct); + } + + +diff --git a/crypto/wvx509mgr.cc b/crypto/wvx509mgr.cc +index f249eec..156d3a4 100644 +--- a/crypto/wvx509mgr.cc ++++ b/crypto/wvx509mgr.cc +@@ -350,6 +350,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const + return false; + } + ++ uint32_t ex_flags = X509_get_extension_flags(cert); ++ uint32_t ex_kusage = X509_get_key_usage(cert); + if (cert == unsignedcert.cert) + { + debug("Self Signing!\n"); +@@ -362,8 +364,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const + return false; + } + #endif +- else if (!((cert->ex_flags & EXFLAG_KUSAGE) && +- (cert->ex_kusage & KU_KEY_CERT_SIGN))) ++ else if (!((ex_flags & EXFLAG_KUSAGE) && ++ (ex_kusage & KU_KEY_CERT_SIGN))) + { + debug("This Certificate is not allowed to sign certificates!\n"); + return false; +@@ -390,6 +392,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const + + bool WvX509Mgr::signcrl(WvCRL &crl) const + { ++ uint32_t ex_flags = X509_get_extension_flags(cert); ++ uint32_t ex_kusage = X509_get_key_usage(cert); + if (!isok() || !crl.isok()) + { + debug(WvLog::Warning, "Asked to sign CRL, but certificate or CRL (or " +@@ -403,12 +407,12 @@ bool WvX509Mgr::signcrl(WvCRL &crl) const + "CRLs!\n"); + return false; + } +- else if (!((cert->ex_flags & EXFLAG_KUSAGE) && +- (cert->ex_kusage & KU_CRL_SIGN))) ++ else if (!((ex_flags & EXFLAG_KUSAGE) && ++ (ex_kusage & KU_CRL_SIGN))) + { + debug("Certificate not allowed to sign CRLs! (%s %s)\n", +- (cert->ex_flags & EXFLAG_KUSAGE), +- (cert->ex_kusage & KU_CRL_SIGN)); ++ (ex_flags & EXFLAG_KUSAGE), ++ (ex_kusage & KU_CRL_SIGN)); + return false; + } + #endif +@@ -454,7 +458,6 @@ WvString WvX509Mgr::sign(WvBuf &data) const + { + assert(rsa); + +- EVP_MD_CTX sig_ctx; + unsigned char sig_buf[4096]; + + EVP_PKEY *pk = EVP_PKEY_new(); +@@ -467,20 +470,22 @@ WvString WvX509Mgr::sign(WvBuf &data) const + return WvString::null; + } + +- EVP_SignInit(&sig_ctx, EVP_sha1()); +- EVP_SignUpdate(&sig_ctx, data.peek(0, data.used()), data.used()); ++ EVP_MD_CTX *sig_ctx = EVP_MD_CTX_new(); ++ EVP_SignInit(sig_ctx, EVP_sha1()); ++ EVP_SignUpdate(sig_ctx, data.peek(0, data.used()), data.used()); + unsigned int sig_len = sizeof(sig_buf); +- int sig_err = EVP_SignFinal(&sig_ctx, sig_buf, ++ int sig_err = EVP_SignFinal(sig_ctx, sig_buf, + &sig_len, pk); + if (sig_err != 1) + { + debug("Error while signing.\n"); + EVP_PKEY_free(pk); ++ EVP_MD_CTX_free(sig_ctx); + return WvString::null; + } + + EVP_PKEY_free(pk); +- EVP_MD_CTX_cleanup(&sig_ctx); // this isn't my fault :// ++ EVP_MD_CTX_free(sig_ctx); // this isn't my fault :// + WvDynBuf buf; + buf.put(sig_buf, sig_len); + debug("Signature size: %s\n", buf.used()); +diff --git a/include/wvdiffiehellman.h b/include/wvdiffiehellman.h +index af75ffa..a2d001f 100644 +--- a/include/wvdiffiehellman.h ++++ b/include/wvdiffiehellman.h +@@ -27,7 +27,7 @@ public: + bool create_secret(WvBuf &inbuf, size_t in_len, WvBuf& outbuf); + + protected: +- struct dh_st *info; ++ DH *info; + BN_ULONG generator; + + private: +diff --git a/include/wvdigest.h b/include/wvdigest.h +index fdc39bd..f2eed40 100644 +--- a/include/wvdigest.h ++++ b/include/wvdigest.h +@@ -9,10 +9,8 @@ + + #include "wvencoder.h" + #include <stdint.h> ++#include <openssl/evp.h> + +-struct env_md_st; +-struct env_md_ctx_st; +-struct hmac_ctx_st; + + /** + * Superclass for all message digests. +@@ -45,8 +43,8 @@ public: + class WvEVPMDDigest : public WvDigest + { + friend class WvHMACDigest; +- const env_md_st *evpmd; +- env_md_ctx_st *evpctx; ++ const EVP_MD *evpmd; ++ EVP_MD_CTX *evpctx; + bool active; + + public: +@@ -54,13 +52,13 @@ public: + virtual size_t digestsize() const; + + protected: +- WvEVPMDDigest(const env_md_st *_evpmd); ++ WvEVPMDDigest(const EVP_MD *_evpmd); + virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf, + bool flush); // consumes input + virtual bool _finish(WvBuf &outbuf); // outputs digest + virtual bool _reset(); // supported: resets digest value + +- const env_md_st *getevpmd() ++ const EVP_MD *getevpmd() + { return evpmd; } + + private: +@@ -104,7 +102,7 @@ class WvHMACDigest : public WvDigest + WvEVPMDDigest *digest; + unsigned char *key; + size_t keysize; +- hmac_ctx_st *hmacctx; ++ HMAC_CTX *hmacctx; + bool active; + + public: +diff --git a/include/wvtripledes.h b/include/wvtripledes.h +index 185fe8a..a442e7a 100644 +--- a/include/wvtripledes.h ++++ b/include/wvtripledes.h +@@ -70,11 +70,11 @@ protected: + + private: + Mode mode; +- des_cblock key; +- des_key_schedule deskey1; +- des_key_schedule deskey2; +- des_key_schedule deskey3; +- des_cblock ivec; // initialization vector ++ DES_cblock key; ++ DES_key_schedule deskey1; ++ DES_key_schedule deskey2; ++ DES_key_schedule deskey3; ++ DES_cblock ivec; // initialization vector + int ivecoff; // current offset into initvec + }; + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch index 6bc34331d6..954c3d9fca 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch @@ -7,6 +7,8 @@ Imported from Gentoo Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + Makefile | 15 +++++++++++++-- wvrules-posix.mk | 7 +++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch index 59f70e380d..5b7135c3f3 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch @@ -8,6 +8,8 @@ warning: "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + wvrules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch deleted file mode 100644 index 232db9e63b..0000000000 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 0e054339c1422168a7f4a9dcf090268053a33b1f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 20 Jul 2017 21:05:37 -0700 -Subject: [PATCH 2/5] wvtask: Dont use ucontext on non-glibc systems - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - utils/wvtask.cc | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git a/utils/wvtask.cc b/utils/wvtask.cc -index cdcd544..c0bff7d 100644 ---- a/utils/wvtask.cc -+++ b/utils/wvtask.cc -@@ -199,7 +199,9 @@ WvTaskMan::WvTaskMan() - stacktop = (char *)alloca(0); - - context_return = 0; -+#ifdef __GLIBC__ - assert(getcontext(&get_stack_return) == 0); -+#endif - if (context_return == 0) - { - // initial setup - start the stackmaster() task (never returns!) -@@ -265,13 +267,17 @@ int WvTaskMan::run(WvTask &task, int val) - state = &old_task->mystate; - - context_return = 0; -+#ifdef __GLIBC__ - assert(getcontext(state) == 0); -+#endif - int newval = context_return; - if (newval == 0) - { - // saved the state, now run the task. - context_return = val; -+#ifdef __GLIBC__ - setcontext(&task.mystate); -+#endif - return -1; - } - else -@@ -319,13 +325,17 @@ int WvTaskMan::yield(int val) - #endif - - context_return = 0; -+#ifdef __GLIBC__ - assert(getcontext(¤t_task->mystate) == 0); -+#endif - int newval = context_return; - if (newval == 0) - { - // saved the task state; now yield to the toplevel. - context_return = val; -+#ifdef __GLIBC__ - setcontext(&toplevel); -+#endif - return -1; - } - else -@@ -341,7 +351,9 @@ int WvTaskMan::yield(int val) - void WvTaskMan::get_stack(WvTask &task, size_t size) - { - context_return = 0; -+#ifdef __GLIBC__ - assert(getcontext(&get_stack_return) == 0); -+#endif - if (context_return == 0) - { - assert(magic_number == -WVTASK_MAGIC); -@@ -371,7 +383,9 @@ void WvTaskMan::get_stack(WvTask &task, size_t size) - // initial setup - stack_target = &task; - context_return = size/1024 + (size%1024 > 0); -+#ifdef __GLIBC__ - setcontext(&stackmaster_task); -+#endif - } - else - { -@@ -409,7 +423,9 @@ void WvTaskMan::_stackmaster() - assert(magic_number == -WVTASK_MAGIC); - - context_return = 0; -+#ifdef __GLIBC__ - assert(getcontext(&stackmaster_task) == 0); -+#endif - val = context_return; - if (val == 0) - { -@@ -419,7 +435,9 @@ void WvTaskMan::_stackmaster() - // all current stack allocations) and go back to get_stack - // (or the constructor, if that's what called us) - context_return = 1; -+#ifdef __GLIBC__ - setcontext(&get_stack_return); -+#endif - } - else - { -@@ -474,7 +492,9 @@ void WvTaskMan::do_task() - - // back here from longjmp; someone wants stack space. - context_return = 0; -+#ifdef __GLIBC__ - assert(getcontext(&task->mystate) == 0); -+#endif - if (context_return == 0) - { - // done the setjmp; that means the target task now has -@@ -510,7 +530,9 @@ void WvTaskMan::do_task() - } - else - { -+#ifdef __GLIBC__ - assert(getcontext(&task->func_call) == 0); -+#endif - task->func_call.uc_stack.ss_size = task->stacksize; - task->func_call.uc_stack.ss_sp = task->stack; - task->func_call.uc_stack.ss_flags = 0; -@@ -521,9 +543,11 @@ void WvTaskMan::do_task() - (void (*)(void))call_func, 1, task); - - context_return = 0; -+#ifdef __GLIBC__ - assert(getcontext(&task->func_return) == 0); - if (context_return == 0) - setcontext(&task->func_call); -+#endif - } - - // the task's function terminated. --- -2.13.3 - diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch index f9304197ae..856c2460b4 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch @@ -6,6 +6,8 @@ Subject: [PATCH 3/5] wvtask: Check for HAVE_LIBC_STACK_END only on glibc Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + utils/wvtask.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch index 6f3fbffbdf..f960c98622 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch @@ -7,6 +7,8 @@ musl does not have this API Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + utils/wvcrash.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch index 25e9ee2369..508007c0ea 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch @@ -5,6 +5,8 @@ Subject: [PATCH 5/5] check for libexecinfo during configure Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff index 5ab633bc3d..50f3f72cd4 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Index: wvstreams-4.6/crypto/wvx509.cc =================================================================== --- wvstreams-4.6.orig/crypto/wvx509.cc 2009-07-29 11:58:16.000000000 -0400 diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff index 8e4fd03298..6b31f2e10f 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff @@ -1,16 +1,5 @@ -Index: wvstreams-4.6.1/crypto/wvx509.cc -=================================================================== ---- wvstreams-4.6.1.orig/crypto/wvx509.cc 2011-05-20 00:02:38.119136584 +0200 -+++ wvstreams-4.6.1/crypto/wvx509.cc 2011-05-20 00:02:26.035136589 +0200 -@@ -1157,7 +1157,7 @@ - - if (ext) - { -- X509V3_EXT_METHOD *method = X509V3_EXT_get(ext); -+ X509V3_EXT_METHOD *method = (X509V3_EXT_METHOD *)X509V3_EXT_get(ext); - if (!method) - { - WvDynBuf buf; +Upstream-Status: Pending + Index: wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc =================================================================== --- wvstreams-4.6.1.orig/ipstreams/wvunixdgsocket.cc 2011-05-20 00:02:38.391136584 +0200 diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff index a75067a108..7b05e468a9 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Description: Fix FTBFS with gcc-4.7 Small header include change. This is borderlinde cosmetic, but still needed to prevent the FTBFS. diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff index ec99dcd36a..bd08d81c37 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Index: b/gen-cc =================================================================== --- a/gen-cc diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch index e857213637..ed6e8599e1 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Check for argp_parse in libargp and then in libc before using internal version Index: wvstreams-4.6.1/configure.ac diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch index b084887ba7..899eeb9212 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Description: Fix compilation with gcc-6 Author: Gert Wollny <gw.fossdev@gmail.com> Last-Updated: 2016-07-26 diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch new file mode 100644 index 0000000000..7e372d391d --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch @@ -0,0 +1,18 @@ +Upstream-Status: Pending + +Index: wvstreams-4.6.1/crypto/wvx509.cc +=================================================================== +--- wvstreams-4.6.1.orig/crypto/wvx509.cc ++++ wvstreams-4.6.1/crypto/wvx509.cc +@@ -1157,7 +1157,11 @@ WvString WvX509::get_extension(int nid) + + if (ext) + { ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ const X509V3_EXT_METHOD *method = X509V3_EXT_get(ext); ++#else + X509V3_EXT_METHOD *method = X509V3_EXT_get(ext); ++#endif + if (!method) + { + WvDynBuf buf; diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb index e3d5e7d20b..3453f3e964 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb @@ -1,13 +1,13 @@ HOMEPAGE = "http://alumnit.ca/wiki/index.php?page=WvStreams" SUMMARY = "WvStreams is a network programming library in C++" -LICENSE = "LGPLv2" +LICENSE = "LGPL-2.0-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605" -DEPENDS = "zlib openssl (>= 0.9.8) dbus readline" -DEPENDS_append_libc-musl = " argp-standalone libexecinfo" +DEPENDS = "zlib openssl (>= 0.9.8) dbus readline boost" +DEPENDS:append:libc-musl = " argp-standalone libexecinfo" -SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \ +SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${BPN}/${BP}.tar.gz \ file://04_signed_request.diff \ file://05_gcc.diff \ file://06_gcc-4.7.diff \ @@ -15,42 +15,44 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \ file://gcc-6.patch \ file://argp.patch \ file://0001-Check-for-limits.h-during-configure.patch \ - file://0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch \ file://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \ file://0004-wvcrash-Replace-use-of-basename-API.patch \ file://0005-check-for-libexecinfo-during-configure.patch \ file://0001-build-fix-parallel-make.patch \ file://0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch \ + file://openssl-buildfix.patch \ + file://0001-Forward-port-to-OpenSSL-1.1.x.patch \ + file://0001-Fix-narrowing-conversion-error.patch \ " SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c" SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633" +COMPATIBLE_HOST:libc-musl = "null" + inherit autotools-brokensep pkgconfig -TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls" +TARGET_CFLAGS:append = " -fno-tree-dce -fno-optimize-sibling-calls" -LDFLAGS_append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib" +LDFLAGS:append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib" EXTRA_OECONF = " --without-tcl --without-qt --without-pam --without-valgrind" -PACKAGES_prepend = "libuniconf libuniconf-dbg " -PACKAGES_prepend = "uniconfd uniconfd-dbg " -PACKAGES_prepend = "libwvstreams-base libwvstreams-base-dbg " -PACKAGES_prepend = "libwvstreams-extras libwvstreams-extras-dbg " -PACKAGES_prepend = "${PN}-valgrind " +PACKAGES:prepend = "libuniconf " +PACKAGES:prepend = "uniconfd " +PACKAGES:prepend = "libwvstreams-base " +PACKAGES:prepend = "libwvstreams-extras " +PACKAGES:prepend = "${PN}-valgrind " + +RPROVIDES:${PN}-dbg += "libuniconf-dbg uniconfd-dbg libwvstreams-base-dbg libwvstreams-extras-dbg" -FILES_libuniconf = "${libdir}/libuniconf.so.*" -FILES_libuniconf-dbg = "${libdir}/.debug/libuniconf.so.*" +FILES:libuniconf = "${libdir}/libuniconf.so.*" -FILES_uniconfd = "${sbindir}/uniconfd ${sysconfdir}/uniconf.conf ${localstatedir}/uniconf" -FILES_uniconfd-dbg = "${sbindir}/.debug/uniconfd" +FILES:uniconfd = "${sbindir}/uniconfd ${sysconfdir}/uniconf.conf ${localstatedir}/uniconf" -FILES_libwvstreams-base = "${libdir}/libwvutils.so.*" -FILES_libwvstreams-base-dbg = "${libdir}/.debug/libwvutils.so.*" +FILES:libwvstreams-base = "${libdir}/libwvutils.so.*" -FILES_libwvstreams-extras = "${libdir}/libwvbase.so.* ${libdir}/libwvstreams.so.*" -FILES_libwvstreams-extras-dbg = "${libdir}/.debug/libwvbase.so.* ${libdir}/.debug/libwvstreams.so.*" +FILES:libwvstreams-extras = "${libdir}/libwvbase.so.* ${libdir}/libwvstreams.so.*" -FILES_${PN}-valgrind = "${libdir}/valgrind/wvstreams.supp" -RDEPENDS_${PN} += "perl" +FILES:${PN}-valgrind = "${libdir}/valgrind/wvstreams.supp" +RDEPENDS:${PN} += "perl" diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch index af14a1a56c..97339d3ff9 100644 --- a/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch +++ b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch @@ -1,5 +1,7 @@ uname can not get version of kernel correctly while cross compile +Upstream-Status: Inappropriate [configuration] + Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> --- configure.ac | 2 +- diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/0001-initialize-msghdr-portably.patch b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-initialize-msghdr-portably.patch new file mode 100644 index 0000000000..a7a1dc1986 --- /dev/null +++ b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-initialize-msghdr-portably.patch @@ -0,0 +1,52 @@ +From 37b662cf44e14b33e93759d4b129d23095b41372 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 31 Aug 2022 23:55:02 -0700 +Subject: [PATCH] initialize msghdr portably + +on linux we have musl as an option for system C library and current +initialization assumes the structure to be same as glibc, therefore +initialize the elements of structure instead, so it can work on both +glibc and musl. + +Fixes +net.c:115:79: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion] + struct msghdr s_msg = { (void *)&s_sa, sizeof(struct sockaddr_nl), s_io, 1, NULL, 0, 0}; + ^~~~ + +Upstream-Status: Submitted [https://github.com/zabbix/zabbix/pull/77] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libs/zbxsysinfo/linux/net.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/libs/zbxsysinfo/linux/net.c b/src/libs/zbxsysinfo/linux/net.c +index 1425a3604d..98f03de0dd 100644 +--- a/src/libs/zbxsysinfo/linux/net.c ++++ b/src/libs/zbxsysinfo/linux/net.c +@@ -114,13 +114,21 @@ static int find_tcp_port_by_state_nl(unsigned short port, int state, int *found) + + struct sockaddr_nl s_sa = { AF_NETLINK, 0, 0, 0 }; + struct iovec s_io[1] = { { &request, sizeof(request) } }; +- struct msghdr s_msg = { (void *)&s_sa, sizeof(struct sockaddr_nl), s_io, 1, NULL, 0, 0}; ++ struct msghdr s_msg = { 0 }; ++ s_msg.msg_name = (void *)&s_sa; ++ s_msg.msg_namelen = sizeof(struct sockaddr_nl); ++ s_msg.msg_iov = s_io; ++ s_msg.msg_iovlen = 1; + + char buffer[BUFSIZ] = { 0 }; + + struct sockaddr_nl r_sa = { AF_NETLINK, 0, 0, 0 }; + struct iovec r_io[1] = { { buffer, BUFSIZ } }; +- struct msghdr r_msg = { (void *)&r_sa, sizeof(struct sockaddr_nl), r_io, 1, NULL, 0, 0}; ++ struct msghdr r_msg = { 0 }; ++ r_msg.msg_name = (void *)&r_sa; ++ r_msg.msg_namelen = sizeof(struct sockaddr_nl); ++ r_msg.msg_iov = r_io; ++ r_msg.msg_iovlen = 1; + + struct nlmsghdr *r_hdr; + +-- +2.37.3 + diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service b/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service index b18a96f8b6..56e5064281 100644 --- a/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service +++ b/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service @@ -3,9 +3,8 @@ Description=Zabbix Monitor Agent After=syslog.target network.target [Service] -Type=oneshot -ExecStart=@SBINDIR@/zabbix_agentd -RemainAfterExit=yes +Type=simple +ExecStart=@SBINDIR@/zabbix_agentd -f User=zabbix [Install] diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb b/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.7.bb index bab5a6ae6b..46c09a02a5 100644 --- a/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb +++ b/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.7.bb @@ -17,29 +17,28 @@ organisations with a few servers and for large companies with a \ multitude of servers." HOMEPAGE = "http://www.zabbix.com/" SECTION = "Applications/Internet" -LICENSE = "GPLv2+" +LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=300e938ad303147fede2294ed78fe02e" -DEPENDS = "openldap virtual/libiconv" +DEPENDS = "libevent libpcre openldap virtual/libiconv zlib" PACKAGE_ARCH = "${MACHINE_ARCH}" -SRC_URI = "http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${PV}/${BPN}-${PV}.tar.gz \ +SRC_URI = "https://cdn.zabbix.com/zabbix/sources/stable/6.2/${BPN}-${PV}.tar.gz \ file://0001-Fix-configure.ac.patch \ + file://0001-initialize-msghdr-portably.patch \ file://zabbix-agent.service \ " - -SRC_URI[md5sum] = "489d21b464277c0d412155c7e5611a8f" -SRC_URI[sha256sum] = "4445f26c025009681c29c9b350aa6c4ee7b124ddcaf1609ae36c55997bcb8cf2" +SRC_URI[sha256sum] = "6d423810667b948ed22052d9aa84a035e2d4b92cbe8efdb669cac529806b722d" inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "zabbix-agent.service" +SYSTEMD_SERVICE:${PN} = "zabbix-agent.service" SYSTEMD_AUTO_ENABLE = "enable" USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "-r zabbix" -USERADD_PARAM_${PN} = "-r -g zabbix -d /var/lib/zabbix \ +GROUPADD_PARAM:${PN} = "-r zabbix" +USERADD_PARAM:${PN} = "-r -g zabbix -d /var/lib/zabbix \ -s /sbin/nologin -c \"Zabbix Monitoring System\" zabbix \ " @@ -51,25 +50,29 @@ EXTRA_OECONF = " \ --enable-ipv6 \ --with-net-snmp \ --with-ldap=${STAGING_EXECPREFIXDIR} \ - --with-jabber \ --with-unixodbc \ --with-ssh2 \ --with-sqlite3 \ + --with-zlib \ + --with-libpthread \ + --with-libevent \ + --with-libpcre=${STAGING_EXECPREFIXDIR} \ + --with-iconv=${STAGING_EXECPREFIXDIR} \ " -CFLAGS_append = " -lldap -llber" +CFLAGS:append = " -lldap -llber -pthread" -do_configure_prepend() { +do_configure:prepend() { export KERNEL_VERSION="${KERNEL_VERSION}" } -do_install_append() { +do_install:append() { if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/zabbix-agent.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${UNPACKDIR}/zabbix-agent.service ${D}${systemd_unitdir}/system/ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/zabbix-agent.service fi } -FILES_${PN} += "${libdir}" +FILES:${PN} += "${libdir}" -RDEPENDS_${PN} = "logrotate" +RDEPENDS:${PN} = "logrotate" diff --git a/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb b/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb new file mode 100644 index 0000000000..dcea339dfd --- /dev/null +++ b/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "C++ bindings for ZeroMQ" +HOMEPAGE = "http://www.zeromq.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94" +DEPENDS = "zeromq" + +SRCREV = "c94c20743ed7d4aa37835a5c46567ab0790d4acc" + +SRC_URI = "git://github.com/zeromq/cppzmq.git;branch=master;protocol=https" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE = "-DCPPZMQ_BUILD_TESTS=OFF" + +PACKAGES = "${PN}-dev" + +RDEPENDS:${PN}-dev = "zeromq-dev zeromq-staticdev" +DEV_PKG_DEPENDENCY = "" diff --git a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb deleted file mode 100644 index 4920bce8c8..0000000000 --- a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "C++ bindings for ZeroMQ" -HOMEPAGE = "http://www.zeromq.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94" -DEPENDS = "zeromq" - -SRCREV = "6aa3ab686e916cb0e62df7fa7d12e0b13ae9fae6" -PV = "4.2.3+git${SRCPV}" - -SRC_URI = "git://github.com/zeromq/cppzmq.git" - -S = "${WORKDIR}/git" - -do_install () { - install -d ${D}/usr/include - install -m 0755 ${S}/zmq.hpp ${D}/usr/include/ -} - -PACKAGES = "${PN}-dev" - -RDEPENDS_${PN}-dev = "zeromq-dev" diff --git a/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb b/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb new file mode 100644 index 0000000000..5ae72df862 --- /dev/null +++ b/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "High-level C binding for 0MQ" +HOMEPAGE = "http://czmq.zeromq.org/" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3" +DEPENDS = "zeromq" + +SRC_URI = "https://github.com/zeromq/czmq/releases/download/v${PV}/czmq-${PV}.tar.gz" + +SRC_URI[md5sum] = "471e9ec120fc66a2fe2aae14359e3cfa" +SRC_URI[sha256sum] = "5d720a204c2a58645d6f7643af15d563a712dad98c9d32c1ed913377daa6ac39" + +UPSTREAM_CHECK_URI = "https://github.com/zeromq/${BPN}/releases" + +inherit cmake pkgconfig + +PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-staticdev ${PN} ${PN}-dbg" + +EXTRA_OECMAKE = " \ + -DCMAKECONFIG_INSTALL_DIR:PATH=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix') + '/') + "/cmake/"} \ +" + +FILES:${PN} = "${bindir}/*" +FILES:lib${BPN} = "${libdir}/*.so.*" +FILES:lib${BPN}-dev = "${libdir}/*.so ${libdir}/pkgconfig ${includedir} ${libdir}/cmake" +FILES:lib${BPN}-staticdev = "${libdir}/lib*.a" + +RDEPENDS:lib${BPN}-dev = "zeromq-dev" + +PACKAGECONFIG ??= "lz4 uuid curl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[curl] = "-DCZMQ_WITH_LIBCURL=ON,-DCZMQ_WITH_LIBCURL=OFF,curl" +PACKAGECONFIG[httpd] = "-DCZMQ_WITH_LIBMICROHTTPD=ON,-DCZMQ_WITH_LIBMICROHTTPD=OFF,libmicrohttpd" +PACKAGECONFIG[lz4] = "-DCZMQ_WITH_LZ4=ON,-DCZMQ_WITH_LZ4=OFF,lz4" +PACKAGECONFIG[nss] = "-DCZMQ_WITH_NSS=ON,-DCZMQ_WITH_NSS=OFF,nss" +PACKAGECONFIG[systemd] = "-DCZMQ_WITH_SYSTEMD=ON,-DCZMQ_WITH_SYSTEMD=OFF,systemd" +PACKAGECONFIG[uuid] = "-DCZMQ_WITH_UUID=ON,-DCZMQ_WITH_UUID=OFF,util-linux" + +do_install:append() { + mkdir -p ${D}/${includedir}/${BPN} + mv ${D}/${includedir}/sha1.h ${D}/${includedir}/${BPN}/. + sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/czmqTargets.cmake +} diff --git a/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch b/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch new file mode 100644 index 0000000000..3b0300c8aa --- /dev/null +++ b/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch @@ -0,0 +1,46 @@ +From 24ad50286a87833329213dc0b0e68c21aeeee95f Mon Sep 17 00:00:00 2001 +From: Niko Mauno <niko.mauno@vaisala.com> +Date: Wed, 22 Apr 2020 09:00:00 +0300 +Subject: [PATCH] CMakeLists.txt: Avoid host-specific path to libsodium + +Avoid propagating full build host specific path to generated +ZeroMQTargets.cmake when building with libsodium, which changes the +content in generated ZeroMQTargets.cmake files followingly: + + -INTERFACE_LINK_LIBRARIES "-lpthread;/build/host/specific/path/to/zeromq/4.3.2-r0/recipe-sysroot/usr/lib/libsodium.so;-lrt" + +INTERFACE_LINK_LIBRARIES "-lpthread;-lsodium;-lrt" + +This change mitigates an issue stemming from reuse of build artifacts +where the path to libsodium.so does not match exactly between two +different build hosts. + +Upstream-Status: Pending + +Signed-off-by: Niko Mauno <niko.mauno@vaisala.com> + +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e92141d..d0775c1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1428,7 +1428,7 @@ if(BUILD_SHARED) + endif() + + if(SODIUM_FOUND) +- target_link_libraries(libzmq ${SODIUM_LIBRARIES}) ++ target_link_libraries(libzmq -lsodium) + # On Solaris, libsodium depends on libssp + if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS") + target_link_libraries(libzmq ssp) +@@ -1473,7 +1473,7 @@ if(BUILD_STATIC) + endif() + + if(SODIUM_FOUND) +- target_link_libraries(libzmq-static ${SODIUM_LIBRARIES}) ++ target_link_libraries(libzmq-static -lsodium) + # On Solaris, libsodium depends on libssp + if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS") + target_link_libraries(libzmq-static ssp) diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb deleted file mode 100644 index 356348b43f..0000000000 --- a/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb +++ /dev/null @@ -1,32 +0,0 @@ -DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework" -HOMEPAGE = "http://www.zeromq.org" -LICENSE = "LGPLv3+" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1" - -PACKAGECONFIG ??= "libsodium" -PACKAGECONFIG[libsodium] = "--with-libsodium, --without-libsodium, libsodium" - -SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \ - file://run-ptest \ -" -SRC_URI[md5sum] = "a1c95b34384257e986842f4d006957b8" -SRC_URI[sha256sum] = "cc9090ba35713d59bb2f7d7965f877036c49c5558ea0c290b0dcc6f2a17e489f" - -S = "${WORKDIR}/zeromq-${PV}" - -#Uncomment to choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select -#EXTRA_OECONF += "--with-poller=kqueue" -#CFLAGS_append = " -O0" -#CXXFLAGS_append = " -O0" - -inherit autotools ptest pkgconfig - -do_compile_ptest () { - echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${B}/Makefile - oe_runmake buildtest-TESTS -} - -do_install_ptest () { - install -d ${D}${PTEST_PATH}/tests - install -m 0755 ${B}/tests/.libs/test_* ${D}${PTEST_PATH}/tests -} diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.5.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.5.bb new file mode 100644 index 0000000000..555458217a --- /dev/null +++ b/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.5.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework" +HOMEPAGE = "http://www.zeromq.org" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3" + +PACKAGECONFIG ??= "libsodium" +PACKAGECONFIG[libsodium] = "-DWITH_LIBSODIUM=ON,-DWITH_LIBSODIUM=OFF, libsodium" + +SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \ + file://0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch \ + file://run-ptest \ +" +SRC_URI[sha256sum] = "6653ef5910f17954861fe72332e68b03ca6e4d9c7160eb3a8de5a5a913bfab43" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/libzmq/releases" + +inherit cmake ptest pkgconfig + +EXTRA_OECMAKE = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DBUILD_TESTS=ON', '-DBUILD_TESTS=OFF', d)} \ + -DCMAKE_SKIP_RPATH=ON \ +" + +do_install_ptest () { + install -d ${D}${PTEST_PATH}/tests + install -m 0755 ${B}/bin/test_* ${D}${PTEST_PATH}/tests +} + +FILES:${PN}-doc += "${datadir}/zmq/*.txt" |