Split each tool into its own subpackage

The individual scripts have wildly varying use cases and dependencies,
so it's better to provide each in its own subpackage. Installing the
main package will still pull all the scripts like before.

Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
This commit is contained in:
Ondrej Mosnáček 2023-09-08 15:21:29 +02:00
parent 089f936bfa
commit e5698686f8
No known key found for this signature in database
GPG Key ID: BDE08B7A0C57B343

View File

@ -10,26 +10,12 @@ Source: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
BuildArch: noarch BuildArch: noarch
Requires: %{name}-growpart Requires: %{name}-growpart
Requires: python3 Requires: %{name}-cloud-localds
Requires: util-linux Requires: %{name}-write-mime-multipart
# cloud-localds Requires: %{name}-ec2metadata
Recommends: tar Requires: %{name}-resize-part-image
Recommends: dosfstools Requires: %{name}-mount-image-callback
Recommends: mtools Requires: %{name}-vcs-run
Recommends: genisoimage
# cloud-localds & mount-image-callback
Recommends: qemu-img
# resize-part-image
Requires: file
Requires: gzip
Requires: e2fsprogs
# resize-part-image & mount-image-callback
Requires: gawk
# vcs-run
Recommends: breezy
Recommends: git-core
Recommends: mercurial
Recommends: wget
%description %description
This package provides a useful set of utilities for managing cloud images. This package provides a useful set of utilities for managing cloud images.
@ -40,7 +26,7 @@ with a much simpler interface.
%package growpart %package growpart
Summary: Script for growing a partition Summary: A script for growing a partition
Requires: gawk Requires: gawk
Requires: util-linux Requires: util-linux
@ -57,6 +43,81 @@ primarily used in cloud images in conjunction with the dracut-modules-growroot
package to grow the root partition on first boot. package to grow the root partition on first boot.
%package cloud-localds
Summary: A script for creating a nocloud configuration disk for cloud-init
Recommends: tar
Recommends: dosfstools
Recommends: mtools
Recommends: genisoimage
Recommends: qemu-img
%description cloud-localds
This package provides the cloud-localds script, which creates a disk-image
with user-data and/or meta-data for cloud-init.
%package write-mime-multipart
Summary: A utilty for creating mime-multipart files
%description write-mime-multipart
This package provides the write-mime-multipart script, which creates
mime multipart files that can be consumed by cloud-init as user-data.
%package ec2metadata
Summary: A script to query and display EC2 AMI instance metadata
%description ec2metadata
This package provides the ec2metadata script, which can be used to query and
display EC2 instance metadata rekated to an AMI instance.
%package resize-part-image
Summary: A script for resizing cloud images
Requires: file
Requires: gzip
Requires: e2fsprogs
Requires: gawk
Requires: tar
%description resize-part-image
This package provides the resize-part-image script, which can be used to
resize a partition image and the contained filesystem to a new size.
%package mount-image-callback
Summary: A script to run commands over cloud image contents
Requires: gawk
Requires: util-linux
Recommends: qemu-img
%description mount-image-callback
This package provides the mount-image-callback script, which mounts a cloud
image to a temporary mountpoint and runs a specified command on the contents.
%package vcs-run
Summary: Script to run commands over a VCS repository contents
Recommends: breezy
Recommends: git-core
Recommends: mercurial
Recommends: wget
%description vcs-run
This package provides the vcs-run script, which fetches a code repository
into a temporary directory and runs a user-specified command in it.
%prep %prep
%setup -q %setup -q
@ -83,22 +144,11 @@ rm -f %{buildroot}%{_bindir}/cloud-publish-*
rm -f %{buildroot}%{_mandir}/man1/cloud-publish-* rm -f %{buildroot}%{_mandir}/man1/cloud-publish-*
# Files for the main package
%files %files
%doc ChangeLog %doc ChangeLog
%license LICENSE %license LICENSE
%{_bindir}/cloud-localds
%{_bindir}/write-mime-multipart
%{_bindir}/ec2metadata
%{_bindir}/resize-part-image
%{_bindir}/mount-image-callback
%{_bindir}/vcs-run
%doc %{_mandir}/man1/resize-part-image.*
%doc %{_mandir}/man1/write-mime-multipart.*
%doc %{_mandir}/man1/cloud-localds.*
# Files for the growpart subpackage
%files growpart %files growpart
%doc ChangeLog %doc ChangeLog
%license LICENSE %license LICENSE
@ -106,5 +156,44 @@ rm -f %{buildroot}%{_mandir}/man1/cloud-publish-*
%doc %{_mandir}/man1/growpart.* %doc %{_mandir}/man1/growpart.*
%files cloud-localds
%doc ChangeLog
%license LICENSE
%{_bindir}/cloud-localds
%doc %{_mandir}/man1/cloud-localds.*
%files write-mime-multipart
%doc ChangeLog
%license LICENSE
%{_bindir}/write-mime-multipart
%doc %{_mandir}/man1/write-mime-multipart.*
%files ec2metadata
%doc ChangeLog
%license LICENSE
%{_bindir}/ec2metadata
%files resize-part-image
%doc ChangeLog
%license LICENSE
%{_bindir}/resize-part-image
%doc %{_mandir}/man1/resize-part-image.*
%files mount-image-callback
%doc ChangeLog
%license LICENSE
%{_bindir}/mount-image-callback
%files vcs-run
%doc ChangeLog
%license LICENSE
%{_bindir}/vcs-run
%changelog %changelog
%autochangelog %autochangelog