cloud-utils/cloud-utils.spec
Ondrej Mosnáček e5698686f8
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>
2023-09-14 16:41:45 +02:00

200 lines
4.4 KiB
RPMSpec

Summary: Cloud image management utilities
Name: cloud-utils
Version: 0.33
Release: %autorelease
License: GPL-3.0-only
URL: https://github.com/canonical/%{name}
Source: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
BuildArch: noarch
Requires: %{name}-growpart
Requires: %{name}-cloud-localds
Requires: %{name}-write-mime-multipart
Requires: %{name}-ec2metadata
Requires: %{name}-resize-part-image
Requires: %{name}-mount-image-callback
Requires: %{name}-vcs-run
%description
This package provides a useful set of utilities for managing cloud images.
The tasks associated with image bundling are often tedious and repetitive. The
cloud-utils package provides several scripts that wrap the complicated tasks
with a much simpler interface.
%package growpart
Summary: A script for growing a partition
Requires: gawk
Requires: util-linux
# gdisk is only required for resizing GPT partitions and depends on libicu
# (25MB). We don't make this a hard requirement to save some space in non-GPT
# systems.
Recommends: gdisk
Recommends: lvm2
%description growpart
This package provides the growpart script for growing a partition. It is
primarily used in cloud images in conjunction with the dracut-modules-growroot
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
%setup -q
%build
%install
# Create the target directories
install -d %{buildroot}%{_bindir}
install -d %{buildroot}%{_mandir}/man1
# Install binaries and manpages
install -pm 0755 bin/* %{buildroot}%{_bindir}/
install -pm 0644 man/* %{buildroot}%{_mandir}/man1/
# Exclude Ubuntu-specific tools
rm %{buildroot}%{_bindir}/*ubuntu*
# Exclude the cloud-run-instances manpage
rm -f %{buildroot}%{_mandir}/man1/cloud-run-instances.*
# Exclude euca2ools wrappers and manpages
rm -f %{buildroot}%{_bindir}/cloud-publish-*
rm -f %{buildroot}%{_mandir}/man1/cloud-publish-*
%files
%doc ChangeLog
%license LICENSE
%files growpart
%doc ChangeLog
%license LICENSE
%{_bindir}/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
%autochangelog