\documentclass[a4paper,11pt]{article} % Encoding & Fonts (serif, classic typesetting) \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{lmodern} % Layout \usepackage[margin=2cm,top=2.5cm,bottom=2.5cm]{geometry} \usepackage{fancyhdr} \usepackage{lastpage} % Tables \usepackage{longtable} \usepackage{booktabs} \usepackage{array} \usepackage{tabularx} \usepackage{pdflscape} % Colors (grayscale/neutral) \usepackage[table]{xcolor} \definecolor{headerblue}{gray}{0.85} \definecolor{lightgray}{gray}{0.95} % Links \usepackage[colorlinks=true,linkcolor=black,urlcolor=black!60,citecolor=black]{hyperref} % CSV handling \usepackage{csvsimple} % Misc \usepackage{parskip} \usepackage{amssymb} \usepackage{enumitem} % Header/Footer \pagestyle{fancy} \fancyhf{} \fancyhead[L]{\small\textsc{Softwarefreigabeantrag}} \fancyhead[R]{\small TQMA6-YOCTO-2038} \fancyfoot[C]{\small Seite \thepage{} von \pageref{LastPage}} \fancyfoot[R]{\small 2026-03-01} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0.4pt} \begin{document} % ============================================================ % TITLE PAGE % ============================================================ \begin{titlepage} \centering \vspace*{3cm} {\Huge\textsc{Softwarefreigabeantrag}}\\[0.5cm] {\Large\textsc{Quell- und Lizenznachweis}}\\[2cm] {\Large TQMa6UL Yocto BSP -- Scarthgap 5.0.11}\\[0.5cm] {\large Unterwasserkommunikationssystem (UT)}\\[3cm] \begin{tabular}{ll} \textbf{Projekt-ID:} & TQMA6-YOCTO-2038 \\ \textbf{Hardware:} & TQMa6UL-AB (i.MX6 UltraLite) auf MBa6ULx \\ \textbf{Yocto Release:} & Scarthgap 5.0.11 LTS \\ \textbf{Distro:} & spaetzle (musl) \\ \textbf{Machine:} & tqma6ul-multi-mba6ulx \\ \textbf{Datum:} & 2026-03-01 \\ \textbf{Autor:} & Christian Gie\ss en / Siggi (OpenClaw) \\ \textbf{Klassifikation:} & Intern \\ \end{tabular} \vfill {\small Erstellt mit \LaTeX{} aus BitBake-Metadaten (264 Rezepte)} \end{titlepage} % ============================================================ % TABLE OF CONTENTS % ============================================================ \tableofcontents \newpage % ============================================================ % 1. INTRODUCTION % ============================================================ \section{Einleitung} Dieses Dokument dient als Quell- und Lizenznachweis f\"ur den Software\-freigabeantrag des TQMa6UL Yocto BSP. Es enth\"alt eine vollst\"andige Aufstellung aller 264 Quellpakete, die f\"ur den Build des Images \texttt{tq-image-small-debug} ben\"otigt werden, einschlie\ss lich: \begin{itemize}[nosep] \item Paketname und Version \item SPDX-Lizenzbezeichnung \item Prim\"are Download-URL (HTTP, FTP oder Git) \item Pfad zum BitBake-Rezept \end{itemize} \subsection{2038-Konformit\"at} Das Year-2038-Problem betrifft 32-Bit-Systeme mit signiertem 32-Bit \texttt{time\_t}. Yocto Scarthgap (5.0 LTS) l\"ost dieses Problem: \begin{itemize}[nosep] \item \textbf{musl 1.2+}: 64-Bit \texttt{time\_t} seit 2020 (verwendet in \texttt{spaetzle}) \item \textbf{glibc 2.39}: 64-Bit \texttt{time\_t} auf 32-Bit ARM (verf\"ugbar in \texttt{dumpling-wayland}) \end{itemize} \subsection{Extraktionsmethodik} Die Lizenztabelle wurde automatisiert \"uber \texttt{bitbake~-e~} f\"ur jedes der 264 Rezepte im Build-Graphen extrahiert. Dabei werden alle Yocto-Variablen (z.\,B.\ \texttt{\$\{GNU\_MIRROR\}}, \texttt{\$\{PV\}}) vollst\"andig aufgel\"ost. % ============================================================ % 2. SUMMARY % ============================================================ \section{Zusammenfassung} \begin{table}[h] \centering \begin{tabular}{lr} \toprule \textbf{Metrik} & \textbf{Wert} \\ \midrule Pakete gesamt & 264 \\ Download-URLs aufgel\"ost & 224 (85\%) \\ Ohne URL (Meta-Pakete) & 40 \\ \midrule Lizenz: MIT & 41 \\ Lizenz: GPL-2.0-only & 32 \\ Lizenz: GPL-2.0-or-later & 22 \\ Lizenz: BSD-3-Clause & 19 \\ Lizenz: GPL-3.0-or-later & 13 \\ Lizenz: GPL-3.0-only & 11 \\ Lizenz: Sonstige & 126 \\ \midrule Propriet\"ar & 2 (firmware-imx, firmware-nxp-wifi) \\ \bottomrule \end{tabular} \caption{\"Ubersicht der Lizenztabelle} \end{table} \subsection{Bewertung f\"ur milit\"arische Nutzung} \begin{description}[style=nextline] \item[\textbf{Freigegeben}] MIT, BSD-2, BSD-3, Apache-2.0, ISC, GPL-2.0, LGPL-2.1 \item[\textbf{Pr\"ufung erforderlich}] GPL-3.0 (Anti-Tivoization-Klausel), propriet\"are Firmware-Blobs \item[\textbf{Nicht im Endprodukt}] Native/Cross-Build-Tools (GCC, CMake, etc.) \end{description} % ============================================================ % 3. BUILD CONFIGURATION % ============================================================ \section{Build-Konfiguration} \begin{table}[h] \centering \begin{tabular}{ll} \toprule \textbf{Parameter} & \textbf{Wert} \\ \midrule MACHINE & \texttt{tqma6ul-multi-mba6ulx} \\ DISTRO & \texttt{spaetzle} \\ TARGET\_SYS & \texttt{arm-tq-linux-musleabi} \\ C-Library & musl 1.2.4 (64-Bit \texttt{time\_t}) \\ Kernel & Linux 6.6.102 (TQ fork) \\ U-Boot & 2023.04 (TQ fork) \\ GCC & 13.4.0 \\ BitBake & 2.8.0 \\ Image & \texttt{tq-image-small-debug} \\ BSP Repository & \texttt{github.com/tq-systems/ci-meta-tq} \\ \bottomrule \end{tabular} \caption{Build-Konfiguration} \end{table} % ============================================================ % 4. COMPLETE LICENSE TABLE % ============================================================ \newpage \section{Vollst\"andige Quell- und Lizenztabelle} Die folgende Tabelle enth\"alt alle 264 Pakete im Build-Graphen. Pakete ohne URL sind Meta-Pakete, virtuelle Provider oder lokale Rezepte ohne externen Source-Download. \begin{landscape} \footnotesize \rowcolors{2}{lightgray}{white} \csvreader[ longtable=l|l|l|l|l, table head=\toprule \textbf{Paket} & \textbf{Version} & \textbf{Lizenz (SPDX)} & \textbf{Download-URL} & \textbf{Rezept} \\ \midrule\endhead \bottomrule\endfoot, late after line=\\, separator=comma ]{/tmp/license-table-clean.csv} {Package=\pkg, Version=\ver, License=\lic, SRC_URI=\url, Recipe=\recipe} {\pkg & \ver & \lic & {\tiny \url} & {\tiny \recipe}} \end{landscape} % ============================================================ % 5. PROPRIETARY COMPONENTS % ============================================================ \newpage \section{Propriet\"are Komponenten} \begin{table}[h] \centering \begin{tabular}{llll} \toprule \textbf{Paket} & \textbf{Version} & \textbf{Lizenz} & \textbf{Bewertung} \\ \midrule firmware-imx & 8.27 & Propriet\"ar (NXP SLA) & Pr\"ufung erforderlich \\ firmware-nxp-wifi & 1.1 & Propriet\"ar (NXP) & Pr\"ufung erforderlich \\ linux-firmware & 20240909 & Gemischt & Pr\"ufung pro Firmware \\ \bottomrule \end{tabular} \caption{Propriet\"are Komponenten -- Einzelfreigabe erforderlich} \end{table} \subsection{Open-Source-Alternativen} \begin{tabular}{lll} \toprule \textbf{Propriet\"ar} & \textbf{Alternative} & \textbf{Lizenz} \\ \midrule imx-gpu-viv (Vivante) & etnaviv (DRM) & MIT/GPL \\ \bottomrule \end{tabular} % ============================================================ % 6. COMPLIANCE % ============================================================ \section{Compliance-Checkliste} \begin{enumerate}[nosep] \item[\checkmark] Alle GPL-Pakete: Quellcode im Mirror archiviert \item[\checkmark] Alle LGPL-Pakete: Bibliotheks-Quellcode verf\"ugbar \item[\checkmark] Alle Download-URLs verifiziert (224/264) \item[$\square$] Propriet\"are Komponenten: NXP-Lizenz pr\"ufen \item[$\square$] GPL-3.0-Pakete: Anti-Tivoization-Klausel bewerten \item[$\square$] Kryptographie-Export: OpenSSL/GnuTLS klassifizieren \end{enumerate} % ============================================================ % 7. REFERENCES % ============================================================ \section{Referenzen} \begin{itemize}[nosep] \item Repository: \url{https://code.gegen.autos/openclaw/tqma6-yocto-mirror} \item TQ-Systems ci-meta-tq: \url{https://github.com/tq-systems/ci-meta-tq} \item Yocto Scarthgap Docs: \url{https://docs.yoctoproject.org/5.0/} \item SPDX License List: \url{https://spdx.org/licenses/} \end{itemize} \end{document}