Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -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"

View File

@@ -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

View File

@@ -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)

View File

@@ -0,0 +1,80 @@
# This is a sample Gammu SMSD configuration file. It's required for gammu-smsd,
# see gammu-smsdrc(5) for documentation.
# Gammu configuration, this section is like section "gammu" in "gammurc" file,
# see gammurc(5) for documentation.
[gammu]
device = /dev/ttyUSB0
model = at115200
#connection = dlr3
#synchronizetime = yes
#logfile = gammulog # this is not used at all in SMSD mode
#logformat = textall
#use_locking = yes
#gammuloc = gammu.us
#startinfo = yes
# When uncomment this section and insert numbers here, smsd will process
# incoming sms only from numbers written here (incoming sms from all other
# numbers will be deleted)
#[include_numbers]
#number1 = 1234
# When uncomment this section and insert numbers here, smsd will process
# incoming sms from all numbers not written here (incoming sms from numbers
# written here will be deleted). This is "black" list.
# Note: after using "include_numbers" section this one will be ignored
#[exclude_numbers]
#number1 = 1234
# General SMSD settings, see gammu-smsdrc(5) for detailed description.
[smsd]
# SMSD service to use, one of FILES, MYSQL, PGSQL, DBI
service = files
# PIN for SIM card
PIN = 0000
# File (or stderr, syslog, eventlog) where information will be logged
logfile = smsdlog
# Amount of information being logged, each bit mean one level
debuglevel = 0
# Configuration for using more phones on same database
#phoneid = MyPhone1
# Script to be executed when new message has been received
#runonreceive = /some/script
# Commication frequency settings
commtimeout = 30
sendtimeout = 30
#receivefrequency = 0
# Phone communication settings
#checksecurity = 1
#resetfrequency = 0
# Delivery report configuration
#deliveryreport = no
#deliveryreportdelay = 10
# Ignoring broken SMSC
#skipsmscnumber = +48602123456
# Database backends congfiguration
user = gammu
password = gammupassword
pc = localhost
# pc can also contain port or socket path after colon (eg. localhost:/path/to/socket)
database = sms
# DBI configuration
driver = sqlite
# driverspath = /usr/lib/dbd/
# Database directory for sqlite
# dbdir = /var/lib/smsd
# Files backend configuration
inboxpath = /var/spool/sms/inbox/
outboxpath = /var/spool/sms/outbox/
sentsmspath = /var/spool/sms/sent/
errorsmspath = /var/spool/sms/error/
inboxformat = detail
transmitformat = auto
outboxformat = detail

View File

@@ -0,0 +1,173 @@
; This is a sample ~/.gammurc file.
; In Unix/Linux copy it into your home directory and name it .gammurc
; or into /etc and name it gammurc
; In Win32 copy it into directory with Gammu.exe and name gammurc
; More about parameters later
; Anything behind ; or # is comment.
; -----------------------------------------------------------------------------
[gammu]
device = /dev/ttyUSB0
connection = at115200
; Do not use model configuration unless you really need it
;model = 6110
;synchronizetime = yes
;logfile = gammulog
;logformat = textall
;use_locking = yes
;gammuloc = locfile
;startinfo = yes
;gammucoding = utf8
;usephonedb = yes
;[gammu1]
;device = com8:
;model = 6110
;connection = fbusblue
;synchronizetime = yes
;logfile = gammulog
;logformat = textall
;use_locking = yes
;gammuloc = locfile
;startinfo = yes
;gammucoding = utf8
; Step 1. Please find required Connection parameter and look into assigned
; with it device type. With some Connection you must set concrete model
; ================================================================ cables =====
; New Nokia protocol for FBUS/DAU9P
; Connection "fbus", device type serial
; New Nokia protocol for DLR3/DLR3P
; Connection "fbusdlr3"/"dlr3", device type serial
; New Nokia protocol for DKU2 (and phone with USB converter on phone mainboard
; like 6230)
; Connection "dku2phonet"/"dku2", device type dku2 on Windows
; Connection "fbususb" on Linux
; New Nokia protocol for DKU5 (and phone without USB converter on phone
; mainboard like 5100)
; Connection "dku5fbus"/"dku5", device type dku5
; New Nokia protocol for PL2303 USB cable (and phone without USB converter
; on phone mainboard like 5100)
; Connection "fbuspl2303", device type usb
; Old Nokia protocol for MBUS/DAU9P
; Connection "mbus", device type serial
; Variants:
; You can modify a bit behaviour of connection using additional flags
; specified just after connection name like connection-variant.
; If you're using ARK3116 cable (or any other which does not like dtr
; handling), you might need -nodtr variant of connection, eg. dlr3-nodtr.
; If cable you use is not powered over DTR/RTS, try using -nopower variant of
; connection, eg. fbus-nopower.
; -----------------------------------------------------------------------------
; AT commands for DLR3, DKU5 or other AT compatible cable (8 bits, None
; parity, no flow control, 1 stop bit). Used with Nokia, Alcatel, Siemens, etc.
; Connection "at19200"/"at115200"/.., device type serial
; AT commands for DKU2 cable
; Connection "dku2at", device type dku2
; ============================================================== infrared =====
; Nokia protocol for infrared with Nokia 6110/6130/6150
; Connection "fbusirda"/"infrared", device type serial
; Nokia protocol for infrared with other Nokia models
; Connection "irdaphonet"/"irda", device type irda
; -----------------------------------------------------------------------------
; AT commands for infrared. Used with Nokia, Alcatel, Siemens, etc.
; Connection "irdaat", device type irda
; -----------------------------------------------------------------------------
; OBEX for infrared
; Connection "irdaobex", device type irda.
; ============================================================= Bluetooth =====
; Nokia protocol with serial device set in BT stack (WidComm, other) from
; adequate service and Nokia 6210
; Connection "fbusblue", device type serial
; Nokia protocol with serial device set in BT stack (WidComm, other) from
; adequate service and other Nokia models
; Connection "phonetblue", device type serial
; -----------------------------------------------------------------------------
; Nokia protocol for Bluetooth stack with Nokia 6210
; Connection "bluerffbus", device type BT
; Nokia protocol for Bluetooth stack with DCT4 Nokia models, which don't inform
; about services correctly (6310, 6310i with firmware lower than 5.50, 8910,..)
; Connection "bluerfphonet", device type BT
; Nokia protocol for Bluetooth stack with other DCT4 Nokia models
; Connection "bluephonet", device type BT
; -----------------------------------------------------------------------------
; AT commands for Bluetooth stack and 6210 / DCT4 Nokia models, which don't
; inform about BT services correctly (6310, 6310i with firmware lower
; than 5.50, 8910,..)
; Connection "bluerfat", device type BT
; AT commands for Bluetooth stack with other phones (Siemens, other Nokia,etc.)
; Connection "blueat", device type BT
; -----------------------------------------------------------------------------
; OBEX for Bluetooth stack with DCT4 Nokia models, which don't inform about
; BT services correctly (6310, 6310i with firmware lower than 5.50, 8910,...)
; Connection "bluerfobex", device type BT
; OBEX for Bluetooth stack with other phones (Siemens, other Nokia, etc.)
; Connection "blueobex", device type BT.
; -----------------------------------------------------------------------------
; Connection "bluerfgnapbus", device type BT, model "gnap"
; Connection "irdagnapbus", device type irda, model "gnap"
; Step2. According to device type from Step1 and used OS set Port parameter
; -----------------------------------------------------------------------------
; Port type | "Port" parameter in Windows/DOS | "Port" parameter in Linux/Unix
; ----------|---------------------------------|--------------------------------
; serial | "com*:" | "/dev/ttyS*"
; | (example "com1:") | (example "/dev/ttyS1")
; | | or "/dev/tts/**" (with DevFS)
; | | virtual serial ports like
; | | "/dev/ircomm*" or "/dev/rfcomm*"
; ----------|---------------------------------|--------------------------------
; irda | ignored (can be empty) | ignored (can be empty)
; ----------|---------------------------------|--------------------------------
; BT | Bluetooth device address (example "00:11:22:33:44:55").
; | Optionally you can also include channel after slash
; | (example "00:11:22:33:44:55/12"). Can be also empty.
; ----------|---------------------------------|--------------------------------
; dku2 | ignored (can be empty) | /dev/ttyUSB* or /dev/ttyACM*
; ----------|---------------------------------|--------------------------------
; dku5 | ignored (can be empty) | connection with it not possible
; ----------|---------------------------------|--------------------------------
; usb | connection with it not possible | "/dev/ttyUSB*"
; Step3. Set other config parameters
; -----------------------------------------------------------------------------
; Parameter name | Description
; ----------------|------------------------------------------------------------
; Model | Should not be used unless you have a good reason to do so.
; | If Gammu doesn't recognize your phone model, put it here.
; | Example values: "6110", "6150", "6210", "8210"
; SynchronizeTime | if you want to set time from computer to phone during
; | starting connection. Do not rather use this option when
; | when to reset phone during connection (in some phones need
; | to set time again after restart)
; GammuLoc | name of localisation file
; StartInfo | this option allow to set, that you want (setting "yes")
; | to see message on the phone screen or phone should enable
; | light for a moment during starting connection. Phone
; | WON'T beep during starting connection with this option.
; GammuCoding | forces using specified codepage (in win32 - for example
; | "1250" will force CP1250) or UTF8 (in Linux - "utf8")
; ----------------|------------------------------------------------------------
; Logfile | Use, when want to have logfile from communication.
; Logformat | What debug info and format should be used:
; | "nothing" - no debug level (default)
; | "text" - transmission dump in text format
; | "textall" - all possible info in text format
; | "errors" - errors in text format
; | "binary" - transmission dump in binary format
; ----------------|------------------------------------------------------------
; Features | Custom features for phone. This can be used as override
; | when values coded in common/gsmphones.c are bad or
; | missing. Consult include/gammu-info.h for possible values
; | (all Feature values without leading F_ prefix).
; | Please report correct values to Gammu authors.
; ----------------|------------------------------------------------------------
; Use_Locking | under Unix/Linux use "yes", if want to lock used device
; | to prevent using it by other applications. In win32 ignored
; vim: et ts=4 sw=4 sts=4 tw=78 spell spelllang=en_us

View File

@@ -0,0 +1,68 @@
SUMMARY = "GNU All Mobile Managment Utilities"
SECTION = "console/network"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
HOMEPAGE = "https://wammu.eu/"
SRC_URI = "https://dl.cihar.com/${BPN}/releases/${BP}.tar.xz \
file://gammurc \
file://gammu-smsdrc \
"
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 cmake gettext
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
}
EXTRA_OECONF = " \
--enable-shared \
--enable-backup \
--enable-protection \
"
EXTRA_OECMAKE = " \
-DWITH_CURL=OFF \
-DWITH_BLUETOOTH=OFF \
-DWITH_NOKIA_SUPPORT=OFF \
-DWITH_IRDA=OFF \
-DWITH_MySQL=ON \
-DWITH_Postgres=OFF \
"
PACKAGES =+ "${PN}-smsd libgammu libgsmsd"
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"
FILES:libgammu = "${libdir}/libGammu.so.*"
FILES:libgsmsd = "${libdir}/libgsmsd.so.*"
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
# | }
# | ^
# | Please submit a full bug report,
# | with preprocessed source if appropriate.
# | See <http://gcc.gnu.org/bugs.html> for instructions.
# | make[2]: *** [libgammu/CMakeFiles/libGammu.dir/service/sms/gsmems.o] Error 1
# | make[2]: *** Waiting for unfinished jobs....
ARM_INSTRUCTION_SET = "arm"

View File

@@ -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)

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -0,0 +1,52 @@
From 364c2da8741f0979dae497551e70b94c0e6c8636 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sun, 7 Jul 2024 11:46:49 +0300
Subject: [PATCH 1/3] SAE: Check for invalid Rejected Groups element length
explicitly
Instead of practically ignoring an odd octet at the end of the element,
check for such invalid case explicitly. This is needed to avoid a
potential group downgrade attack.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=364c2da8741f0979dae497551e70b94c0e6c8636]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/ap/ieee802_11.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
index db4104928..1a62e30cc 100644
--- a/src/ap/ieee802_11.c
+++ b/src/ap/ieee802_11.c
@@ -1258,7 +1258,7 @@ static int check_sae_rejected_groups(struct hostapd_data *hapd,
struct sae_data *sae)
{
const struct wpabuf *groups;
- size_t i, count;
+ size_t i, count, len;
const u8 *pos;
if (!sae->tmp)
@@ -1268,7 +1268,15 @@ static int check_sae_rejected_groups(struct hostapd_data *hapd,
return 0;
pos = wpabuf_head(groups);
- count = wpabuf_len(groups) / 2;
+ len = wpabuf_len(groups);
+ if (len & 1) {
+ wpa_printf(MSG_DEBUG,
+ "SAE: Invalid length of the Rejected Groups element payload: %zu",
+ len);
+ return 1;
+ }
+
+ count = len / 2;
for (i = 0; i < count; i++) {
int enabled;
u16 group;
--
2.30.2

View File

@@ -0,0 +1,38 @@
From 9716bf1160beb677e965d9e6475d6c9e162e8374 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Tue, 9 Jul 2024 23:34:34 +0300
Subject: [PATCH 3/3] SAE: Reject invalid Rejected Groups element in the parser
There is no need to depend on all uses (i.e., both hostapd and
wpa_supplicant) to verify that the length of the Rejected Groups field
in the Rejected Groups element is valid (i.e., a multiple of two octets)
since the common parser can reject the message when detecting this.
Signed-off-by: Jouni Malinen <j@w1.fi>
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=9716bf1160beb677e965d9e6475d6c9e162e8374]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/common/sae.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/common/sae.c b/src/common/sae.c
index c0f154e91..620bdf753 100644
--- a/src/common/sae.c
+++ b/src/common/sae.c
@@ -2076,6 +2076,12 @@ static int sae_parse_rejected_groups(struct sae_data *sae,
return WLAN_STATUS_UNSPECIFIED_FAILURE;
epos++; /* skip ext ID */
len--;
+ if (len & 1) {
+ wpa_printf(MSG_DEBUG,
+ "SAE: Invalid length of the Rejected Groups element payload: %u",
+ len);
+ return WLAN_STATUS_UNSPECIFIED_FAILURE;
+ }
wpabuf_free(sae->tmp->peer_rejected_groups);
sae->tmp->peer_rejected_groups = wpabuf_alloc(len);
--
2.30.2

View File

@@ -0,0 +1,198 @@
From 6c81c2d98dc5a8a6296820bd9f083faae2c788c3 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 8 Jul 2023 19:55:32 +0300
Subject: [PATCH] PEAP client: Update Phase 2 authentication requirements
The previous PEAP client behavior allowed the server to skip Phase 2
authentication with the expectation that the server was authenticated
during Phase 1 through TLS server certificate validation. Various PEAP
specifications are not exactly clear on what the behavior on this front
is supposed to be and as such, this ended up being more flexible than
the TTLS/FAST/TEAP cases. However, this is not really ideal when
unfortunately common misconfiguration of PEAP is used in deployed
devices where the server trust root (ca_cert) is not configured or the
user has an easy option for allowing this validation step to be skipped.
Change the default PEAP client behavior to be to require Phase 2
authentication to be successfully completed for cases where TLS session
resumption is not used and the client certificate has not been
configured. Those two exceptions are the main cases where a deployed
authentication server might skip Phase 2 and as such, where a more
strict default behavior could result in undesired interoperability
issues. Requiring Phase 2 authentication will end up disabling TLS
session resumption automatically to avoid interoperability issues.
Allow Phase 2 authentication behavior to be configured with a new phase1
configuration parameter option:
'phase2_auth' option can be used to control Phase 2 (i.e., within TLS
tunnel) behavior for PEAP:
* 0 = do not require Phase 2 authentication
* 1 = require Phase 2 authentication when client certificate
(private_key/client_cert) is no used and TLS session resumption was
not used (default)
* 2 = require Phase 2 authentication in all cases
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2023-52160
Upstream-Status: Backport
[https://w1.fi/cgit/hostap/commit/?id=8e6485a1bcb0baffdea9e55255a81270b768439c]
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
src/eap_peer/eap_config.h | 8 +++++++
src/eap_peer/eap_peap.c | 40 ++++++++++++++++++++++++++++++++---
src/eap_peer/eap_tls_common.c | 6 ++++++
src/eap_peer/eap_tls_common.h | 5 +++++
4 files changed, 56 insertions(+), 3 deletions(-)
diff --git a/src/eap_peer/eap_config.h b/src/eap_peer/eap_config.h
index 3238f74..047eec2 100644
--- a/src/eap_peer/eap_config.h
+++ b/src/eap_peer/eap_config.h
@@ -469,6 +469,14 @@ struct eap_peer_config {
* 1 = use cryptobinding if server supports it
* 2 = require cryptobinding
*
+ * phase2_auth option can be used to control Phase 2 (i.e., within TLS
+ * tunnel) behavior for PEAP:
+ * 0 = do not require Phase 2 authentication
+ * 1 = require Phase 2 authentication when client certificate
+ * (private_key/client_cert) is no used and TLS session resumption was
+ * not used (default)
+ * 2 = require Phase 2 authentication in all cases
+ *
* EAP-WSC (WPS) uses following options: pin=Device_Password and
* uuid=Device_UUID
*
diff --git a/src/eap_peer/eap_peap.c b/src/eap_peer/eap_peap.c
index 12e30df..6080697 100644
--- a/src/eap_peer/eap_peap.c
+++ b/src/eap_peer/eap_peap.c
@@ -67,6 +67,7 @@ struct eap_peap_data {
u8 cmk[20];
int soh; /* Whether IF-TNCCS-SOH (Statement of Health; Microsoft NAP)
* is enabled. */
+ enum { NO_AUTH, FOR_INITIAL, ALWAYS } phase2_auth;
};
@@ -114,6 +115,19 @@ static void eap_peap_parse_phase1(struct eap_peap_data *data,
wpa_printf(MSG_DEBUG, "EAP-PEAP: Require cryptobinding");
}
+ if (os_strstr(phase1, "phase2_auth=0")) {
+ data->phase2_auth = NO_AUTH;
+ wpa_printf(MSG_DEBUG,
+ "EAP-PEAP: Do not require Phase 2 authentication");
+ } else if (os_strstr(phase1, "phase2_auth=1")) {
+ data->phase2_auth = FOR_INITIAL;
+ wpa_printf(MSG_DEBUG,
+ "EAP-PEAP: Require Phase 2 authentication for initial connection");
+ } else if (os_strstr(phase1, "phase2_auth=2")) {
+ data->phase2_auth = ALWAYS;
+ wpa_printf(MSG_DEBUG,
+ "EAP-PEAP: Require Phase 2 authentication for all cases");
+ }
#ifdef EAP_TNC
if (os_strstr(phase1, "tnc=soh2")) {
data->soh = 2;
@@ -142,6 +156,7 @@ static void * eap_peap_init(struct eap_sm *sm)
data->force_peap_version = -1;
data->peap_outer_success = 2;
data->crypto_binding = OPTIONAL_BINDING;
+ data->phase2_auth = FOR_INITIAL;
if (config && config->phase1)
eap_peap_parse_phase1(data, config->phase1);
@@ -454,6 +469,20 @@ static int eap_tlv_validate_cryptobinding(struct eap_sm *sm,
}
+static bool peap_phase2_sufficient(struct eap_sm *sm,
+ struct eap_peap_data *data)
+{
+ if ((data->phase2_auth == ALWAYS ||
+ (data->phase2_auth == FOR_INITIAL &&
+ !tls_connection_resumed(sm->ssl_ctx, data->ssl.conn) &&
+ !data->ssl.client_cert_conf) ||
+ data->phase2_eap_started) &&
+ !data->phase2_eap_success)
+ return false;
+ return true;
+}
+
+
/**
* eap_tlv_process - Process a received EAP-TLV message and generate a response
* @sm: Pointer to EAP state machine allocated with eap_peer_sm_init()
@@ -568,6 +597,11 @@ static int eap_tlv_process(struct eap_sm *sm, struct eap_peap_data *data,
" - force failed Phase 2");
resp_status = EAP_TLV_RESULT_FAILURE;
ret->decision = DECISION_FAIL;
+ } else if (!peap_phase2_sufficient(sm, data)) {
+ wpa_printf(MSG_INFO,
+ "EAP-PEAP: Server indicated Phase 2 success, but sufficient Phase 2 authentication has not been completed");
+ resp_status = EAP_TLV_RESULT_FAILURE;
+ ret->decision = DECISION_FAIL;
} else {
resp_status = EAP_TLV_RESULT_SUCCESS;
ret->decision = DECISION_UNCOND_SUCC;
@@ -887,8 +921,7 @@ continue_req:
/* EAP-Success within TLS tunnel is used to indicate
* shutdown of the TLS channel. The authentication has
* been completed. */
- if (data->phase2_eap_started &&
- !data->phase2_eap_success) {
+ if (!peap_phase2_sufficient(sm, data)) {
wpa_printf(MSG_DEBUG, "EAP-PEAP: Phase 2 "
"Success used to indicate success, "
"but Phase 2 EAP was not yet "
@@ -1199,8 +1232,9 @@ static struct wpabuf * eap_peap_process(struct eap_sm *sm, void *priv,
static bool eap_peap_has_reauth_data(struct eap_sm *sm, void *priv)
{
struct eap_peap_data *data = priv;
+
return tls_connection_established(sm->ssl_ctx, data->ssl.conn) &&
- data->phase2_success;
+ data->phase2_success && data->phase2_auth != ALWAYS;
}
diff --git a/src/eap_peer/eap_tls_common.c b/src/eap_peer/eap_tls_common.c
index c1837db..a53eeb1 100644
--- a/src/eap_peer/eap_tls_common.c
+++ b/src/eap_peer/eap_tls_common.c
@@ -239,6 +239,12 @@ static int eap_tls_params_from_conf(struct eap_sm *sm,
sm->ext_cert_check = !!(params->flags & TLS_CONN_EXT_CERT_CHECK);
+ if (!phase2)
+ data->client_cert_conf = params->client_cert ||
+ params->client_cert_blob ||
+ params->private_key ||
+ params->private_key_blob;
+
return 0;
}
diff --git a/src/eap_peer/eap_tls_common.h b/src/eap_peer/eap_tls_common.h
index 9ac0012..3348634 100644
--- a/src/eap_peer/eap_tls_common.h
+++ b/src/eap_peer/eap_tls_common.h
@@ -79,6 +79,11 @@ struct eap_ssl_data {
* tls_v13 - Whether TLS v1.3 or newer is used
*/
int tls_v13;
+
+ /**
+ * client_cert_conf: Whether client certificate has been configured
+ */
+ bool client_cert_conf;
};
--
2.25.1

View File

@@ -0,0 +1,83 @@
From 945acf3ef06a6c312927da4fa055693dbac432d1 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 2 Apr 2022 16:28:12 +0300
Subject: [PATCH 1/9] ieee802_11_auth: Coding style cleanup - no string
constant splitting
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=945acf3ef06a6c312927da4fa055693dbac432d1]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/ap/ieee802_11_auth.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/src/ap/ieee802_11_auth.c b/src/ap/ieee802_11_auth.c
index 783ee6dea..47cc625be 100644
--- a/src/ap/ieee802_11_auth.c
+++ b/src/ap/ieee802_11_auth.c
@@ -267,16 +267,16 @@ int hostapd_allowed_address(struct hostapd_data *hapd, const u8 *addr,
os_get_reltime(&query->timestamp);
os_memcpy(query->addr, addr, ETH_ALEN);
if (hostapd_radius_acl_query(hapd, addr, query)) {
- wpa_printf(MSG_DEBUG, "Failed to send Access-Request "
- "for ACL query.");
+ wpa_printf(MSG_DEBUG,
+ "Failed to send Access-Request for ACL query.");
hostapd_acl_query_free(query);
return HOSTAPD_ACL_REJECT;
}
query->auth_msg = os_memdup(msg, len);
if (query->auth_msg == NULL) {
- wpa_printf(MSG_ERROR, "Failed to allocate memory for "
- "auth frame.");
+ wpa_printf(MSG_ERROR,
+ "Failed to allocate memory for auth frame.");
hostapd_acl_query_free(query);
return HOSTAPD_ACL_REJECT;
}
@@ -467,19 +467,21 @@ hostapd_acl_recv_radius(struct radius_msg *msg, struct radius_msg *req,
if (query == NULL)
return RADIUS_RX_UNKNOWN;
- wpa_printf(MSG_DEBUG, "Found matching Access-Request for RADIUS "
- "message (id=%d)", query->radius_id);
+ wpa_printf(MSG_DEBUG,
+ "Found matching Access-Request for RADIUS message (id=%d)",
+ query->radius_id);
if (radius_msg_verify(msg, shared_secret, shared_secret_len, req, 0)) {
- wpa_printf(MSG_INFO, "Incoming RADIUS packet did not have "
- "correct authenticator - dropped\n");
+ wpa_printf(MSG_INFO,
+ "Incoming RADIUS packet did not have correct authenticator - dropped");
return RADIUS_RX_INVALID_AUTHENTICATOR;
}
if (hdr->code != RADIUS_CODE_ACCESS_ACCEPT &&
hdr->code != RADIUS_CODE_ACCESS_REJECT) {
- wpa_printf(MSG_DEBUG, "Unknown RADIUS message code %d to ACL "
- "query", hdr->code);
+ wpa_printf(MSG_DEBUG,
+ "Unknown RADIUS message code %d to ACL query",
+ hdr->code);
return RADIUS_RX_UNKNOWN;
}
@@ -506,8 +508,9 @@ hostapd_acl_recv_radius(struct radius_msg *msg, struct radius_msg *req,
msg, RADIUS_ATTR_ACCT_INTERIM_INTERVAL,
&info->acct_interim_interval) == 0 &&
info->acct_interim_interval < 60) {
- wpa_printf(MSG_DEBUG, "Ignored too small "
- "Acct-Interim-Interval %d for STA " MACSTR,
+ wpa_printf(MSG_DEBUG,
+ "Ignored too small Acct-Interim-Interval %d for STA "
+ MACSTR,
info->acct_interim_interval,
MAC2STR(query->addr));
info->acct_interim_interval = 0;
--
2.30.2

View File

@@ -0,0 +1,165 @@
From adac846bd0e258a0aa50750bbd2b411fa0085c46 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 16 Mar 2024 11:11:44 +0200
Subject: [PATCH 2/9] RADIUS: Allow Message-Authenticator attribute as the
first attribute
If a Message-Authenticator attribute was already added to a RADIUS
message, use that attribute instead of adding a new one when finishing
message building. This allows the Message-Authenticator attribute to be
placed as the first attribute in the message.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=adac846bd0e258a0aa50750bbd2b411fa0085c46]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/radius/radius.c | 85 ++++++++++++++++++++++++++++-----------------
src/radius/radius.h | 1 +
2 files changed, 54 insertions(+), 32 deletions(-)
diff --git a/src/radius/radius.c b/src/radius/radius.c
index be16e27b9..2d2e00b5c 100644
--- a/src/radius/radius.c
+++ b/src/radius/radius.c
@@ -364,25 +364,54 @@ void radius_msg_dump(struct radius_msg *msg)
}
+u8 * radius_msg_add_msg_auth(struct radius_msg *msg)
+{
+ u8 auth[MD5_MAC_LEN];
+ struct radius_attr_hdr *attr;
+
+ os_memset(auth, 0, MD5_MAC_LEN);
+ attr = radius_msg_add_attr(msg, RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
+ auth, MD5_MAC_LEN);
+ if (!attr) {
+ wpa_printf(MSG_ERROR,
+ "WARNING: Could not add Message-Authenticator");
+ return NULL;
+ }
+
+ return (u8 *) (attr + 1);
+}
+
+
+static u8 * radius_msg_auth_pos(struct radius_msg *msg)
+{
+ u8 *pos;
+ size_t alen;
+
+ if (radius_msg_get_attr_ptr(msg, RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
+ &pos, &alen, NULL) == 0 &&
+ alen == MD5_MAC_LEN) {
+ /* Use already added Message-Authenticator attribute */
+ return pos;
+ }
+
+ /* Add a Message-Authenticator attribute */
+ return radius_msg_add_msg_auth(msg);
+}
+
+
int radius_msg_finish(struct radius_msg *msg, const u8 *secret,
size_t secret_len)
{
if (secret) {
- u8 auth[MD5_MAC_LEN];
- struct radius_attr_hdr *attr;
+ u8 *pos;
- os_memset(auth, 0, MD5_MAC_LEN);
- attr = radius_msg_add_attr(msg,
- RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
- auth, MD5_MAC_LEN);
- if (attr == NULL) {
- wpa_printf(MSG_WARNING, "RADIUS: Could not add "
- "Message-Authenticator");
+ pos = radius_msg_auth_pos(msg);
+ if (!pos)
return -1;
- }
msg->hdr->length = host_to_be16(wpabuf_len(msg->buf));
- hmac_md5(secret, secret_len, wpabuf_head(msg->buf),
- wpabuf_len(msg->buf), (u8 *) (attr + 1));
+ if (hmac_md5(secret, secret_len, wpabuf_head(msg->buf),
+ wpabuf_len(msg->buf), pos) < 0)
+ return -1;
} else
msg->hdr->length = host_to_be16(wpabuf_len(msg->buf));
@@ -398,23 +427,19 @@ int radius_msg_finish(struct radius_msg *msg, const u8 *secret,
int radius_msg_finish_srv(struct radius_msg *msg, const u8 *secret,
size_t secret_len, const u8 *req_authenticator)
{
- u8 auth[MD5_MAC_LEN];
- struct radius_attr_hdr *attr;
const u8 *addr[4];
size_t len[4];
+ u8 *pos;
- os_memset(auth, 0, MD5_MAC_LEN);
- attr = radius_msg_add_attr(msg, RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
- auth, MD5_MAC_LEN);
- if (attr == NULL) {
- wpa_printf(MSG_ERROR, "WARNING: Could not add Message-Authenticator");
+ pos = radius_msg_auth_pos(msg);
+ if (!pos)
return -1;
- }
msg->hdr->length = host_to_be16(wpabuf_len(msg->buf));
os_memcpy(msg->hdr->authenticator, req_authenticator,
sizeof(msg->hdr->authenticator));
- hmac_md5(secret, secret_len, wpabuf_head(msg->buf),
- wpabuf_len(msg->buf), (u8 *) (attr + 1));
+ if (hmac_md5(secret, secret_len, wpabuf_head(msg->buf),
+ wpabuf_len(msg->buf), pos) < 0)
+ return -1;
/* ResponseAuth = MD5(Code+ID+Length+RequestAuth+Attributes+Secret) */
addr[0] = (u8 *) msg->hdr;
@@ -442,21 +467,17 @@ int radius_msg_finish_das_resp(struct radius_msg *msg, const u8 *secret,
{
const u8 *addr[2];
size_t len[2];
- u8 auth[MD5_MAC_LEN];
- struct radius_attr_hdr *attr;
+ u8 *pos;
- os_memset(auth, 0, MD5_MAC_LEN);
- attr = radius_msg_add_attr(msg, RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
- auth, MD5_MAC_LEN);
- if (attr == NULL) {
- wpa_printf(MSG_WARNING, "Could not add Message-Authenticator");
+ pos = radius_msg_auth_pos(msg);
+ if (!pos)
return -1;
- }
msg->hdr->length = host_to_be16(wpabuf_len(msg->buf));
os_memcpy(msg->hdr->authenticator, req_hdr->authenticator, 16);
- hmac_md5(secret, secret_len, wpabuf_head(msg->buf),
- wpabuf_len(msg->buf), (u8 *) (attr + 1));
+ if (hmac_md5(secret, secret_len, wpabuf_head(msg->buf),
+ wpabuf_len(msg->buf), pos) < 0)
+ return -1;
/* ResponseAuth = MD5(Code+ID+Length+RequestAuth+Attributes+Secret) */
addr[0] = wpabuf_head_u8(msg->buf);
diff --git a/src/radius/radius.h b/src/radius/radius.h
index fb8148180..6b9dfbca2 100644
--- a/src/radius/radius.h
+++ b/src/radius/radius.h
@@ -240,6 +240,7 @@ struct wpabuf * radius_msg_get_buf(struct radius_msg *msg);
struct radius_msg * radius_msg_new(u8 code, u8 identifier);
void radius_msg_free(struct radius_msg *msg);
void radius_msg_dump(struct radius_msg *msg);
+u8 * radius_msg_add_msg_auth(struct radius_msg *msg);
int radius_msg_finish(struct radius_msg *msg, const u8 *secret,
size_t secret_len);
int radius_msg_finish_srv(struct radius_msg *msg, const u8 *secret,
--
2.30.2

View File

@@ -0,0 +1,62 @@
From 54abb0d3cf35894e7d86e3f7555e95b106306803 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 16 Mar 2024 11:13:32 +0200
Subject: [PATCH 3/9] RADIUS server: Place Message-Authenticator attribute as
the first one
Move the Message-Authenticator attribute to be the first attribute in
the RADIUS messages. This mitigates certain MD5 attacks against
RADIUS/UDP.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=54abb0d3cf35894e7d86e3f7555e95b106306803]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/radius/radius_server.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/radius/radius_server.c b/src/radius/radius_server.c
index e02c21540..fa3691548 100644
--- a/src/radius/radius_server.c
+++ b/src/radius/radius_server.c
@@ -920,6 +920,11 @@ radius_server_encapsulate_eap(struct radius_server_data *data,
return NULL;
}
+ if (!radius_msg_add_msg_auth(msg)) {
+ radius_msg_free(msg);
+ return NULL;
+ }
+
sess_id = htonl(sess->sess_id);
if (code == RADIUS_CODE_ACCESS_CHALLENGE &&
!radius_msg_add_attr(msg, RADIUS_ATTR_STATE,
@@ -1204,6 +1209,11 @@ radius_server_macacl(struct radius_server_data *data,
return NULL;
}
+ if (!radius_msg_add_msg_auth(msg)) {
+ radius_msg_free(msg);
+ return NULL;
+ }
+
if (radius_msg_copy_attr(msg, request, RADIUS_ATTR_PROXY_STATE) < 0) {
RADIUS_DEBUG("Failed to copy Proxy-State attribute(s)");
radius_msg_free(msg);
@@ -1253,6 +1263,11 @@ static int radius_server_reject(struct radius_server_data *data,
return -1;
}
+ if (!radius_msg_add_msg_auth(msg)) {
+ radius_msg_free(msg);
+ return -1;
+ }
+
os_memset(&eapfail, 0, sizeof(eapfail));
eapfail.code = EAP_CODE_FAILURE;
eapfail.identifier = 0;
--
2.30.2

View File

@@ -0,0 +1,52 @@
From 37fe8e48ab44d44fe3cf5dd8f52cb0a10be0cd17 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 16 Mar 2024 11:22:43 +0200
Subject: [PATCH 5/9] hostapd: Move Message-Authenticator attribute to be the
first one in req
Even if this is not strictly speaking necessary for mitigating certain
RADIUS protocol attacks, be consistent with the RADIUS server behavior
and move the Message-Authenticator attribute to be the first attribute
in the message from RADIUS client in hostapd.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=37fe8e48ab44d44fe3cf5dd8f52cb0a10be0cd17]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/ap/ieee802_11_auth.c | 3 +++
src/ap/ieee802_1x.c | 3 +++
2 files changed, 6 insertions(+)
diff --git a/src/ap/ieee802_11_auth.c b/src/ap/ieee802_11_auth.c
index 47cc625be..2a950cf7f 100644
--- a/src/ap/ieee802_11_auth.c
+++ b/src/ap/ieee802_11_auth.c
@@ -119,6 +119,9 @@ static int hostapd_radius_acl_query(struct hostapd_data *hapd, const u8 *addr,
goto fail;
}
+ if (!radius_msg_add_msg_auth(msg))
+ goto fail;
+
os_snprintf(buf, sizeof(buf), RADIUS_ADDR_FORMAT, MAC2STR(addr));
if (!radius_msg_add_attr(msg, RADIUS_ATTR_USER_NAME, (u8 *) buf,
os_strlen(buf))) {
diff --git a/src/ap/ieee802_1x.c b/src/ap/ieee802_1x.c
index 753c88335..89e3dd30e 100644
--- a/src/ap/ieee802_1x.c
+++ b/src/ap/ieee802_1x.c
@@ -702,6 +702,9 @@ void ieee802_1x_encapsulate_radius(struct hostapd_data *hapd,
goto fail;
}
+ if (!radius_msg_add_msg_auth(msg))
+ goto fail;
+
if (sm->identity &&
!radius_msg_add_attr(msg, RADIUS_ATTR_USER_NAME,
sm->identity, sm->identity_len)) {
--
2.30.2

View File

@@ -0,0 +1,51 @@
From f54157077f799d84ce26bed6ad6b01c4a16e31cf Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 16 Mar 2024 11:26:58 +0200
Subject: [PATCH 6/9] RADIUS DAS: Move Message-Authenticator attribute to be
the first one
Even if this might not be strictly speaking necessary for mitigating
certain RADIUS protocol attacks, be consistent with the RADIUS server
behavior and move the Message-Authenticator attribute to be the first
attribute in the RADIUS DAS responses from hostapd.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=f54157077f799d84ce26bed6ad6b01c4a16e31cf]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/radius/radius_das.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/radius/radius_das.c b/src/radius/radius_das.c
index aaa3fc267..8d7c9b4c4 100644
--- a/src/radius/radius_das.c
+++ b/src/radius/radius_das.c
@@ -177,6 +177,11 @@ fail:
if (reply == NULL)
return NULL;
+ if (!radius_msg_add_msg_auth(reply)) {
+ radius_msg_free(reply);
+ return NULL;
+ }
+
if (error) {
if (!radius_msg_add_attr_int32(reply, RADIUS_ATTR_ERROR_CAUSE,
error)) {
@@ -368,6 +373,11 @@ fail:
if (!reply)
return NULL;
+ if (!radius_msg_add_msg_auth(reply)) {
+ radius_msg_free(reply);
+ return NULL;
+ }
+
if (error &&
!radius_msg_add_attr_int32(reply, RADIUS_ATTR_ERROR_CAUSE, error)) {
radius_msg_free(reply);
--
2.30.2

View File

@@ -0,0 +1,46 @@
From 934b0c3a45ce0726560ccefbd992a9d385c36385 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 16 Mar 2024 11:31:37 +0200
Subject: [PATCH 7/9] Require Message-Authenticator in Access-Reject even
without EAP-Message
Do not allow the exception for missing Message-Authenticator in
Access-Reject without EAP-Message. While such exception is allowed in
RADIUS definition, there is no strong reason to maintain this since
Access-Reject is supposed to include EAP-Message and even if it doesn't,
discarding Access-Reject will result in the connection not completing.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=934b0c3a45ce0726560ccefbd992a9d385c36385]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/ap/ieee802_1x.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/src/ap/ieee802_1x.c b/src/ap/ieee802_1x.c
index 89e3dd30e..6e7b75128 100644
--- a/src/ap/ieee802_1x.c
+++ b/src/ap/ieee802_1x.c
@@ -1939,16 +1939,7 @@ ieee802_1x_receive_auth(struct radius_msg *msg, struct radius_msg *req,
}
sta = sm->sta;
- /* RFC 2869, Ch. 5.13: valid Message-Authenticator attribute MUST be
- * present when packet contains an EAP-Message attribute */
- if (hdr->code == RADIUS_CODE_ACCESS_REJECT &&
- radius_msg_get_attr(msg, RADIUS_ATTR_MESSAGE_AUTHENTICATOR, NULL,
- 0) < 0 &&
- radius_msg_get_attr(msg, RADIUS_ATTR_EAP_MESSAGE, NULL, 0) < 0) {
- wpa_printf(MSG_DEBUG,
- "Allowing RADIUS Access-Reject without Message-Authenticator since it does not include EAP-Message");
- } else if (radius_msg_verify(msg, shared_secret, shared_secret_len,
- req, 1)) {
+ if (radius_msg_verify(msg, shared_secret, shared_secret_len, req, 1)) {
wpa_printf(MSG_INFO,
"Incoming RADIUS packet did not have correct Message-Authenticator - dropped");
return RADIUS_RX_INVALID_AUTHENTICATOR;
--
2.30.2

View File

@@ -0,0 +1,105 @@
From 58097123ec5ea6f8276b38cb9b07669ec368a6c1 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sun, 17 Mar 2024 10:42:56 +0200
Subject: [PATCH 8/9] RADIUS: Require Message-Authenticator attribute in MAC
ACL cases
hostapd required Message-Authenticator attribute to be included in EAP
authentication cases, but that requirement was not in place for MAC ACL
cases. Start requiring Message-Authenticator attribute for MAC ACL by
default. Unlike the EAP case, this can still be disabled with
radius_require_message_authenticator=1 to maintain compatibility with
some RADIUS servers when used in a network where the connection to such
a server is secure.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=58097123ec5ea6f8276b38cb9b07669ec368a6c1]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
hostapd/config_file.c | 3 +++
hostapd/hostapd.conf | 11 +++++++++++
src/ap/ap_config.c | 1 +
src/ap/ap_config.h | 1 +
src/ap/ieee802_11_auth.c | 4 +++-
5 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/hostapd/config_file.c b/hostapd/config_file.c
index b14728d1b..af1e81d1d 100644
--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
@@ -2806,6 +2806,9 @@ static int hostapd_config_fill(struct hostapd_config *conf,
bss->radius->acct_server->shared_secret_len = len;
} else if (os_strcmp(buf, "radius_retry_primary_interval") == 0) {
bss->radius->retry_primary_interval = atoi(pos);
+ } else if (os_strcmp(buf,
+ "radius_require_message_authenticator") == 0) {
+ bss->radius_require_message_authenticator = atoi(pos);
} else if (os_strcmp(buf, "radius_acct_interim_interval") == 0) {
bss->acct_interim_interval = atoi(pos);
} else if (os_strcmp(buf, "radius_request_cui") == 0) {
diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
index 3c2019f73..c055946a6 100644
--- a/hostapd/hostapd.conf
+++ b/hostapd/hostapd.conf
@@ -1447,6 +1447,17 @@ own_ip_addr=127.0.0.1
# currently used secondary server is still working.
#radius_retry_primary_interval=600
+# Message-Authenticator attribute requirement for non-EAP cases
+# hostapd requires Message-Authenticator attribute to be included in all cases
+# where RADIUS is used for EAP authentication. This is also required for cases
+# where RADIUS is used for MAC ACL (macaddr_acl=2) by default, but that case
+# can be configured to not require this for compatibility with RADIUS servers
+# that do not include the attribute. This is not recommended due to potential
+# security concerns, but can be used as a temporary workaround in networks where
+# the connection to the RADIUS server is secure.
+# 0 = Do not require Message-Authenticator in MAC ACL response
+# 1 = Require Message-Authenticator in all authentication cases (default)
+#radius_require_message_authenticator=1
# Interim accounting update interval
# If this is set (larger than 0) and acct_server is configured, hostapd will
diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
index 86b6e097c..cf497a180 100644
--- a/src/ap/ap_config.c
+++ b/src/ap/ap_config.c
@@ -120,6 +120,7 @@ void hostapd_config_defaults_bss(struct hostapd_bss_config *bss)
#endif /* CONFIG_IEEE80211R_AP */
bss->radius_das_time_window = 300;
+ bss->radius_require_message_authenticator = 1;
bss->anti_clogging_threshold = 5;
bss->sae_sync = 5;
diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
index 49cd3168a..22ad617f4 100644
--- a/src/ap/ap_config.h
+++ b/src/ap/ap_config.h
@@ -302,6 +302,7 @@ struct hostapd_bss_config {
struct hostapd_ip_addr own_ip_addr;
char *nas_identifier;
struct hostapd_radius_servers *radius;
+ int radius_require_message_authenticator;
int acct_interim_interval;
int radius_request_cui;
struct hostapd_radius_attr *radius_auth_req_attr;
diff --git a/src/ap/ieee802_11_auth.c b/src/ap/ieee802_11_auth.c
index 2a950cf7f..dab9bcde3 100644
--- a/src/ap/ieee802_11_auth.c
+++ b/src/ap/ieee802_11_auth.c
@@ -474,7 +474,9 @@ hostapd_acl_recv_radius(struct radius_msg *msg, struct radius_msg *req,
"Found matching Access-Request for RADIUS message (id=%d)",
query->radius_id);
- if (radius_msg_verify(msg, shared_secret, shared_secret_len, req, 0)) {
+ if (radius_msg_verify(
+ msg, shared_secret, shared_secret_len, req,
+ hapd->conf->radius_require_message_authenticator)) {
wpa_printf(MSG_INFO,
"Incoming RADIUS packet did not have correct authenticator - dropped");
return RADIUS_RX_INVALID_AUTHENTICATOR;
--
2.30.2

View File

@@ -0,0 +1,47 @@
From f302d9f9646704cce745734af21d540baa0da65f Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sun, 17 Mar 2024 10:47:58 +0200
Subject: [PATCH 9/9] RADIUS: Check Message-Authenticator if it is present even
if not required
Always check the Message-Authenticator attribute in a received RADIUS
message if it is present. Previously, this would have been skipped if
the attribute was not required to be present.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2024-3596
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=f302d9f9646704cce745734af21d540baa0da65f]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/radius/radius.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/radius/radius.c b/src/radius/radius.c
index 2d2e00b5c..a0e3ce399 100644
--- a/src/radius/radius.c
+++ b/src/radius/radius.c
@@ -879,6 +879,20 @@ int radius_msg_verify(struct radius_msg *msg, const u8 *secret,
return 1;
}
+ if (!auth) {
+ u8 *pos;
+ size_t alen;
+
+ if (radius_msg_get_attr_ptr(msg,
+ RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
+ &pos, &alen, NULL) == 0) {
+ /* Check the Message-Authenticator attribute since it
+ * was included even if we are configured to not
+ * require it. */
+ auth = 1;
+ }
+ }
+
if (auth &&
radius_msg_verify_msg_auth(msg, secret, secret_len,
sent_msg->hdr->authenticator)) {
--
2.30.2

View File

@@ -0,0 +1,148 @@
# Example hostapd build time configuration
#
# This file lists the configuration options that are used when building the
# hostapd binary. All lines starting with # are ignored. Configuration option
# lines must be commented out complete, if they are not to be included, i.e.,
# just setting VARIABLE=n is not disabling that variable.
#
# This file is included in Makefile, so variables like CFLAGS and LIBS can also
# be modified from here. In most cass, these lines should use += in order not
# to override previous values of the variables.
# Driver interface for Host AP driver
CONFIG_DRIVER_HOSTAP=y
# Driver interface for wired authenticator
CONFIG_DRIVER_WIRED=y
# Driver interface for madwifi driver
#CONFIG_DRIVER_MADWIFI=y
#CFLAGS += -I../../madwifi # change to the madwifi source directory
# Driver interface for Prism54 driver
CONFIG_DRIVER_PRISM54=y
# Driver interface for drivers using the nl80211 kernel interface
CONFIG_DRIVER_NL80211=y
CONFIG_LIBNL32=y
# driver_nl80211.c requires a rather new libnl (version 1.1) which may not be
# shipped with your distribution yet. If that is the case, you need to build
# newer libnl version and point the hostapd build to use it.
#LIBNL=/usr/src/libnl
#CFLAGS += -I$(LIBNL)/include
#LIBS += -L$(LIBNL)/lib
# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
#CONFIG_DRIVER_BSD=y
#CFLAGS += -I/usr/local/include
#LIBS += -L/usr/local/lib
# Driver interface for no driver (e.g., RADIUS server only)
#CONFIG_DRIVER_NONE=y
# IEEE 802.11F/IAPP
CONFIG_IAPP=y
# WPA2/IEEE 802.11i RSN pre-authentication
CONFIG_RSN_PREAUTH=y
# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS)
CONFIG_PEERKEY=y
# IEEE 802.11w (management frame protection)
# This version is an experimental implementation based on IEEE 802.11w/D1.0
# draft and is subject to change since the standard has not yet been finalized.
# Driver support is also needed for IEEE 802.11w.
#CONFIG_IEEE80211W=y
# Integrated EAP server
CONFIG_EAP=y
# EAP-MD5 for the integrated EAP server
CONFIG_EAP_MD5=y
# EAP-TLS for the integrated EAP server
CONFIG_EAP_TLS=y
# EAP-MSCHAPv2 for the integrated EAP server
CONFIG_EAP_MSCHAPV2=y
# EAP-PEAP for the integrated EAP server
CONFIG_EAP_PEAP=y
# EAP-GTC for the integrated EAP server
CONFIG_EAP_GTC=y
# EAP-TTLS for the integrated EAP server
CONFIG_EAP_TTLS=y
# EAP-SIM for the integrated EAP server
#CONFIG_EAP_SIM=y
# EAP-AKA for the integrated EAP server
#CONFIG_EAP_AKA=y
# EAP-AKA' for the integrated EAP server
# This requires CONFIG_EAP_AKA to be enabled, too.
#CONFIG_EAP_AKA_PRIME=y
# EAP-PAX for the integrated EAP server
#CONFIG_EAP_PAX=y
# EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK)
#CONFIG_EAP_PSK=y
# EAP-SAKE for the integrated EAP server
#CONFIG_EAP_SAKE=y
# EAP-GPSK for the integrated EAP server
#CONFIG_EAP_GPSK=y
# Include support for optional SHA256 cipher suite in EAP-GPSK
#CONFIG_EAP_GPSK_SHA256=y
# EAP-FAST for the integrated EAP server
# Note: Default OpenSSL package does not include support for all the
# functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL,
# the OpenSSL library must be patched (openssl-0.9.9-session-ticket.patch)
# to add the needed functions.
#CONFIG_EAP_FAST=y
# Wi-Fi Protected Setup (WPS)
CONFIG_WPS=y
# Enable UPnP support for external WPS Registrars
#CONFIG_WPS_UPNP=y
# EAP-IKEv2
#CONFIG_EAP_IKEV2=y
# Trusted Network Connect (EAP-TNC)
#CONFIG_EAP_TNC=y
# PKCS#12 (PFX) support (used to read private key and certificate file from
# a file that usually has extension .p12 or .pfx)
CONFIG_PKCS12=y
# RADIUS authentication server. This provides access to the integrated EAP
# server from external hosts using RADIUS.
CONFIG_RADIUS_SERVER=y
# Build IPv6 support for RADIUS operations
CONFIG_IPV6=y
# IEEE Std 802.11r-2008 (Fast BSS Transition)
#CONFIG_IEEE80211R=y
# Use the hostapd's IEEE 802.11 authentication (ACL), but without
# the IEEE 802.11 Management capability (e.g., madwifi or FreeBSD/net80211)
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.
#CONFIG_NO_STDOUT_DEBUG=y

View File

@@ -0,0 +1,11 @@
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=network.target
[Service]
Type=forking
PIDFile=/run/hostapd.pid
ExecStart=@SBINDIR@/hostapd @SYSCONFDIR@/hostapd.conf -P /run/hostapd.pid -B
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,58 @@
#!/bin/sh
DAEMON=/usr/sbin/hostapd
NAME=hostapd
DESC="HOSTAP Daemon"
ARGS="/etc/hostapd.conf -B"
test -f $DAEMON || exit 0
set -e
# source function library
. /etc/init.d/functions
delay_stop() {
count=0
while [ $count -lt 9 ] ; do
if pidof $DAEMON >/dev/null; then
sleep 1
else
return 0
fi
count=`expr $count + 1`
done
echo "Failed to stop $DESC."
return 1
}
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon -S -x $DAEMON -- $ARGS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon -K --oknodo -x $DAEMON
echo "$NAME."
;;
restart)
$0 stop
delay_stop && $0 start
;;
reload)
echo -n "Reloading $DESC: "
killall -HUP $(basename ${DAEMON})
echo "$NAME."
;;
status)
status $DAEMON
exit $?
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
;;
esac
exit 0

View File

@@ -0,0 +1,59 @@
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 \
file://CVE-2024-3596_00.patch \
file://CVE-2024-3596_01.patch \
file://CVE-2024-3596_02.patch \
file://CVE-2024-3596_04.patch \
file://CVE-2024-3596_05.patch \
file://CVE-2024-3596_06.patch \
file://CVE-2024-3596_07.patch \
file://CVE-2024-3596_08.patch \
file://0001-SAE-Check-for-invalid-Rejected-Groups-element-length.patch \
file://0003-SAE-Reject-invalid-Rejected-Groups-element-in-the-pa.patch \
file://CVE-2023-52160.patch \
"
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 ${WORKDIR}/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 ${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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -0,0 +1,21 @@
SUMMARY = "ncurses IRC client"
DESCRIPTION = "Irssi is an ncurses IRC client"
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[sha256sum] = "72a951cb0ad622785a8962801f005a3a412736c7e7e3ce152f176287c52fe062"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
inherit autotools pkgconfig
EXTRA_OECONF += "--with-textui \
--with-proxy \
--with-bot \
--with-perl=no \
--enable-true-color"
FILES:${PN}-staticdev += "${libdir}/${BPN}/modules/*.a"

View File

@@ -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

View File

@@ -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 \
"

View File

@@ -0,0 +1,207 @@
From c5f9c816107f70139de11b38aa02db2f1774ee0d Mon Sep 17 00:00:00 2001
From: Greg Hudson <ghudson@mit.edu>
Date: Tue, 5 Mar 2024 19:53:07 -0500
Subject: [PATCH] Fix two unlikely memory leaks
In gss_krb5int_make_seal_token_v3(), one of the bounds checks (which
could probably never be triggered) leaks plain.data. Fix this leak
and use current practices for cleanup throughout the function.
In xmt_rmtcallres() (unused within the tree and likely elsewhere),
store port_ptr into crp->port_ptr as soon as it is allocated;
otherwise it could leak if the subsequent xdr_u_int32() operation
fails.
CVE: CVE-2024-26458 CVE-2024-26461
Upstream-Status: Backport [https://github.com/krb5/krb5/commit/c5f9c816107f70139de11b38aa02db2f1774ee0d]
Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
---
src/lib/gssapi/krb5/k5sealv3.c | 56 +++++++++++++++-------------------
src/lib/rpc/pmap_rmt.c | 9 +++---
2 files changed, 29 insertions(+), 36 deletions(-)
diff --git a/src/lib/gssapi/krb5/k5sealv3.c b/src/lib/gssapi/krb5/k5sealv3.c
index 1fcbdfb..d3210c1 100644
--- a/src/lib/gssapi/krb5/k5sealv3.c
+++ b/src/lib/gssapi/krb5/k5sealv3.c
@@ -65,7 +65,7 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
int conf_req_flag, int toktype)
{
size_t bufsize = 16;
- unsigned char *outbuf = 0;
+ unsigned char *outbuf = NULL;
krb5_error_code err;
int key_usage;
unsigned char acceptor_flag;
@@ -75,9 +75,13 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
#endif
size_t ec;
unsigned short tok_id;
- krb5_checksum sum;
+ krb5_checksum sum = { 0 };
krb5_key key;
krb5_cksumtype cksumtype;
+ krb5_data plain = empty_data();
+
+ token->value = NULL;
+ token->length = 0;
acceptor_flag = ctx->initiate ? 0 : FLAG_SENDER_IS_ACCEPTOR;
key_usage = (toktype == KG_TOK_WRAP_MSG
@@ -107,14 +111,15 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
#endif
if (toktype == KG_TOK_WRAP_MSG && conf_req_flag) {
- krb5_data plain;
krb5_enc_data cipher;
size_t ec_max;
size_t encrypt_size;
/* 300: Adds some slop. */
- if (SIZE_MAX - 300 < message->length)
- return ENOMEM;
+ if (SIZE_MAX - 300 < message->length) {
+ err = ENOMEM;
+ goto cleanup;
+ }
ec_max = SIZE_MAX - message->length - 300;
if (ec_max > 0xffff)
ec_max = 0xffff;
@@ -126,20 +131,20 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
#endif
err = alloc_data(&plain, message->length + 16 + ec);
if (err)
- return err;
+ goto cleanup;
/* Get size of ciphertext. */
encrypt_size = krb5_encrypt_size(plain.length, key->keyblock.enctype);
if (encrypt_size > SIZE_MAX / 2) {
err = ENOMEM;
- goto error;
+ goto cleanup;
}
bufsize = 16 + encrypt_size;
/* Allocate space for header plus encrypted data. */
outbuf = gssalloc_malloc(bufsize);
if (outbuf == NULL) {
- free(plain.data);
- return ENOMEM;
+ err = ENOMEM;
+ goto cleanup;
}
/* TOK_ID */
@@ -164,11 +169,8 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
cipher.ciphertext.length = bufsize - 16;
cipher.enctype = key->keyblock.enctype;
err = krb5_k_encrypt(context, key, key_usage, 0, &plain, &cipher);
- zap(plain.data, plain.length);
- free(plain.data);
- plain.data = 0;
if (err)
- goto error;
+ goto cleanup;
/* Now that we know we're returning a valid token.... */
ctx->seq_send++;
@@ -181,7 +183,6 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
/* If the rotate fails, don't worry about it. */
#endif
} else if (toktype == KG_TOK_WRAP_MSG && !conf_req_flag) {
- krb5_data plain;
size_t cksumsize;
/* Here, message is the application-supplied data; message2 is
@@ -193,21 +194,19 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
wrap_with_checksum:
err = alloc_data(&plain, message->length + 16);
if (err)
- return err;
+ goto cleanup;
err = krb5_c_checksum_length(context, cksumtype, &cksumsize);
if (err)
- goto error;
+ goto cleanup;
assert(cksumsize <= 0xffff);
bufsize = 16 + message2->length + cksumsize;
outbuf = gssalloc_malloc(bufsize);
if (outbuf == NULL) {
- free(plain.data);
- plain.data = 0;
err = ENOMEM;
- goto error;
+ goto cleanup;
}
/* TOK_ID */
@@ -239,23 +238,15 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
if (message2->length)
memcpy(outbuf + 16, message2->value, message2->length);
- sum.contents = outbuf + 16 + message2->length;
- sum.length = cksumsize;
-
err = krb5_k_make_checksum(context, cksumtype, key,
key_usage, &plain, &sum);
- zap(plain.data, plain.length);
- free(plain.data);
- plain.data = 0;
if (err) {
zap(outbuf,bufsize);
- goto error;
+ goto cleanup;
}
if (sum.length != cksumsize)
abort();
memcpy(outbuf + 16 + message2->length, sum.contents, cksumsize);
- krb5_free_checksum_contents(context, &sum);
- sum.contents = 0;
/* Now that we know we're actually generating the token... */
ctx->seq_send++;
@@ -285,12 +276,13 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
token->value = outbuf;
token->length = bufsize;
- return 0;
+ outbuf = NULL;
+ err = 0;
-error:
+cleanup:
+ krb5_free_checksum_contents(context, &sum);
+ zapfree(plain.data, plain.length);
gssalloc_free(outbuf);
- token->value = NULL;
- token->length = 0;
return err;
}
diff --git a/src/lib/rpc/pmap_rmt.c b/src/lib/rpc/pmap_rmt.c
index 8c7e30c..522cb20 100644
--- a/src/lib/rpc/pmap_rmt.c
+++ b/src/lib/rpc/pmap_rmt.c
@@ -160,11 +160,12 @@ xdr_rmtcallres(
caddr_t port_ptr;
port_ptr = (caddr_t)(void *)crp->port_ptr;
- if (xdr_reference(xdrs, &port_ptr, sizeof (uint32_t),
- xdr_u_int32) && xdr_u_int32(xdrs, &crp->resultslen)) {
- crp->port_ptr = (uint32_t *)(void *)port_ptr;
+ if (!xdr_reference(xdrs, &port_ptr, sizeof (uint32_t),
+ (xdrproc_t)xdr_u_int32))
+ return (FALSE);
+ crp->port_ptr = (uint32_t *)(void *)port_ptr;
+ if (xdr_u_int32(xdrs, &crp->resultslen))
return ((*(crp->xdr_results))(xdrs, crp->results_ptr));
- }
return (FALSE);
}
--
2.40.0

View File

@@ -0,0 +1,68 @@
From 78ceba024b64d49612375be4a12d1c066b0bfbd0 Mon Sep 17 00:00:00 2001
From: Zoltan Borbely <Zoltan.Borbely@morganstanley.com>
Date: Tue, 28 Jan 2025 16:39:25 -0500
Subject: [PATCH] Prevent overflow when calculating ulog block size
In kdb_log.c:resize(), log an error and fail if the update size is
larger than the largest possible block size (2^16-1).
CVE-2025-24528:
In MIT krb5 release 1.7 and later with incremental propagation
enabled, an authenticated attacker can cause kadmind to write beyond
the end of the mapped region for the iprop log file, likely causing a
process crash.
[ghudson@mit.edu: edited commit message and added CVE description]
ticket: 9159 (new)
tags: pullup
target_version: 1.21-next
CVE: CVE-2025-24528
Upstream-Status: Backport [https://github.com/krb5/krb5/commit/78ceba024b64d49612375be4a12d1c066b0bfbd0]
Signed-off-by: Divya Chellam <divya.chellam@windriver.com>
---
src/lib/kdb/kdb_log.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/lib/kdb/kdb_log.c b/src/lib/kdb/kdb_log.c
index 2659a25..68fae91 100644
--- a/src/lib/kdb/kdb_log.c
+++ b/src/lib/kdb/kdb_log.c
@@ -183,7 +183,7 @@ extend_file_to(int fd, unsigned int new_size)
*/
static krb5_error_code
resize(kdb_hlog_t *ulog, uint32_t ulogentries, int ulogfd,
- unsigned int recsize)
+ unsigned int recsize, const kdb_incr_update_t *upd)
{
unsigned int new_block, new_size;
@@ -195,6 +195,12 @@ resize(kdb_hlog_t *ulog, uint32_t ulogentries, int ulogfd,
new_block *= ULOG_BLOCK;
new_size += ulogentries * new_block;
+ if (new_block > UINT16_MAX) {
+ syslog(LOG_ERR, _("ulog overflow caused by principal %.*s"),
+ upd->kdb_princ_name.utf8str_t_len,
+ upd->kdb_princ_name.utf8str_t_val);
+ return KRB5_LOG_ERROR;
+ }
if (new_size > MAXLOGLEN)
return KRB5_LOG_ERROR;
@@ -291,7 +297,7 @@ store_update(kdb_log_context *log_ctx, kdb_incr_update_t *upd)
recsize = sizeof(kdb_ent_header_t) + upd_size;
if (recsize > ulog->kdb_block) {
- retval = resize(ulog, ulogentries, log_ctx->ulogfd, recsize);
+ retval = resize(ulog, ulogentries, log_ctx->ulogfd, recsize, upd);
if (retval)
return retval;
}
--
2.40.0

View File

@@ -0,0 +1,29 @@
Modifies export-check.pl to use look for $ENV{'NM'} before
defaulting to using 'nm'
Upstream-Status: Pending
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
export-check.pl | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
Index: src/util/export-check.pl
===================================================================
--- src.orig/util/export-check.pl
+++ src/util/export-check.pl
@@ -38,7 +38,12 @@
my($exfile, $libfile) = @ARGV;
@missing = ();
-open NM, "nm -Dg --defined-only $libfile |" || die "can't run nm on $libfile: $!";
+if (defined($ENV{'NM'})) {
+ $nm = $ENV{'NM'};
+} else {
+ $nm = "nm";
+}
+open NM, "$nm -Dg --defined-only $libfile |" || die "can't run nm on $libfile: $!";
open EXPORT, "< $exfile" || die "can't read $exfile: $!";
@export = <EXPORT>;

View File

@@ -0,0 +1,48 @@
Subject: [PATCH] debian: suppress /usr/lib in krb5-config
Upstream-Status: Pending
Handel multi-arch suppressions
The patch is from debian.
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
src/build-tools/krb5-config.in | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/build-tools/krb5-config.in b/src/build-tools/krb5-config.in
index f6184da..637bad7 100755
--- a/src/build-tools/krb5-config.in
+++ b/src/build-tools/krb5-config.in
@@ -138,6 +138,7 @@ if test -n "$do_help"; then
echo " [--defktname] Show built-in default keytab name"
echo " [--defcktname] Show built-in default client keytab name"
echo " [--cflags] Compile time CFLAGS"
+ echo " [--deps] Include dependent libraries"
echo " [--libs] List libraries required to link [LIBRARIES]"
echo "Libraries:"
echo " krb5 Kerberos 5 application"
@@ -209,11 +210,14 @@ fi
if test -n "$do_libs"; then
# Assumes /usr/lib is the standard library directory everywhere...
- if test "$libdir" = /usr/lib; then
- libdirarg=
- else
- libdirarg="-L$libdir"
- fi
+ case $libdir in
+ /usr/lib*)
+ libdirarg=
+ ;;
+ *)
+ libdirarg="-L$libdir"
+ ;;
+ esac
# Ugly gross hack for our build tree
lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \
-e 's/\$(PURE)//' \
--
1.7.1

View File

@@ -0,0 +1,4 @@
# Automatically generated. If you change anything in this file other than the
# values of DAEMON_ARGS, first run dpkg-reconfigure
# krb5-admin-server and disable managing the kadmin configuration with
# debconf. Otherwise, changes will be overwritten.

View File

@@ -0,0 +1,5 @@
# Automatically generated. Only the value of DAEMON_ARGS will be preserved.
# If you change anything in this file other than DAEMON_ARGS, first run
# dpkg-reconfigure krb5-kdc and disable managing the KDC configuration with
# debconf. Otherwise, changes will be overwritten.

View File

@@ -0,0 +1,140 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: krb5-admin-server
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Should-Start: krb5-kdc
# Should-Stop: krb5-kdc
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: MIT Kerberos KDC administrative daemon
# Description: Starts, stops, or restarts the MIT Kerberos KDC
# administrative daemon (kadmind). This daemon answers
# requests from kadmin clients and allows administrators
# to create, delete, and modify principals in the KDC
# database.
### END INIT INFO
# Author: Sam Hartman <hartmans@mit.edu>
# Author: Russ Allbery <rra@debian.org>
#
# Based on the /etc/init.d/skeleton template as found in initscripts version
# 2.86.ds1-15.
# June, 2012: Adopted for yocto <amy.fong@windriver.com>
PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="Kerberos administrative servers"
NAME=kadmind
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS=""
SCRIPTNAME=/etc/init.d/krb5-admin-server
DEFAULT=/etc/default/krb5-admin-server
# Exit if the package is not installed.
[ -x "$DAEMON" ] || exit 0
# Read configuration if it is present.
[ -r "$DEFAULT" ] && . "$DEFAULT"
# Get the setting of VERBOSE and other rcS variables.
[ -f /etc/default/rcS ] && . /etc/default/rcS
. /etc/init.d/functions
ADMIN_SERVER_LOG=/var/log/kadmind.log
[ -f $ADMIN_SERVER_LOG ] && (test ! -x /sbin/restorecon \
|| /sbin/restorecon -F $ADMIN_SERVER_LOG)
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
do_start()
{
start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
> /dev/null || return 1
start-stop-daemon --start --quiet --startas $DAEMON --name $NAME \
-- $DAEMON_ARGS || return 2
}
# 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
do_stop()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
return "$RETVAL"
}
case "$1" in
start)
if [ "$RUN_KADMIND" = false ] ; then
if [ "$VERBOSE" != no ] ; then
echo "Not starting $DESC per configuration"
fi
exit 0
fi
[ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && echo 0 ;;
2) [ "$VERBOSE" != no ] && echo 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && echo 0 ;;
2) [ "$VERBOSE" != no ] && echo 1 ;;
esac
;;
restart|force-reload)
if [ "$RUN_KADMIND" = false ] ; then
if [ "$VERBOSE" != no ] ; then
echo "Not restarting $DESC per configuration"
fi
exit 0
fi
echo "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) [ "$VERBOSE" != no ] && echo 0 ;;
*) [ "$VERBOSE" != no ] && echo 1 ;;
esac
;;
*)
echo 1
;;
esac
;;
status)
pidofproc "$DAEMON" >/dev/null
status=$?
if [ $status -eq 0 ]; then
echo "$NAME is running."
else
echo "$NAME is not running."
fi
exit $status
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
exit 3
;;
esac
:

View File

@@ -0,0 +1,133 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: krb5-kdc
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# X-Start-Before: $x-display-manager
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: MIT Kerberos KDC
# Description: Starts, stops, or restarts the MIT Kerberos KDC. This
# daemon responds to ticket requests from Kerberos
# clients.
### END INIT INFO
# Author: Sam Hartman <hartmans@mit.edu>
# Author: Russ Allbery <rra@debian.org>
#
# Based on the /etc/init.d/skeleton template as found in initscripts version
# 2.86.ds1-15.
# June, 2012: Adopted for yocto <amy.fong@windriver.com>
PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="Kerberos KDC"
NAME=krb5kdc
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS=""
SCRIPTNAME=/etc/init.d/krb5-kdc
# Exit if the package is not installed.
[ -x "$DAEMON" ] || exit 0
# Read configuration if it is present.
[ -r /etc/default/krb5-kdc ] && . /etc/default/krb5-kdc
# Get the setting of VERBOSE and other rcS variables.
[ -f /etc/default/rcS ] && . /etc/default/rcS
. /etc/init.d/functions
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
do_start_kdc()
{
start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
> /dev/null || return 1
start-stop-daemon --start --quiet --startas $DAEMON --name $NAME \
-- $DAEMON_ARGS || return 2
}
# 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
do_stop_kdc()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
do_start_kdc
case "$?" in
0|1)
[ "$VERBOSE" != no ] && echo 0
;;
2)
[ "$VERBOSE" != no ] && echo 1
;;
esac
;;
stop)
[ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
do_stop_kdc
case "$?" in
0|1)
[ "$VERBOSE" != no ] && echo "krb524d"
;;
2)
[ "$VERBOSE" != no ] && echo 1
;;
esac
;;
restart|force-reload)
echo "Restarting $DESC" "$NAME"
do_stop_kdc
case "$?" in
0|1)
do_start_kdc
case "$?" in
0)
echo 0
;;
1|2)
echo 1
;;
esac
;;
*)
echo 1
;;
esac
;;
status)
pidofproc "$DAEMON" >/dev/null
status=$?
if [ $status -eq 0 ]; then
echo "$NAME is running."
else
echo "$NAME is not running."
fi
exit $status
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
exit 3
;;
esac
:

View File

@@ -0,0 +1,15 @@
[Unit]
Description=MIT Kerberos KDC administrative daemon
After=syslog.target network.target
ConditionPathExists=/etc/krb5.conf
[Service]
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
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,14 @@
[Unit]
Description=MIT Kerberos KDC
After=syslog.target network.target
ConditionPathExists=/etc/krb5.conf
[Service]
Type=forking
ExecStart=/usr/sbin/krb5kdc
EnvironmentFile=-/etc/default/krb5-kdc
SuccessExitStatus=1 2 SIGKILL
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,203 @@
SUMMARY = "A network authentication protocol"
DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \
Kerberos is a trusted third-party service. That means that there is a \
third party (the Kerberos server) that is trusted by all the entities on \
the network (users and services, usually called "principals"). \
. \
This is the MIT reference implementation of Kerberos V5. \
. \
This package contains the Kerberos key server (KDC). The KDC manages all \
authentication credentials for a Kerberos realm, holds the master keys \
for the realm, and responds to authentication requests. This package \
should be installed on both master and slave KDCs."
HOMEPAGE = "http://web.mit.edu/Kerberos/"
SECTION = "console/network"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=71c06694263581762668e88b7b77a1a5"
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://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
file://crosscompile_nm.patch \
file://etc/init.d/krb5-kdc \
file://etc/init.d/krb5-admin-server \
file://etc/default/krb5-kdc \
file://etc/default/krb5-admin-server \
file://krb5-kdc.service \
file://krb5-admin-server.service \
file://CVE-2024-26458_CVE-2024-26461.patch;striplevel=2 \
file://CVE-2025-24528.patch;striplevel=2 \
"
SRC_URI[sha256sum] = "b7a4cd5ead67fb08b980b21abd150ff7217e85ea320c9ed0c6dadd304840ad35"
CVE_PRODUCT = "kerberos"
CVE_VERSION = "5-${PV}"
S = "${WORKDIR}/${BP}/src"
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] = "--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 += "--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"
do_configure() {
gnu-configize --force
autoreconf
oe_runconf
}
do_install:append() {
rm -rf ${D}/${localstatedir}/run
rm -f ${D}${bindir}/sclient
rm -f ${D}${bindir}/sim_client
rm -f ${D}${bindir}/uuclient
rm -f ${D}${sbindir}/krb5-send-pr
rm -f ${D}${sbindir}/sim_server
rm -f ${D}${sbindir}/sserver
rm -f ${D}${sbindir}/uuserver
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
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 ${WORKDIR}/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}
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
}
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 \
${sbindir}/gss-server"
FILES:${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so"
FILES:${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \
${localstatedir}/krb5kdc \
${sbindir}/kdb5_util \
${sbindir}/kproplog \
${sbindir}/krb5kdc \
${sysconfdir}/default/krb5-kdc \
${sysconfdir}/default/volatiles/87_krb5 \
${sysconfdir}/init.d/krb5-kdc \
${sysconfdir}/tmpfiles.d/krb5.conf \
${systemd_system_unitdir}/krb5-kdc.service"
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}-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}"
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"
SYSTEMD_PACKAGES = "${PN}-admin-server ${PN}-kdc"
SYSTEMD_SERVICE:${PN}-admin-server = "krb5-admin-server.service"
SYSTEMD_SERVICE:${PN}-kdc = "krb5-kdc.service"
pkg_postinst:${PN}-kdc () {
if [ -z "$D" ]; then
if command -v systemd-tmpfiles >/dev/null; then
systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf
elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
${sysconfdir}/init.d/populate-volatile.sh update
fi
fi
}
BBCLASSEXTEND = "native nativesdk"
inherit multilib_script
MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/krb5-config"

View File

@@ -0,0 +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-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d6ad416afd040c90698edcdf1cbee347"
SRC_URI = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz"
SRC_URI[md5sum] = "a3433f23583167081bf4acdd5b01b34f"
SRC_URI[sha256sum] = "507eb7b8d1015fbec5b935f34ebed15bf346bed04a11ab82b8eee848c4205aea"
inherit autotools
EXTRA_OECONF += "--with-pic"
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"

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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 \
"

View File

@@ -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

View File

@@ -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."

View File

@@ -0,0 +1,48 @@
From 05e4ba7b0d126eea4c04387dcf40596059ee24af Mon Sep 17 00:00:00 2001
From: Hangbin Liu <liuhangbin@gmail.com>
Date: Wed, 5 Jun 2024 11:57:43 +0800
Subject: [PATCH] libndp: valid route information option length
RFC 4191 specifies that the Route Information Option Length should be 1, 2,
or 3, depending on the Prefix Length. A malicious node could potentially
trigger a buffer overflow and crash the tool by sending an IPv6 router
advertisement message containing the "Route Information" option with a
"Length" field larger than 3.
To address this, add a check on the length field.
Fixes: 8296a5bf0755 ("add support for Route Information Option (rfc4191)")
Reported-by: Evgeny Vereshchagin <evverx@gmail.com>
Suggested-by: Felix Maurer <fmaurer@redhat.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
CVE: CVE-2024-5564
Upstream-Status: Backport [https://github.com/jpirko/libndp/commit/05e4ba7b0d126eea4c04387dcf40596059ee24af]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
libndp/libndp.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/libndp/libndp.c b/libndp/libndp.c
index 6314717..72ec92e 100644
--- a/libndp/libndp.c
+++ b/libndp/libndp.c
@@ -1231,6 +1231,17 @@ static bool ndp_msg_opt_route_check_valid(void *opt_data)
*/
if (((ri->nd_opt_ri_prf_reserved >> 3) & 3) == 2)
return false;
+
+ /* The Length field is 1, 2, or 3 depending on the Prefix Length.
+ * If Prefix Length is greater than 64, then Length must be 3.
+ * If Prefix Length is greater than 0, then Length must be 2 or 3.
+ * If Prefix Length is zero, then Length must be 1, 2, or 3.
+ */
+ if (ri->nd_opt_ri_len > 3 ||
+ (ri->nd_opt_ri_prefix_len > 64 && ri->nd_opt_ri_len != 3) ||
+ (ri->nd_opt_ri_prefix_len > 0 && ri->nd_opt_ri_len == 1))
+ return false;
+
return true;
}

View File

@@ -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://CVE-2024-5564.patch \
"
# tag for v1.8
SRCREV = "009ce9cd9b950ffa1f4f94c9436027b936850d0c"
S = "${WORKDIR}/git"
inherit autotools

View File

@@ -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"

View File

@@ -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})

View File

@@ -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

View File

@@ -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
}

View File

@@ -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 \
"

View File

@@ -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 \
"

View File

@@ -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}/*"

View File

@@ -0,0 +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-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
DEPENDS = "zlib libsigc++-2.0 openssl cppunit"
PV = "0.13.8+git"
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}"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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' \
${WORKDIR}/systemd/$service.in
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
${WORKDIR}/systemd/$service.in
install -m 644 ${WORKDIR}/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}"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -0,0 +1,50 @@
# NOTE: mosh-server requires a UTF-8 locale, but there's no way to add
# an explicit dependency for this so you need to ensure this is in your
# image yourself when you install mosh-server.
SUMMARY = "Remote shell supporting roaming and high-latency connections"
DESCRIPTION = "Remote terminal application that allows roaming, supports \
intermittent connectivity, and provides intelligent local echo and line \
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 = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter abseil-cpp"
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"
NEEDED_PERL_MODULES = "\
perl-module-socket \
perl-module-getopt-long \
perl-module-errno \
perl-module-io-socket-inet \
perl-module-posix \
"
# mosh uses SSH to authenticate and the client uses OpenSSH-specific features
RDEPENDS:${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}"
# The server seemed not to work with dropbear either
RDEPENDS:${PN}-server += "openssh-sshd"
# Fails to build with thumb-1 (qemuarm)
#| {standard input}: Assembler messages:
#| {standard input}:2100: Error: instruction not supported in Thumb16 mode -- `adds r4,r4,r4'
#| {standard input}:2101: Error: instruction not supported in Thumb16 mode -- `adcs r5,r5,r5'
#| {standard input}:2102: Error: instruction not supported in Thumb16 mode -- `adcs r6,r6,r6'
#| {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"

View File

@@ -0,0 +1,21 @@
Submitted By: Armin K. <krejzi at email dot com>
Date: 2012-07-06
Initial Package Version: 0.4.6
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
+++ obex-data-server-0.4.6/src/ods-obex.c
@@ -412,7 +412,7 @@ ods_obex_setup_usbtransport (OdsObexCont
goto err;
}
- interfaces_num = OBEX_FindInterfaces(obex_context->obex_handle, &obex_intf);
+ interfaces_num = OBEX_EnumerateInterfaces(obex_context->obex_handle);
if (intf_num >= interfaces_num) {
g_set_error (error, ODS_ERROR, ODS_ERROR_FAILED, "Invalid interface number");
goto err;

View File

@@ -0,0 +1,16 @@
DESCRIPTION = "obex-data-server is a D-Bus service providing high-level OBEX client and server side functionality"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "gtk+ dbus-glib dbus-glib-native imagemagick openobex bluez5"
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[sha256sum] = "b399465ddbd6d0217abedd9411d9d74a820effa0a6a142adc448268d3920094f"
inherit features_check autotools-brokensep pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
FILES:${PN} += "${datadir}/dbus-1/"

View File

@@ -0,0 +1,37 @@
DESCRIPTION = "The Openobex project is an open source implementation of the \
Object Exchange (OBEX) protocol."
HOMEPAGE = "http://openobex.triq.net"
SECTION = "libs"
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"
S = "${WORKDIR}/${BP}-Source"
inherit cmake pkgconfig
EXTRA_OECONF = " -DCMAKE_SKIP_RPATH=ON "
EXTRA_OECMAKE += "-DBUILD_DOCUMENTATION=OFF"
ASNEEDED = ""
do_install:append () {
rmdir ${D}${bindir}
}
PACKAGES =+ "openobex-apps"
FILES:${PN}-apps = "${bindir}/*"
FILES:${PN} += "${libdir}/lib*.so.*"
FILES:${PN}-dev += "${bindir}/openobex-config"
DEBIAN_NOAUTONAME:${PN}-apps = "1"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,68 @@
From b8dc608dad7d9fc3a4c16acd0327d97b81c23b95 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 15 Nov 2016 01:32:31 +0000
Subject: [PATCH] apps/CMakeLists.txt: Explicitly link libbfb and libmulticobex
Transitive linking is disabled now for multicobex and
obexftp, This ends up with linking errors for apps, therefore
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(-)
Index: obexftp-0.24.2-Source/apps/CMakeLists.txt
===================================================================
--- obexftp-0.24.2-Source.orig/apps/CMakeLists.txt
+++ obexftp-0.24.2-Source/apps/CMakeLists.txt
@@ -5,14 +5,23 @@ add_definitions( -DVERSION="${obexftp_VE
add_definitions ( -DHAVE_USB )
add_executable ( obexftp_app obexftp.c )
-target_link_libraries ( obexftp_app obexftp )
+target_link_libraries ( obexftp_app
+ PRIVATE multicobex
+ PRIVATE bfb
+ obexftp
+)
set_target_properties ( obexftp_app PROPERTIES
OUTPUT_NAME obexftp
)
add_executable ( obexftpd_app obexftpd.c )
-target_link_libraries ( obexftpd_app obexftp openobex )
+target_link_libraries ( obexftpd_app
+ PRIVATE multicobex
+ PRIVATE bfb
+ obexftp
+ openobex
+)
set_target_properties ( obexftpd_app PROPERTIES
OUTPUT_NAME obexftpd
)
Index: obexftp-0.24.2-Source/fuse/CMakeLists.txt
===================================================================
--- obexftp-0.24.2-Source.orig/fuse/CMakeLists.txt
+++ obexftp-0.24.2-Source/fuse/CMakeLists.txt
@@ -13,6 +13,8 @@ if ( Fuse_FOUND )
)
target_link_libraries ( obexfs
+ PRIVATE multicobex
+ PRIVATE bfb
obexftp
${Fuse_LIBRARIES}
${EXPAT_LIBRARIES}
@@ -23,6 +25,8 @@ if ( Fuse_FOUND )
)
target_link_libraries ( obexautofs
+ PRIVATE multicobex
+ PRIVATE bfb
obexftp
${Fuse_LIBRARIES}
)

View File

@@ -0,0 +1,34 @@
Signed-off-by: Jun Zhu <R01007@freescale.com>
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
+++ obexftp-0.23/apps/obexftpd.c 2013-11-08 10:44:18.628634893 +0800
@@ -639,7 +639,7 @@
struct stat statbuf;
//char *namebuf = NULL;
- fprintf(stderr, "put_done>>>\n");
+ //fprintf(stderr, "put_done>>>\n");
while(OBEX_ObjectGetNextHeader(handle, object, &hi, &hv, &hlen)) {
switch(hi) {
case OBEX_HDR_BODY:
@@ -671,7 +671,7 @@
}
}
if(!body) {
- printf("Got a PUT without a body\n");
+ //printf("Got a PUT without a body\n");
OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS);
}
if(!name) {
@@ -807,7 +807,7 @@
switch(obex_cmd) {
case OBEX_CMD_PUT:
- fprintf(stderr, "obex_ev_progress: obex_cmd_put\n");
+ //fprintf(stderr, "obex_ev_progress: obex_cmd_put\n");
put_done(handle, obj, 0);
break;
default:

View File

@@ -0,0 +1,26 @@
Upstream-Status: Pending
Index: obexftp-0.24.2-Source/CMakeLists.txt
===================================================================
--- obexftp-0.24.2-Source.orig/CMakeLists.txt
+++ obexftp-0.24.2-Source/CMakeLists.txt
@@ -58,9 +58,17 @@ add_subdirectory ( bfb )
add_subdirectory ( multicobex )
add_subdirectory ( obexftp )
add_subdirectory ( apps )
-add_subdirectory ( fuse )
-add_subdirectory ( swig )
add_subdirectory ( doc )
+
+option ( ENABLE_FUSE "Build the obexftp fuse module" OFF )
+if ( ENABLE_FUSE )
+ add_subdirectory ( fuse )
+endif ( ENABLE_FUSE )
+
+option ( ENABLE_SWIG "Build the obexftp swig module" OFF )
+if ( ENABLE_SWIG )
+ add_subdirectory ( swig )
+endif ( ENABLE_SWIG )
#examples
set ( prefix "${CMAKE_INSTALL_PREFIX}" )

View File

@@ -0,0 +1,43 @@
DESCRIPTION = "A tool for transfer files to/from any OBEX enabled device"
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 \
"
DEPENDS += "openobex obexftp-native"
SRC_URI = "http://downloads.sourceforge.net/openobex/${BP}-Source.tar.gz \
file://Remove_some_printf_in_obexftpd.patch \
file://0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch \
file://make_fuse_swig_optional.patch \
"
SRC_URI[md5sum] = "157a9d1b2ed220203f7084db906de73c"
SRC_URI[sha256sum] = "d40fb48e0a0eea997b3e582774b29f793919a625d54b87182e31a3f3d1c989a3"
inherit cmake pkgconfig
OECMAKE_GENERATOR = "Unix Makefiles"
PACKAGECONFIG ?= ""
# fuse support will need meta-filesystems layer
PACKAGECONFIG[fuse] = "-DENABLE_FUSE=ON,-DENABLE_FUSE=OFF,fuse"
PACKAGECONFIG[swig] = "-DENABLE_SWIG=ON,-DENABLE_SWIG=OFF,swig"
DEPENDS:remove:class-native = "fuse-native"
S = "${WORKDIR}/${BP}-Source"
EXTRA_OECMAKE += "-DCMAKE_SKIP_RPATH=ON \
-DENABLE_PERL=OFF -DENABLE_PYTHON=OFF \
-DENABLE_RUBY=OFF -DENABLE_TCL=OFF \
"
do_compile:class-native () {
oe_runmake crctable
}
do_install:class-native () {
install -D -m 0755 ${B}/bfb/crctable ${D}${bindir}/crctable
}
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,26 @@
# Copyright (C) 2014-2015 Freescale Semiconductor
# Released under the MIT license (see COPYING.MIT for the terms)
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SUMMARY = "Set of Bluetooth related tools for inclusion in images"
DESCRIPTION = "Includes bluetooth specific tools for BlueZ.\
These tools are used at runtime."
inherit packagegroup
RDEPENDS:${PN} = " \
bluez5-noinst-tools \
bluez5-obex \
bluez5-testtools \
${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', \
'pulseaudio-module-bluetooth-discover \
pulseaudio-module-bluetooth-policy \
pulseaudio-module-bluez5-discover \
pulseaudio-module-bluez5-device \
pulseaudio-module-switch-on-connect \
pulseaudio-module-loopback', \
'', d)} \
"

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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(&timestamp, &nsec_time);
init(deleteRawDataAtDestructor);
setRawData(pRawData, rawDataLen, nsec_time, layerType);
--
2.45.0

View File

@@ -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

View File

@@ -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"

View File

@@ -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");

View File

@@ -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}"

View File

@@ -0,0 +1,32 @@
From db764080e54f8f998c28ef8dab78da8b8d1d1420 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Fri, 11 Feb 2011 10:35:40 +0100
Subject: [PATCH] rfkill makefile: don't use -t, the OE install wrapper dislikes it
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
Upstream-Status: Pending
Makefile | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 8d6c700..3652690 100644
--- a/Makefile
+++ b/Makefile
@@ -53,10 +53,10 @@ check:
install: rfkill rfkill.8.gz
@$(NQ) ' INST rfkill'
$(Q)$(MKDIR) $(DESTDIR)$(SBINDIR)
- $(Q)$(INSTALL) -m 755 -t $(DESTDIR)$(SBINDIR) rfkill
+ $(Q)$(INSTALL) -m 755 rfkill $(DESTDIR)$(SBINDIR)
@$(NQ) ' INST rfkill.8'
$(Q)$(MKDIR) $(DESTDIR)$(MANDIR)/man8/
- $(Q)$(INSTALL) -m 644 -t $(DESTDIR)$(MANDIR)/man8/ rfkill.8.gz
+ $(Q)$(INSTALL) -m 644 rfkill.8.gz $(DESTDIR)$(MANDIR)/man8/
clean:
$(Q)rm -f rfkill *.o *~ *.gz version.c *-stamp
--
1.6.6.1

View File

@@ -0,0 +1,33 @@
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.
When returned description doesn't match with expected v0.4, version.sh exits
without creating version.c
# on git builds check that the version number above
# is correct...
[ "${descr%%-*}" = "v$VERSION" ] || exit 2
and build fails a bit later:
| NOTE: make -j 32 -e MAKEFLAGS=
| CC rfkill.o
| GEN version.c
| make: *** [version.c] Error 2
| make: *** Waiting for unfinished jobs....
| ERROR: oe_runmake failed
Don't try git rev-parse, if there isn't .git in ${S}.
--- a/version.sh 2013-11-15 03:43:12.587744366 -0800
+++ b/version.sh 2013-11-15 03:42:40.699743320 -0800
@@ -12,7 +12,7 @@
if test "x$SUFFIX" != 'x'; then
v="$VERSION$SUFFIX"
-elif head=`git rev-parse --verify HEAD 2>/dev/null`; then
+elif test -d .git && head=`git rev-parse --verify HEAD 2>/dev/null`; then
git update-index --refresh --unmerged > /dev/null
descr=$(git describe 2>/dev/null || echo "v$VERSION")

View File

@@ -0,0 +1,25 @@
SUMMARY = "Radio enable/disable command line utility"
HOMEPAGE = "http://linuxwireless.org/en/users/Documentation/rfkill"
SECTION = "base"
LICENSE = "0BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=c6036d0eb7edbfced28c4160e5d3fa94"
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[sha256sum] = "dffc631c611520478b8a286f57c67a35e8cb5802d376c6ca13b057365432389c"
do_compile() {
oe_runmake
}
do_install() {
oe_runmake DESTDIR=${D} install
}
inherit update-alternatives
ALTERNATIVE:${PN} = "rfkill"
ALTERNATIVE_PRIORITY = "60"
ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill"

View File

@@ -0,0 +1,23 @@
SUMMARY = "Torrent client"
HOMEPAGE = "http://libtorrent.rakshasa.no/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "autoconf-archive libsigc++-2.0 curl cppunit libtool libtorrent ncurses"
SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https"
SRCREV = "d067bd802e44f0e6a747aabcc311ada2175fd550"
PV = "0.9.8+git"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
inherit autotools pkgconfig
EXTRA_AUTORECONF += "--exclude=aclocal"
CXXFLAGS += "-std=gnu++14"

View File

@@ -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

View File

@@ -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] = "78ffee19d9b97e93ae65b5cec072da2b7b947fc484e9ccb3f535702f36f6ed19"
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 ${WORKDIR}/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
}

View File

@@ -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

View File

@@ -0,0 +1,53 @@
From 85602c3e531d39e89dc8cee0c4a592f85006a064 Mon Sep 17 00:00:00 2001
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 +-
scripts/unicode2sms | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/sendsms b/scripts/sendsms
index 512026d..bb56856 100755
--- a/scripts/sendsms
+++ b/scripts/sendsms
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# This script send a text sms at the command line by creating
# a sms file in the outgoing queue.
diff --git a/scripts/sms2html b/scripts/sms2html
index ff253e3..946185e 100755
--- a/scripts/sms2html
+++ b/scripts/sms2html
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# This script converts a received sms file into a html file.
diff --git a/scripts/sms2unicode b/scripts/sms2unicode
index 46e2756..2826dc1 100755
--- a/scripts/sms2unicode
+++ b/scripts/sms2unicode
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# This script converts a received sms file into a pure unicode text file.
diff --git a/scripts/unicode2sms b/scripts/unicode2sms
index 2ae86dc..3fccf0d 100755
--- a/scripts/unicode2sms
+++ b/scripts/unicode2sms
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# This script converts a pure unicode text file into an sms file for sending.

View File

@@ -0,0 +1,26 @@
From 9a4a872dca78ca9cb6bdc228be61f5a4c2d68b1f Mon Sep 17 00:00:00 2001
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/scripts/sms3 b/scripts/sms3
index 6b990bf..09c063b 100755
--- a/scripts/sms3
+++ b/scripts/sms3
@@ -24,9 +24,9 @@ INFOFILE="/var/run/smsd.working"
# Logfile can also be defined in here:
LOGFILE="/var/log/smsd.log"
-DAEMON=/usr/local/bin/smsd
+DAEMON=/usr/bin/smsd
# A program which turns power off for couple of seconds:
-RESETMODEMS=/usr/local/bin/smsd_resetmodems
+RESETMODEMS=/usr/bin/smsd_resetmodems
NAME=smsd
PSOPT="-e"
ECHO=echo

View File

@@ -0,0 +1,49 @@
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 = "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://0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch \
"
SRC_URI[md5sum] = "6a9f038fb38a49cc3a4f8f14a88fb8af"
SRC_URI[sha256sum] = "a26ba4c02b16f6cf13177bffca6c9230dc5fefaeba8e3030cd4e4905f6a92084"
S = "${WORKDIR}/${BPN}"
EXTRA_OEMAKE += "LFLAGS='${LDFLAGS}'"
INITSCRIPT_NAME = "sms3"
INITSCRIPT_PARAMS = "defaults"
inherit update-rc.d
do_install () {
install -d ${D}${bindir}
install -m 755 ${S}/src/smsd "${D}${bindir}/smsd"
install -m 755 ${S}/scripts/sendsms "${D}${bindir}/sendsms"
install -m 755 ${S}/scripts/sms2html "${D}${bindir}/sms2html"
install -m 755 ${S}/scripts/sms2unicode "${D}${bindir}/sms2unicode"
install -m 755 ${S}/scripts/unicode2sms "${D}${bindir}/unicode2sms"
install -d ${D}${sysconfdir}
install -m 644 ${S}/examples/smsd.conf.easy "${D}${sysconfdir}/smsd.conf"
install -d "${D}${localstatedir}/spool"
install -d "${D}${localstatedir}/spool/sms"
install -d "${D}${localstatedir}/spool/sms/incoming"
install -d "${D}${localstatedir}/spool/sms/outgoing"
install -d "${D}${localstatedir}/spool/sms/checked"
install -d ${D}${sysconfdir}/init.d
install -m 755 ${S}/scripts/sms3 "${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}"
}

View File

@@ -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"

View File

@@ -0,0 +1,15 @@
Upstream-Status: Pending
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
--- a/extensions/Makefile.am
+++ b/extensions/Makefile.am
@@ -37,8 +37,8 @@ _gen/all.xml: all.xml $(wildcard $(srcdi
--xinclude $(tools_dir)/identity.xsl \
$< > $@
-extensions.html: _gen/all.xml $(tools_dir)/doc-generator.xsl
+extensions.html _gen/svc-gtk-doc.h: _gen/all.xml $(tools_dir)/doc-generator.xsl
$(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) \
$(tools_dir)/doc-generator.xsl \
$< > $@

View File

@@ -0,0 +1,22 @@
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 = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://src/idle.c;beginline=1;endline=19;md5=b06b1e2594423111a1a7910b0eefc7f9"
SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
file://fix-svc-gtk-doc.h-target.patch"
SRC_URI[md5sum] = "92a2de5198284cbd3c430b0d1a971a86"
SRC_URI[sha256sum] = "3013ad4b38d14ee630b8cc8ada5e95ccaa849b9a6fe15d2eaf6d0717d76f2fab"
inherit autotools pkgconfig ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)}
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.')
}

Some files were not shown because too many files have changed in this diff Show More