shrinkwrap-tool 2026.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. shrinkwrap/__init__.py +1 -0
  2. shrinkwrap/__main__.py +4 -0
  3. shrinkwrap/commands/__init__.py +0 -0
  4. shrinkwrap/commands/build.py +91 -0
  5. shrinkwrap/commands/buildall.py +180 -0
  6. shrinkwrap/commands/clean.py +161 -0
  7. shrinkwrap/commands/inspect.py +235 -0
  8. shrinkwrap/commands/process.py +106 -0
  9. shrinkwrap/commands/run.py +311 -0
  10. shrinkwrap/config/FVP_Base_RevC-2xAEMvA-base.yaml +98 -0
  11. shrinkwrap/config/FVP_Base_RevC-2xAEMvA-rme.yaml +42 -0
  12. shrinkwrap/config/arch/v8.0.yaml +22 -0
  13. shrinkwrap/config/arch/v8.1.yaml +26 -0
  14. shrinkwrap/config/arch/v8.2.yaml +28 -0
  15. shrinkwrap/config/arch/v8.3.yaml +25 -0
  16. shrinkwrap/config/arch/v8.4.yaml +26 -0
  17. shrinkwrap/config/arch/v8.5.yaml +29 -0
  18. shrinkwrap/config/arch/v8.6.yaml +28 -0
  19. shrinkwrap/config/arch/v8.7.yaml +24 -0
  20. shrinkwrap/config/arch/v8.8.yaml +31 -0
  21. shrinkwrap/config/arch/v8.9.yaml +32 -0
  22. shrinkwrap/config/arch/v9.0.yaml +29 -0
  23. shrinkwrap/config/arch/v9.1.yaml +25 -0
  24. shrinkwrap/config/arch/v9.2.yaml +29 -0
  25. shrinkwrap/config/arch/v9.3.yaml +23 -0
  26. shrinkwrap/config/arch/v9.4.yaml +21 -0
  27. shrinkwrap/config/arch/v9.5.yaml +20 -0
  28. shrinkwrap/config/bootwrapper.yaml +76 -0
  29. shrinkwrap/config/buildroot-cca.yaml +113 -0
  30. shrinkwrap/config/buildroot.yaml +54 -0
  31. shrinkwrap/config/cca-3world.yaml +215 -0
  32. shrinkwrap/config/cca-4world.yaml +57 -0
  33. shrinkwrap/config/cca-edk2.yaml +58 -0
  34. shrinkwrap/config/debug/rmm.yaml +15 -0
  35. shrinkwrap/config/debug/tfa.yaml +18 -0
  36. shrinkwrap/config/debug/tftf.yaml +17 -0
  37. shrinkwrap/config/dt-base.yaml +115 -0
  38. shrinkwrap/config/edk2-base.yaml +59 -0
  39. shrinkwrap/config/ffa-hafnium-optee.yaml +45 -0
  40. shrinkwrap/config/ffa-optee.yaml +30 -0
  41. shrinkwrap/config/ffa-tftf.yaml +26 -0
  42. shrinkwrap/config/hafnium-base.yaml +51 -0
  43. shrinkwrap/config/kvm-unit-tests.yaml +32 -0
  44. shrinkwrap/config/kvmtool-base.yaml +33 -0
  45. shrinkwrap/config/linux-base.yaml +80 -0
  46. shrinkwrap/config/ns-edk2-base.yaml +83 -0
  47. shrinkwrap/config/ns-edk2-optee.yaml +41 -0
  48. shrinkwrap/config/ns-edk2.yaml +49 -0
  49. shrinkwrap/config/ns-preload.yaml +98 -0
  50. shrinkwrap/config/optee-base.yaml +37 -0
  51. shrinkwrap/config/rfa-base.yaml +49 -0
  52. shrinkwrap/config/rfa.yaml +47 -0
  53. shrinkwrap/config/rmm-base.yaml +24 -0
  54. shrinkwrap/config/rust.yaml +31 -0
  55. shrinkwrap/config/test/cca.yaml +47 -0
  56. shrinkwrap/config/tfa-base.yaml +45 -0
  57. shrinkwrap/config/tfa-rme.yaml +36 -0
  58. shrinkwrap/config/tftf-base.yaml +32 -0
  59. shrinkwrap/shrinkwrap_main.py +133 -0
  60. shrinkwrap/utils/__init__.py +0 -0
  61. shrinkwrap/utils/clivars.py +16 -0
  62. shrinkwrap/utils/config.py +1166 -0
  63. shrinkwrap/utils/graph.py +263 -0
  64. shrinkwrap/utils/label.py +153 -0
  65. shrinkwrap/utils/logger.py +160 -0
  66. shrinkwrap/utils/process.py +230 -0
  67. shrinkwrap/utils/runtime.py +192 -0
  68. shrinkwrap/utils/ssh_agent.py +98 -0
  69. shrinkwrap/utils/tty.py +46 -0
  70. shrinkwrap/utils/vars.py +14 -0
  71. shrinkwrap/utils/workspace.py +59 -0
  72. shrinkwrap_tool-2026.2.1.dist-info/METADATA +63 -0
  73. shrinkwrap_tool-2026.2.1.dist-info/RECORD +77 -0
  74. shrinkwrap_tool-2026.2.1.dist-info/WHEEL +5 -0
  75. shrinkwrap_tool-2026.2.1.dist-info/entry_points.txt +2 -0
  76. shrinkwrap_tool-2026.2.1.dist-info/licenses/license.rst +41 -0
  77. shrinkwrap_tool-2026.2.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,29 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv8.5 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.4.yaml
14
+
15
+ build:
16
+ tfa:
17
+ params:
18
+ ARM_ARCH_MAJOR: 8
19
+ ARM_ARCH_MINOR: 5
20
+ BRANCH_PROTECTION: 1
21
+
22
+ run:
23
+ params:
24
+ -C cluster0.has_arm_v8-5: 1
25
+ -C cluster1.has_arm_v8-5: 1
26
+ -C cluster0.has_branch_target_exception: 1 # Implement Branch target identification mechanism from ARMv8.5 (FEAT_BTI). 1:feature is implemented if ARMv8.5 is enabled.
27
+ -C cluster1.has_branch_target_exception: 1
28
+ -C cluster0.has_rndr: 1 # Implement random number instructions to read from RNDR and RNDRSS random number registers from ARMv8.5 (FEAT_RNG). 1:feature is implemented if ARMv8.5 is enabled.
29
+ -C cluster1.has_rndr: 1
@@ -0,0 +1,28 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv8.6 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.5.yaml
14
+
15
+ build:
16
+ tfa:
17
+ params:
18
+ ARM_ARCH_MAJOR: 8
19
+ ARM_ARCH_MINOR: 6
20
+
21
+ run:
22
+ params:
23
+ -C cluster0.has_arm_v8-6: 1
24
+ -C cluster1.has_arm_v8-6: 1
25
+ -C cluster0.ecv_support_level: 2 # Implement Enhanced Counter Virtualization feature from ARMv8.6. 2:fully supported with CNTPOFF (FEAT_ECV).
26
+ -C cluster1.ecv_support_level: 2
27
+ -C cluster0.enhanced_pac2_level: 3 # Implements Enhanced PAC2 from ARMv8.6 (FEAT_PAuth2). This feature is mandatory for ARMv8.6 but can be cherrypicked to a ARMv8.3(or greater) implementation. 3:EnhancedPAC2 with FPACCombined.
28
+ -C cluster1.enhanced_pac2_level: 3
@@ -0,0 +1,24 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv8.7 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.6.yaml
14
+
15
+ build:
16
+ tfa:
17
+ params:
18
+ ARM_ARCH_MAJOR: 8
19
+ ARM_ARCH_MINOR: 7
20
+
21
+ run:
22
+ params:
23
+ -C cluster0.has_arm_v8-7: 1
24
+ -C cluster1.has_arm_v8-7: 1
@@ -0,0 +1,31 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv8.8 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.7.yaml
14
+
15
+ build:
16
+ tfa:
17
+ params:
18
+ ARM_ARCH_MAJOR: 8
19
+ ARM_ARCH_MINOR: 8
20
+
21
+ run:
22
+ params:
23
+ -C cluster0.has_arm_v8-8: 1
24
+ -C cluster1.has_arm_v8-8: 1
25
+ -C cluster0.has_const_pac: 1 # Feature for singular selection of PAC field (FEAT_CONSTPACFIELD). 1:feature is implemented if Armv8.8 is enabled.
26
+ -C cluster1.has_const_pac: 1
27
+ -C cluster0.has_hpmn0: 1 # Allow hypervisor to set MDCR_EL2.HPMN to 0 (FEAT_HPMN0). 1:feature is implemented if Armv8.8 is enabled.
28
+ -C cluster1.has_hpmn0: 1
29
+ -C cluster0.pmb_idr_external_abort: 1 # Describes how the PE manages External aborts on writes made by the Statistical Profiling Extension to the Profiling Buffer. (From Armv8.8 and Armv9.3, the value 0 is not permitted) 1: External abort is ignored.
30
+ -C cluster1.pmb_idr_external_abort: 1
31
+ -C gic_distributor.has_nmi: 1
@@ -0,0 +1,32 @@
1
+ # Copyright (c) 2023, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv8.9 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.8.yaml
14
+
15
+ build:
16
+ tfa:
17
+ params:
18
+ ARM_ARCH_MAJOR: 8
19
+ ARM_ARCH_MINOR: 9
20
+
21
+ run:
22
+ params:
23
+ -C cluster0.has_arm_v8-9: 1
24
+ -C cluster1.has_arm_v8-9: 1
25
+ -C cluster0.has_permission_indirection_s1: 1
26
+ -C cluster1.has_permission_indirection_s1: 1
27
+ -C cluster0.has_permission_indirection_s2: 1
28
+ -C cluster1.has_permission_indirection_s2: 1
29
+ -C cluster0.has_permission_overlay_s1: 1
30
+ -C cluster1.has_permission_overlay_s1: 1
31
+ -C cluster0.has_permission_overlay_s2: 1
32
+ -C cluster1.has_permission_overlay_s2: 1
@@ -0,0 +1,29 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv9.0 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.5.yaml
14
+
15
+ build:
16
+ tfa:
17
+ params:
18
+ ARM_ARCH_MAJOR: 9
19
+ ARM_ARCH_MINOR: 0
20
+ CTX_INCLUDE_AARCH32_REGS: 0
21
+
22
+ run:
23
+ params:
24
+ -C cluster0.has_arm_v9-0: 1
25
+ -C cluster1.has_arm_v9-0: 1
26
+ -C cluster0.max_32bit_el: 0 # Maximum exception level supporting AArch32 modes. -1: No Support for A32 at any EL, x:[0:3] - All the levels below supplied ELx supports A32
27
+ -C cluster1.max_32bit_el: 0
28
+ -C cluster0.sve.has_sve2: 1 # Whether SVE2 is implemented (FEAT_SVE2).
29
+ -C cluster1.sve.has_sve2: 1
@@ -0,0 +1,25 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv9.1 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.6.yaml
14
+ - arch/v9.0.yaml
15
+
16
+ build:
17
+ tfa:
18
+ params:
19
+ ARM_ARCH_MAJOR: 9
20
+ ARM_ARCH_MINOR: 1
21
+
22
+ run:
23
+ params:
24
+ -C cluster0.has_arm_v9-1: 1
25
+ -C cluster1.has_arm_v9-1: 1
@@ -0,0 +1,29 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv9.2 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.7.yaml
14
+ - arch/v9.1.yaml
15
+
16
+ build:
17
+ tfa:
18
+ params:
19
+ ARM_ARCH_MAJOR: 9
20
+ ARM_ARCH_MINOR: 2
21
+
22
+ run:
23
+ params:
24
+ -C cluster0.has_arm_v9-2: 1
25
+ -C cluster1.has_arm_v9-2: 1
26
+ -C cluster0.has_brbe: 1 # If true, implements branch record buffer extension (FEAT_BRBE).
27
+ -C cluster1.has_brbe: 1
28
+ -C cluster0.sve.has_sme: 1 # Whether SME is implemented
29
+ -C cluster1.sve.has_sme: 1
@@ -0,0 +1,23 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv9.3 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.8.yaml
14
+ - arch/v9.2.yaml
15
+
16
+ run:
17
+ params:
18
+ -C cluster0.has_arm_v9-3: 1
19
+ -C cluster1.has_arm_v9-3: 1
20
+ -C cluster0.has_brbe_v1p1: 1 # If true, implements FEAT_BRBEv1p1.
21
+ -C cluster1.has_brbe_v1p1: 1
22
+ -C cluster0.sve.has_sme2: 1 # Whether SME2 is implemented (FEAT_SME2)
23
+ -C cluster1.sve.has_sme2: 1
@@ -0,0 +1,21 @@
1
+ # Copyright (c) 2023, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv9.4 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v8.9.yaml
14
+ - arch/v9.3.yaml
15
+
16
+ run:
17
+ params:
18
+ -C cluster0.has_arm_v9-4: 1
19
+ -C cluster1.has_arm_v9-4: 1
20
+ -C cluster0.has_gcs: 1
21
+ -C cluster1.has_gcs: 1
@@ -0,0 +1,20 @@
1
+ # Copyright (c) 2023, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Implements all mandatory requirements and features as well as a sensible
8
+ selection of optional ones for the Armv9.5 architecture extension within the
9
+ Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
10
+ FVP_Base_RevC-2xAEMvA-base.yaml.
11
+
12
+ layers:
13
+ - arch/v9.4.yaml
14
+
15
+ run:
16
+ params:
17
+ -C cluster0.has_arm_v9-5: 1
18
+ -C cluster1.has_arm_v9-5: 1
19
+ -C cluster0.has_lsfe: 1
20
+ -C cluster1.has_lsfe: 1
@@ -0,0 +1,76 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Best choice for: I have a linux-system.axf boot-wrapper and want to run it.
8
+
9
+ Build to wrap a provided kernel with boot-wrapper EL3 FW into
10
+ linux-system.axf. Provide the kernel image via the KERNEL btvar, and
11
+ optionally override the kernel command line by providing the CMDLINE btvar.
12
+
13
+ Then run the boot-wrapper (or pass a separately created one as the BOOTWRAPPER
14
+ rtvar) in the FVP. A ROOTFS can be optionally provided. If present it is
15
+ loaded into the virtio block device (/dev/vda).
16
+
17
+ concrete: true
18
+
19
+ layers:
20
+ - FVP_Base_RevC-2xAEMvA-base.yaml
21
+ - dt-base.yaml
22
+
23
+ build:
24
+ bootwrapper:
25
+ repo:
26
+ remote: https://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
27
+ revision: master
28
+
29
+ toolchain: aarch64-linux-gnu-
30
+
31
+ prebuild:
32
+ - autoreconf -i
33
+ - ./configure --host=aarch64-linux-gnu --enable-gicv3 --with-dtb="${btvar:DTB}" --with-kernel-image="${btvar:KERNEL}" --with-cmdline="${btvar:CMDLINE}"
34
+
35
+ build:
36
+ - make -j${param:jobs}
37
+
38
+ artifacts:
39
+ BOOTWRAPPER: ${param:sourcedir}/linux-system.axf
40
+
41
+ buildex:
42
+ btvars:
43
+ DTB:
44
+ type: path
45
+ value: ${artifact:DTB}
46
+
47
+ KERNEL:
48
+ type: path
49
+ value: null
50
+
51
+ CMDLINE:
52
+ type: string
53
+ value: console=ttyAMA0 earlycon=pl011,0x1c090000 root=/dev/vda ip=dhcp
54
+
55
+ run:
56
+ rtvars:
57
+ BOOTWRAPPER:
58
+ type: path
59
+ value: ${artifact:BOOTWRAPPER}
60
+
61
+ ROOTFS:
62
+ type: path
63
+ value: ''
64
+
65
+ params:
66
+ -C pctl.startup: '*.*.*.*'
67
+ -C bp.secure_memory: 0
68
+ -a cluster*.cpu*: ${rtvar:BOOTWRAPPER}
69
+ -C bp.virtioblockdevice.image_path: ${rtvar:ROOTFS}
70
+ -C bp.pl011_uart0.shutdown_tag: '"System halted"'
71
+
72
+ terminals:
73
+ bp.terminal_0:
74
+ friendly: ''
75
+ type: stdinout
76
+ no_color: true
@@ -0,0 +1,113 @@
1
+ # Copyright (c) 2024, Linaro Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Integrate tools for CCA into the buildroot image:
8
+ - cca-workload-attestation to display an attestation token or send it to a
9
+ verifier.
10
+ https://git.codelinaro.org/linaro/dcap/cca-demos/cca-workload-attestation-poc
11
+ - keybroker-demo to demonstrate remote attestation for downloading secrets.
12
+ https://github.com/veraison/keybroker-demo/
13
+ - cca-realm-measurements to generate a DTB and run a VMM.
14
+ https://github.com/veraison/cca-realm-measurements
15
+ - kvmtool and QEMU to run Realm VMs.
16
+ - Automatically mount the shared 9p folder to /mnt, mount configfs for
17
+ attestation, and create a tap interface.
18
+
19
+ Use it with:
20
+
21
+ .. code-block:: shell
22
+ $ shrinkwrap build cca-3world.yaml --overlay buildroot-cca.yaml
23
+ $ shrinkwrap run cca-3world.yaml
24
+
25
+ In the host, launch a VM with:
26
+
27
+ .. code-block:: shell
28
+ $ gen-run-vmm.sh [--kvmtool]
29
+
30
+ In the guest, you can obtain an attestation token, and send it to a verifier:
31
+
32
+ .. code-block:: shell
33
+ $ cca-workload-attestation report
34
+ {
35
+ "cca-platform-token": {
36
+ ...
37
+ $ cca-workload-attestation passport
38
+ {
39
+ "ear.verifier-id": {
40
+ "build": "N/A",
41
+ "developer": "Veraison Project"
42
+ },
43
+ ...
44
+
45
+ You can also obtain a key from a keybroker running locally that performs
46
+ attestation. Run the keybroker-server on the build machine, using the
47
+ external IP of the build machine to be accessible from the keybroker-app (in
48
+ this case 192.168.0.10 on a local network):
49
+
50
+ .. code-block:: shell
51
+ $ keybroker-server -e http://192.168.0.10 -v -a 0.0.0.0
52
+
53
+ In the guest, connect to the server
54
+
55
+ .. code-block:: shell
56
+ $ keybroker-app -v -e http://192.168.0.10:8088 skywalker
57
+
58
+ layers:
59
+ - buildroot.yaml
60
+
61
+ build:
62
+ linux:
63
+ prebuild:
64
+ # We extend buildroot with an initscript that creates a macvtap interface,
65
+ # so enable it in the kernel
66
+ - ./scripts/config --file ${param:builddir}/.config --enable CONFIG_MACVLAN --enable CONFIG_MACVTAP
67
+
68
+ buildroot-external-cca:
69
+ repo:
70
+ remote: https://git.codelinaro.org/linaro/dcap/buildroot-external-cca.git
71
+ revision: cca/v8
72
+
73
+ artifacts:
74
+ BUILDROOT_EXTERNAL_CCA:
75
+ path: ${param:sourcedir}
76
+ export: false
77
+
78
+ buildroot:
79
+ repo:
80
+ remote: https://github.com/buildroot/buildroot.git
81
+ revision: 2024.08.2
82
+
83
+ prebuild:
84
+ - make BR2_JLEVEL=${param:jobs} O=${param:builddir} BR2_EXTERNAL=${artifact:BUILDROOT_EXTERNAL_CCA} cca_defconfig
85
+
86
+ # gen-vmm-run.sh configuration for the shrinkwrap package/ layout
87
+ - cat <<EOF> ${param:builddir}/gen-run-vmm.cfg
88
+ - KERNEL=/mnt/Image
89
+ - INITRD=/mnt/rootfs.cpio
90
+ - EDK2_DIR=/mnt/
91
+ - RUN_DISK=/mnt/guest-disk.img
92
+ - EOF
93
+
94
+ - sed -i '\@BR2_PACKAGE_CCA_REALM_MEASUREMENTS_CFG@s@=.*@="\${param:builddir}/gen-run-vmm.cfg"@' ${param:builddir}/.config
95
+
96
+ artifacts:
97
+ GUEST_INITRD: ${param:builddir}/images/rootfs.cpio
98
+
99
+ buildex:
100
+ btvars:
101
+ GUEST_ROOTFS:
102
+ type: path
103
+ value: ${artifact:BUILDROOT}
104
+
105
+ run:
106
+ rtvars:
107
+ ROOTFS:
108
+ type: path
109
+ value: ${artifact:BUILDROOT}
110
+
111
+ SHARE:
112
+ type: path
113
+ value: ${param:packagedir}
@@ -0,0 +1,54 @@
1
+ # Copyright (c) 2022, Arm Limited.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ %YAML 1.2
5
+ ---
6
+ description: >-
7
+ Generates a very simple rootfs as an ext2/4 image. Higher layers can modify
8
+ the buildroot config by adding commands to prebuild.
9
+
10
+ concrete: true
11
+
12
+ build:
13
+ buildroot:
14
+ repo:
15
+ remote: https://github.com/buildroot/buildroot.git
16
+ revision: 2025.08.1
17
+
18
+ toolchain: aarch64-linux-gnu-
19
+
20
+ stderrfilt: true
21
+
22
+ prebuild:
23
+ # Building with the Docker runtime on macOS will fail while configuring
24
+ # host-tar unless this variable is set.
25
+ - export FORCE_UNSAFE_CONFIGURE=1
26
+
27
+ # Start from default config, but allow higher level layers to modify it.
28
+ - make BR2_JLEVEL=${param:jobs} O=${param:builddir} BR2_DEFCONFIG=${param:configdir}/buildroot.config defconfig
29
+ # Uncomment the below line if you want to regenerate the defconfig and
30
+ # save it to ${param:configdir}/buildroot.config
31
+ # - make BR2_JLEVEL=${param:jobs} O=${param:builddir} BR2_DEFCONFIG=${param:configdir}/buildroot.config savedefconfig
32
+
33
+ build:
34
+ # Fakeroot takes a while to start when the file descriptor limit is high.
35
+ # Reduce it to significantly accelerate the build.
36
+ # - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=920913
37
+ # - https://github.com/moby/moby/issues/45436
38
+ - saved_limit=$$(ulimit -S -n)
39
+ - new_limit=4096
40
+ - if [ "$$new_limit" -lt "$$saved_limit" ]; then
41
+ - ulimit -S -n "$$new_limit"
42
+ - fi
43
+
44
+ # Build.
45
+ - make BR2_JLEVEL=${param:jobs} O=${param:builddir}
46
+
47
+ # Restore the previous file limit
48
+ - ulimit -S -n "$$saved_limit"
49
+
50
+ artifacts:
51
+ BUILDROOT: ${param:builddir}/images/rootfs.ext2
52
+ # Some scripts including test.py in shrinkwrap might depend on the
53
+ # rootfs.ext4 which is just symlink to rootfs.ext2, copy that too
54
+ BUILDROOT_EXT4: ${param:builddir}/images/rootfs.ext4