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,61 @@
# Please read the corosync.conf.5 manual page
totem {
version: 2
# Set name of the cluster
cluster_name: testCluster
# crypto_cipher and crypto_hash: Used for mutual node authentication.
# If you choose to enable this, then do remember to create a shared
# secret with "corosync-keygen".
# enabling crypto_cipher, requires also enabling of crypto_hash.
# crypto works only with knet transport
crypto_cipher: none
crypto_hash: none
}
logging {
# Log the source file and line where messages are being
# generated. When in doubt, leave off. Potentially useful for
# debugging.
fileline: off
# Log to standard error. When in doubt, set to yes. Useful when
# running in the foreground (when invoking "corosync -f")
to_stderr: yes
# Log to a log file. When set to "no", the "logfile" option
# must not be set.
to_logfile: yes
logfile: /var/log/cluster/corosync.log
# Log to the system log daemon. When in doubt, set to yes.
to_syslog: yes
# Log debug messages (very verbose). When in doubt, leave off.
debug: off
# Log messages with time stamps. When in doubt, set to hires (or on)
#timestamp: hires
logger_subsys {
subsys: QUORUM
debug: off
}
}
quorum {
# Enable and configure quorum subsystem (default: off)
# see also corosync.conf.5 and votequorum.5
provider: corosync_votequorum
}
nodelist {
# Change/uncomment/add node sections to match cluster configuration
node {
# Hostname of the node
name: node1
# Cluster membership node identifier
nodeid: 1
# Address of first link
ring0_addr: 127.0.0.1
# When knet transport is used it's possible to define up to 8 links
#ring1_addr: 192.168.1.1
}
# ...
}

View File

@@ -0,0 +1,63 @@
SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
APIs and libraries, default configuration files, and an init script."
HOMEPAGE = "http://corosync.github.io/corosync/"
SECTION = "base"
inherit autotools pkgconfig systemd
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
file://corosync.conf \
"
SRC_URI[sha256sum] = "ca6ed32b4d7f33ed614afce8760fe58d0de92c68b575d4969ebacd892f3d1e27"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.(?!99)\d+(\.\d+)+)"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
DEPENDS = "groff-native nss libqb kronosnet"
SYSTEMD_SERVICE:${PN} = "corosync.service corosync-notifyd.service"
SYSTEMD_AUTO_ENABLE = "disable"
INITSCRIPT_NAME = "corosync-daemon"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
dbus snmp \
"
PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd"
EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash ap_cv_cc_pie=no"
EXTRA_OEMAKE = "tmpfilesdir_DATA="
#do_configure:prepend() {
# ( cd ${S}
# ${S}/autogen.sh )
#}
do_install:append() {
install -D -m 0644 ${WORKDIR}/corosync.conf ${D}${sysconfdir}/corosync/corosync.conf.example
install -d ${D}${sysconfdir}/sysconfig/
install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
rmdir ${D}${localstatedir}/log/cluster ${D}${localstatedir}/log
rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
install -d ${D}${sysconfdir}/default/volatiles
echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
if [ ${@bb.utils.filter('DISTRO_FEATURES','systemd',d)} ]; then
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
fi
}
RDEPENDS:${PN} += "bash ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}"
FILES:${PN}-dbg += "${libexecdir}/lcrso/.debug"
FILES:${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"

View File

@@ -0,0 +1,31 @@
From 5a0799d0bacc0cf93e15febdac7d8c50b21e7234 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 15 Jul 2023 13:13:12 -0700
Subject: [PATCH] Disable annobin plugin
OE gcc does not build this plugin, moreover there are non gcc compilers
which can be used with OE as well e.g. clang which might not have it
either
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
dlm_controld/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlm_controld/Makefile b/dlm_controld/Makefile
index 8802d88..0380ec9 100644
--- a/dlm_controld/Makefile
+++ b/dlm_controld/Makefile
@@ -47,7 +47,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
BIN_CFLAGS += $(CFLAGS) -fPIE -DPIE
BIN_CFLAGS += -I../include -I../libdlm
-LIB_CFLAGS += $(CFLAGS) -fPIC -fplugin=annobin
+LIB_CFLAGS += $(CFLAGS) -fPIC
BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -Wl,-z,now -pie
BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum -luuid
--
2.41.0

View File

@@ -0,0 +1,41 @@
From a55ab8a07770296bf6a622df14f2f0445be16327 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 19 Aug 2018 15:58:49 -0700
Subject: [PATCH] Include sys/sysmacros.h for major/minor macros in glibc 2.25+
sys/sysmacros.h was included though sys/types.h until 2.28
glibc release removed it therefore it must be included
explicitly now.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
dlm_controld/action.c | 2 ++
libdlm/libdlm.c | 1 +
2 files changed, 3 insertions(+)
diff --git a/dlm_controld/action.c b/dlm_controld/action.c
index 84637f1..2b8ad6c 100644
--- a/dlm_controld/action.c
+++ b/dlm_controld/action.c
@@ -8,6 +8,8 @@
#include "dlm_daemon.h"
+#include <sys/sysmacros.h>
+
#include <corosync/corotypes.h>
#include <corosync/cmap.h>
diff --git a/libdlm/libdlm.c b/libdlm/libdlm.c
index a9e6195..499eb6a 100644
--- a/libdlm/libdlm.c
+++ b/libdlm/libdlm.c
@@ -14,6 +14,7 @@
#include <sys/ioctl.h>
#include <sys/param.h>
#include <sys/stat.h>
+#include <sys/sysmacros.h>
#include <stdint.h>
#include <stdlib.h>
#include <inttypes.h>

View File

@@ -0,0 +1,64 @@
From e4ae70ae71f88d48cf1ab63810c9f7b4177af3a5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 15 Jul 2023 19:05:54 -0700
Subject: [PATCH] Remove -fcf-protection=full
This option is not available on all architectures e.g. RISC-V
Fixes
| cc1: error: '-fcf-protection=full' is not supported for this target
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
dlm_controld/Makefile | 1 -
dlm_tool/Makefile | 1 -
fence/Makefile | 1 -
libdlm/Makefile | 4 ++--
4 files changed, 2 insertions(+), 5 deletions(-)
--- a/dlm_controld/Makefile
+++ b/dlm_controld/Makefile
@@ -43,7 +43,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
-Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
-Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
- -fstack-clash-protection -fcf-protection=full
+ -fstack-clash-protection
BIN_CFLAGS += $(CFLAGS) -fPIE -DPIE
BIN_CFLAGS += -I../include -I../libdlm
--- a/dlm_tool/Makefile
+++ b/dlm_tool/Makefile
@@ -15,7 +15,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
-Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
-Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
- -fstack-clash-protection -fcf-protection=full
+ -fstack-clash-protection
CFLAGS += -fPIE -DPIE
CFLAGS += -I../include -I../libdlm -I../dlm_controld
--- a/fence/Makefile
+++ b/fence/Makefile
@@ -15,7 +15,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
-Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
-Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
- -fstack-clash-protection -fcf-protection=full
+ -fstack-clash-protection
CFLAGS += -fPIE -DPIE
CFLAGS += -I../include
--- a/libdlm/Makefile
+++ b/libdlm/Makefile
@@ -80,8 +80,8 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
-fdiagnostics-show-option \
-fPIC
-LIB_CFLAGS += $(CFLAGS) -D_REENTRANT -fcf-protection=full
-LLT_CFLAGS += $(CFLAGS) -fcf-protection=full
+LIB_CFLAGS += $(CFLAGS) -D_REENTRANT
+LLT_CFLAGS += $(CFLAGS)
LIB_LDFLAGS += $(LDFLAGS) -lpthread -Wl,-z,now
LLT_LDFLAGS += $(LDFLAGS) -Wl,-z,now

View File

@@ -0,0 +1,35 @@
From 4c40289eb9e47cfd272a8cc402fd2ddb29e2a3dc Mon Sep 17 00:00:00 2001
From: Alexander Aring <aahringo@redhat.com>
Date: Wed, 24 May 2023 13:50:59 +0000
Subject: [PATCH] dlm_controld: remove unnecessary header include
The timewarn netlink functionality got dropped and will be removed by
kernel v6.4. The user space part was already dropped by commit 34ea31e7
("controld: remove timewarn handling"). This is just a left over of this
commit. Recent builds fails now because the UAPI header in the Linux
kernel was removed. This means older dlm sources cannot be build with
newer kernel-headers, however it is not recommended to use older dlm
sources and all existing users should upgrade anyway.
Upstream-Status: Backport [https://pagure.io/dlm/c/ddbba6608896f81bfce8f8edf3d0f507714cfc43?branch=main]
Reported-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
dlm_controld/main.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/dlm_controld/main.c b/dlm_controld/main.c
index 7cf6348..e70e96a 100644
--- a/dlm_controld/main.c
+++ b/dlm_controld/main.c
@@ -12,7 +12,6 @@
#include <pthread.h>
#include <linux/netlink.h>
#include <linux/genetlink.h>
-#include <linux/dlm_netlink.h>
#include <uuid/uuid.h>
#ifdef USE_SD_NOTIFY
--
2.41.0

View File

@@ -0,0 +1,51 @@
From 2f72f9271b8dd61ca5092e025b0f8243c6fd68f2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 3 Mar 2020 12:38:19 -0800
Subject: [PATCH] make: Replace cp -a with mode preserving options
Helps fix permissions in staging area
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
dlm_controld/Makefile | 4 ++--
libdlm/Makefile | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlm_controld/Makefile b/dlm_controld/Makefile
index 6081cf8..fe71be2 100644
--- a/dlm_controld/Makefile
+++ b/dlm_controld/Makefile
@@ -88,8 +88,8 @@ install: all
$(INSTALL) -d $(DESTDIR)/$(PKGDIR)
$(INSTALL) -m 755 $(BIN_TARGET) $(DESTDIR)/$(BINDIR)
$(INSTALL) -m 755 $(LIB_TARGET) $(DESTDIR)/$(LIBDIR)
- cp -a $(LIB_SO) $(DESTDIR)/$(LIBDIR)
- cp -a $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
+ cp -R --no-dereference --preserve=mode,links $(LIB_SO) $(DESTDIR)/$(LIBDIR)
+ cp -R --no-dereference --preserve=mode,links $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
$(INSTALL) -m 644 $(LIB_PC) $(DESTDIR)/$(PKGDIR)
$(INSTALL) -m 644 libdlmcontrol.h $(DESTDIR)/$(HDRDIR)
$(INSTALL) -m 644 dlm_controld.8 $(DESTDIR)/$(MANDIR)/man8/
diff --git a/libdlm/Makefile b/libdlm/Makefile
index ab32761..8820bf8 100644
--- a/libdlm/Makefile
+++ b/libdlm/Makefile
@@ -125,10 +125,10 @@ install: all
$(INSTALL) -d $(DESTDIR)/$(UDEVDIR)
$(INSTALL) -c -m 755 $(LIB_TARGET) $(DESTDIR)/$(LIBDIR)
$(INSTALL) -c -m 755 $(LLT_TARGET) $(DESTDIR)/$(LIBDIR)
- cp -a $(LIB_SO) $(DESTDIR)/$(LIBDIR)
- cp -a $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
- cp -a $(LLT_SO) $(DESTDIR)/$(LIBDIR)
- cp -a $(LLT_SMAJOR) $(DESTDIR)/$(LIBDIR)
+ cp -R --no-dereference --preserve=mode,links $(LIB_SO) $(DESTDIR)/$(LIBDIR)
+ cp -R --no-dereference --preserve=mode,links $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
+ cp -R --no-dereference --preserve=mode,links $(LLT_SO) $(DESTDIR)/$(LIBDIR)
+ cp -R --no-dereference --preserve=mode,links $(LLT_SMAJOR) $(DESTDIR)/$(LIBDIR)
$(INSTALL) -m 644 $(LIB_PC) $(DESTDIR)/$(PKGDIR)
$(INSTALL) -m 644 $(LLT_PC) $(DESTDIR)/$(PKGDIR)
$(INSTALL) -c -m 644 $(HDR_TARGET) $(DESTDIR)/$(HDRDIR)
--
2.25.1

View File

@@ -0,0 +1,65 @@
DESCRIPTION = "dlm control daemon and tool"
SECTION = "utils"
HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
REQUIRED_DISTRO_FEATURES = "systemd"
SRC_URI = "https://pagure.io/dlm/archive/dlm-${PV}/dlm-dlm-${PV}.tar.gz \
file://0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch \
file://0001-make-Replace-cp-a-with-mode-preserving-options.patch \
file://0001-dlm_controld-remove-unnecessary-header-include.patch \
file://0001-Disable-annobin-plugin.patch \
file://0001-Remove-fcf-protection-full.patch \
"
SRC_URI[sha256sum] = "90237e18af7422ac15fc756899b3bb6932597b13342296de8e0e120e6d8729ab"
UPSTREAM_CHECK_URI = "https://pagure.io/dlm/releases"
UPSTREAM_CHECK_REGEX = "dlm-(?P<pver>\d+(\.\d+)+)"
LICENSE = "LGPL-2.0-or-later & GPL-2.0-only & GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
S = "${WORKDIR}/dlm-dlm-${PV}"
DEPENDS += "corosync"
inherit pkgconfig systemd features_check
PACKAGECONFIG ??= ""
PACKAGECONFIG[pacemaker] = ",,pacemaker"
SYSTEMD_SERVICE:${PN} = "dlm.service"
SYSTEMD_AUTO_ENABLE = "enable"
export EXTRA_OEMAKE = ""
CFPROTECTION ?= "-fcf-protection=full"
CFPROTECTION:riscv64 = ""
CFPROTECTION:arm = ""
CFPROTECTION:aarch64 = ""
CFLAGS += "${CFPROTECTION}"
PARALLEL_MAKE = ""
DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}"
do_compile() {
sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
sed -i -e "s/ ${DONTBUILD}//g" ${S}/Makefile
oe_runmake 'CC=${CC}'
}
do_install() {
oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
install -Dm 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
install -Dm 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
# install systemd unit files
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -Dm 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system/dlm.service
fi
}

View File

@@ -0,0 +1,40 @@
From a8aac8f3fd8b07fde8f5dc0aa9ece54a46d24425 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 9 Jun 2022 16:03:06 +0800
Subject: [PATCH] links.c: Fix build with gcc-12
Fixes:
| /build/tmp-glibc/work/corei7-64-wrs-linux/kronosnet/1.22-r0/recipe-sysroot/usr/include/bits/string_fortified.h:59:10: error: 'link' may be used uninitialized [-Werror=maybe-uninitialized]
| 59 | return __builtin___memset_chk (__dest, __ch, __len,
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 60 | __glibc_objsize0 (__dest));
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~
| ../../git/libknet/links.c: In function 'knet_link_set_config':
| ../../git/libknet/links.c:108:27: note: 'link' was declared here
| 108 | struct knet_link *link;
| | ^~~~
| cc1: all warnings being treated as errors
Upstream-Status: Submitted [https://github.com/kronosnet/kronosnet/pull/382]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
libknet/links.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libknet/links.c b/libknet/links.c
index 8cb1621b..0ef42b79 100644
--- a/libknet/links.c
+++ b/libknet/links.c
@@ -105,7 +105,7 @@ int knet_link_set_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
{
int savederrno = 0, err = 0, i, wipelink = 0, link_idx;
struct knet_host *host, *tmp_host;
- struct knet_link *link;
+ struct knet_link *link = NULL;
if (!_is_valid_handle(knet_h)) {
return -1;
--
2.25.1

View File

@@ -0,0 +1,32 @@
# Copyright (C) 2020 Khem Raj <raj.khem@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "Kronosnet, often referred to as knet, is a network abstraction layer \
designed for High Availability use cases, where redundancy, security, \
fault tolerance and fast fail-over are the core requirements of your application."
HOMEPAGE = "https://kronosnet.org/"
LICENSE = "GPL-2.0-or-later & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.applications;md5=751419260aa954499f7abaabaa882bbe \
file://COPYING.libraries;md5=2d5025d4aa3495befef8f17206a5b0a1"
SECTION = "libs"
DEPENDS = "doxygen-native libqb-native libxml2-native bzip2 libqb libxml2 libnl lksctp-tools lz4 lzo openssl nss xz zlib zstd"
SRCREV = "f8f80fd7f9b85f2626d2c6452612962ad8efca9e"
SRC_URI = "git://github.com/kronosnet/kronosnet;protocol=https;branch=stable1 \
file://0001-links.c-Fix-build-with-gcc-12.patch \
"
UPSTREAM_CHECK_URI = "https://github.com/kronosnet/kronosnet/releases"
inherit autotools pkgconfig
S = "${WORKDIR}/git"
# libknet/transport_udp.c:326:48: error: comparison of integers of different signs: 'unsigned long' and 'int' [-Werror,-Wsign-compare]
# for (cmsg = CMSG_FIRSTHDR(&msg);cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
# ^~~~~~~~~~~~~~~~~~~~~~~
CFLAGS:append:toolchain-clang = " -Wno-sign-compare"
PACKAGECONFIG[man] = "enable_man="yes", --disable-man, "
PACKAGECONFIG:remove = "man"

View File

@@ -0,0 +1,47 @@
From 93fea40915d01be6d02587a0b8be85a642e6a8d5 Mon Sep 17 00:00:00 2001
From: Zhenhua Luo <zhenhua.luo@freescale.com>
Date: Thu, 10 Apr 2014 11:26:39 +0800
Subject: [PATCH] Correct the path of header files check in Yocto build env
Upstream-Status: Inappropriate [the fix is specific to Yocto build env]
Current Makefile will check headers on host instead of Yocto sysroot, following
error appears. Change the path of header check.
| bs_aio.c:34:20: fatal error: libaio.h: No such file or directory
| #include <libaio.h>
| ^
| compilation terminated.
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
---
usr/Makefile | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/usr/Makefile b/usr/Makefile
index decf13c..9ff8f15 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -1,11 +1,11 @@
sbindir ?= $(PREFIX)/sbin
libdir ?= $(PREFIX)/lib/tgt
-ifneq ($(shell test -e /usr/include/linux/signalfd.h && echo 1),)
+ifneq ($(shell test -e $(SYSROOT)/usr/include/linux/signalfd.h && echo 1),)
CFLAGS += -DUSE_SIGNALFD
endif
-ifneq ($(shell test -n $(shell find /usr/include -name "timerfd.h" | head -n1) && echo 1),)
+ifneq ($(shell test -n $(shell find $(SYSROOT)/usr/include -name "timerfd.h" | head -n1) && echo 1),)
CFLAGS += -DUSE_TIMERFD
endif
@@ -25,7 +25,7 @@ ifneq ($(SD_NOTIFY),)
CFLAGS += -DUSE_SYSTEMD
endif
-ifneq ($(shell test -e /usr/include/sys/eventfd.h && test -e /usr/include/libaio.h && echo 1),)
+ifneq ($(shell test -e $(SYSROOT)/usr/include/sys/eventfd.h && test -e $(SYSROOT)/usr/include/libaio.h && echo 1),)
CFLAGS += -DUSE_EVENTFD
TGTD_OBJS += bs_aio.o
LIBS += -laio

View File

@@ -0,0 +1,29 @@
From 6f4e3b11c7dccf83e2d18635c84837b212dfcc1c Mon Sep 17 00:00:00 2001
From: Li xin <lixin.fnst@cn.fujitsu.com>
Date: Sun, 26 Jul 2015 04:23:51 +0900
Subject: [PATCH] usr/Makefile: WARNING fix WARNING: QA Issue: tgt:
/work/i586-oe-linux/tgt/1.0.60+gitAUTOINC+ab51727a36-r0/
packages-split/tgt/usr/sbin/tgtd contains probably-redundant RPATH /usr/lib
[useless-rpaths]
Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
usr/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/usr/Makefile b/usr/Makefile
index 9ff8f15..cc8df11 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -63,7 +63,7 @@ TGTD_OBJS += tgtd.o mgmt.o target.o scsi.o log.o driver.o util.o work.o \
TGTD_DEP = $(TGTD_OBJS:.o=.d)
-LDFLAGS = -Wl,-E,-rpath=$(libdir)
+LDFLAGS += -Wl,-E
.PHONY:all
all: $(PROGRAMS) $(MODULES)

View File

@@ -0,0 +1,71 @@
From abd8e0d987ab56013d360077202bf2aca20a42dd Mon Sep 17 00:00:00 2001
From: Richard Weinberger <richard@nod.at>
Date: Tue, 3 Sep 2024 16:14:58 +0200
Subject: [PATCH] chap: Use proper entropy source
The challenge sent to the initiator is based on a poor
source of randomness, it uses rand() without seeding it by srand().
So the glibc PRNG is always seeded with 1 and as a consequence the
sequence of challenges is always the same.
An attacker which is able to monitor network traffic can apply a replay
attack to bypass the CHAP authentication. All the attacker has to do
is waiting for the server or the service to restart and replay with a
previously record CHAP session which fits into the sequence.
To overcome the issue, use getrandom() to query the kernel random
number generator.
Also always send a challenge of length CHAP_CHALLENGE_MAX, there is no
benefit in sending a variable length challenge.
Signed-off-by: Richard Weinberger <richard@nod.at>
Upstream-Status: Backport [https://github.com/fujita/tgt/commit/abd8e0d987ab56013d360077202bf2aca20a42dd]
CVE: CVE-2024-45751
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
---
usr/iscsi/chap.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/usr/iscsi/chap.c b/usr/iscsi/chap.c
index aa0fc67..b89ecab 100644
--- a/usr/iscsi/chap.c
+++ b/usr/iscsi/chap.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/random.h>
#include "iscsid.h"
#include "tgtd.h"
@@ -359,22 +360,19 @@ static int chap_initiator_auth_create_challenge(struct iscsi_connection *conn)
sprintf(text, "%u", (unsigned char)conn->auth.chap.id);
text_key_add(conn, "CHAP_I", text);
- /*
- * FIXME: does a random challenge length provide any benefits security-
- * wise, or should we rather always use the max. allowed length of
- * 1024 for the (unencoded) challenge?
- */
- conn->auth.chap.challenge_size = (rand() % (CHAP_CHALLENGE_MAX / 2)) + CHAP_CHALLENGE_MAX / 2;
+ conn->auth.chap.challenge_size = CHAP_CHALLENGE_MAX;
conn->auth.chap.challenge = malloc(conn->auth.chap.challenge_size);
if (!conn->auth.chap.challenge)
return CHAP_TARGET_ERROR;
+ if (getrandom(conn->auth.chap.challenge, conn->auth.chap.challenge_size, 0) != conn->auth.chap.challenge_size)
+ return CHAP_TARGET_ERROR;
+
p = text;
strcpy(p, "0x");
p += 2;
for (i = 0; i < conn->auth.chap.challenge_size; i++) {
- conn->auth.chap.challenge[i] = rand();
sprintf(p, "%.2hhx", conn->auth.chap.challenge[i]);
p += 2;
}
--
2.25.1

View File

@@ -0,0 +1,41 @@
The definition of __WORDSIZE is found in <sys/reg.h>
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/usr/iscsi/iscsid.h
+++ b/usr/iscsi/iscsid.h
@@ -22,6 +22,9 @@
#include <stdint.h>
#include <inttypes.h>
#include <netdb.h>
+#if !defined(__GLIBC__)
+#include <sys/reg.h>
+#endif
#include "transport.h"
#include "list.h"
--- a/usr/tgtd.h
+++ b/usr/tgtd.h
@@ -1,6 +1,9 @@
#ifndef __TARGET_DAEMON_H
#define __TARGET_DAEMON_H
+#if !defined(__GLIBC__)
+#include <sys/reg.h>
+#endif
#include "log.h"
#include "scsi_cmnd.h"
#include "tgtadm_error.h"
--- a/usr/util.h
+++ b/usr/util.h
@@ -19,6 +19,9 @@
#include <linux/fs.h>
#include <sys/types.h>
#include <sys/stat.h>
+#if !defined(__GLIBC__)
+#include <sys/reg.h>
+#endif
#include "be_byteshift.h"

View File

@@ -0,0 +1,5 @@
# options for tgtd
TGTD_OPTS=""
# configuration file
TGTD_CONFIG=/etc/tgt/targets.conf

View File

@@ -0,0 +1,116 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: tgtd
# Required-Start: $remote_fs $network $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: SCSI target daemon
# Description: Linux SCSI target framework (tgt)
### END INIT INFO
DESC="tgtd"
DAEMON="/usr/sbin/tgtd"
TGTD_CONFIG=/etc/tgt/targets.conf
start ()
{
echo -n "Starting $DESC..."
# Ensure service isn't running
tgt-admin -s >/dev/null 2>&1
RETVAL=$?
if [ "$RETVAL" -ne 107 ] ; then
echo "$DESC is already running."
exit 1
fi
# Start tgtd first
$DAEMON &>/dev/null
RETVAL=$?
if [ "$RETVAL" -ne 0 ]; then
echo "failed."
exit 1
fi
# Put tgtd into "offline" state until all the targets are configured.
# We don't want initiators to (re)connect and fail the connection
# if it's not ready.
tgtadm --op update --mode sys --name State -v offline
# Configure the targets.
tgt-admin -f -e -c $TGTD_CONFIG
# Put tgtd into "ready" state.
tgtadm --op update --mode sys --name State -v ready
echo "done."
}
stop ()
{
echo -n "Stopping $DESC..."
# Remove all targets. It only removes targets which are not in use.
tgt-admin --update ALL -c /dev/null &>/dev/null
# tgtd will exit if all targets were removed
tgtadm --op delete --mode system &>/dev/null
RETVAL=$?
if [ "$RETVAL" -eq 107 ] ; then
if [ "$TASK" != "restart" ] ; then
return 1
fi
elif [ "$RETVAL" -ne 0 ] ; then
echo "Some initiators are still connected - could not stop tgtd"
return 2
fi
echo -n
}
reload()
{
echo "Reloading configuration of $DESC" "$NAME"
# Update configuration for targets. Only targets which
# are not in use will be updated.
tgt-admin --update ALL -c $TGTD_CONFIG &>/dev/null
RETVAL=$?
if [ "$RETVAL" -eq 107 ] ; then
echo "tgtd is not running"
exit 1
fi
}
status()
{
tgt-admin -s >/dev/null 2>&1
RETVAL=$?
if [ "$RETVAL" -eq 107 ] ; then
echo "tgtd is not running"
else
echo "tgtd is running"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
reload)
reload
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|force-reload|restart|status|reload}"
exit 1
;;
esac
exit 0

View File

@@ -0,0 +1,33 @@
[Unit]
Description=tgtd iSCSI target daemon
After=network.target
[Service]
EnvironmentFile=@SYSCONFDIR@/sysconfig/tgtd
ExecStart=@SBINDIR@/tgtd -f $TGTD_OPTS
# see bz 848942. workaround for a race for now.
ExecStartPost=@BASE_BINDIR@/sleep 5
# Put tgtd into "offline" state until all the targets are configured.
# We don't want initiators to (re)connect and fail the connection
# if it's not ready.
ExecStartPost=@SBINDIR@/tgtadm --op update --mode sys --name State -v offline
# Configure the targets.
ExecStartPost=@SBINDIR@/tgt-admin -e -c $TGTD_CONFIG
# Put tgtd into "ready" state.
ExecStartPost=@SBINDIR@/tgtadm --op update --mode sys --name State -v ready
# Update configuration for targets. Only targets which
# are not in use will be updated.
ExecReload=@SBINDIR@/tgt-admin --update ALL -c $TGTD_CONFIG
# NOTE: Shutdown of the iscsi target may cause data corruption
# for initiators that are connected.
ExecStop=@SBINDIR@/tgtadm --op update --mode sys --name State -v offline
# Remove all targets. It only removes targets which are not in use.
ExecStop=@SBINDIR@/tgt-admin --update ALL -c /dev/null
# tgtd will exit if all targets were removed
ExecStop=@SBINDIR@/tgtadm --op delete --mode system
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,37 @@
From a815ac8ee16b344d9e24b445957f32bf2aafa532 Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
Date: Thu, 5 Jan 2017 11:07:51 -0500
Subject: [PATCH] usr/Makefile: apply LDFLAGS to all executables
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
Upstream-Status: Pending
usr/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/usr/Makefile b/usr/Makefile
index cc8df11..c55fd68 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -78,7 +78,7 @@ TGTADM_OBJS = tgtadm.o concat_buf.o
TGTADM_DEP = $(TGTADM_OBJS:.o=.d)
tgtadm: $(TGTADM_OBJS)
- $(CC) $^ -o $@
+ $(CC) $^ -o $@ $(LDFLAGS)
-include $(TGTADM_DEP)
@@ -86,7 +86,7 @@ TGTIMG_OBJS = tgtimg.o libssc.o libcrc32c.o
TGTIMG_DEP = $(TGTIMG_OBJS:.o=.d)
tgtimg: $(TGTIMG_OBJS)
- $(CC) $^ -o $@
+ $(CC) $^ -o $@ $(LDFLAGS)
-include $(TGTIMG_DEP)
--
2.7.4

View File

@@ -0,0 +1,94 @@
DESCRIPTION = "Linux SCSI target framework (tgt)"
HOMEPAGE = "http://stgt.sourceforge.net"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://scripts/tgtd.spec;beginline=7;endline=7;md5=21c19ea7dad04648b9c2f791b6e29b4c"
DEPENDS = "sg3-utils libaio"
SRCREV = "df991fa788e22cd8b8e3013cfae306988c19c3d0"
SRC_URI = "git://github.com/fujita/tgt.git;branch=master;protocol=https \
file://0001-Correct-the-path-of-header-files-check-in-Yocto-buil.patch \
file://0001-usr-Makefile-WARNING-fix.patch \
file://usr-Makefile-apply-LDFLAGS-to-all-executables.patch \
file://musl-__wordsize.patch \
file://CVE-2024-45751.patch \
"
SRC_URI += "file://tgtd.init \
file://tgtd.service \
file://tgtd \
"
S = "${WORKDIR}/git"
CONFFILES:${PN} += "${sysconfdir}/tgt/targets.conf"
inherit update-rc.d systemd
SYSTEMD_SERVICE:${PN} = "tgtd.service"
SYSTEMD_AUTO_ENABLE:${PN} = "disable"
CFLAGS += ' -I. -DUSE_SIGNALFD -DUSE_TIMERFD -D_GNU_SOURCE -DTGT_VERSION=\\"1.0.63\\" -DBSDIR=\\"${libdir}/backing-store\\"'
CFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE"
#do_compile() {
# oe_runmake SYSROOT="${STAGING_DIR_TARGET}" -e programs conf scripts
#}
EXTRA_OEMAKE = "-e programs conf scripts"
do_install() {
oe_runmake -e DESTDIR="${D}" install-programs install-conf install-scripts
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/tgtd.init ${D}${sysconfdir}/init.d/tgtd
elif ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/tgtd.service ${D}${systemd_unitdir}/system/tgtd.service
install -d ${D}${sysconfdir}/sysconfig
install -m 0644 ${WORKDIR}/tgtd ${D}${sysconfdir}/sysconfig/tgtd
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/tgtd.service
sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/tgtd.service
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/tgtd.service
fi
}
FILES:${PN} += "${systemd_unitdir}/system/tgtd.service \
${sysconfdir}/sysconfig/tgtd \
"
RDEPENDS:${PN} = " \
bash \
libaio \
libconfig-general-perl \
perl \
perl-module-english \
perl-module-tie-hash-namedcapture \
perl-module-xsloader \
perl-module-carp \
perl-module-exporter \
perl-module-errno \
perl-module-exporter-heavy \
perl-module-symbol \
perl-module-selectsaver \
perl-module-dynaloader \
perl-module-carp-heavy \
perl-module-filehandle \
perl-module-feature \
perl-module-overload \
perl-module-fcntl \
perl-module-io \
perl-module-io-file \
perl-module-io-handle \
perl-module-io-seekable \
perl-module-file-glob \
perl-module-base \
perl-module-encoding-warnings \
perl-module-file-spec-unix \
perl-module-file-spec \
perl-module-file-spec-functions \
perl-module-getopt-long \
perl-module-constant \
"
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME:${PN} = "tgtd"