Skip to content

red-hat-storage/rdopkg-tar

Repository files navigation

rdopkg tar-changes

This is a tool that works in a similar way to rdopkg patch. It uses rdopkg's APIs to tar up all the changes in the Git -patches branch into a "-changes.tar.gz" tarball and adds the tarball to the RPM packaging.

I use this to combine all our downstream changes into a single file suitable for dist-git.

Comparing rdopkg patch with this tar-changes script:

"rdopkg patch" this "tar-changes" script
Transforms a downstream -patches branch into output suitable for dist-git
Operates in conjuction with an unchanging upstream tarball
Applies changes during the %prep stage of rpmbuild
Generates .patch files Generates a tarball of changed files
Limited by RHEL 7's static buffer limit for %prep in rpmbuild. rpmbuild's %prep script does not grow with the number of patches.
Ability to delete files entirely from the tree downstream. Unable to delete files (only add or edit existing files).
Unable to edit binary files Able to apply edits to binary files
Does not require the %commit macro in your spec file in order to generate the %changelog. Requires the %commit macro in your spec file in order to generate the %changelog.
Slightly more visibility into changes when browsing dist-git, since you can see the individual .patch files changing. Slightly less visibility into changes when browsing dist-git, since you only see a tarball and Git sha1 changing.
To reconstruct a -patches branch commit-by-commit, without the ref or sha1, use git am No simple way to reconstruct a -patches branch if a ref is dangling/lost. More important to tag every -patches branch change with rdopkg tag-patches.

Understanding branches

We build RH Ceph Storage in ceph-* Git branches. dist-git branches follow the form <product-name>-<product-version>-<OS>-<OS version>.

For RH Ceph Storage 5, we support both RHEL 8 and RHEL 9, so we have the following branches:

  • ceph-5.0-rhel-8: The first release of the RHCEPH 5 product. We did not support RHEL 9 yet because it was so early.
  • ceph-5.1-rhel-8 and ceph-5.1-rhel-9: The second release of the RHCEPH 5 product. We started building Ceph for RHEL 9.
  • ceph-5.2-rhel-8 and ceph-5.2-rhel-9: The third release of the RHCEPH 5 product.

For patch management, we use rdopkg -style "-patches" branches that follow a similar convention. Note, we do not have separate "rhel-8" or "rhel-9" -patches branches, because the code should be identical on both OSes.

RH Ceph Storage 5:

  • ceph-5.0-rhel-patches: RHCEPH 5.0 downstream code.
  • ceph-5.1-rhel-patches: RHCEPH 5.1 downstream code.
  • ceph-5.2-rhel-patches: RHCEPH 5.2 downstream code.
  • ceph-5.3-rhel-patches: RHCEPH 5.3 downstream code.

About

combine many changes with rdopkg

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages