|
8 | 8 | | Document | Version | |
9 | 9 | |----------|---------| |
10 | 10 | | IEC 62304 Reference | §8.1.2 Software items from SOUP | |
11 | | -| Last Reviewed | 2026-03-06 | |
12 | | -| thread_system Version | 3.0.0 | |
13 | | - |
14 | | ---- |
15 | | - |
16 | | -## Internal Ecosystem Dependencies |
17 | | - |
18 | | -| ID | Name | Manufacturer | Version | License | Usage | Safety Class | Known Anomalies | |
19 | | -|----|------|-------------|---------|---------|-------|-------------|-----------------| |
20 | | -| INT-001 | [common_system](https://github.com/kcenon/common_system) | kcenon | Latest (source) | BSD-3-Clause | Result<T> pattern, error handling primitives, interfaces | B | None | |
21 | | - |
22 | | -> **Note**: common_system is integrated as source-level dependency via CMake `find_package` or adjacent directory detection. |
| 11 | +| Last Reviewed | 2026-03-07 | |
| 12 | +| thread_system Version | 0.1.0 | |
23 | 13 |
|
24 | 14 | --- |
25 | 15 |
|
26 | 16 | ## Production SOUP |
27 | 17 |
|
28 | | -| ID | Name | Manufacturer | Version | License | Usage | Safety Class | Known Anomalies | |
29 | | -|----|------|-------------|---------|---------|-------|-------------|-----------------| |
30 | | -| SOUP-001 | [libiconv](https://www.gnu.org/software/libiconv/) | GNU Project | 1.17 | LGPL-2.1 | Character encoding conversion (non-Windows platforms only) | A | Dynamic linking required for LGPL compliance | |
| 18 | +| ID | Name | Manufacturer | Version | License | Usage | Safety Class | Linking | Known Anomalies | |
| 19 | +|----|------|-------------|---------|---------|-------|-------------|---------|-----------------| |
| 20 | +| SOUP-001 | [GNU libiconv](https://www.gnu.org/software/libiconv/) | GNU Project | 1.17 | LGPL-2.1-or-later | Character encoding conversion (wide/narrow strings, non-Windows only) | A | **Dynamic only** (LGPL) | None | |
| 21 | + |
| 22 | +> **LGPL Compliance**: libiconv must be dynamically linked to preserve BSD-3-Clause licensing. macOS provides it as a system framework (always dynamic). Linux glibc includes iconv natively. Windows is excluded (`"platform": "!windows"`). |
31 | 23 |
|
32 | 24 | --- |
33 | 25 |
|
34 | 26 | ## Optional SOUP |
35 | 27 |
|
36 | | -| ID | Name | Manufacturer | Version | License | Usage | Safety Class | Known Anomalies | |
37 | | -|----|------|-------------|---------|---------|-------|-------------|-----------------| |
38 | | -| SOUP-002 | [spdlog](https://github.com/gabime/spdlog) | Gabi Melman | 1.13.0 | MIT | Advanced logging capabilities (optional `logging` feature) | A | None | |
| 28 | +| ID | Name | Manufacturer | Version | License | Usage | Safety Class | Linking | Known Anomalies | |
| 29 | +|----|------|-------------|---------|---------|-------|-------------|---------|-----------------| |
| 30 | +| SOUP-002 | [spdlog](https://github.com/gabime/spdlog) | Gabi Melman | 1.13.0 | MIT | Fast C++ logging library (optional `logging` feature) | A | Header-only or shared | None | |
39 | 31 |
|
40 | 32 | --- |
41 | 33 |
|
|
52 | 44 |
|
53 | 45 | | Class | Definition | Example | |
54 | 46 | |-------|-----------|---------| |
55 | | -| **A** | No contribution to hazardous situation | Logging, formatting, test frameworks | |
| 47 | +| **A** | No contribution to hazardous situation | Logging, formatting, character encoding | |
56 | 48 | | **B** | Non-serious injury possible | Data processing, network communication | |
57 | 49 | | **C** | Death or serious injury possible | Encryption, access control | |
58 | 50 |
|
@@ -93,10 +85,9 @@ When updating any SOUP dependency: |
93 | 85 |
|
94 | 86 | | License | Count | Copyleft | Obligation | |
95 | 87 | |---------|-------|----------|------------| |
96 | | -| LGPL-2.1 | 1 | Weak | Dynamic linking required | |
| 88 | +| LGPL-2.1-or-later | 1 | Weak | Dynamic linking required; include license text | |
97 | 89 | | MIT | 1 | No | Include copyright notice | |
98 | 90 | | BSD-3-Clause | 1 | No | Include copyright + no-endorsement clause | |
99 | 91 | | Apache-2.0 | 1 | No | Include license + NOTICE file | |
100 | 92 |
|
101 | | -> **GPL contamination**: None detected. All dependencies are permissively licensed. |
102 | | -> **LGPL note**: libiconv (SOUP-001) uses LGPL-2.1; dynamic linking ensures compliance. |
| 93 | +> **LGPL contamination**: Avoided by dynamic linking. libiconv is always loaded as a shared library on supported platforms (macOS system framework, Linux glibc). |
0 commit comments