# In order to remain strictly backwards-compatible with supermin 4.1.4
# shipped in RHEL 7 GA, this package contains both supermin 4.1.4 and
# supermin 5. The 'supermin' binary is supermin 4. The new
# subpackage 'supermin5' contains a binary of the same name.
%ifnarch %{ocaml_native_compiler}
%global __strip /bin/true
%global debug_package %{nil}
%endif
# _hardened_build breaks building the static 'init' binary.
# https://bugzilla.redhat.com/show_bug.cgi?id=1202091
# https://bugzilla.redhat.com/show_bug.cgi?id=1204162
%undefine _hardened_build
# Whether we should verify tarball signature with GPGv2.
%global verify_tarball_signature 1
Summary: Tool for creating supermin appliances
Name: supermin
Version: 5.1.19
Release: 1%{?dist}
License: GPLv2+
ExcludeArch: s390
URL: http://people.redhat.com/~rjones/supermin/
Source0: http://libguestfs.org/download/supermin/%{name}-4.1.4.tar.gz
Source1: http://libguestfs.org/download/supermin/%{name}-%{version}.tar.gz
%if 0%{verify_tarball_signature}
Source2: http://libguestfs.org/download/supermin/%{name}-%{version}.tar.gz.sig
%endif
# Keyring used to verify tarball signature.
%if 0%{verify_tarball_signature}
Source3: libguestfs.keyring
%endif
# Patches for supermin 4:
Patch0: supermin-4.1.4-fix-exec-stack.patch
Patch1: supermin-4.1.4-disable-warning-3.patch
# Patches for supermin 5:
#(nothing)
# BRs for supermin 4:
BuildRequires: /usr/bin/pod2man
BuildRequires: /usr/bin/pod2html
BuildRequires: rpm
BuildRequires: rpm-devel
BuildRequires: yum >= 3.2
BuildRequires: /usr/sbin/mke2fs
BuildRequires: e2fsprogs-devel
BuildRequires: findutils
BuildRequires: glibc-static, zlib-static
BuildRequires: ocaml, ocaml-findlib-devel
# Patches touch src/Makefile.am, so:
BuildRequires: automake, autoconf
# BRs for supermin 5 (those not listed already):
BuildRequires: yum-utils
%if 0%{verify_tarball_signature}
BuildRequires: gnupg2
%endif
# These are required only to run the tests. We could patch out the
# tests to not require these packages.
BuildRequires: augeas hivex kernel tar
# Runtime requires for supermin 4:
Requires: yum >= 3.2
Requires: yum-utils
Requires: supermin-helper%{?_isa} = %{version}-%{release}
# https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions
Provides: bundled(gnulib)
# NB: Does NOT Provides, because this is not a compatible replacement.
Obsoletes: febootstrap <= 3.21-1
%description
Supermin is a tool for building supermin appliances. These are tiny
appliances (similar to virtual machines), usually around 100KB in
size, which get fully instantiated on-the-fly in a fraction of a
second when you need to boot one of them.
This package contains supermin version 4.
%package helper
Summary: Runtime support for supermin
Requires: util-linux-ng
Requires: cpio
Requires: /usr/sbin/mke2fs
# RHBZ#771310
Requires: e2fsprogs-libs >= 1.42
# NB: Does NOT Provides, because this is not a compatible replacement.
Obsoletes: febootstrap-supermin-helper <= 3.21-1
%description helper
%{name}-helper contains the runtime support for %{name}.
%package -n supermin5
Summary: Supermin version 5
Requires: rpm
Requires: yum-utils
Requires: util-linux-ng
Requires: cpio
Requires: tar
Requires: /usr/sbin/mke2fs
# RHBZ#771310
Requires: e2fsprogs-libs >= 1.42
Requires: findutils
# For automatic RPM dependency generation.
# See: http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator
Source4: supermin.attr
Source5: supermin-find-requires
%description -n supermin5
Supermin is a tool for building supermin appliances. These are tiny
appliances (similar to virtual machines), usually around 100KB in
size, which get fully instantiated on-the-fly in a fraction of a
second when you need to boot one of them.
This package contains supermin version %{version}. The binary
is called 'supermin5', so that we do not break compatibility
with RHEL 7 GA.
%package -n supermin5-devel
Summary: Development tools for supermin5
Requires: supermin5 = %{version}-%{release}
Requires: rpm-build
%description -n supermin5-devel
supermin5-devel contains development tools for supermin5.
It just contains tools for automatic RPM dependency generation
from supermin appliances.
%prep
%if 0%{verify_tarball_signature}
tmphome="$(mktemp -d)"
gpgv2 --homedir "$tmphome" --keyring %{SOURCE3} %{SOURCE2} %{SOURCE1}
%endif
# This creates:
# supermin-5.*/
# supermin-5.*/supermin-4.1.4/ # supermin 4
# supermin-5.*/supermin-5.*/ # supermin 5
%setup -q -c
%setup -T -D -a 1
pushd supermin-4.1.4
%patch0 -p1
%patch1 -p2
popd
pushd %{name}-%{version}
#(no patches need to be applied to supermin 5)
popd
%build
pushd %{name}-4.1.4
%configure --disable-network-tests
make
popd
pushd %{name}-%{version}
%configure --disable-network-tests
make
popd
%install
# Have to do the supermin5 install first so we can move the files
# that it installs.
pushd %{name}-%{version}
make DESTDIR=$RPM_BUILD_ROOT install
pushd $RPM_BUILD_ROOT%{_bindir}
mv supermin supermin5
popd
pushd $RPM_BUILD_ROOT%{_mandir}/man1
mv supermin.1 supermin5.1
popd
popd
pushd %{name}-4.1.4
make DESTDIR=$RPM_BUILD_ROOT install
popd
mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/
install -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/
install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT%{_rpmconfigdir}/
%check
%ifarch aarch64 %{power64} s390x x86_64
pushd %{name}-4.1.4
make check
popd
pushd %{name}-%{version}
make check || {
cat tests/test-suite.log
exit 1
}
popd
%endif
%files
%doc %{name}-4.1.4/COPYING
%doc %{name}-4.1.4/README
%doc %{name}-4.1.4/examples/build-basic-vm.sh
%{_bindir}/supermin
%{_mandir}/man8/supermin.8*
%files helper
%doc %{name}-4.1.4/COPYING
%{_bindir}/supermin-helper
%{_mandir}/man8/supermin-helper.8*
%files -n supermin5
%doc %{name}-%{version}/COPYING
%doc %{name}-%{version}/README
%doc %{name}-%{version}/examples/build-basic-vm.sh
%{_bindir}/supermin5
%{_mandir}/man1/supermin5.1*
%files -n supermin5-devel
%{_rpmconfigdir}/fileattrs/supermin.attr
%{_rpmconfigdir}/supermin-find-requires
%changelog
* Sat Sep 23 2017 Richard W.M. Jones <rjones@redhat.com> - 5.1.19-1
- Rebase to supermin 5.1.19.
- Build on s390x.
- Add upstream signature.
- Remove upstream patches.
resolves: rhbz#1484890, rhbz#1484973
* Wed Jul 06 2016 Richard W.M. Jones <rjones@redhat.com> - 5.1.16-4
- Add all upstream patches since 5.1.16 was released.
* Wed May 25 2016 Richard W.M. Jones <rjones@redhat.com> - 5.1.16-2
- supermin init segfaults when kernel has large modules (1339691)
* Wed Apr 27 2016 Richard W.M. Jones <rjones@redhat.com> - 5.1.16-1
- New upstream version 5.1.16.
- Drop all patches since they are upstream.
* Wed Apr 20 2016 Richard W.M. Jones <rjones@redhat.com> - 5.1.15-3
- Add all upstream patches since 5.1.15 was released.
- These should improve boot performance and initrd size.
* Wed Feb 17 2016 Richard W.M. Jones <rjones@redhat.com> - 5.1.15-1
- Rebase to supermin 5.1.15.
resolves: rhbz#1271255
- Create supermin5-devel package containing RPM dependency generator.
* Wed Sep 10 2014 Richard W.M. Jones <rjones@redhat.com> - 5.1.10-1.2
- Enable all ppc64 architectures, including BE.
* Thu Sep 04 2014 Richard W.M. Jones <rjones@redhat.com> - 5.1.10-1.1
- Rebase to supermin 5.1.10.
resolves: rhbz#1021150
* Fri Aug 08 2014 Richard W.M. Jones <rjones@redhat.com> - 5.1.9-1.4
- Completely remove dependency on prelink/execstack (RHBZ#1093261).
- Rebuild for aarch64 and ppc64le (1125690).
* Mon Jul 21 2014 Richard W.M. Jones <rjones@redhat.com> - 5.1.9-1
- Rebase to supermin 5.1.9.
resolves: rhbz#1021150
- Remove patches, now all upstream.
* Wed May 21 2014 Richard W.M. Jones <rjones@redhat.com> - 5.1.8-5.1
- Package supermin 5 for RHEL 7.1.
- Remove supermin 4 patch which was included by accident.
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 4.1.4-2
- Mass rebuild 2013-12-27
* Wed Aug 28 2013 Richard W.M. Jones <rjones@redhat.com> - 4.1.4-1
- New upstream version 4.1.4.
- Supports compressed cpio image files, experimentally.
* Fri Aug 9 2013 Richard W.M. Jones <rjones@redhat.com> - 4.1.3-1
- New upstream version 4.1.3.
- Remove patch which is now upstream.
- Add examples directory to documentation.
* Tue Aug 6 2013 Richard W.M. Jones <rjones@redhat.com> - 4.1.2-2
- Include upstream patch to get correct directory setgid/sticky bits in
the appliance.
* Sat Aug 3 2013 Richard W.M. Jones <rjones@redhat.com> - 4.1.2-1
- New upstream version 4.1.2.
- Remove patch which is now upstream.
* Wed Jun 26 2013 Richard W.M. Jones <rjones@redhat.com> - 4.1.1-2
- Add upstream patch to ignore ghost non-regular files.
- This fixes builds on Fedora 20 because the filesystem package has
been changed so /var/lock and /var/run are marked as ghost.
* Tue Feb 5 2013 Richard W.M. Jones <rjones@redhat.com> - 4.1.1-1
- New upstream version 4.1.1.
- The program has been renamed 'supermin' from 'febootstrap'.
- Obsolete, but don't Provide because supermin is not a compatible replacement.
- Use '_isa' to specify architecture of supermin-helper subpackage.
* Tue Jan 22 2013 Richard W.M. Jones <rjones@redhat.com> - 1:3.21-2
- Add upstream patch to drop supplemental groups (RHBZ#902476).
- Remove 'Group:' RPM headers which are no longer necessary.
- Remove some commented-out requirements.
* Sat Dec 22 2012 Richard W.M. Jones <rjones@redhat.com> - 1:3.21-1
- New upstream version 3.21.
* Fri Aug 31 2012 Richard W.M. Jones <rjones@redhat.com> - 1:3.20-1
- New upstream version 3.20.
* Wed Aug 22 2012 Richard W.M. Jones <rjones@redhat.com> - 1:3.19-2
- Work around brokenness in yum (RHBZ#850913).
- Remove defattr, no longer required.
* Tue Jul 31 2012 Richard W.M. Jones <rjones@redhat.com> - 1:3.19-1
- New upstream version 3.19.
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.18-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Mon Jun 18 2012 Richard Jones <rjones@redhat.com> - 3.18-1
- New upstream version 3.18.
- This adds support for EPEL 5.
* Thu Jun 14 2012 Richard Jones <rjones@redhat.com> - 3.17-1
- New upstream version 3.17.
* Wed Jun 13 2012 Richard Jones <rjones@redhat.com> - 3.16-1
- New upstream version 3.16.
* Tue Jun 12 2012 Richard Jones <rjones@redhat.com> - 3.15-1
- New upstream version 3.15.
- This version includes root=<device> support, needed for libguestfs
with virtio-scsi.
- Remove upstream patch.
* Thu May 17 2012 Richard Jones <rjones@redhat.com> - 3.14-6
- For RHEL 7 only, add ExclusiveArch x86-64.
* Tue May 15 2012 Richard Jones <rjones@redhat.com> - 3.14-5
- Bundled gnulib (RHBZ#821752).
* Fri Apr 13 2012 Richard Jones <rjones@redhat.com> - 3.14-4
- Add back explicit dependencies for external programs.
* Fri Apr 13 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.14-3
- Drop ExclusiveArch as it's supported on all primary & secondary arches
- Cleanup spec and deps
* Fri Mar 30 2012 Richard Jones <rjones@redhat.com> - 3.14-2
- New upstream version 3.14.
- Add upstream patch to fix RHBZ#808421.
* Thu Mar 29 2012 Richard Jones <rjones@redhat.com> - 3.13-4
- e2fsprogs moved /sbin/mke2fs to /usr/sbin (thanks Eric Sandeen).
* Thu Mar 1 2012 Richard Jones <rjones@redhat.com> - 3.13-2
- Missing BR zlib-static.
* Thu Feb 9 2012 Richard Jones <rjones@redhat.com> - 3.13-1
- New upstream version 3.13.
- Remove upstream patch which is included in this version.
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.12-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Jan 3 2012 Richard Jones <rjones@redhat.com> - 3.12-4
- Depend on latest e2fsprogs (RHBZ#771310).
* Wed Nov 9 2011 Richard Jones <rjones@redhat.com> - 3.12-2
- Include upstream patch to work around Python stupidity.
* Tue Oct 18 2011 Richard Jones <rjones@redhat.com> - 3.12-1
- New upstream version 3.12.
- Remove upstream patch which is included in this version.
* Fri Oct 14 2011 Richard Jones <rjones@redhat.com> - 3.11-2
- Add upstream patch to fix febootstrap on non-Debian.
* Fri Oct 14 2011 Richard Jones <rjones@redhat.com> - 3.11-1
- New upstream version 3.11.
* Thu Sep 1 2011 Richard Jones <rjones@redhat.com> - 3.10-1
- New upstream version 3.10.
* Fri Aug 26 2011 Richard Jones <rjones@redhat.com> - 3.9-1
- New upstream version 3.9.
* Tue Jul 26 2011 Richard Jones <rjones@redhat.com> - 3.8-1
- New upstream version 3.8.
* Fri Jul 15 2011 Richard Jones <rjones@redhat.com> - 3.7-1
- New upstream version 3.7.
* Wed Jun 1 2011 Richard Jones <rjones@redhat.com> - 3.6-1
- New upstream version 3.6.
- This version no longer needs external insmod.static.
* Fri May 27 2011 Richard Jones <rjones@redhat.com> - 3.5-1
- New upstream version 3.5.
- Remove patch which is now upstream.
* Fri Mar 18 2011 Richard Jones <rjones@redhat.com> - 3.4-2
- Don't fail if objects are created in a symlinked dir (RHBZ#698089).
* Fri Mar 18 2011 Richard Jones <rjones@redhat.com> - 3.4-1
- New upstream version 3.4.
- febootstrap-supermin-helper Obsoletes older versions of febootstrap.
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri Jan 14 2011 Richard Jones <rjones@redhat.com> - 3.3-4
- Split package into febootstrap (for building) and febootstrap-supermin-helper
(for running). Note that febootstrap depends on febootstrap-supermin-helper,
but you can install febootstrap-supermin-helper on its own.
* Fri Jan 14 2011 Richard Jones <rjones@redhat.com> - 3.3-3
- Clear executable stack flag on febootstrap-supermin-helper.
* Thu Jan 13 2011 Dan HorĂ¡k <dan[at]danny.cz> - 3.3-2
- add the ocaml's ExclusiveArch
* Sat Dec 11 2010 Richard Jones <rjones@redhat.com> - 3.3-1
- New upstream version 3.3.
* Tue Dec 7 2010 Richard Jones <rjones@redhat.com> - 3.2-1
- New upstream version 3.2.
- Remove upstream patches.
* Tue Dec 7 2010 Richard Jones <rjones@redhat.com> - 3.1-5
- Previous fix for RHBZ#654638 didn't work, fix it correctly.
* Mon Dec 6 2010 Richard Jones <rjones@redhat.com> - 3.1-4
- Properly ignore .*.hmac files (accidental reopening of RHBZ#654638).
* Mon Dec 6 2010 Richard Jones <rjones@redhat.com> - 3.1-3
- Uses yumdownloader at runtime, so require yum-utils.
* Mon Dec 6 2010 Richard Jones <rjones@redhat.com> - 3.1-2
- New upstream version 3.1.
- BR insmod.static.
* Sun Dec 5 2010 Richard Jones <rjones@redhat.com> - 3.0-2
- New upstream version 3.0 (note this is incompatible with 2.x).
- Fix upstream URLs.
- fakeroot, fakechroot no longer required.
- insmod.static is required at runtime (missing dependency from earlier).
- The only programs are 'febootstrap' and 'febootstrap-supermin-helper'.
- BR ocaml, ocaml-findlib-devel.
- No examples are provided with this version of febootstrap.
* Thu Nov 25 2010 Richard Jones <rjones@redhat.com> - 2.11-1
- New upstream version 2.11.
- Fixes "ext2fs_mkdir .. No free space in directory" bug which affects
libguestfs on rawhide.
* Thu Oct 28 2010 Richard Jones <rjones@redhat.com> - 2.10-1
- New upstream version 2.10.
- Adds -u and -g options to febootstrap-supermin-helper which are
required by virt-v2v.
* Fri Aug 27 2010 Richard Jones <rjones@redhat.com> - 2.9-1
- New upstream version 2.9.
- Fixes directory ordering problem in febootstrap-supermin-helper.
* Tue Aug 24 2010 Richard Jones <rjones@redhat.com> - 2.8-1
- New upstream version 2.8.
* Sat Aug 21 2010 Richard Jones <rjones@redhat.com> - 2.8-0.2
- New pre-release version of 2.8.
+ Note this is based on 2.7 + mailing list patches.
- New BRs on mke2fs, libext2fs, glibc-static.
* Fri May 14 2010 Richard Jones <rjones@redhat.com> - 2.7-2
- New upstream version 2.7.
- febootstrap-supermin-helper shell script rewritten in C for speed.
- This package contains C code so it is no longer 'noarch'.
- MAKEDEV isn't required.
* Fri Jan 22 2010 Richard Jones <rjones@redhat.com> - 2.6-1
- New upstream release 2.6.
- Recheck package in rpmlint.
* Thu Oct 22 2009 Richard Jones <rjones@redhat.com> - 2.5-2
- New upstream release 2.5.
- Remove BR upx (not needed by upstream).
- Two more scripts / manpages.
* Thu Jul 30 2009 Richard Jones <rjones@redhat.com> - 2.4-1
- New upstream release 2.4.
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon Jun 15 2009 Richard Jones <rjones@redhat.com> - 2.3-1
- New upstream release 2.3.
* Mon Jun 15 2009 Richard Jones <rjones@redhat.com> - 2.2-1
- New upstream release 2.2.
* Mon May 11 2009 Richard Jones <rjones@redhat.com> - 2.0-1
- New upstream release 2.0.
* Thu May 7 2009 Richard Jones <rjones@redhat.com> - 1.9-1
- New upstream release 1.9.
* Fri May 1 2009 Richard Jones <rjones@redhat.com> - 1.8-1
- New upstream release 1.8.
* Mon Apr 20 2009 Richard Jones <rjones@redhat.com> - 1.7-1
- New upstream release 1.7.
* Tue Apr 14 2009 Richard Jones <rjones@redhat.com> - 1.5-3
- Configure script has (unnecessary) BuildRequires on fakeroot,
fakechroot, yum.
* Tue Apr 14 2009 Richard Jones <rjones@redhat.com> - 1.5-2
- Initial build for Fedora.