Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: osbuild/images
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.124.0
Choose a base ref
...
head repository: osbuild/images
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.125.0
Choose a head ref
  • 11 commits
  • 45 files changed
  • 4 contributors

Commits on Mar 17, 2025

  1. manifest: rename OS pipeline ExtraBasePackages to BasePackages

    In the OS pipeline, the word Extra in ExtraBasePackages is a bit
    misleading.  The property is used to add the static image type package
    set to the pipeline.  They are 'extra' in the sense that they are
    included in addition to the auto-selected packages required by the
    pipeline and its customizations, but IMO the wording makes it seem that
    they are a package set that's included from some other process separate
    from the image type and pipeline.
    achilleas-k authored and thozza committed Mar 17, 2025
    Copy the full SHA
    9065b21 View commit details
  2. manifest: collect packages into separate slices in OS pipeline

    Collect packages into separate slices to have a better idea of what
    we're combining.  This makes it easier to see which list of packages
    goes into which transaction of the package set chain.
    
    This change has no effect on generated manifests.
    achilleas-k authored and thozza committed Mar 17, 2025
    Copy the full SHA
    9abaa86 View commit details
  3. manifest: remove OSTreeRef check for partition table packages

    OSTree-based images don't have a partition table so the check is
    redundant and potentially confusing.
    The comment about LVM is also very outdated and originates from the time
    when lvm packages were added based on a plain 'HasLVM' boolean on the
    pipeline.
    
    The code is pretty self-explanatory now.
    
    This change has no effect on generated manifests.
    achilleas-k authored and thozza committed Mar 17, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    bd7ec24 View commit details
  4. manifest: depsolve OS packages in three transactions

    The OS package set chain now consists of three transactions (up from
    two).
    The transactions contain the following packages:
    1. Platform, Environment, Partition Table, and Base (static Image Type)
       packages, *with* Excludes from the Base package set.
        - Weak dependency installation is controlled by the Image Type's
          ImageConfig.
    2. Customization packages: These are packages that are selected based on
       ImageConfig and Blueprint customizations (e.g. 'chrony' for NTP,
       'firewalld' for firewall configuration).
        - Weak dependency installation is *disabled*.
    3. Blueprint (Workload) packages: This is the same as the previous
       second transaction in the chain.
    
    This change solves the problem where a package selected by a
    customization could conflict with a base package set exclude.
    
    See linked issue for a full description of the problem.
    
    This change has no effect on generated manifests.
    
    Fixes #1323
    achilleas-k authored and thozza committed Mar 17, 2025
    Copy the full SHA
    8b77961 View commit details
  5. test: add new firewall build config

    Add a new config file called 'firewall' that sets firewall
    customizations.  Build the configuration in CI with the minimal-raw
    image which explicitly excludes the firewalld package on Fedora 43.
    
    Building this configuration with Fedora 43 currently fails because
    firewalld is not part of the base image.
    achilleas-k authored and thozza committed Mar 17, 2025
    Copy the full SHA
    d3fdfa9 View commit details
  6. manifest: firewall customization installs firewalld

    Make sure firewalld is available in the image.  Note that
    org.osbuild.firewall runs 'firewall-offline-cmd' in the os tree using
    chroot, so we don't need a build package for this.
    achilleas-k authored and thozza committed Mar 17, 2025
    Copy the full SHA
    db3f68b View commit details
  7. data/repositories/rhel-8*.json: don't include the "auxiliary key 2"

    The `osbuild/images` go module supports distro cross-building. This
    means that you can build images for a different distribution than the
    one you are running on. For example, you can build a RHEL-8 image on
    RHEL-9. Nevertheless, the supported combinations are controlled by the
    end users of the `osbuild/images` go module.
    
    The `rhel-8*.json` repository definitions have been modified to contain
    only the [`4096R/199e2f91fd431d51 (2009-10-22): Red Hat, Inc. (release
    key 2) <security@redhat.com>`](
    https://security.access.redhat.com/data/fd431d51.txt) as specified at
    [Red Hat Product Signing keys page](
    https://access.redhat.com/security/team/key). The
    [`4096R/F76F66C3D4082792 (2018-06-27): Red Hat, Inc. (auxiliary key 2)
    <security@redhat.com>`](
    https://security.access.redhat.com/data/d4082792.txt) is completely
    omitted from the `rhel-8*.json` repository definitions. The reasons
    are:
     * The `Red Hat, Inc. (auxiliary key 2)` is signed only with RSA-SHA1,
       which is not allowed by the default crypto-policy on RHEL-9 and
       newer. This means that importing such key when bootstrapping the
       RHEL-8 buildroot on RHEL-9 and newer would fail.
     * The `Red Hat, Inc. (auxiliary key 2)` is not commonly used for
       signing the RHEL-8 RPMs. It is a disaster recovery key that would
       be used in the unlikely event Red Hat loses the ability to sign with
       the master hardware keys. The key file uses a sub-key, that would be
       most probably used to sign RPMs in this unlikely event, so that the
       main key can be stored offline. Previously, we used to ship only the
       auxiliary key, without the sub-key in `rhel-8*.json` configurations
       on RHEL-9, because only the sub-key's signature was causing issues
       when importing it on RHEL-9 with the default crypto-policy. However,
       given the purpose of the sub-key, there's no reason to include the
       main key in the `rhel-8*.json` configurations without the sub-key.
     * None of the projects that use the repository definitions in the
       `osbuild/images` go module (`osbuild-composer`, `image-builder-cli`,
       etc.) are being released or updated in RHEL-8. The `rhel-8*.json`
       repository definitions are used only for cross-building RHEL-8
       images on RHEL-9 and newer.
    
    Signed-off-by: Tomáš Hozza <thozza@redhat.com>
    thozza authored and achilleas-k committed Mar 17, 2025
    Copy the full SHA
    6d56359 View commit details
  8. schutzfile: Update osbuild dependency commit ID

    schutzbot authored and thozza committed Mar 17, 2025
    Copy the full SHA
    fdd34c6 View commit details
  9. rhel8: extract package sets into a single YAML file

    Move the rhel9 packages into yaml. Similar to e.g. PR#1300.
    The existing structure in code was tried to be preserved.
    
    Tested via:
    ```console
    $ ./tools/gen-manifests-diff
    no diff found to main
    ```
    
    Build on top of #1300
    mvo5 authored and achilleas-k committed Mar 17, 2025
    Copy the full SHA
    6b93c3e View commit details
  10. rhel9: extract package sets into a single YAML file

    Move the rhel9 packages into yaml. Similar to e.g. PR#1300.
    The existing structure in code was tried to be preserved.
    
    Tested via:
    ```console
    $ ./tools/gen-manifests-diff
    no diff found to main
    ```
    mvo5 authored and supakeen committed Mar 17, 2025
    Copy the full SHA
    7eed579 View commit details
  11. rhel7: extract package sets into a single YAML file

    Move hte rhel7 packages into yaml.
    
    This was validate by running `./tools/gen-manifest-diff`.
    mvo5 authored and achilleas-k committed Mar 17, 2025
    Copy the full SHA
    1317e8a View commit details
Showing with 2,409 additions and 2,691 deletions.
  1. +4 −4 Schutzfile
  2. +1 −1 cmd/osbuild-playground/my-container.go
  3. +11 −0 data/repositories/README.md
  4. +8 −8 data/repositories/rhel-8.10.json
  5. +8 −8 data/repositories/rhel-8.4.json
  6. +8 −8 data/repositories/rhel-8.5.json
  7. +8 −8 data/repositories/rhel-8.6.json
  8. +8 −8 data/repositories/rhel-8.7.json
  9. +8 −8 data/repositories/rhel-8.8.json
  10. +8 −8 data/repositories/rhel-8.9.json
  11. +8 −8 data/repositories/rhel-8.json
  12. +6 −4 pkg/distro/distro_test.go
  13. +1 −1 pkg/distro/fedora/images.go
  14. +1 −1 pkg/distro/imagetype_test.go
  15. +157 −0 pkg/distro/packagesets/rhel-7/package_sets.yaml
  16. +1,047 −0 pkg/distro/packagesets/rhel-8/package_sets.yaml
  17. +968 −0 pkg/distro/packagesets/rhel-9/package_sets.yaml
  18. +1 −1 pkg/distro/rhel/images.go
  19. +1 −59 pkg/distro/rhel/rhel7/ami.go
  20. +1 −56 pkg/distro/rhel/rhel7/azure.go
  21. +4 −8 pkg/distro/rhel/rhel7/package_sets.go
  22. +1 −59 pkg/distro/rhel/rhel7/qcow2.go
  23. +6 −111 pkg/distro/rhel/rhel8/ami.go
  24. +5 −150 pkg/distro/rhel/rhel8/azure.go
  25. +7 −266 pkg/distro/rhel/rhel8/bare_metal.go
  26. +7 −238 pkg/distro/rhel/rhel8/edge.go
  27. +2 −87 pkg/distro/rhel/rhel8/gce.go
  28. +4 −79 pkg/distro/rhel/rhel8/package_sets.go
  29. +3 −109 pkg/distro/rhel/rhel8/qcow2.go
  30. +0 −56 pkg/distro/rhel/rhel8/sap.go
  31. +1 −109 pkg/distro/rhel/rhel8/ubi.go
  32. +2 −21 pkg/distro/rhel/rhel8/vmdk.go
  33. +6 −106 pkg/distro/rhel/rhel9/ami.go
  34. +3 −97 pkg/distro/rhel/rhel9/azure.go
  35. +5 −301 pkg/distro/rhel/rhel9/bare_metal.go
  36. +5 −212 pkg/distro/rhel/rhel9/edge.go
  37. +1 −88 pkg/distro/rhel/rhel9/gce.go
  38. +4 −137 pkg/distro/rhel/rhel9/package_sets.go
  39. +3 −102 pkg/distro/rhel/rhel9/qcow2.go
  40. +0 −56 pkg/distro/rhel/rhel9/sap.go
  41. +1 −63 pkg/distro/rhel/rhel9/ubi.go
  42. +2 −23 pkg/distro/rhel/rhel9/vmdk.go
  43. +49 −22 pkg/manifest/os.go
  44. +5 −0 test/config-map.json
  45. +20 −0 test/configs/firewall.json
8 changes: 4 additions & 4 deletions Schutzfile
Original file line number Diff line number Diff line change
@@ -9,28 +9,28 @@
"centos-9": {
"dependencies": {
"osbuild": {
"commit": "f2ab07cf856141ae5bbd4ea9bfffe48be8033c4b"
"commit": "e93cd75e5b23bc16f19eb032226f19e0957ddfb6"
}
}
},
"centos-10": {
"dependencies": {
"osbuild": {
"commit": "f2ab07cf856141ae5bbd4ea9bfffe48be8033c4b"
"commit": "e93cd75e5b23bc16f19eb032226f19e0957ddfb6"
}
}
},
"fedora-40": {
"dependencies": {
"osbuild": {
"commit": "f2ab07cf856141ae5bbd4ea9bfffe48be8033c4b"
"commit": "e93cd75e5b23bc16f19eb032226f19e0957ddfb6"
}
}
},
"fedora-41": {
"dependencies": {
"osbuild": {
"commit": "f2ab07cf856141ae5bbd4ea9bfffe48be8033c4b"
"commit": "e93cd75e5b23bc16f19eb032226f19e0957ddfb6"
}
},
"repos": [
2 changes: 1 addition & 1 deletion cmd/osbuild-playground/my-container.go
Original file line number Diff line number Diff line change
@@ -51,7 +51,7 @@ func (img *MyContainer) InstantiateManifest(m *manifest.Manifest,

// create a minimal non-bootable OS tree
os := manifest.NewOS(build, &platform.X86{}, repos)
os.ExtraBasePackages = []string{"@core"}
os.BasePackages = []string{"@core"}
os.OSCustomizations.Language = "en_US.UTF-8"
os.OSCustomizations.Hostname = "my-host"
os.OSCustomizations.Timezone = "UTC"
11 changes: 11 additions & 0 deletions data/repositories/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Official distribution repositories

This directory contains the official distribution repositories that are embedded in the `osbuild/images` go module. These repositories can be and are used by applications that use the `osbuild/images` go module to build images. For example, the `osbuild/osbuild-composer` and `osbuild/image-builder-cli` use these repositories.

## RHEL-8 repositories GPG keys note
The `osbuild/images` go module supports distro cross-building. This means that you can build images for a different distribution than the one you are running on. For example, you can build a RHEL-8 image on RHEL-9. Nevertheless, the supported combinations are controlled by the end users of the `osbuild/images` go module.

The `rhel-8*.json` repository definitions have been modified to contain only the [`4096R/199e2f91fd431d51 (2009-10-22): Red Hat, Inc. (release key 2) <security@redhat.com>`](https://security.access.redhat.com/data/fd431d51.txt) as specified at [Red Hat Product Signing keys page](https://access.redhat.com/security/team/key). The [`4096R/F76F66C3D4082792 (2018-06-27): Red Hat, Inc. (auxiliary key 2) <security@redhat.com>`](https://security.access.redhat.com/data/d4082792.txt) is completely omitted from the `rhel-8*.json` repository definitions. The reasons are:
* The `Red Hat, Inc. (auxiliary key 2)` is signed only with RSA-SHA1, which is not allowed by the default crypto-policy on RHEL-9 and newer. This means that importing such key when bootstrapping the RHEL-8 buildroot on RHEL-9 and newer would fail.
* The `Red Hat, Inc. (auxiliary key 2)` is not commonly used for signing the RHEL-8 RPMs. It is a disaster recovery key that would be used in the unlikely event Red Hat loses the ability to sign with the master hardware keys. The key file uses a sub-key, that would be most probably used to sign RPMs in this unlikely event, so that the main key can be stored offline. Previously, we used to ship only the auxiliary key, without the sub-key in `rhel-8*.json` configurations on RHEL-9, because only the sub-key's signature was causing issues when importing it on RHEL-9 with the default crypto-policy. However, given the purpose of the sub-key, there's no reason to include the main key in the `rhel-8*.json` configurations without the sub-key.
* None of the projects that use the repository definitions in the `osbuild/images` go module (`osbuild-composer`, `image-builder-cli`, etc.) are being released or updated in RHEL-8. The `rhel-8*.json` repository definitions are used only for cross-building RHEL-8 images on RHEL-9 and newer.
Loading