Repository: osbuild/osbuild
Pull request #673 (2021-06-14 15:53:46)

New stages: nginx.conf, chmod
Adding two new stages:

- `org.osbuild.chmod`: runs `chmod` on one or more files
- `org.osbuild.nginx.conf`: writes a minimal nginx configuration

These are intended to be used to set up a container that serves an edge commit and can be deployed on openshift.  The container should be able to run and serve content without any special privileges, which requires some file permission changes as well as changes to the default nginx configuration.

_Replaces #641_
Differences from original PR:
- `chown` stage removed as it's not necessary and a practical good solution isn't simple right now.
- The schema of the `chmod` stage makes paths a top-level (pattern) property.

henrywang: ostree repo should be located into `/usr/share/nginx/html/`, not into `/var/www/html/`.
achilleas-k: > ostree repo should be located into `/usr/share/nginx/html/`, not into `/var/www/html/`.

The default for the config stage is `/usr/share/nginx/html` so the PR here agrees with you.  I'll make sure to change it in composer as well for generating the manigest.
achilleas-k: Went with `ValueError` for the paths.  Other considerations were:
- [OSError](https://docs.python.org/3/library/exceptions.html#OSError): has arguments for filenames but I felt it wasn't appropriate to raise this type.  I think it's meant for system-level errors and I/O and our errors were that the path is invalid based on our own requirements, not the system's.
- [RuntimeError](https://docs.python.org/3/library/exceptions.html#RuntimeError): The fallback for when other types don't make sense.  I think ValueError is more appropriate though because the paths are valid types etc, but they're invalid values.

Patch:
diff --git a/osbuild/util/path.py b/osbuild/util/path.py
new file mode 100644
index 00000000..b25d29cc
--- /dev/null
+++ b/osbuild/util/path.py
@@ -0,0 +1,14 @@
+"""Path handling utility functions"""
+import os.path
+
+from .types import PathLike
+
+
+def in_tree(path: PathLike, tree: PathLike, must_exist=False) -> bool:
+    """Return whether the canonical location of 'path' is under 'tree'.
+    If 'must_exist' is True, the file must also exist for the check to succeed.
+    """
+    path = os.path.abspath(path)
+    if path.startswith(tree):
+        return not must_exist or os.path.exists(path)
+    return False
diff --git a/stages/org.osbuild.chmod b/stages/org.osbuild.chmod
new file mode 100755
index 00000000..72c529be
--- /dev/null
+++ b/stages/org.osbuild.chmod
@@ -0,0 +1,67 @@
+#!/usr/bin/python3
+"""
+Change file mode bits
+
+Change the file mode bits of one or more files or directories inside the tree.
+"""
+
+import os
+import subprocess
+import sys
+
+import osbuild.api
+from osbuild.util.path import in_tree
+
+SCHEMA = r"""
+"additionalProperties": false,
+"properties": {
+  "items": {
+    "type": "object",
+    "additionalProperties": false,
+    "patternProperties": {
+      "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": {
+        "type": "object",
+        "required": ["mode"],
+        "properties": {
+          "mode": {
+            "type": "string",
+            "description": "Symbolic or numeric octal mode"
+          },
+          "recursive": {
+            "type": "boolean",
+            "description": "Change modes recursively",
+            "default": false
+          }
+        }
+      }
+    }
+  }
+}
+"""
+
+
+def chmod(path: str, mode: str, recursive: bool):
+    arguments = [mode]
+    if recursive:
+        arguments.append("--recursive")
+    arguments.append("--")
+    arguments.append(path)
+
+    subprocess.run(["chmod", *arguments], check=True)
+
+
+def main(tree, options):
+    for path, cmdargs in options["items"].items():
+        mode = cmdargs["mode"]
+        recursive = cmdargs.get("recursive", False)
+        realpath = os.path.join(tree, path.lstrip("/"))
+        if not in_tree(realpath, tree, must_exist=True):
+            raise ValueError(f"path {path} not in tree")
+        chmod(realpath, mode, recursive)
+
+    return 0
+
+
+if __name__ == "__main__":
+    args = osbuild.api.arguments()
+    sys.exit(main(args["tree"], args["options"]))
diff --git a/stages/org.osbuild.nginx.conf b/stages/org.osbuild.nginx.conf
new file mode 100755
index 00000000..3c2ac8c3
--- /dev/null
+++ b/stages/org.osbuild.nginx.conf
@@ -0,0 +1,85 @@
+#!/usr/bin/python3
+"""
+Write nginx configuration
+"""
+
+import os
+import sys
+
+import osbuild.api
+from osbuild.util.path import in_tree
+
+SCHEMA = r"""
+"additionalProperties": false,
+"properties": {
+  "path": {
+    "type": "string",
+    "description": "Config file location",
+    "default": "/etc/nginx/nginx.conf",
+    "pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
+  },
+  "config": {
+    "type": "object",
+    "properties": {
+      "listen": {
+        "type": "string",
+        "description": "The address and/or port on which the server will accept requests",
+        "default": "*:80"
+      },
+      "root": {
+        "type": "string",
+        "description": "The root directory for requests",
+        "default": "/usr/share/nginx/html"
+      },
+      "pid": {
+        "type": "string",
+        "description": "File that will store the process ID of the main process",
+        "default": "/run/nginx.pid"
+      },
+      "daemon": {
+        "type": "boolean",
+        "description": "Whether nginx should become a daemon",
+        "default": true
+      }
+    }
+  }
+}
+"""
+
+def main(tree, options):
+    path = options.get("path", "etc/nginx/nginx.conf").lstrip("/")
+
+    config = options.get("config", {})
+    listen = config.get("listen", "*:80")
+    pid = config.get("pid", "/run/nginx.pid")
+    if config.get("daemon", True):
+        daemon = "on"
+    else:
+        daemon = "off"
+    root = config.get("root", "/usr/share/nginx/html")
+
+    target = os.path.join(tree, path)
+    if not in_tree(target, tree, must_exist=False):
+        raise ValueError(f"config file path {target} not in tree")
+
+    content = f"""events {{}}
+http {{
+  server {{
+    listen {listen};
+    root {root};
+  }}
+}}
+
+pid {pid};
+daemon {daemon};
+"""
+
+    with open(target, "w") as f:
+        f.write(content)
+
+    return 0
+
+
+if __name__ == "__main__":
+    args = osbuild.api.arguments()
+    sys.exit(main(args["tree"], args["options"]))


Test patch:
diff --git a/test/data/stages/chmod/a.json b/test/data/stages/chmod/a.json
new file mode 100644
index 00000000..7c8234a7
--- /dev/null
+++ b/test/data/stages/chmod/a.json
@@ -0,0 +1,156 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "packages": [
+            "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c",
+            "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce",
+            "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975",
+            "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0",
+            "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4",
+            "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7",
+            "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37",
+            "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b",
+            "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b",
+            "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9",
+            "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a",
+            "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531",
+            "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b",
+            "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3",
+            "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4",
+            "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32",
+            "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836",
+            "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5",
+            "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe",
+            "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00",
+            "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9",
+            "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095",
+            "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22",
+            "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d",
+            "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b",
+            "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88",
+            "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7",
+            "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896",
+            "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401",
+            "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef",
+            "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9",
+            "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590",
+            "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf",
+            "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927",
+            "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6",
+            "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63",
+            "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9",
+            "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60",
+            "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb",
+            "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e",
+            "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1",
+            "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b",
+            "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102",
+            "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659",
+            "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464",
+            "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0",
+            "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6",
+            "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b",
+            "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e",
+            "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808",
+            "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795",
+            "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf",
+            "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469",
+            "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee",
+            "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7",
+            "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849",
+            "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3",
+            "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd",
+            "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb",
+            "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8",
+            "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61",
+            "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280",
+            "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973",
+            "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2",
+            "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b",
+            "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338",
+            "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80"
+          ]
+        }
+      }
+    ]
+  },
+  "sources": {
+    "org.osbuild.files": {
+      "urls": {
+        "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/alternatives-1.11-6.fc32.x86_64.rpm",
+        "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/basesystem-11-9.fc32.noarch.rpm",
+        "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bash-5.0.11-2.fc32.x86_64.rpm",
+        "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bzip2-libs-1.0.8-2.fc32.x86_64.rpm",
+        "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/ca-certificates-2020.2.40-3.fc32.noarch.rpm",
+        "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-common-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-scripts-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/expat-2.2.8-2.fc32.x86_64.rpm",
+        "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-gpg-keys-32-1.noarch.rpm",
+        "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-32-1.noarch.rpm",
+        "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-common-32-1.noarch.rpm",
+        "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-repos-32-1.noarch.rpm",
+        "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/filesystem-3.14-2.fc32.x86_64.rpm",
+        "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gawk-5.0.1-7.fc32.x86_64.rpm",
+        "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gdbm-libs-1.18.1-3.fc32.x86_64.rpm",
+        "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-2.31-2.fc32.x86_64.rpm",
+        "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-all-langpacks-2.31-2.fc32.x86_64.rpm",
+        "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-common-2.31-2.fc32.x86_64.rpm",
+        "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gmp-6.1.2-13.fc32.x86_64.rpm",
+        "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/grep-3.3-4.fc32.x86_64.rpm",
+        "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/keyutils-libs-1.6-4.fc32.x86_64.rpm",
+        "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/krb5-libs-1.18-1.fc32.x86_64.rpm",
+        "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libacl-2.2.53-5.fc32.x86_64.rpm",
+        "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libattr-2.4.48-8.fc32.x86_64.rpm",
+        "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcap-2.26-7.fc32.x86_64.rpm",
+        "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcom_err-1.45.5-3.fc32.x86_64.rpm",
+        "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libffi-3.1-24.fc32.x86_64.rpm",
+        "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgcc-10.0.1-0.11.fc32.x86_64.rpm",
+        "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnsl2-1.2.0-6.20180605git4a062cf.fc32.x86_64.rpm",
+        "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libselinux-3.0-3.fc32.x86_64.rpm",
+        "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsepol-3.0-3.fc32.x86_64.rpm",
+        "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsigsegv-2.11-10.fc32.x86_64.rpm",
+        "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtasn1-4.16.0-1.fc32.x86_64.rpm",
+        "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtirpc-1.2.5-1.rc2.fc32.x86_64.rpm",
+        "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libuuid-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libverto-0.3.0-9.fc32.x86_64.rpm",
+        "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-compat-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mkpasswd-5.5.6-1.fc32.x86_64.rpm",
+        "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mpfr-4.0.2-3.fc32.x86_64.rpm",
+        "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-base-6.1-15.20191109.fc32.noarch.rpm",
+        "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-libs-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-libs-1.1.1d-7.fc32.x86_64.rpm",
+        "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-pkcs11-0.4.10-5.fc32.x86_64.rpm",
+        "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-trust-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre-8.44-1.fc32.x86_64.rpm",
+        "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-10.34-9.fc32.x86_64.rpm",
+        "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-syntax-10.34-9.fc32.noarch.rpm",
+        "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-pip-wheel-19.3.1-2.fc32.noarch.rpm",
+        "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-setuptools-wheel-41.6.0-2.fc32.noarch.rpm",
+        "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-unversioned-command-3.8.2-2.fc32.noarch.rpm",
+        "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-libs-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-pip-19.3.1-2.fc32.noarch.rpm",
+        "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-setuptools-41.6.0-2.fc32.noarch.rpm",
+        "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/r/readline-8.0-4.fc32.x86_64.rpm",
+        "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sed-4.5-5.fc32.x86_64.rpm",
+        "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/setup-2.13.6-2.fc32.noarch.rpm",
+        "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sqlite-libs-3.31.1-1.fc32.x86_64.rpm",
+        "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/tzdata-2019c-3.fc32.noarch.rpm",
+        "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/w/whois-nls-5.5.6-1.fc32.noarch.rpm",
+        "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/x/xz-libs-5.2.5-1.fc32.x86_64.rpm",
+        "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/z/zlib-1.2.11-21.fc32.x86_64.rpm"
+      }
+    }
+  }
+}
diff --git a/test/data/stages/chmod/a.mpp.json b/test/data/stages/chmod/a.mpp.json
new file mode 100644
index 00000000..ef0c87ac
--- /dev/null
+++ b/test/data/stages/chmod/a.mpp.json
@@ -0,0 +1,28 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "mpp-depsolve": {
+            "architecture": "x86_64",
+            "module-platform-id": "f32",
+            "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010",
+            "repos": [
+              {
+                "id": "default",
+                "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010"
+              }
+            ],
+            "packages": [
+              "coreutils"
+            ]
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/test/data/stages/chmod/b.json b/test/data/stages/chmod/b.json
new file mode 100644
index 00000000..5157e4dd
--- /dev/null
+++ b/test/data/stages/chmod/b.json
@@ -0,0 +1,166 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "packages": [
+            "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c",
+            "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce",
+            "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975",
+            "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0",
+            "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4",
+            "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7",
+            "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37",
+            "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b",
+            "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b",
+            "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9",
+            "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a",
+            "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531",
+            "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b",
+            "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3",
+            "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4",
+            "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32",
+            "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836",
+            "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5",
+            "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe",
+            "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00",
+            "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9",
+            "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095",
+            "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22",
+            "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d",
+            "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b",
+            "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88",
+            "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7",
+            "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896",
+            "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401",
+            "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef",
+            "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9",
+            "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590",
+            "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf",
+            "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927",
+            "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6",
+            "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63",
+            "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9",
+            "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60",
+            "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb",
+            "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e",
+            "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1",
+            "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b",
+            "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102",
+            "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659",
+            "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464",
+            "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0",
+            "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6",
+            "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b",
+            "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e",
+            "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808",
+            "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795",
+            "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf",
+            "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469",
+            "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee",
+            "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7",
+            "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849",
+            "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3",
+            "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd",
+            "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb",
+            "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8",
+            "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61",
+            "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280",
+            "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973",
+            "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2",
+            "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b",
+            "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338",
+            "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80"
+          ]
+        }
+      },
+      {
+        "name": "org.osbuild.chmod",
+        "options": {
+          "items": {
+            "/usr/bin/chmod": {
+              "mode": "a-x"
+            }
+          }
+        }
+      }
+    ]
+  },
+  "sources": {
+    "org.osbuild.files": {
+      "urls": {
+        "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/alternatives-1.11-6.fc32.x86_64.rpm",
+        "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/basesystem-11-9.fc32.noarch.rpm",
+        "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bash-5.0.11-2.fc32.x86_64.rpm",
+        "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bzip2-libs-1.0.8-2.fc32.x86_64.rpm",
+        "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/ca-certificates-2020.2.40-3.fc32.noarch.rpm",
+        "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-common-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-scripts-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/expat-2.2.8-2.fc32.x86_64.rpm",
+        "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-gpg-keys-32-1.noarch.rpm",
+        "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-32-1.noarch.rpm",
+        "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-common-32-1.noarch.rpm",
+        "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-repos-32-1.noarch.rpm",
+        "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/filesystem-3.14-2.fc32.x86_64.rpm",
+        "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gawk-5.0.1-7.fc32.x86_64.rpm",
+        "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gdbm-libs-1.18.1-3.fc32.x86_64.rpm",
+        "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-2.31-2.fc32.x86_64.rpm",
+        "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-all-langpacks-2.31-2.fc32.x86_64.rpm",
+        "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-common-2.31-2.fc32.x86_64.rpm",
+        "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gmp-6.1.2-13.fc32.x86_64.rpm",
+        "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/grep-3.3-4.fc32.x86_64.rpm",
+        "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/keyutils-libs-1.6-4.fc32.x86_64.rpm",
+        "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/krb5-libs-1.18-1.fc32.x86_64.rpm",
+        "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libacl-2.2.53-5.fc32.x86_64.rpm",
+        "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libattr-2.4.48-8.fc32.x86_64.rpm",
+        "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcap-2.26-7.fc32.x86_64.rpm",
+        "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcom_err-1.45.5-3.fc32.x86_64.rpm",
+        "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libffi-3.1-24.fc32.x86_64.rpm",
+        "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgcc-10.0.1-0.11.fc32.x86_64.rpm",
+        "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnsl2-1.2.0-6.20180605git4a062cf.fc32.x86_64.rpm",
+        "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libselinux-3.0-3.fc32.x86_64.rpm",
+        "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsepol-3.0-3.fc32.x86_64.rpm",
+        "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsigsegv-2.11-10.fc32.x86_64.rpm",
+        "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtasn1-4.16.0-1.fc32.x86_64.rpm",
+        "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtirpc-1.2.5-1.rc2.fc32.x86_64.rpm",
+        "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libuuid-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libverto-0.3.0-9.fc32.x86_64.rpm",
+        "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-compat-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mkpasswd-5.5.6-1.fc32.x86_64.rpm",
+        "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mpfr-4.0.2-3.fc32.x86_64.rpm",
+        "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-base-6.1-15.20191109.fc32.noarch.rpm",
+        "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-libs-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-libs-1.1.1d-7.fc32.x86_64.rpm",
+        "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-pkcs11-0.4.10-5.fc32.x86_64.rpm",
+        "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-trust-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre-8.44-1.fc32.x86_64.rpm",
+        "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-10.34-9.fc32.x86_64.rpm",
+        "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-syntax-10.34-9.fc32.noarch.rpm",
+        "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-pip-wheel-19.3.1-2.fc32.noarch.rpm",
+        "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-setuptools-wheel-41.6.0-2.fc32.noarch.rpm",
+        "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-unversioned-command-3.8.2-2.fc32.noarch.rpm",
+        "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-libs-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-pip-19.3.1-2.fc32.noarch.rpm",
+        "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-setuptools-41.6.0-2.fc32.noarch.rpm",
+        "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/r/readline-8.0-4.fc32.x86_64.rpm",
+        "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sed-4.5-5.fc32.x86_64.rpm",
+        "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/setup-2.13.6-2.fc32.noarch.rpm",
+        "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sqlite-libs-3.31.1-1.fc32.x86_64.rpm",
+        "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/tzdata-2019c-3.fc32.noarch.rpm",
+        "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/w/whois-nls-5.5.6-1.fc32.noarch.rpm",
+        "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/x/xz-libs-5.2.5-1.fc32.x86_64.rpm",
+        "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/z/zlib-1.2.11-21.fc32.x86_64.rpm"
+      }
+    }
+  }
+}
diff --git a/test/data/stages/chmod/b.mpp.json b/test/data/stages/chmod/b.mpp.json
new file mode 100644
index 00000000..eca38a41
--- /dev/null
+++ b/test/data/stages/chmod/b.mpp.json
@@ -0,0 +1,38 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "mpp-depsolve": {
+            "architecture": "x86_64",
+            "module-platform-id": "f32",
+            "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010",
+            "repos": [
+              {
+                "id": "default",
+                "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010"
+              }
+            ],
+            "packages": [
+              "coreutils"
+            ]
+          }
+        }
+      },
+      {
+        "name": "org.osbuild.chmod",
+        "options": {
+          "items": {
+            "/usr/bin/chmod": {
+              "mode": "a-x"
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/test/data/stages/chmod/diff.json b/test/data/stages/chmod/diff.json
new file mode 100644
index 00000000..f7e4e14f
--- /dev/null
+++ b/test/data/stages/chmod/diff.json
@@ -0,0 +1,12 @@
+{
+  "added_files": [],
+  "deleted_files": [],
+  "differences": {
+    "/usr/bin/chmod": {
+      "mode": [
+        33261,
+        33188
+      ]
+    }
+  }
+}
diff --git a/test/data/stages/nginx.conf/a.json b/test/data/stages/nginx.conf/a.json
new file mode 100644
index 00000000..cba2476e
--- /dev/null
+++ b/test/data/stages/nginx.conf/a.json
@@ -0,0 +1,296 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "packages": [
+            "sha256:705bdb96aab3a0f9d9e2ff48ead1208e2dbc1927d713d8637632af936235217b",
+            "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c",
+            "sha256:22d311f22902d592f72bd0fb4010a682f796e5a4698d5ea209848468a2d5aa96",
+            "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce",
+            "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975",
+            "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0",
+            "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4",
+            "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7",
+            "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37",
+            "sha256:862e75c10377098a9cc50407a0395e5f3a81d14b5b6fecfb3f223325c8867829",
+            "sha256:1aee865249b031e591a5e94d62d05b69ad1a6118a26adccf2dfd46b0002716e5",
+            "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b",
+            "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b",
+            "sha256:eaffaa8de8fd28ad124da12524a2ca5db86252404d70d66c7c42921dad6b69c1",
+            "sha256:fefa4162a563eba24714ac43874c508d1ba036afb5127c5d21bbcbeaf238a740",
+            "sha256:ed36d759746e75a2834866fbeaa783df397f8813cae2ed79fcc4d146656bf6a6",
+            "sha256:213c17fb822ffa50fad16989ed363aa023de106c6262ccc3f16e52a154b7133f",
+            "sha256:6fc1b9a27eeb368a98f50dba5fc514f20a5eb23f8e0ee7dd92c4051ef8b4a940",
+            "sha256:c132999a3f110029cd427f7578965ad558e91374637087d5230ee11c626ebcd4",
+            "sha256:61cae80187ef2924857fdfc48a240646d23b331482cf181e7d8c661b02c15949",
+            "sha256:187dd61be71efcca6adf9819a523d432217abb335afcb2b95ef27b72928aff4b",
+            "sha256:4f318cec61cb69fc233ba5505b7e24f679afdfb0b5defbaef507f1b471e7dbb5",
+            "sha256:af62d0611b995b9f2b2c7b4d4852e03e521d66979534871ccb5a71275a15518d",
+            "sha256:f3eb795f68c80ccf870f1d27f8fd019878db748c0c19275634c48cf5cea5bc46",
+            "sha256:99f87b4ec7c5852d45028f3eae65fc813f3ef107e128777f265b09a19ce262e0",
+            "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9",
+            "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a",
+            "sha256:458d5c1745ca1c0f428fc99308e8089df64024bb75e6528ba5a02fb11a2e8af7",
+            "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531",
+            "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b",
+            "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3",
+            "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4",
+            "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32",
+            "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836",
+            "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5",
+            "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe",
+            "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00",
+            "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9",
+            "sha256:9d4f1290565b852e56f9e9babc14b141b0283998121f78b0eb83dec367cf0abb",
+            "sha256:4bde0737a685e82c732b9a5d2daf08a0b6a66c0abd699defcfefc0c7bd2ecdf6",
+            "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095",
+            "sha256:53f1e8570b175e8b58895646df6d8068a7e1f3cb1bafdde714ddd038bcf91e85",
+            "sha256:f4eb6d332b9aea8d8ef0a6ea8dc2b073d6bf5f2599d64f24111d8da2ee82ad48",
+            "sha256:d3a64fcef3de79a97541b21c71ddd00d4cca9039c930bc660d6c5479eabf5f26",
+            "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22",
+            "sha256:56187c1c980cc0680f4dbc433ed2c8507e7dc9ab00000615b63ea08c086b7ab2",
+            "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d",
+            "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b",
+            "sha256:7d9bd2fe016ca8860e8fab4a430b3aae4c7b7bea55f8ccd7775ad470172e2886",
+            "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88",
+            "sha256:1830b4aa42ef492c13b62f63fe941970869ba19bd9abde4dea5c97f9e38ffd68",
+            "sha256:ac8b1fea0b678d7630033a8900be5641b934306961b39a29c79c6d72f34f7d1c",
+            "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7",
+            "sha256:b60670fdcf91b50d97720f601d92277efedbd690bd887000ccd9a46b3fa8b314",
+            "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896",
+            "sha256:7dfe1e8dac6d759479ae3dfd415fdd2662bbed9ff0f4da6093279efd1bacae31",
+            "sha256:688fcc0b7ef3c48cf7d602eefd7fefae7bcad4f0dc71c9fe9432c2ce5bbd9daa",
+            "sha256:942d06ec1f7033ea4c729b84ee09f5491481770efe10151ba581479ac7f3f9dc",
+            "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401",
+            "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef",
+            "sha256:5f0ae954b5955c86623e68cd81ccf8505a89f260003b8a3be6a93bd76f18452c",
+            "sha256:9bd5cb588664e8427bc8bebde0cdf5e14315916624ab6b1979dde60f6eae4278",
+            "sha256:20787251df57a108bbf9c40e30f041b71ac36c8a10900fb699e574ee7e259bf2",
+            "sha256:1c68255945533ed4e3368125bc46e19f3fe348d7ec507a85a35038dbb976003f",
+            "sha256:e740cc0a580639b887bda0039a779e750a32835be1fd8c64aa01183b4cbb98bf",
+            "sha256:884357540f4be2a74e608e2c7a31f2371ee3b4d29be2fe39a371c0b131d84aa6",
+            "sha256:ec6abd65541b5bded814de19c9d064e6c21e3d8b424dba7cb25b2fdc52d45a2b",
+            "sha256:a8ce7406c87f64972f0b70f1823c2aad05516c71fe375c6c97737459c2448825",
+            "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9",
+            "sha256:b3230630a471b806a9153669d187508350cdb2b368a68f8c439c82abad038c3f",
+            "sha256:ce8c1f1ce3cb2cc0166dcaad17f35e84278ec39ea9bf232e24130d3ff3271923",
+            "sha256:9ecc8aa9af05ba704cec879618afeda5ff92d8233811e2d6080aa02e0b5ceddf",
+            "sha256:df0a39eb6b91c4a8f481c22445cbbd88334bf5e0a6e1dd5fb240981eb031c4eb",
+            "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590",
+            "sha256:54cb827278ae474cbab1f05e0fbee0355bee2674d46a804f1c2b78ff80a48caa",
+            "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf",
+            "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927",
+            "sha256:ddad78d00b09c6c85d46c06dcba4c951f7f7dfc9b2dab195bf45aa3f5a1fdc41",
+            "sha256:32f8cbb3be91f589d569a2e737130f29c752f78eebc61e287af17f207e1b8c58",
+            "sha256:49bac21d5cdf863fccfcc32bf070e582d204706e35ee9f60b3e69df694bff87d",
+            "sha256:be998dfbcc9ca8e3021ac4f56ed723cfa3fa1517524e89ee0b636f623abe995f",
+            "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6",
+            "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63",
+            "sha256:fb06aa3d8059406a23694ddafe0ef340ca627dd68bf3f351f094de58ef30fb2c",
+            "sha256:f056ae5d2a41015896aa700dd5fa42ba58b8680986ba0044d4754c8981c9d104",
+            "sha256:f9ccea65ecf98f4dfac65d25986d08efa62a1d1c0db9db0a061e7408d6805a1a",
+            "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9",
+            "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60",
+            "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb",
+            "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e",
+            "sha256:ae219ad5ecc0233271c3fd61263f817c646eecece19a8f075e7aa4dd9ff8698e",
+            "sha256:44cfb58b368fba586981aa838a7f3974ac1d66d2b3b695f88d7b1d2e9c81a0b6",
+            "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1",
+            "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b",
+            "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102",
+            "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659",
+            "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464",
+            "sha256:c019d23ed2cb3ceb0ac9757a72c3e8b1d31f2a524b889e18049cc7d923bc9466",
+            "sha256:f26de0a5e7bdfcd117e2f665ea4cb110e5473f1e3c926850ed531ec6b946bd8e",
+            "sha256:360680e1da663cc0a99646d578dc00188b3a8384a27e07f7f01e3106cff91ce9",
+            "sha256:657909c0fc6fdf24f105a2579ea3a2fe17a73969339880809cc46dd6ff8d8773",
+            "sha256:ade8105796f5c1201a3efc8bcc654788cfc88c3815297b346845062a8c29cd59",
+            "sha256:d7b8b5815b72fb157de26579362383e357e026ae6ac2599c451fb336fe995555",
+            "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0",
+            "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6",
+            "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b",
+            "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e",
+            "sha256:4c80ade4ac0889316930a8d181ea43fa2d1b2f1a6a5703c22f2b3ba191346eec",
+            "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808",
+            "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795",
+            "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf",
+            "sha256:af992ad02594b68f17d2da41104a26aee41d02639edf22332d7dbb1fe9af58a5",
+            "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469",
+            "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee",
+            "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7",
+            "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849",
+            "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3",
+            "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd",
+            "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb",
+            "sha256:f1150f9e17beaef09aca0f291e10db8c3ee5566fbf4c929b7672334410fa74e9",
+            "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8",
+            "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61",
+            "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280",
+            "sha256:4dd6100e477d88a4987b6eebfddecff168f38c7ff47cbb12f2fecba1e87c10d9",
+            "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973",
+            "sha256:1de2be4fe5280ec3097305d9e671f5f2c768267f90d255edf2075eecb0c0afe9",
+            "sha256:78db9007c08fa51f177210e47343b8e733ce0751826abb357ca96429836588db",
+            "sha256:750da30da0289d5e2ad9ca297dda44e5ca18dbed0c3e0d4200379bc1818c22f3",
+            "sha256:97197411bca68cfba1ef6bab1fdd4b41c95ec71c36f1e67f525b963cf60598fd",
+            "sha256:5f156c2a950699d5cb9a21349cce049b3c8bfdcc4fcc780665fe2d3103f576c1",
+            "sha256:cc1be420582afb6360f380ff301c5e3d873f69fe1f7e00e4450bf2daa40ef9ff",
+            "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2",
+            "sha256:9976e6228a10fa2761f1265a2a7666578d79ca57819837e5d1fbecc53324f1b9",
+            "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b",
+            "sha256:ec12fef82d73314e3e4cb6e962f8de27e78989fa104dde0599a4480a53817647",
+            "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338",
+            "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80"
+          ]
+        }
+      }
+    ]
+  },
+  "sources": {
+    "org.osbuild.files": {
+      "urls": {
+        "sha256:705bdb96aab3a0f9d9e2ff48ead1208e2dbc1927d713d8637632af936235217b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/acl-2.2.53-5.fc32.x86_64.rpm",
+        "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/alternatives-1.11-6.fc32.x86_64.rpm",
+        "sha256:22d311f22902d592f72bd0fb4010a682f796e5a4698d5ea209848468a2d5aa96": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/audit-libs-3.0-0.19.20191104git1c2f876.fc32.x86_64.rpm",
+        "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/basesystem-11-9.fc32.noarch.rpm",
+        "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bash-5.0.11-2.fc32.x86_64.rpm",
+        "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bzip2-libs-1.0.8-2.fc32.x86_64.rpm",
+        "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/ca-certificates-2020.2.40-3.fc32.noarch.rpm",
+        "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-common-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:862e75c10377098a9cc50407a0395e5f3a81d14b5b6fecfb3f223325c8867829": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cracklib-2.9.6-22.fc32.x86_64.rpm",
+        "sha256:1aee865249b031e591a5e94d62d05b69ad1a6118a26adccf2dfd46b0002716e5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cracklib-dicts-2.9.6-22.fc32.x86_64.rpm",
+        "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-scripts-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:eaffaa8de8fd28ad124da12524a2ca5db86252404d70d66c7c42921dad6b69c1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cryptsetup-libs-2.3.0-1.fc32.x86_64.rpm",
+        "sha256:fefa4162a563eba24714ac43874c508d1ba036afb5127c5d21bbcbeaf238a740": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cyrus-sasl-lib-2.1.27-4.fc32.x86_64.rpm",
+        "sha256:ed36d759746e75a2834866fbeaa783df397f8813cae2ed79fcc4d146656bf6a6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/dbus-1.12.16-4.fc32.x86_64.rpm",
+        "sha256:213c17fb822ffa50fad16989ed363aa023de106c6262ccc3f16e52a154b7133f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/dbus-broker-22-1.fc32.x86_64.rpm",
+        "sha256:6fc1b9a27eeb368a98f50dba5fc514f20a5eb23f8e0ee7dd92c4051ef8b4a940": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/dbus-common-1.12.16-4.fc32.noarch.rpm",
+        "sha256:c132999a3f110029cd427f7578965ad558e91374637087d5230ee11c626ebcd4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/device-mapper-1.02.171-1.fc32.x86_64.rpm",
+        "sha256:61cae80187ef2924857fdfc48a240646d23b331482cf181e7d8c661b02c15949": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/device-mapper-libs-1.02.171-1.fc32.x86_64.rpm",
+        "sha256:187dd61be71efcca6adf9819a523d432217abb335afcb2b95ef27b72928aff4b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/diffutils-3.7-4.fc32.x86_64.rpm",
+        "sha256:4f318cec61cb69fc233ba5505b7e24f679afdfb0b5defbaef507f1b471e7dbb5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-debuginfod-client-0.179-1.fc32.x86_64.rpm",
+        "sha256:af62d0611b995b9f2b2c7b4d4852e03e521d66979534871ccb5a71275a15518d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-default-yama-scope-0.179-1.fc32.noarch.rpm",
+        "sha256:f3eb795f68c80ccf870f1d27f8fd019878db748c0c19275634c48cf5cea5bc46": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-libelf-0.179-1.fc32.x86_64.rpm",
+        "sha256:99f87b4ec7c5852d45028f3eae65fc813f3ef107e128777f265b09a19ce262e0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-libs-0.179-1.fc32.x86_64.rpm",
+        "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/expat-2.2.8-2.fc32.x86_64.rpm",
+        "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-gpg-keys-32-1.noarch.rpm",
+        "sha256:458d5c1745ca1c0f428fc99308e8089df64024bb75e6528ba5a02fb11a2e8af7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-logos-httpd-30.0.2-4.fc32.noarch.rpm",
+        "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-32-1.noarch.rpm",
+        "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-common-32-1.noarch.rpm",
+        "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-repos-32-1.noarch.rpm",
+        "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/filesystem-3.14-2.fc32.x86_64.rpm",
+        "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gawk-5.0.1-7.fc32.x86_64.rpm",
+        "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gdbm-libs-1.18.1-3.fc32.x86_64.rpm",
+        "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-2.31-2.fc32.x86_64.rpm",
+        "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-all-langpacks-2.31-2.fc32.x86_64.rpm",
+        "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-common-2.31-2.fc32.x86_64.rpm",
+        "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gmp-6.1.2-13.fc32.x86_64.rpm",
+        "sha256:9d4f1290565b852e56f9e9babc14b141b0283998121f78b0eb83dec367cf0abb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gnutls-3.6.13-1.fc32.x86_64.rpm",
+        "sha256:4bde0737a685e82c732b9a5d2daf08a0b6a66c0abd699defcfefc0c7bd2ecdf6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gperftools-libs-2.7-7.fc32.x86_64.rpm",
+        "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/grep-3.3-4.fc32.x86_64.rpm",
+        "sha256:53f1e8570b175e8b58895646df6d8068a7e1f3cb1bafdde714ddd038bcf91e85": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gzip-1.10-2.fc32.x86_64.rpm",
+        "sha256:f4eb6d332b9aea8d8ef0a6ea8dc2b073d6bf5f2599d64f24111d8da2ee82ad48": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/i/iptables-libs-1.8.4-7.fc32.x86_64.rpm",
+        "sha256:d3a64fcef3de79a97541b21c71ddd00d4cca9039c930bc660d6c5479eabf5f26": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/j/json-c-0.13.1-9.fc32.x86_64.rpm",
+        "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/keyutils-libs-1.6-4.fc32.x86_64.rpm",
+        "sha256:56187c1c980cc0680f4dbc433ed2c8507e7dc9ab00000615b63ea08c086b7ab2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/kmod-libs-27-1.fc32.x86_64.rpm",
+        "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/krb5-libs-1.18-1.fc32.x86_64.rpm",
+        "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libacl-2.2.53-5.fc32.x86_64.rpm",
+        "sha256:7d9bd2fe016ca8860e8fab4a430b3aae4c7b7bea55f8ccd7775ad470172e2886": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libargon2-20171227-4.fc32.x86_64.rpm",
+        "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libattr-2.4.48-8.fc32.x86_64.rpm",
+        "sha256:1830b4aa42ef492c13b62f63fe941970869ba19bd9abde4dea5c97f9e38ffd68": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libblkid-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:ac8b1fea0b678d7630033a8900be5641b934306961b39a29c79c6d72f34f7d1c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libbrotli-1.0.7-10.fc32.x86_64.rpm",
+        "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcap-2.26-7.fc32.x86_64.rpm",
+        "sha256:b60670fdcf91b50d97720f601d92277efedbd690bd887000ccd9a46b3fa8b314": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcap-ng-0.7.10-2.fc32.x86_64.rpm",
+        "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcom_err-1.45.5-3.fc32.x86_64.rpm",
+        "sha256:7dfe1e8dac6d759479ae3dfd415fdd2662bbed9ff0f4da6093279efd1bacae31": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcurl-7.69.1-1.fc32.x86_64.rpm",
+        "sha256:688fcc0b7ef3c48cf7d602eefd7fefae7bcad4f0dc71c9fe9432c2ce5bbd9daa": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libdb-5.3.28-40.fc32.x86_64.rpm",
+        "sha256:942d06ec1f7033ea4c729b84ee09f5491481770efe10151ba581479ac7f3f9dc": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libfdisk-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libffi-3.1-24.fc32.x86_64.rpm",
+        "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgcc-10.0.1-0.11.fc32.x86_64.rpm",
+        "sha256:5f0ae954b5955c86623e68cd81ccf8505a89f260003b8a3be6a93bd76f18452c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgcrypt-1.8.5-3.fc32.x86_64.rpm",
+        "sha256:9bd5cb588664e8427bc8bebde0cdf5e14315916624ab6b1979dde60f6eae4278": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgpg-error-1.36-3.fc32.x86_64.rpm",
+        "sha256:20787251df57a108bbf9c40e30f041b71ac36c8a10900fb699e574ee7e259bf2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libidn2-2.3.0-2.fc32.x86_64.rpm",
+        "sha256:1c68255945533ed4e3368125bc46e19f3fe348d7ec507a85a35038dbb976003f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libmnl-1.0.4-11.fc32.x86_64.rpm",
+        "sha256:e740cc0a580639b887bda0039a779e750a32835be1fd8c64aa01183b4cbb98bf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libmount-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:884357540f4be2a74e608e2c7a31f2371ee3b4d29be2fe39a371c0b131d84aa6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnetfilter_conntrack-1.0.7-4.fc32.x86_64.rpm",
+        "sha256:ec6abd65541b5bded814de19c9d064e6c21e3d8b424dba7cb25b2fdc52d45a2b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnfnetlink-1.0.1-17.fc32.x86_64.rpm",
+        "sha256:a8ce7406c87f64972f0b70f1823c2aad05516c71fe375c6c97737459c2448825": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnghttp2-1.40.0-2.fc32.x86_64.rpm",
+        "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnsl2-1.2.0-6.20180605git4a062cf.fc32.x86_64.rpm",
+        "sha256:b3230630a471b806a9153669d187508350cdb2b368a68f8c439c82abad038c3f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libpcap-1.9.1-3.fc32.x86_64.rpm",
+        "sha256:ce8c1f1ce3cb2cc0166dcaad17f35e84278ec39ea9bf232e24130d3ff3271923": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libpsl-0.21.0-4.fc32.x86_64.rpm",
+        "sha256:9ecc8aa9af05ba704cec879618afeda5ff92d8233811e2d6080aa02e0b5ceddf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libpwquality-1.4.2-2.fc32.x86_64.rpm",
+        "sha256:df0a39eb6b91c4a8f481c22445cbbd88334bf5e0a6e1dd5fb240981eb031c4eb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libseccomp-2.4.2-3.fc32.x86_64.rpm",
+        "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libselinux-3.0-3.fc32.x86_64.rpm",
+        "sha256:54cb827278ae474cbab1f05e0fbee0355bee2674d46a804f1c2b78ff80a48caa": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsemanage-3.0-3.fc32.x86_64.rpm",
+        "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsepol-3.0-3.fc32.x86_64.rpm",
+        "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsigsegv-2.11-10.fc32.x86_64.rpm",
+        "sha256:ddad78d00b09c6c85d46c06dcba4c951f7f7dfc9b2dab195bf45aa3f5a1fdc41": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsmartcols-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:32f8cbb3be91f589d569a2e737130f29c752f78eebc61e287af17f207e1b8c58": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libssh-0.9.3-2.fc32.x86_64.rpm",
+        "sha256:49bac21d5cdf863fccfcc32bf070e582d204706e35ee9f60b3e69df694bff87d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libssh-config-0.9.3-2.fc32.noarch.rpm",
+        "sha256:be998dfbcc9ca8e3021ac4f56ed723cfa3fa1517524e89ee0b636f623abe995f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libstdc++-10.0.1-0.11.fc32.x86_64.rpm",
+        "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtasn1-4.16.0-1.fc32.x86_64.rpm",
+        "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtirpc-1.2.5-1.rc2.fc32.x86_64.rpm",
+        "sha256:fb06aa3d8059406a23694ddafe0ef340ca627dd68bf3f351f094de58ef30fb2c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libunistring-0.9.10-7.fc32.x86_64.rpm",
+        "sha256:f056ae5d2a41015896aa700dd5fa42ba58b8680986ba0044d4754c8981c9d104": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libunwind-1.3.1-5.fc32.x86_64.rpm",
+        "sha256:f9ccea65ecf98f4dfac65d25986d08efa62a1d1c0db9db0a061e7408d6805a1a": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libutempter-1.1.6-18.fc32.x86_64.rpm",
+        "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libuuid-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libverto-0.3.0-9.fc32.x86_64.rpm",
+        "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-compat-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:ae219ad5ecc0233271c3fd61263f817c646eecece19a8f075e7aa4dd9ff8698e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxkbcommon-0.10.0-2.fc32.x86_64.rpm",
+        "sha256:44cfb58b368fba586981aa838a7f3974ac1d66d2b3b695f88d7b1d2e9c81a0b6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/lz4-libs-1.9.1-2.fc32.x86_64.rpm",
+        "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mkpasswd-5.5.6-1.fc32.x86_64.rpm",
+        "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mpfr-4.0.2-3.fc32.x86_64.rpm",
+        "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-base-6.1-15.20191109.fc32.noarch.rpm",
+        "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-libs-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:c019d23ed2cb3ceb0ac9757a72c3e8b1d31f2a524b889e18049cc7d923bc9466": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nettle-3.5.1-5.fc32.x86_64.rpm",
+        "sha256:f26de0a5e7bdfcd117e2f665ea4cb110e5473f1e3c926850ed531ec6b946bd8e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nginx-1.16.1-2.fc32.x86_64.rpm",
+        "sha256:360680e1da663cc0a99646d578dc00188b3a8384a27e07f7f01e3106cff91ce9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nginx-filesystem-1.16.1-2.fc32.noarch.rpm",
+        "sha256:657909c0fc6fdf24f105a2579ea3a2fe17a73969339880809cc46dd6ff8d8773": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nginx-mimetypes-2.1.48-7.fc32.noarch.rpm",
+        "sha256:ade8105796f5c1201a3efc8bcc654788cfc88c3815297b346845062a8c29cd59": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openldap-2.4.47-4.fc32.x86_64.rpm",
+        "sha256:d7b8b5815b72fb157de26579362383e357e026ae6ac2599c451fb336fe995555": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-1.1.1d-7.fc32.x86_64.rpm",
+        "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-libs-1.1.1d-7.fc32.x86_64.rpm",
+        "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-pkcs11-0.4.10-5.fc32.x86_64.rpm",
+        "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-trust-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:4c80ade4ac0889316930a8d181ea43fa2d1b2f1a6a5703c22f2b3ba191346eec": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pam-1.3.1-24.fc32.x86_64.rpm",
+        "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre-8.44-1.fc32.x86_64.rpm",
+        "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-10.34-9.fc32.x86_64.rpm",
+        "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-syntax-10.34-9.fc32.noarch.rpm",
+        "sha256:af992ad02594b68f17d2da41104a26aee41d02639edf22332d7dbb1fe9af58a5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/publicsuffix-list-dafsa-20190417-3.fc32.noarch.rpm",
+        "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-pip-wheel-19.3.1-2.fc32.noarch.rpm",
+        "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-setuptools-wheel-41.6.0-2.fc32.noarch.rpm",
+        "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-unversioned-command-3.8.2-2.fc32.noarch.rpm",
+        "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-libs-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-pip-19.3.1-2.fc32.noarch.rpm",
+        "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-setuptools-41.6.0-2.fc32.noarch.rpm",
+        "sha256:f1150f9e17beaef09aca0f291e10db8c3ee5566fbf4c929b7672334410fa74e9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/q/qrencode-libs-4.0.2-5.fc32.x86_64.rpm",
+        "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/r/readline-8.0-4.fc32.x86_64.rpm",
+        "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sed-4.5-5.fc32.x86_64.rpm",
+        "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/setup-2.13.6-2.fc32.noarch.rpm",
+        "sha256:4dd6100e477d88a4987b6eebfddecff168f38c7ff47cbb12f2fecba1e87c10d9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/shadow-utils-4.8.1-2.fc32.x86_64.rpm",
+        "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sqlite-libs-3.31.1-1.fc32.x86_64.rpm",
+        "sha256:1de2be4fe5280ec3097305d9e671f5f2c768267f90d255edf2075eecb0c0afe9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-245.4-1.fc32.x86_64.rpm",
+        "sha256:78db9007c08fa51f177210e47343b8e733ce0751826abb357ca96429836588db": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-libs-245.4-1.fc32.x86_64.rpm",
+        "sha256:750da30da0289d5e2ad9ca297dda44e5ca18dbed0c3e0d4200379bc1818c22f3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-pam-245.4-1.fc32.x86_64.rpm",
+        "sha256:97197411bca68cfba1ef6bab1fdd4b41c95ec71c36f1e67f525b963cf60598fd": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-rpm-macros-245.4-1.fc32.noarch.rpm",
+        "sha256:5f156c2a950699d5cb9a21349cce049b3c8bfdcc4fcc780665fe2d3103f576c1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/trousers-0.3.13-13.fc31.x86_64.rpm",
+        "sha256:cc1be420582afb6360f380ff301c5e3d873f69fe1f7e00e4450bf2daa40ef9ff": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/trousers-lib-0.3.13-13.fc31.x86_64.rpm",
+        "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/tzdata-2019c-3.fc32.noarch.rpm",
+        "sha256:9976e6228a10fa2761f1265a2a7666578d79ca57819837e5d1fbecc53324f1b9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/u/util-linux-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/w/whois-nls-5.5.6-1.fc32.noarch.rpm",
+        "sha256:ec12fef82d73314e3e4cb6e962f8de27e78989fa104dde0599a4480a53817647": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/x/xkeyboard-config-2.29-1.fc32.noarch.rpm",
+        "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/x/xz-libs-5.2.5-1.fc32.x86_64.rpm",
+        "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/z/zlib-1.2.11-21.fc32.x86_64.rpm"
+      }
+    }
+  }
+}
diff --git a/test/data/stages/nginx.conf/a.mpp.json b/test/data/stages/nginx.conf/a.mpp.json
new file mode 100644
index 00000000..9544b8d4
--- /dev/null
+++ b/test/data/stages/nginx.conf/a.mpp.json
@@ -0,0 +1,28 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "mpp-depsolve": {
+            "architecture": "x86_64",
+            "module-platform-id": "f32",
+            "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010",
+            "repos": [
+              {
+                "id": "default",
+                "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010"
+              }
+            ],
+            "packages": [
+              "nginx"
+            ]
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/test/data/stages/nginx.conf/b.json b/test/data/stages/nginx.conf/b.json
new file mode 100644
index 00000000..034e772f
--- /dev/null
+++ b/test/data/stages/nginx.conf/b.json
@@ -0,0 +1,308 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "packages": [
+            "sha256:705bdb96aab3a0f9d9e2ff48ead1208e2dbc1927d713d8637632af936235217b",
+            "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c",
+            "sha256:22d311f22902d592f72bd0fb4010a682f796e5a4698d5ea209848468a2d5aa96",
+            "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce",
+            "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975",
+            "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0",
+            "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4",
+            "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7",
+            "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37",
+            "sha256:862e75c10377098a9cc50407a0395e5f3a81d14b5b6fecfb3f223325c8867829",
+            "sha256:1aee865249b031e591a5e94d62d05b69ad1a6118a26adccf2dfd46b0002716e5",
+            "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b",
+            "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b",
+            "sha256:eaffaa8de8fd28ad124da12524a2ca5db86252404d70d66c7c42921dad6b69c1",
+            "sha256:fefa4162a563eba24714ac43874c508d1ba036afb5127c5d21bbcbeaf238a740",
+            "sha256:ed36d759746e75a2834866fbeaa783df397f8813cae2ed79fcc4d146656bf6a6",
+            "sha256:213c17fb822ffa50fad16989ed363aa023de106c6262ccc3f16e52a154b7133f",
+            "sha256:6fc1b9a27eeb368a98f50dba5fc514f20a5eb23f8e0ee7dd92c4051ef8b4a940",
+            "sha256:c132999a3f110029cd427f7578965ad558e91374637087d5230ee11c626ebcd4",
+            "sha256:61cae80187ef2924857fdfc48a240646d23b331482cf181e7d8c661b02c15949",
+            "sha256:187dd61be71efcca6adf9819a523d432217abb335afcb2b95ef27b72928aff4b",
+            "sha256:4f318cec61cb69fc233ba5505b7e24f679afdfb0b5defbaef507f1b471e7dbb5",
+            "sha256:af62d0611b995b9f2b2c7b4d4852e03e521d66979534871ccb5a71275a15518d",
+            "sha256:f3eb795f68c80ccf870f1d27f8fd019878db748c0c19275634c48cf5cea5bc46",
+            "sha256:99f87b4ec7c5852d45028f3eae65fc813f3ef107e128777f265b09a19ce262e0",
+            "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9",
+            "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a",
+            "sha256:458d5c1745ca1c0f428fc99308e8089df64024bb75e6528ba5a02fb11a2e8af7",
+            "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531",
+            "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b",
+            "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3",
+            "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4",
+            "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32",
+            "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836",
+            "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5",
+            "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe",
+            "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00",
+            "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9",
+            "sha256:9d4f1290565b852e56f9e9babc14b141b0283998121f78b0eb83dec367cf0abb",
+            "sha256:4bde0737a685e82c732b9a5d2daf08a0b6a66c0abd699defcfefc0c7bd2ecdf6",
+            "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095",
+            "sha256:53f1e8570b175e8b58895646df6d8068a7e1f3cb1bafdde714ddd038bcf91e85",
+            "sha256:f4eb6d332b9aea8d8ef0a6ea8dc2b073d6bf5f2599d64f24111d8da2ee82ad48",
+            "sha256:d3a64fcef3de79a97541b21c71ddd00d4cca9039c930bc660d6c5479eabf5f26",
+            "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22",
+            "sha256:56187c1c980cc0680f4dbc433ed2c8507e7dc9ab00000615b63ea08c086b7ab2",
+            "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d",
+            "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b",
+            "sha256:7d9bd2fe016ca8860e8fab4a430b3aae4c7b7bea55f8ccd7775ad470172e2886",
+            "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88",
+            "sha256:1830b4aa42ef492c13b62f63fe941970869ba19bd9abde4dea5c97f9e38ffd68",
+            "sha256:ac8b1fea0b678d7630033a8900be5641b934306961b39a29c79c6d72f34f7d1c",
+            "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7",
+            "sha256:b60670fdcf91b50d97720f601d92277efedbd690bd887000ccd9a46b3fa8b314",
+            "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896",
+            "sha256:7dfe1e8dac6d759479ae3dfd415fdd2662bbed9ff0f4da6093279efd1bacae31",
+            "sha256:688fcc0b7ef3c48cf7d602eefd7fefae7bcad4f0dc71c9fe9432c2ce5bbd9daa",
+            "sha256:942d06ec1f7033ea4c729b84ee09f5491481770efe10151ba581479ac7f3f9dc",
+            "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401",
+            "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef",
+            "sha256:5f0ae954b5955c86623e68cd81ccf8505a89f260003b8a3be6a93bd76f18452c",
+            "sha256:9bd5cb588664e8427bc8bebde0cdf5e14315916624ab6b1979dde60f6eae4278",
+            "sha256:20787251df57a108bbf9c40e30f041b71ac36c8a10900fb699e574ee7e259bf2",
+            "sha256:1c68255945533ed4e3368125bc46e19f3fe348d7ec507a85a35038dbb976003f",
+            "sha256:e740cc0a580639b887bda0039a779e750a32835be1fd8c64aa01183b4cbb98bf",
+            "sha256:884357540f4be2a74e608e2c7a31f2371ee3b4d29be2fe39a371c0b131d84aa6",
+            "sha256:ec6abd65541b5bded814de19c9d064e6c21e3d8b424dba7cb25b2fdc52d45a2b",
+            "sha256:a8ce7406c87f64972f0b70f1823c2aad05516c71fe375c6c97737459c2448825",
+            "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9",
+            "sha256:b3230630a471b806a9153669d187508350cdb2b368a68f8c439c82abad038c3f",
+            "sha256:ce8c1f1ce3cb2cc0166dcaad17f35e84278ec39ea9bf232e24130d3ff3271923",
+            "sha256:9ecc8aa9af05ba704cec879618afeda5ff92d8233811e2d6080aa02e0b5ceddf",
+            "sha256:df0a39eb6b91c4a8f481c22445cbbd88334bf5e0a6e1dd5fb240981eb031c4eb",
+            "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590",
+            "sha256:54cb827278ae474cbab1f05e0fbee0355bee2674d46a804f1c2b78ff80a48caa",
+            "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf",
+            "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927",
+            "sha256:ddad78d00b09c6c85d46c06dcba4c951f7f7dfc9b2dab195bf45aa3f5a1fdc41",
+            "sha256:32f8cbb3be91f589d569a2e737130f29c752f78eebc61e287af17f207e1b8c58",
+            "sha256:49bac21d5cdf863fccfcc32bf070e582d204706e35ee9f60b3e69df694bff87d",
+            "sha256:be998dfbcc9ca8e3021ac4f56ed723cfa3fa1517524e89ee0b636f623abe995f",
+            "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6",
+            "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63",
+            "sha256:fb06aa3d8059406a23694ddafe0ef340ca627dd68bf3f351f094de58ef30fb2c",
+            "sha256:f056ae5d2a41015896aa700dd5fa42ba58b8680986ba0044d4754c8981c9d104",
+            "sha256:f9ccea65ecf98f4dfac65d25986d08efa62a1d1c0db9db0a061e7408d6805a1a",
+            "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9",
+            "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60",
+            "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb",
+            "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e",
+            "sha256:ae219ad5ecc0233271c3fd61263f817c646eecece19a8f075e7aa4dd9ff8698e",
+            "sha256:44cfb58b368fba586981aa838a7f3974ac1d66d2b3b695f88d7b1d2e9c81a0b6",
+            "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1",
+            "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b",
+            "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102",
+            "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659",
+            "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464",
+            "sha256:c019d23ed2cb3ceb0ac9757a72c3e8b1d31f2a524b889e18049cc7d923bc9466",
+            "sha256:f26de0a5e7bdfcd117e2f665ea4cb110e5473f1e3c926850ed531ec6b946bd8e",
+            "sha256:360680e1da663cc0a99646d578dc00188b3a8384a27e07f7f01e3106cff91ce9",
+            "sha256:657909c0fc6fdf24f105a2579ea3a2fe17a73969339880809cc46dd6ff8d8773",
+            "sha256:ade8105796f5c1201a3efc8bcc654788cfc88c3815297b346845062a8c29cd59",
+            "sha256:d7b8b5815b72fb157de26579362383e357e026ae6ac2599c451fb336fe995555",
+            "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0",
+            "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6",
+            "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b",
+            "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e",
+            "sha256:4c80ade4ac0889316930a8d181ea43fa2d1b2f1a6a5703c22f2b3ba191346eec",
+            "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808",
+            "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795",
+            "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf",
+            "sha256:af992ad02594b68f17d2da41104a26aee41d02639edf22332d7dbb1fe9af58a5",
+            "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469",
+            "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee",
+            "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7",
+            "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849",
+            "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3",
+            "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd",
+            "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb",
+            "sha256:f1150f9e17beaef09aca0f291e10db8c3ee5566fbf4c929b7672334410fa74e9",
+            "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8",
+            "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61",
+            "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280",
+            "sha256:4dd6100e477d88a4987b6eebfddecff168f38c7ff47cbb12f2fecba1e87c10d9",
+            "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973",
+            "sha256:1de2be4fe5280ec3097305d9e671f5f2c768267f90d255edf2075eecb0c0afe9",
+            "sha256:78db9007c08fa51f177210e47343b8e733ce0751826abb357ca96429836588db",
+            "sha256:750da30da0289d5e2ad9ca297dda44e5ca18dbed0c3e0d4200379bc1818c22f3",
+            "sha256:97197411bca68cfba1ef6bab1fdd4b41c95ec71c36f1e67f525b963cf60598fd",
+            "sha256:5f156c2a950699d5cb9a21349cce049b3c8bfdcc4fcc780665fe2d3103f576c1",
+            "sha256:cc1be420582afb6360f380ff301c5e3d873f69fe1f7e00e4450bf2daa40ef9ff",
+            "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2",
+            "sha256:9976e6228a10fa2761f1265a2a7666578d79ca57819837e5d1fbecc53324f1b9",
+            "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b",
+            "sha256:ec12fef82d73314e3e4cb6e962f8de27e78989fa104dde0599a4480a53817647",
+            "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338",
+            "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80"
+          ]
+        }
+      },
+      {
+        "name": "org.osbuild.nginx.conf",
+        "options": {
+          "path": "/etc/nginx-test.conf",
+          "config": {
+            "listen": "*:8080",
+            "root": "/var/www/html",
+            "pid": "/var/run/nginx.pid",
+            "daemon": false
+          }
+        }
+      }
+    ]
+  },
+  "sources": {
+    "org.osbuild.files": {
+      "urls": {
+        "sha256:705bdb96aab3a0f9d9e2ff48ead1208e2dbc1927d713d8637632af936235217b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/acl-2.2.53-5.fc32.x86_64.rpm",
+        "sha256:c574c5432197acbe08ea15c7837be7577cd0b49902a3e65227792f051d73ce5c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/alternatives-1.11-6.fc32.x86_64.rpm",
+        "sha256:22d311f22902d592f72bd0fb4010a682f796e5a4698d5ea209848468a2d5aa96": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/a/audit-libs-3.0-0.19.20191104git1c2f876.fc32.x86_64.rpm",
+        "sha256:a346990bb07adca8c323a15f31b093ef6e639bde6ca84adf1a3abebc4dc9adce": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/basesystem-11-9.fc32.noarch.rpm",
+        "sha256:7a97e71cd552285ead303d07dbb6417403edf45c0a531e02cf4ebfb0efda4975": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bash-5.0.11-2.fc32.x86_64.rpm",
+        "sha256:842f7a38be2e8dbb14eff3ede4091db214ebe241e1fde7a128e88c4e686b63b0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/b/bzip2-libs-1.0.8-2.fc32.x86_64.rpm",
+        "sha256:73f6a9108f7d5ec3cd89c31dbbaa874ae28cd5cb443ef69700a1218903ee2fc4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/ca-certificates-2020.2.40-3.fc32.noarch.rpm",
+        "sha256:7023687eb65baa56a9b4c3ffde1e439b3d41b03ac4ad35a1a1fc3903464548f7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:5323eb8d89b2d0c905a633513e04ca7df633c21eec288ee8c50f3f5170534e37": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/coreutils-common-8.32-3.fc32.1.x86_64.rpm",
+        "sha256:862e75c10377098a9cc50407a0395e5f3a81d14b5b6fecfb3f223325c8867829": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cracklib-2.9.6-22.fc32.x86_64.rpm",
+        "sha256:1aee865249b031e591a5e94d62d05b69ad1a6118a26adccf2dfd46b0002716e5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cracklib-dicts-2.9.6-22.fc32.x86_64.rpm",
+        "sha256:3f8dcae27ad3609b7de298d0ca8d34a2790b9898f5f1b03f3f9f8784374e307b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:b821e9e8bf66abacaed4a386f9ed8ffa17f4f8be3db55e1ac31d52ba2d1faa1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/crypto-policies-scripts-20191128-5.gitcd267a5.fc32.noarch.rpm",
+        "sha256:eaffaa8de8fd28ad124da12524a2ca5db86252404d70d66c7c42921dad6b69c1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cryptsetup-libs-2.3.0-1.fc32.x86_64.rpm",
+        "sha256:fefa4162a563eba24714ac43874c508d1ba036afb5127c5d21bbcbeaf238a740": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/c/cyrus-sasl-lib-2.1.27-4.fc32.x86_64.rpm",
+        "sha256:ed36d759746e75a2834866fbeaa783df397f8813cae2ed79fcc4d146656bf6a6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/dbus-1.12.16-4.fc32.x86_64.rpm",
+        "sha256:213c17fb822ffa50fad16989ed363aa023de106c6262ccc3f16e52a154b7133f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/dbus-broker-22-1.fc32.x86_64.rpm",
+        "sha256:6fc1b9a27eeb368a98f50dba5fc514f20a5eb23f8e0ee7dd92c4051ef8b4a940": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/dbus-common-1.12.16-4.fc32.noarch.rpm",
+        "sha256:c132999a3f110029cd427f7578965ad558e91374637087d5230ee11c626ebcd4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/device-mapper-1.02.171-1.fc32.x86_64.rpm",
+        "sha256:61cae80187ef2924857fdfc48a240646d23b331482cf181e7d8c661b02c15949": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/device-mapper-libs-1.02.171-1.fc32.x86_64.rpm",
+        "sha256:187dd61be71efcca6adf9819a523d432217abb335afcb2b95ef27b72928aff4b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/d/diffutils-3.7-4.fc32.x86_64.rpm",
+        "sha256:4f318cec61cb69fc233ba5505b7e24f679afdfb0b5defbaef507f1b471e7dbb5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-debuginfod-client-0.179-1.fc32.x86_64.rpm",
+        "sha256:af62d0611b995b9f2b2c7b4d4852e03e521d66979534871ccb5a71275a15518d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-default-yama-scope-0.179-1.fc32.noarch.rpm",
+        "sha256:f3eb795f68c80ccf870f1d27f8fd019878db748c0c19275634c48cf5cea5bc46": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-libelf-0.179-1.fc32.x86_64.rpm",
+        "sha256:99f87b4ec7c5852d45028f3eae65fc813f3ef107e128777f265b09a19ce262e0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/elfutils-libs-0.179-1.fc32.x86_64.rpm",
+        "sha256:8fc2ae85f242105987d8fa7f05e4fa19358a7c81dff5fa163cf021eb6b9905e9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/e/expat-2.2.8-2.fc32.x86_64.rpm",
+        "sha256:09fea9af8b695af862b19c1a8fbe1b1e8854257825ee4f663f67b3782a75d58a": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-gpg-keys-32-1.noarch.rpm",
+        "sha256:458d5c1745ca1c0f428fc99308e8089df64024bb75e6528ba5a02fb11a2e8af7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-logos-httpd-30.0.2-4.fc32.noarch.rpm",
+        "sha256:1f2ba0fc562864ad1bea31a42da124030fc188d23a84d144be616c2d066e1531": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-32-1.noarch.rpm",
+        "sha256:a1835a7929d3c1613f3890caef878e9bdf857dcc0f63eb4d63a1140370b3f21b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-release-common-32-1.noarch.rpm",
+        "sha256:21e3fd914a3bcc65b79de022782967903c55a4aed9a3c7d3464bc2fef32d02b3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/fedora-repos-32-1.noarch.rpm",
+        "sha256:1110261787146443e089955912255d99daf7ba042c3743e13648a9eb3d80ceb4": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/f/filesystem-3.14-2.fc32.x86_64.rpm",
+        "sha256:d0e5d0104cf20c8dd332053a5903aab9b7fdadb84b35a1bfb3a6456f3399eb32": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gawk-5.0.1-7.fc32.x86_64.rpm",
+        "sha256:9899cfd32ada2537693af30b60051da21c6264b0d0db51ba709fceb179d4c836": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gdbm-libs-1.18.1-3.fc32.x86_64.rpm",
+        "sha256:dc9c0401522bcf73fe5a692184c141b214947ad83364be97de0413ab46b712e5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-2.31-2.fc32.x86_64.rpm",
+        "sha256:129d919e55c09edecaa8edd0fd4058dbf7460aaae5d1c5625ca11f6df7defefe": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-all-langpacks-2.31-2.fc32.x86_64.rpm",
+        "sha256:e80533822e2a892345b869395b2c17c0bcc98d3c3c47787da30123096835db00": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/glibc-common-2.31-2.fc32.x86_64.rpm",
+        "sha256:178e4470a6dfca84ec133932606737bfe167094560bf473940504c511354ddc9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gmp-6.1.2-13.fc32.x86_64.rpm",
+        "sha256:9d4f1290565b852e56f9e9babc14b141b0283998121f78b0eb83dec367cf0abb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gnutls-3.6.13-1.fc32.x86_64.rpm",
+        "sha256:4bde0737a685e82c732b9a5d2daf08a0b6a66c0abd699defcfefc0c7bd2ecdf6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gperftools-libs-2.7-7.fc32.x86_64.rpm",
+        "sha256:759165656ac8141b0c0ada230c258ffcd4516c4c8d132d7fbaf762cd5a5e4095": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/grep-3.3-4.fc32.x86_64.rpm",
+        "sha256:53f1e8570b175e8b58895646df6d8068a7e1f3cb1bafdde714ddd038bcf91e85": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/g/gzip-1.10-2.fc32.x86_64.rpm",
+        "sha256:f4eb6d332b9aea8d8ef0a6ea8dc2b073d6bf5f2599d64f24111d8da2ee82ad48": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/i/iptables-libs-1.8.4-7.fc32.x86_64.rpm",
+        "sha256:d3a64fcef3de79a97541b21c71ddd00d4cca9039c930bc660d6c5479eabf5f26": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/j/json-c-0.13.1-9.fc32.x86_64.rpm",
+        "sha256:ccc3cb2dcb7a534361cc911f27ff4e869902a150b68e236cf6eb209a99d4ee22": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/keyutils-libs-1.6-4.fc32.x86_64.rpm",
+        "sha256:56187c1c980cc0680f4dbc433ed2c8507e7dc9ab00000615b63ea08c086b7ab2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/kmod-libs-27-1.fc32.x86_64.rpm",
+        "sha256:e2b2dddbce49fab5f01ba75fae8796ab7c9fd8280c652f78d06a2644246bd16d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/k/krb5-libs-1.18-1.fc32.x86_64.rpm",
+        "sha256:f826f984b23d0701a1b72de5882b9c0e7bae87ef49d9edfea156654f489f8b2b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libacl-2.2.53-5.fc32.x86_64.rpm",
+        "sha256:7d9bd2fe016ca8860e8fab4a430b3aae4c7b7bea55f8ccd7775ad470172e2886": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libargon2-20171227-4.fc32.x86_64.rpm",
+        "sha256:65e0cfe367ae4d54cf8bf509cb05e063c9eb6f2fea8dadcf746cdd85adc31d88": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libattr-2.4.48-8.fc32.x86_64.rpm",
+        "sha256:1830b4aa42ef492c13b62f63fe941970869ba19bd9abde4dea5c97f9e38ffd68": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libblkid-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:ac8b1fea0b678d7630033a8900be5641b934306961b39a29c79c6d72f34f7d1c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libbrotli-1.0.7-10.fc32.x86_64.rpm",
+        "sha256:1bc0542cf8a3746d0fe25c397a93c8206963f1f287246c6fb864eedfc9ffa4a7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcap-2.26-7.fc32.x86_64.rpm",
+        "sha256:b60670fdcf91b50d97720f601d92277efedbd690bd887000ccd9a46b3fa8b314": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcap-ng-0.7.10-2.fc32.x86_64.rpm",
+        "sha256:4494013eac1ad337673f084242aa8ebffb4a149243475b448bee9266401f2896": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcom_err-1.45.5-3.fc32.x86_64.rpm",
+        "sha256:7dfe1e8dac6d759479ae3dfd415fdd2662bbed9ff0f4da6093279efd1bacae31": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libcurl-7.69.1-1.fc32.x86_64.rpm",
+        "sha256:688fcc0b7ef3c48cf7d602eefd7fefae7bcad4f0dc71c9fe9432c2ce5bbd9daa": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libdb-5.3.28-40.fc32.x86_64.rpm",
+        "sha256:942d06ec1f7033ea4c729b84ee09f5491481770efe10151ba581479ac7f3f9dc": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libfdisk-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:86c87a4169bdf75c6d3a2f11d3a7e20b6364b2db97c74bc7eb62b1b22bc54401": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libffi-3.1-24.fc32.x86_64.rpm",
+        "sha256:48cf5ab32f6af8f2283d4d4834e8dd262aa412be7ea07c2292483e150d614bef": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgcc-10.0.1-0.11.fc32.x86_64.rpm",
+        "sha256:5f0ae954b5955c86623e68cd81ccf8505a89f260003b8a3be6a93bd76f18452c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgcrypt-1.8.5-3.fc32.x86_64.rpm",
+        "sha256:9bd5cb588664e8427bc8bebde0cdf5e14315916624ab6b1979dde60f6eae4278": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libgpg-error-1.36-3.fc32.x86_64.rpm",
+        "sha256:20787251df57a108bbf9c40e30f041b71ac36c8a10900fb699e574ee7e259bf2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libidn2-2.3.0-2.fc32.x86_64.rpm",
+        "sha256:1c68255945533ed4e3368125bc46e19f3fe348d7ec507a85a35038dbb976003f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libmnl-1.0.4-11.fc32.x86_64.rpm",
+        "sha256:e740cc0a580639b887bda0039a779e750a32835be1fd8c64aa01183b4cbb98bf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libmount-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:884357540f4be2a74e608e2c7a31f2371ee3b4d29be2fe39a371c0b131d84aa6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnetfilter_conntrack-1.0.7-4.fc32.x86_64.rpm",
+        "sha256:ec6abd65541b5bded814de19c9d064e6c21e3d8b424dba7cb25b2fdc52d45a2b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnfnetlink-1.0.1-17.fc32.x86_64.rpm",
+        "sha256:a8ce7406c87f64972f0b70f1823c2aad05516c71fe375c6c97737459c2448825": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnghttp2-1.40.0-2.fc32.x86_64.rpm",
+        "sha256:3b4ce7fc4e2778758881feedf6ea19b65e99aa3672e19a7dd62977efe3b910b9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libnsl2-1.2.0-6.20180605git4a062cf.fc32.x86_64.rpm",
+        "sha256:b3230630a471b806a9153669d187508350cdb2b368a68f8c439c82abad038c3f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libpcap-1.9.1-3.fc32.x86_64.rpm",
+        "sha256:ce8c1f1ce3cb2cc0166dcaad17f35e84278ec39ea9bf232e24130d3ff3271923": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libpsl-0.21.0-4.fc32.x86_64.rpm",
+        "sha256:9ecc8aa9af05ba704cec879618afeda5ff92d8233811e2d6080aa02e0b5ceddf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libpwquality-1.4.2-2.fc32.x86_64.rpm",
+        "sha256:df0a39eb6b91c4a8f481c22445cbbd88334bf5e0a6e1dd5fb240981eb031c4eb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libseccomp-2.4.2-3.fc32.x86_64.rpm",
+        "sha256:0e59b422e35eee975ba68e6e4de022c8f145feec7e169e86e0244d2fdad2f590": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libselinux-3.0-3.fc32.x86_64.rpm",
+        "sha256:54cb827278ae474cbab1f05e0fbee0355bee2674d46a804f1c2b78ff80a48caa": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsemanage-3.0-3.fc32.x86_64.rpm",
+        "sha256:29e2b62e9e63f25139a6863c863c3b534660440d7dec0c985807302a6895dbaf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsepol-3.0-3.fc32.x86_64.rpm",
+        "sha256:942707884401498938fba6e2439dc923d4e2d81f4bac205f4e73d458e9879927": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsigsegv-2.11-10.fc32.x86_64.rpm",
+        "sha256:ddad78d00b09c6c85d46c06dcba4c951f7f7dfc9b2dab195bf45aa3f5a1fdc41": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libsmartcols-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:32f8cbb3be91f589d569a2e737130f29c752f78eebc61e287af17f207e1b8c58": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libssh-0.9.3-2.fc32.x86_64.rpm",
+        "sha256:49bac21d5cdf863fccfcc32bf070e582d204706e35ee9f60b3e69df694bff87d": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libssh-config-0.9.3-2.fc32.noarch.rpm",
+        "sha256:be998dfbcc9ca8e3021ac4f56ed723cfa3fa1517524e89ee0b636f623abe995f": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libstdc++-10.0.1-0.11.fc32.x86_64.rpm",
+        "sha256:052d04c9a6697c6e5aa546546ae5058d547fc4a4f474d2805a3e45dbf69193c6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtasn1-4.16.0-1.fc32.x86_64.rpm",
+        "sha256:c1d754773972b5f4ca157c0afa45d6767901d965a91f381660c72740d682df63": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libtirpc-1.2.5-1.rc2.fc32.x86_64.rpm",
+        "sha256:fb06aa3d8059406a23694ddafe0ef340ca627dd68bf3f351f094de58ef30fb2c": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libunistring-0.9.10-7.fc32.x86_64.rpm",
+        "sha256:f056ae5d2a41015896aa700dd5fa42ba58b8680986ba0044d4754c8981c9d104": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libunwind-1.3.1-5.fc32.x86_64.rpm",
+        "sha256:f9ccea65ecf98f4dfac65d25986d08efa62a1d1c0db9db0a061e7408d6805a1a": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libutempter-1.1.6-18.fc32.x86_64.rpm",
+        "sha256:8402d3aabfc02c16f3789f3f93338dbee2448db8a49956002b83aff5390922d9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libuuid-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:ed84414c9b2190d3026f58db78dffd8bc3a9ad40311cb0adb8ff8e3c7c06ca60": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libverto-0.3.0-9.fc32.x86_64.rpm",
+        "sha256:7c1a229f4a36ac8b077e0514f68f311229652121528b0f8a2a7434c618276dcb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:cb4fb9b3733440ea15b3309c88d9471c4165aa7b71b4dbc5d0fb5bfcd97b2f2e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxcrypt-compat-4.4.16-1.fc32.x86_64.rpm",
+        "sha256:ae219ad5ecc0233271c3fd61263f817c646eecece19a8f075e7aa4dd9ff8698e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/libxkbcommon-0.10.0-2.fc32.x86_64.rpm",
+        "sha256:44cfb58b368fba586981aa838a7f3974ac1d66d2b3b695f88d7b1d2e9c81a0b6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/l/lz4-libs-1.9.1-2.fc32.x86_64.rpm",
+        "sha256:640afe5b9d499c9a7efc1d23cce8c54e3e3704d92eb7e7a93a048f97d1e983e1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mkpasswd-5.5.6-1.fc32.x86_64.rpm",
+        "sha256:2b098bc6f8004270ee9eac9f63980b364b5fe19394dc73a230b3c846cf488b1b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/m/mpfr-4.0.2-3.fc32.x86_64.rpm",
+        "sha256:b2e862283ac97b1d8b1ede2034ead452ac7dc4ff308593306275b1b0ae5b4102": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:25fc5d288536e1973436da38357690575ed58e03e17ca48d2b3840364f830659": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-base-6.1-15.20191109.fc32.noarch.rpm",
+        "sha256:04152a3a608d022a58830c0e3dac0818e2c060469b0f41d8d731f659981a4464": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/ncurses-libs-6.1-15.20191109.fc32.x86_64.rpm",
+        "sha256:c019d23ed2cb3ceb0ac9757a72c3e8b1d31f2a524b889e18049cc7d923bc9466": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nettle-3.5.1-5.fc32.x86_64.rpm",
+        "sha256:f26de0a5e7bdfcd117e2f665ea4cb110e5473f1e3c926850ed531ec6b946bd8e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nginx-1.16.1-2.fc32.x86_64.rpm",
+        "sha256:360680e1da663cc0a99646d578dc00188b3a8384a27e07f7f01e3106cff91ce9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nginx-filesystem-1.16.1-2.fc32.noarch.rpm",
+        "sha256:657909c0fc6fdf24f105a2579ea3a2fe17a73969339880809cc46dd6ff8d8773": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/n/nginx-mimetypes-2.1.48-7.fc32.noarch.rpm",
+        "sha256:ade8105796f5c1201a3efc8bcc654788cfc88c3815297b346845062a8c29cd59": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openldap-2.4.47-4.fc32.x86_64.rpm",
+        "sha256:d7b8b5815b72fb157de26579362383e357e026ae6ac2599c451fb336fe995555": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-1.1.1d-7.fc32.x86_64.rpm",
+        "sha256:ad6d7d9767e05978b14a39c08dba59ddc4396584576df194f77ed310a0816ae0": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-libs-1.1.1d-7.fc32.x86_64.rpm",
+        "sha256:3f2cb9092d6f55f84dd9eacd5359dfb354772e5f38308328027c7758f4a06fb6": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/o/openssl-pkcs11-0.4.10-5.fc32.x86_64.rpm",
+        "sha256:dedd37a96262c35763ab2dcbc19838f5cc39a2a3a392a650a80bd6d5ae42ff8b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:3589b982ac0c2f5f6b47cde5cb7ec33c2c01d756dabf8c4ca64f6d9d0d78b35e": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/p11-kit-trust-0.23.20-1.fc32.x86_64.rpm",
+        "sha256:4c80ade4ac0889316930a8d181ea43fa2d1b2f1a6a5703c22f2b3ba191346eec": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pam-1.3.1-24.fc32.x86_64.rpm",
+        "sha256:933bdb4cc6e14b2ebb1ca76c14ca176c13d271a2d1e88632f237392777d11808": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre-8.44-1.fc32.x86_64.rpm",
+        "sha256:6794fe48004c0403c29fc779b49f0fbea436123b96783a2df225eef2f0858795": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-10.34-9.fc32.x86_64.rpm",
+        "sha256:5db7c0e949bd9172b9645237e72f6139d4ffcf14defad487262b8ad25b427daf": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/pcre2-syntax-10.34-9.fc32.noarch.rpm",
+        "sha256:af992ad02594b68f17d2da41104a26aee41d02639edf22332d7dbb1fe9af58a5": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/publicsuffix-list-dafsa-20190417-3.fc32.noarch.rpm",
+        "sha256:a7da5590635b9c19afafc7dd247604194a5ce7d8d863dc600b8cb86accb2e469": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-pip-wheel-19.3.1-2.fc32.noarch.rpm",
+        "sha256:7dd93baaf69a8004ae2cd3b9e6660b862d0b6f399d53c05a27a48a2e276ef1ee": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-setuptools-wheel-41.6.0-2.fc32.noarch.rpm",
+        "sha256:0b290954bc2868b3dfc976b2b7a13ea8aeade76eeafc17674ff8e721049a5bf7": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python-unversioned-command-3.8.2-2.fc32.noarch.rpm",
+        "sha256:b79bb6af3e1650ba812c8affe42772ea566b164222a7d4d8e2f7efa867dc6849": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:ec58d03c60386bfb8aed2af3d2a49f8c6e5ccb4d3fd592cf75fef3342be137c3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-libs-3.8.2-2.fc32.x86_64.rpm",
+        "sha256:9ade87dbb32f27e7f38ec981002ddc5a2189cc6f5ad5f24bada3b71cfa9167fd": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-pip-19.3.1-2.fc32.noarch.rpm",
+        "sha256:724cca9919bb7b0183b030aca216d4d51de70bf35c2cc5e8325a21a52ca15ceb": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/p/python3-setuptools-41.6.0-2.fc32.noarch.rpm",
+        "sha256:f1150f9e17beaef09aca0f291e10db8c3ee5566fbf4c929b7672334410fa74e9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/q/qrencode-libs-4.0.2-5.fc32.x86_64.rpm",
+        "sha256:f1c79039f4c6ba0fad88590c2cb55a96489449c334a671cc18c0bf424a4548b8": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/r/readline-8.0-4.fc32.x86_64.rpm",
+        "sha256:ffe5076b9018efdb1612c487f637af39ab6c3c79ec37311978935cfa357ecd61": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sed-4.5-5.fc32.x86_64.rpm",
+        "sha256:a336d2e77255df4783f52762e44efcc8d77b044a3e39c7f577d5535212848280": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/setup-2.13.6-2.fc32.noarch.rpm",
+        "sha256:4dd6100e477d88a4987b6eebfddecff168f38c7ff47cbb12f2fecba1e87c10d9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/shadow-utils-4.8.1-2.fc32.x86_64.rpm",
+        "sha256:7f555c600b35ba798d8c0a63e30a1a12e917231730e1a44f48161ba0fe4b5973": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/sqlite-libs-3.31.1-1.fc32.x86_64.rpm",
+        "sha256:1de2be4fe5280ec3097305d9e671f5f2c768267f90d255edf2075eecb0c0afe9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-245.4-1.fc32.x86_64.rpm",
+        "sha256:78db9007c08fa51f177210e47343b8e733ce0751826abb357ca96429836588db": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-libs-245.4-1.fc32.x86_64.rpm",
+        "sha256:750da30da0289d5e2ad9ca297dda44e5ca18dbed0c3e0d4200379bc1818c22f3": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-pam-245.4-1.fc32.x86_64.rpm",
+        "sha256:97197411bca68cfba1ef6bab1fdd4b41c95ec71c36f1e67f525b963cf60598fd": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/s/systemd-rpm-macros-245.4-1.fc32.noarch.rpm",
+        "sha256:5f156c2a950699d5cb9a21349cce049b3c8bfdcc4fcc780665fe2d3103f576c1": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/trousers-0.3.13-13.fc31.x86_64.rpm",
+        "sha256:cc1be420582afb6360f380ff301c5e3d873f69fe1f7e00e4450bf2daa40ef9ff": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/trousers-lib-0.3.13-13.fc31.x86_64.rpm",
+        "sha256:2db6d80760ab0e99f4e9c9816615e4f06b967bbb23a8c8c941b3f2d4b5f176c2": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/t/tzdata-2019c-3.fc32.noarch.rpm",
+        "sha256:9976e6228a10fa2761f1265a2a7666578d79ca57819837e5d1fbecc53324f1b9": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/u/util-linux-2.35.1-7.fc32.x86_64.rpm",
+        "sha256:d027a3ff0712e3e98d7d2358f8c526fb8d143b2386c353aadcc27199cffe125b": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/w/whois-nls-5.5.6-1.fc32.noarch.rpm",
+        "sha256:ec12fef82d73314e3e4cb6e962f8de27e78989fa104dde0599a4480a53817647": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/x/xkeyboard-config-2.29-1.fc32.noarch.rpm",
+        "sha256:84702d6395a9577c1a268184f123cfd4b15bc2287f01033625ba388a34ec2338": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/x/xz-libs-5.2.5-1.fc32.x86_64.rpm",
+        "sha256:c0fff40dc1092e18ed3e608bc6143c89a0d7775b9e0553319bb2caca7d324d80": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010/Packages/z/zlib-1.2.11-21.fc32.x86_64.rpm"
+      }
+    }
+  }
+}
diff --git a/test/data/stages/nginx.conf/b.mpp.json b/test/data/stages/nginx.conf/b.mpp.json
new file mode 100644
index 00000000..dcb0c758
--- /dev/null
+++ b/test/data/stages/nginx.conf/b.mpp.json
@@ -0,0 +1,40 @@
+{
+  "pipeline": {
+    "stages": [
+      {
+        "name": "org.osbuild.rpm",
+        "options": {
+          "gpgkeys": [
+            "-----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"
+          ],
+          "mpp-depsolve": {
+            "architecture": "x86_64",
+            "module-platform-id": "f32",
+            "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010",
+            "repos": [
+              {
+                "id": "default",
+                "baseurl": "https://rpmrepo.osbuild.org/v1/anon/f32/f32-x86_64-fedora-20201010"
+              }
+            ],
+            "packages": [
+              "nginx"
+            ]
+          }
+        }
+      },
+      {
+        "name": "org.osbuild.nginx.conf",
+        "options": {
+          "path": "/etc/nginx-test.conf",
+          "config": {
+            "listen": "*:8080",
+            "root": "/var/www/html",
+            "pid": "/var/run/nginx.pid",
+            "daemon": false
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/test/data/stages/nginx.conf/diff.json b/test/data/stages/nginx.conf/diff.json
new file mode 100644
index 00000000..a9fa1a44
--- /dev/null
+++ b/test/data/stages/nginx.conf/diff.json
@@ -0,0 +1,5 @@
+{
+  "added_files": ["/etc/nginx-test.conf"],
+  "deleted_files": [],
+  "differences": {}
+}
diff --git a/test/mod/test_util_path.py b/test/mod/test_util_path.py
new file mode 100644
index 00000000..537b0375
--- /dev/null
+++ b/test/mod/test_util_path.py
@@ -0,0 +1,20 @@
+#
+# Tests for the 'osbuild.util.path' module
+#
+import os
+
+from osbuild.util import path
+
+def test_in_tree():
+    cases = {
+        ("/tmp/file", "/tmp", False): True,  # Simple, non-existent
+        ("/etc", "/", True): True,  # Simple, should exist
+        ("/tmp/../../file", "/tmp", False): False,  # Relative path escape
+        ("/very/fake/directory/and/file", "/very", False): True,  # non-existent, OK
+        ("/very/fake/directory/and/file", "/very", True): False,  # non-existent, not-OK
+        ("../..", os.path.abspath("."), False): False,  # Relative path escape from cwd
+        (".", os.path.abspath("../.."), False): True,  # cwd inside parent of parent
+    }
+
+    for args, expected in cases.items():
+        assert path.in_tree(*args) == expected, args