\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~<rezept>} 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}
