- 13-page professional document with serif font, grayscale scheme - Title page, TOC, build config, complete 264-package license table - License distribution summary and military use assessment - Proprietary components section (firmware-imx, firmware-nxp-wifi) - Compliance checklist - Generated from bitbake -e metadata via LaTeX/longtable
263 lines
8.2 KiB
TeX
263 lines
8.2 KiB
TeX
\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}
|