├── README.md ├── fedora-phosh.mpp.json ├── files ├── etc │ └── gdm │ │ └── custom.conf └── var │ └── lib │ └── AccountsService │ └── users │ └── fedora └── include └── fedora-build.mpp.json /README.md: -------------------------------------------------------------------------------- 1 | Fedora experimental images for mobile devices 2 | ============================================= 3 | 4 | This repository contains OSBuild manifests to build experimental images to 5 | install on mobile devices, such as the PinePhone Pro. These are of course 6 | not official images, but just what I use to do some testing on my phone. 7 | 8 | For now there is only a single manifest to build an image containing most 9 | of default Fedora Workstation package set plus the Phosh shell for mobile. 10 | 11 | But it should be easy to manifest for other types of Fedora images and it 12 | could allow to do some experimentation. The existing manifest also adds a 13 | COPR repository that contain custom packages to support the PinePhone Pro. 14 | 15 | The images built though could be used in any other device with support for 16 | EFI, and also the manifest allows to build QCOW2 images to import on a VM. 17 | 18 | ### Requirements 19 | 20 | The osbuild and osbuild-tools packages must be installed to build images: 21 | 22 | ```sh 23 | sudo dnf install osbuild osbuild-tools -y 24 | ``` 25 | 26 | ### Building 27 | 28 | As mentioned above, the images are generated using the OSBuild tool, which 29 | still does not support cross-platform image generation so the images have 30 | to be created on a machine that uses the same architecture than the target. 31 | 32 | First an OSBuild manifest must be generated from the Manifest Pre-Processor 33 | (MPP) file. This can be done with the following command: 34 | 35 | ```sh 36 | osbuild-mpp fedora-phosh.mpp.json -D arch=\"$(uname -m)\" fedora-phosh.json 37 | ``` 38 | 39 | Then an image can be built, this is achieved using the following command: 40 | 41 | ```sh 42 | sudo osbuild --store osbuild_store --output-directory image_output --export image fedora-phosh.json 43 | ``` 44 | 45 | A QCOW2 image to be used as a storage device for a virtual VM can also be 46 | built. To do that instead the following command can be used: 47 | 48 | ```sh 49 | sudo osbuild --store osbuild_store --output-directory image_output --export qcow2 fedora-phosh.json 50 | ``` 51 | 52 | ### Install 53 | 54 | To install the generated OS image, dd the `image_output/image/disk.img` to 55 | the block device of the eMMC or SD card: 56 | 57 | ```sh 58 | sudo dd if=image_output/image/disk.img of=/dev/sda bs=4M conv=fsync 59 | ``` 60 | Replace `/dev/sda` by the correct block device in your system. 61 | 62 | If the PinePhone Pro does not have a firmware in its SPI flash or eMMC that 63 | is able to EFI images, a bootloader must be installed in the block device. 64 | 65 | This can be done by downloading the uboot-images-armv8 package and writing 66 | the uboot binaries to the block device of the eMMC or SD card: 67 | 68 | ```sh 69 | sudo dnf install uboot-images-armv8 -y 70 | sudo dd if=/usr/share/uboot/pinephone-pro-rk3399/idbloader.img of=/dev/sda seek=64 71 | sudo dd if=/usr/share/uboot/pinephone-pro-rk3399/u-boot.itb of=/dev/sda seek=16384 72 | ``` 73 | 74 | ### Images default setup 75 | 76 | The images default configuration is to log in automatically the `fedora` user 77 | and start a Phosh Wayland session. These options can be modified by editing 78 | the `/etc/gdm/custom.conf` and `/var/lib/AccountsService/users/fedora` files. 79 | 80 | There are two users created, `root` that has as default password `password` 81 | and `fedora` that has as default password `1234`. The password is also the 82 | PIN that is used to unlock the screen. 83 | -------------------------------------------------------------------------------- /fedora-phosh.mpp.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2", 3 | "mpp-vars": { 4 | "rootfs_uuid": "76a22bf4-f153-4541-b6c7-0332c0dfaeac", 5 | "bootfs_uuid": "156f0420-627b-4151-ae6f-fda298097515" 6 | }, 7 | "mpp-define-image": { 8 | "size": "10737418240", 9 | "table": { 10 | "uuid": "D209C89E-EA5E-4FBD-B161-B461CCE297E0", 11 | "label": "gpt", 12 | "partitions": [ 13 | { 14 | "id": "efi", 15 | "start": 32768, 16 | "size": 1228800, 17 | "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B", 18 | "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33" 19 | }, 20 | { 21 | "id": "boot", 22 | "size": 2097152, 23 | "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", 24 | "uuid": "61B2905B-DF3E-4FB3-80FA-49D1E773AA32" 25 | }, 26 | { 27 | "id": "root", 28 | "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", 29 | "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562" 30 | } 31 | ] 32 | } 33 | }, 34 | "pipelines": [ 35 | { 36 | "mpp-import-pipeline": { 37 | "path": "include/fedora-build.mpp.json", 38 | "id": "build" 39 | }, 40 | "runner": "org.osbuild.fedora34" 41 | }, 42 | { 43 | "name": "rootfs", 44 | "build": "name:build", 45 | "stages": [ 46 | { 47 | "type": "org.osbuild.kernel-cmdline", 48 | "options": { 49 | "root_fs_uuid": {"mpp-format-string": "{rootfs_uuid}"}, 50 | "kernel_opts": "ro biosdevname=0 net.ifnames=0" 51 | } 52 | }, 53 | { 54 | "type": "org.osbuild.rpm", 55 | "options": { 56 | "gpgkeys": [ 57 | "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGTSYSwBEACTHP7OFONk+1B1awJeYToUFMVbYZIjNvj9M7zwf5vzH52FlpXX\ndsbs1AWh6NUe0zV1J5JjCGiI24Vjacysg7L2zsbgT48vVv3mXrXorjYOzT/cxsAh\n7PNhEx+OevKzAx3oy0Ok27c11Dz0W4ynwVy80gB6XHI2rd04v74TiC0xQYlxj1Sh\nj6irdLmHMD/NtTCWmCM7MRf91UcC4rk6JOap715UKey2fk1h/wylv0guMP3o+CpG\njxDHENkfl/GsWCSYBaHec7o5/qg5RoAkN5NImVI00CqiEO1WHPBaCJalgwbuQCiW\n006jwVDHJHRoufS85PEKaY9yqd5Fr76kdqCLsf3Ys9yxGVfOTvCaKOa+ElWBo+i6\nyOtEO6Qp1Qd5spomBJ+FVPjU89lR9aDnvxIVX7X6zu638qV0K3Lb2HKmqiVG6ccJ\nIdxNVXJAekvu7ypwvRzEc0mGgfkZ47flaj7X8SxiebbXhYWdqRBF0rMYc7ppkbCp\n5NsD+KJilkfeOGb7VK6Rx5vXmySiNCb9GqN51KRl4Z1qllrc/Q1k5CCMt3AUq0hv\n1fwK3eFGtd4/YgF9LoZ0tW8WFZ6h/zWnRvJ/SDBPhtovoSpxptCd18MWiakwvwW0\nsxueKFlctdDjW1a/gri3V4RdTOZbr0AqDjGGcYndt/oxMeLxaK9qvs2xIQARAQAB\ntDFGZWRvcmEgKDQxKSA8ZmVkb3JhLTQxLXByaW1hcnlAZmVkb3JhcHJvamVjdC5v\ncmc+iQJOBBMBCAA4FiEERmzy2LYLwwV6qUU+0GIkYumdatEFAmTSYSwCGw8FCwkI\nBwIGFQoJCAsCBBYCAwECHgECF4AACgkQ0GIkYumdatFHIQ//bTSVGDvJGmUxgHJw\nMnGM2G6Rc9PNAKuXbh6t4qsrRKp22pWNnMmqqcGaoiBxKP989a2cJgIVP49SsC4C\newaafEYhsitUtKagx6z3F7UObnvQpOz5U5iFcJCvRDtC4FXq+VkMdhT09zMZY4Ey\nia29bV1B1R7pe7yXh6l3WyVj9AAXUSEBR/OsakaYEMzScLnROBEU1YbWR9iHsc7M\nrEsqju8tVUh1XAqIqJgLW3VrKs0g0nDVR0rBc8aDhrtVfylwWVl61gHsPFJfAkjj\nOPgvQgThrhlCWo23EZSk/Hj8YRrnhUbEDnk+Z3Xv5Uyl1kxGRk5dGBnv+7u3CKvV\nG6sU3tPtna/8rFblfKSMZIPhzTADdsUZ88Fn9pZkfqgPi8LZ4sS8vHtaykZmbfj6\nt9a2mBYJQ+/pxiH8olzyhKMdNyesLPeQmESgwM/qlJ+b2Hbogwuuzp8o2JMezxIe\nCAwLoPh+hxMPGnBRklh6Vj5R5z29wIZd6pKCavVRfJ+ON94wuOSEofhBfQNZIIFV\njagEbk60iksysxsObfVEHFhtGnZCEgCRC87BfX6tzIIDv23Zs4Bv9gcaaRXTAml2\nkZXktduHkV9q3hhcoha5FgGSe244C4GsMUkWCsZtuN6tevUPo+n2ZZAA7ikQ768r\nIz9rPOI8/Ra7qnwSlNIVnkTb9bc=\n=e2ew\n-----END PGP PUBLIC KEY BLOCK-----\n" 58 | ] 59 | }, 60 | "inputs": { 61 | "packages": { 62 | "type": "org.osbuild.files", 63 | "origin": "org.osbuild.source", 64 | "mpp-depsolve": { 65 | "architecture": "$arch", 66 | "module-platform-id": "rawhide", 67 | "baseurl": "https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/$arch/os/", 68 | "repos": [ 69 | { 70 | "id": "default", 71 | "baseurl": "https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/$arch/os/" 72 | } 73 | ], 74 | "packages": [ 75 | "@core", 76 | "@hardware-support", 77 | "@fonts", 78 | "@phosh-desktop", 79 | "kernel", 80 | "shim", 81 | "grub2-efi", 82 | "dracut-config-generic", 83 | "chrony", 84 | "glibc-all-langpacks", 85 | "gdm", 86 | "epiphany" 87 | ], 88 | "excludes": [ 89 | "gnome-initial-setup", 90 | "gnome-tour" 91 | ] 92 | } 93 | } 94 | } 95 | }, 96 | { 97 | "type": "org.osbuild.locale", 98 | "options": { 99 | "language": "en_US.UTF-8" 100 | } 101 | }, 102 | { 103 | "type": "org.osbuild.users", 104 | "options": { 105 | "users": { 106 | "root": { 107 | "password": "$6$wvORm/95saVNjgOV$AZXEEFcrCKsPPFOLEB2FsvnRhdCEEalRN8uJR2BHi73Wsqi9ElFdpNv3cRxmBoNQUKhfbhcP9Jk2uPkHbYeUg." 108 | }, 109 | "fedora": { 110 | "password": "$6$Y1qNBRvdEguOZwyn$SI1azTy/B.jTWxG3dTuW5YgWSCpKU5wuHKjLKgy1ER99e61fqPUbuJXwEDVCylJeMWybAOF4ksBwabqIljsLh1" 111 | } 112 | } 113 | } 114 | }, 115 | { 116 | "type": "org.osbuild.copy", 117 | "inputs": { 118 | "inlinefile": { 119 | "type": "org.osbuild.files", 120 | "origin": "org.osbuild.source", 121 | "mpp-embed": { 122 | "id": "gdm-custom-conf", 123 | "path": "files/etc/gdm/custom.conf" 124 | } 125 | } 126 | }, 127 | "options": { 128 | "paths": [ 129 | { 130 | "from": { 131 | "mpp-format-string": "input://inlinefile/{embedded['gdm-custom-conf']}" 132 | }, 133 | "to": "tree:///etc/gdm/custom.conf" 134 | } 135 | ] 136 | } 137 | }, 138 | { 139 | "type": "org.osbuild.copy", 140 | "inputs": { 141 | "inlinefile": { 142 | "type": "org.osbuild.files", 143 | "origin": "org.osbuild.source", 144 | "mpp-embed": { 145 | "id": "default-session-conf", 146 | "path": "files/var/lib/AccountsService/users/fedora" 147 | } 148 | } 149 | }, 150 | "options": { 151 | "paths": [ 152 | { 153 | "from": { 154 | "mpp-format-string": "input://inlinefile/{embedded['default-session-conf']}" 155 | }, 156 | "to": "tree:///var/lib/AccountsService/users/fedora" 157 | } 158 | ] 159 | } 160 | }, 161 | { 162 | "type": "org.osbuild.fstab", 163 | "options": { 164 | "filesystems": [ 165 | { 166 | "uuid": {"mpp-format-string": "{rootfs_uuid}"}, 167 | "vfs_type": "btrfs", 168 | "path": "/", 169 | "freq": 1, 170 | "passno": 1 171 | }, 172 | { 173 | "label": "ESP", 174 | "vfs_type": "vfat", 175 | "path": "/boot/efi", 176 | "freq": 1, 177 | "passno": 1 178 | }, 179 | { 180 | "uuid": {"mpp-format-string": "{bootfs_uuid}"}, 181 | "vfs_type": "ext4", 182 | "path": "/boot", 183 | "freq": 1, 184 | "passno": 1 185 | } 186 | ] 187 | } 188 | }, 189 | { 190 | "type": "org.osbuild.grub2", 191 | "options": { 192 | "root_fs_uuid": {"mpp-format-string": "{rootfs_uuid}"}, 193 | "boot_fs_uuid": {"mpp-format-string": "{bootfs_uuid}"}, 194 | "uefi": { 195 | "vendor": "fedora", 196 | "unified": true 197 | }, 198 | "write_defaults": false 199 | } 200 | }, 201 | { 202 | "type": "org.osbuild.fix-bls", 203 | "options": { 204 | "prefix": "/" 205 | } 206 | }, 207 | { 208 | "type": "org.osbuild.selinux", 209 | "options": { 210 | "file_contexts": "etc/selinux/targeted/contexts/files/file_contexts" 211 | } 212 | } 213 | ] 214 | }, 215 | { 216 | "name": "image", 217 | "build": "name:build", 218 | "stages": [ 219 | { 220 | "type": "org.osbuild.truncate", 221 | "options": { 222 | "filename": "disk.img", 223 | "size": {"mpp-format-string": "{image.size}"} 224 | } 225 | }, 226 | { 227 | "type": "org.osbuild.sfdisk", 228 | "devices": { 229 | "device": { 230 | "type": "org.osbuild.loopback", 231 | "options": { 232 | "filename": "disk.img" 233 | } 234 | } 235 | }, 236 | "options": { "mpp-format-json": "{image.layout}" } 237 | }, 238 | { 239 | "type": "org.osbuild.mkfs.fat", 240 | "devices": { 241 | "device": { 242 | "type": "org.osbuild.loopback", 243 | "options": { 244 | "filename": "disk.img", 245 | "start": {"mpp-format-int": "{image.layout['efi'].start}"}, 246 | "size": {"mpp-format-int": "{image.layout['efi'].size}"} 247 | } 248 | } 249 | }, 250 | "options": { 251 | "label": "ESP", 252 | "volid": "7B7795E7" 253 | } 254 | }, 255 | { 256 | "type": "org.osbuild.mkfs.ext4", 257 | "devices": { 258 | "device": { 259 | "type": "org.osbuild.loopback", 260 | "options": { 261 | "filename": "disk.img", 262 | "start": {"mpp-format-int": "{image.layout['boot'].start}"}, 263 | "size": {"mpp-format-int": "{image.layout['boot'].size}"} 264 | } 265 | } 266 | }, 267 | "options": { 268 | "uuid": {"mpp-format-string": "{bootfs_uuid}"}, 269 | "label": "boot" 270 | } 271 | }, 272 | { 273 | "type": "org.osbuild.mkfs.btrfs", 274 | "devices": { 275 | "device": { 276 | "type": "org.osbuild.loopback", 277 | "options": { 278 | "filename": "disk.img", 279 | "start": {"mpp-format-int": "{image.layout['root'].start}"}, 280 | "size": {"mpp-format-int": "{image.layout['root'].size}"} 281 | } 282 | } 283 | }, 284 | "options": { 285 | "uuid": {"mpp-format-string": "{rootfs_uuid}"}, 286 | "label": "root" 287 | } 288 | }, 289 | { 290 | "type": "org.osbuild.copy", 291 | "inputs": { 292 | "tree": { 293 | "type": "org.osbuild.tree", 294 | "origin": "org.osbuild.pipeline", 295 | "references": [ 296 | "name:rootfs" 297 | ] 298 | } 299 | }, 300 | "options": { 301 | "paths": [ 302 | { 303 | "from": "input://tree/", 304 | "to": "mount://root/" 305 | } 306 | ] 307 | }, 308 | "devices": { 309 | "efi": { 310 | "type": "org.osbuild.loopback", 311 | "options": { 312 | "filename": "disk.img", 313 | "start": {"mpp-format-int": "{image.layout['efi'].start}"}, 314 | "size": {"mpp-format-int": "{image.layout['efi'].size}"} 315 | } 316 | }, 317 | "boot": { 318 | "type": "org.osbuild.loopback", 319 | "options": { 320 | "filename": "disk.img", 321 | "start": {"mpp-format-int": "{image.layout['boot'].start}"}, 322 | "size": {"mpp-format-int": "{image.layout['boot'].size}"} 323 | } 324 | }, 325 | "root": { 326 | "type": "org.osbuild.loopback", 327 | "options": { 328 | "filename": "disk.img", 329 | "start": {"mpp-format-int": "{image.layout['root'].start}"}, 330 | "size": {"mpp-format-int": "{image.layout['root'].size}"} 331 | } 332 | } 333 | }, 334 | "mounts": [ 335 | { 336 | "name": "root", 337 | "type": "org.osbuild.btrfs", 338 | "source": "root", 339 | "target": "/" 340 | }, 341 | { 342 | "name": "boot", 343 | "type": "org.osbuild.ext4", 344 | "source": "boot", 345 | "target": "/boot" 346 | }, 347 | { 348 | "name": "efi", 349 | "type": "org.osbuild.fat", 350 | "source": "efi", 351 | "target": "/boot/efi" 352 | } 353 | ] 354 | } 355 | ] 356 | }, 357 | { 358 | "name": "qcow2", 359 | "build": "name:build", 360 | "stages": [ 361 | { 362 | "type": "org.osbuild.qemu", 363 | "inputs": { 364 | "image": { 365 | "type": "org.osbuild.files", 366 | "origin": "org.osbuild.pipeline", 367 | "references": { 368 | "name:image": { 369 | "file": "disk.img" 370 | } 371 | } 372 | } 373 | }, 374 | "options": { 375 | "filename": "disk.qcow2", 376 | "format": { 377 | "type": "qcow2", 378 | "compat": "1.1" 379 | } 380 | } 381 | } 382 | ] 383 | } 384 | ] 385 | } 386 | -------------------------------------------------------------------------------- /files/etc/gdm/custom.conf: -------------------------------------------------------------------------------- 1 | ## custom.conf 2 | 3 | # GDM configuration storage 4 | 5 | [daemon] 6 | # Uncomment the line below to force the login screen to use Xorg 7 | # WaylandEnable=false 8 | AutomaticLoginEnable=True 9 | AutomaticLogin=fedora 10 | 11 | [security] 12 | 13 | [xdmcp] 14 | 15 | [chooser] 16 | 17 | [debug] 18 | # Uncomment the line below to turn on debugging 19 | #Enable=true 20 | -------------------------------------------------------------------------------- /files/var/lib/AccountsService/users/fedora: -------------------------------------------------------------------------------- 1 | [User] 2 | Session=phosh 3 | XSession=phosh 4 | PasswordHint= 5 | Icon=/var/lib/AccountsService/icons/guest 6 | SystemAccount=false 7 | -------------------------------------------------------------------------------- /include/fedora-build.mpp.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2", 3 | "pipelines": [ 4 | { 5 | "name": "build", 6 | "stages": [ 7 | { 8 | "type": "org.osbuild.rpm", 9 | "inputs": { 10 | "packages": { 11 | "type": "org.osbuild.files", 12 | "origin": "org.osbuild.source", 13 | "mpp-depsolve": { 14 | "architecture": "$arch", 15 | "module-platform-id": "rawhide", 16 | "baseurl": "https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/$arch/os/", 17 | "repos": [ 18 | { 19 | "id": "default", 20 | "baseurl": "https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/$arch/os/" 21 | } 22 | ], 23 | "packages": [ 24 | "btrfs-progs", 25 | "dnf", 26 | "dosfstools", 27 | "e2fsprogs", 28 | "efibootmgr", 29 | "genisoimage", 30 | "grub2-efi", 31 | "grub2-tools", 32 | "grub2-tools-extra", 33 | "grub2-tools-minimal", 34 | "isomd5sum", 35 | "lorax-templates-generic", 36 | "policycoreutils", 37 | "python3-iniparse", 38 | "qemu-img", 39 | "rpm-ostree", 40 | "selinux-policy-targeted", 41 | "shim", 42 | "squashfs-tools", 43 | "systemd", 44 | "tar", 45 | "xfsprogs", 46 | "xorriso", 47 | "xz" 48 | ] 49 | } 50 | } 51 | }, 52 | "options": { 53 | "gpgkeys": [ 54 | "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBF1RVqsBEADWMBqYv/G1r4PwyiPQCfg5fXFGXV1FCZ32qMi9gLUTv1CX7rYy\nH4Inj93oic+lt1kQ0kQCkINOwQczOkm6XDkEekmMrHknJpFLwrTK4AS28bYF2RjL\nM+QJ/dGXDMPYsP0tkLvoxaHr9WTRq89A+AmONcUAQIMJg3JxXAAafBi2UszUUEPI\nU35MyufFt2ePd1k/6hVAO8S2VT72TxXSY7Ha4X2J0pGzbqQ6Dq3AVzogsnoIi09A\n7fYutYZPVVAEGRUqavl0th8LyuZShASZ38CdAHBMvWV4bVZghd/wDV5ev3LXUE0o\nitLAqNSeiDJ3grKWN6v0qdU0l3Ya60sugABd3xaE+ROe8kDCy3WmAaO51Q880ZA2\niXOTJFObqkBTP9j9+ZeQ+KNE8SBoiH1EybKtBU8HmygZvu8ZC1TKUyL5gwGUJt8v\nergy5Bw3Q7av520sNGD3cIWr4fBAVYwdBoZT8RcsnU1PP67NmOGFcwSFJ/LpiOMC\npZ1IBvjOC7KyKEZY2/63kjW73mB7OHOd18BHtGVkA3QAdVlcSule/z68VOAy6bih\nE6mdxP28D4INsts8w6yr4G+3aEIN8u0qRQq66Ri5mOXTyle+ONudtfGg3U9lgicg\nz6oVk17RT0jV9uL6K41sGZ1sH/6yTXQKagdAYr3w1ix2L46JgzC+/+6SSwARAQAB\ntDFGZWRvcmEgKDMyKSA8ZmVkb3JhLTMyLXByaW1hcnlAZmVkb3JhcHJvamVjdC5v\ncmc+iQI4BBMBAgAiBQJdUVarAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK\nCRBsEwJtEslE0LdAD/wKdAMtfzr7O2y06/sOPnrb3D39Y2DXbB8y0iEmRdBL29Bq\n5btxwmAka7JZRJVFxPsOVqZ6KARjS0/oCBmJc0jCRANFCtM4UjVHTSsxrJfuPkel\nvrlNE9tcR6OCRpuj/PZgUa39iifF/FTUfDgh4Q91xiQoLqfBxOJzravQHoK9VzrM\nNTOu6J6l4zeGzY/ocj6DpT+5fdUO/3HgGFNiNYPC6GVzeiA3AAVR0sCyGENuqqdg\nwUxV3BIht05M5Wcdvxg1U9x5I3yjkLQw+idvX4pevTiCh9/0u+4g80cT/21Cxsdx\n7+DVHaewXbF87QQIcOAing0S5QE67r2uPVxmWy/56TKUqDoyP8SNsV62lT2jutsj\nLevNxUky011g5w3bc61UeaeKrrurFdRs+RwBVkXmtqm/i6g0ZTWZyWGO6gJd+HWA\nqY1NYiq4+cMvNLatmA2sOoCsRNmE9q6jM/ESVgaH8hSp8GcLuzt9/r4PZZGl5CvU\neldOiD221u8rzuHmLs4dsgwJJ9pgLT0cUAsOpbMPI0JpGIPQ2SG6yK7LmO6HFOxb\nAkz7IGUt0gy1MzPTyBvnB+WgD1I+IQXXsJbhP5+d+d3mOnqsd6oDM/grKBzrhoUe\noNadc9uzjqKlOrmrdIR3Bz38SSiWlde5fu6xPqJdmGZRNjXtcyJlbSPVDIloxw==\n=QWRO\n-----END PGP PUBLIC KEY BLOCK-----\n" 55 | ], 56 | "exclude": { 57 | "docs": true 58 | } 59 | } 60 | }, 61 | { 62 | "type": "org.osbuild.selinux", 63 | "options": { 64 | "file_contexts": "etc/selinux/targeted/contexts/files/file_contexts", 65 | "labels": { 66 | "/usr/bin/cp": "system_u:object_r:install_exec_t:s0", 67 | "/usr/bin/tar": "system_u:object_r:install_exec_t:s0" 68 | } 69 | } 70 | } 71 | ] 72 | } 73 | ] 74 | } 75 | --------------------------------------------------------------------------------