diff --git a/.gitignore b/.gitignore index f727ee0..578ba21 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ x86_64/ *.src.rpm .build*.log +*~ diff --git a/libvirt-sandbox.spec b/libvirt-sandbox.spec index 1ce2c82..18e423a 100644 --- a/libvirt-sandbox.spec +++ b/libvirt-sandbox.spec @@ -1,45 +1,52 @@ # -*- rpm-spec -*- -%define with_introspection 0 -%define with_python 0 +%define with_qemu 1 -%if 0%{?fedora} >= 15 -%define with_introspection 1 -%endif -%if 0%{?rhel} >= 6 -%define with_introspection 1 +# RHEL does not provide the 9p.ko kernel module +# nor the virtio-9p KVM backend driver. +%if 0%{?rhel} +%define with_qemu 0 %endif +%define libvirt_version 1.0.2 Name: libvirt-sandbox -Version: 0.1.1 -Release: 1%{?dist}%{?extra_release} +Version: 0.8.0 +Release: 21%{?dist} Summary: libvirt application sandbox framework -Group: Development/Tools -License: LGPLv2+ +# Automatically converted from old format: LGPLv2+ - review is highly recommended. +License: LicenseRef-Callaway-LGPLv2+ URL: http://libvirt.org/ Source0: ftp://libvirt.org/libvirt/sandbox/%{name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: libvirt-gobject-devel >= 0.0.9 -%if %{with_introspection} +BuildRequires: make +BuildRequires: libvirt-gobject-devel >= 0.2.1 BuildRequires: gobject-introspection-devel -%endif -BuildRequires: libselinux-devel BuildRequires: glibc-static -Requires: glib2-devel >= 2.32.0 +BuildRequires: /usr/bin/pod2man +BuildRequires: intltool +BuildRequires: libselinux-devel +BuildRequires: glib2-devel >= 2.32.0 +BuildRequires: xz-devel >= 5.0.0, xz-static +BuildRequires: zlib-devel >= 1.2.0, zlib-static +%if 0%{fedora} > 27 +BuildRequires: libtirpc-devel +BuildRequires: rpcgen +%endif +Requires: %{name}-libs = %{version}-%{release} %package libs -Group: Development/Libraries Summary: libvirt application sandbox framework libraries # So we get the full libvirtd daemon, not just client libs -%ifarch %{ix86} x86_64 -Requires: libvirt-daemon-kvm >= 0.9.12 +%if %{with_qemu} + %ifarch %{ix86} x86_64 +Requires: libvirt-daemon-kvm >= %{libvirt_version} + %else +Requires: libvirt-daemon-qemu >= %{libvirt_version} + %endif %endif -Requires: libvirt-daemon-qemu >= 0.9.12 -Requires: libvirt-daemon-lxc >= 0.9.12 +Requires: libvirt-daemon-lxc >= %{libvirt_version} %package devel -Group: Development/Libraries Summary: libvirt application sandbox framework development files Requires: %{name}-libs = %{version}-%{release} @@ -60,13 +67,7 @@ the libvirt sandbox %build -%if %{with_introspection} -%define introspection_arg --enable-introspection -%else -%define introspection_arg --disable-introspection -%endif - -%configure %{introspection_arg} +%configure --enable-introspection %__make %{?_smp_mflags} @@ -77,25 +78,15 @@ chmod a-x examples/*.py examples/*.pl examples/*.js rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt-sandbox-1.0.a rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt-sandbox-1.0.la -%clean -rm -rf $RPM_BUILD_ROOT +%find_lang %{name} -%post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig +%ldconfig_scriptlets libs %files -%defattr(-,root,root,-) -%{_sysconfdir}/bash_completion.d/virt-sandbox-service-bash-completion.sh -%config(noreplace) %{_sysconfdir}/cron.daily/virt-sandbox-service.logrotate -%dir %{_sysconfdir}/libvirt-sandbox/services %{_bindir}/virt-sandbox -%{_bindir}/virt-sandbox-service -%{_libexecdir}/virt-sandbox-service-util %{_mandir}/man1/virt-sandbox.1* -%{_mandir}/man1/virt-sandbox-service.1* -%files libs -%defattr(-,root,root,-) +%files libs -f %{name}.lang %doc README COPYING AUTHORS ChangeLog NEWS %dir %{_sysconfdir}/libvirt-sandbox %dir %{_sysconfdir}/libvirt-sandbox/scratch @@ -104,12 +95,9 @@ rm -rf $RPM_BUILD_ROOT %{_libexecdir}/libvirt-sandbox-init-lxc %{_libexecdir}/libvirt-sandbox-init-qemu %{_libdir}/libvirt-sandbox-1.0.so.* -%if %{with_introspection} %{_libdir}/girepository-1.0/LibvirtSandbox-1.0.typelib -%endif %files devel -%defattr(-,root,root,-) %doc examples/virt-sandbox.pl %doc examples/virt-sandbox.py %doc examples/virt-sandbox.js @@ -120,12 +108,137 @@ rm -rf $RPM_BUILD_ROOT %dir %{_includedir}/libvirt-sandbox-1.0/libvirt-sandbox %{_includedir}/libvirt-sandbox-1.0/libvirt-sandbox/libvirt-sandbox.h %{_includedir}/libvirt-sandbox-1.0/libvirt-sandbox/libvirt-sandbox-*.h -%if %{with_introspection} %{_datadir}/gir-1.0/LibvirtSandbox-1.0.gir -%endif %{_datadir}/gtk-doc/html/Libvirt-sandbox %changelog +* Thu Jul 16 2026 Fedora Release Engineering - 0.8.0-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Fri Jan 16 2026 Fedora Release Engineering - 0.8.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Jul 24 2025 Fedora Release Engineering - 0.8.0-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 17 2025 Fedora Release Engineering - 0.8.0-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Sep 02 2024 Miroslav Suchý - 0.8.0-17 +- convert license to SPDX + +* Thu Jul 18 2024 Fedora Release Engineering - 0.8.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Mar 30 2024 Jonathan Wright - 0.8.0-15 +- Rebuild to ensure backdoored XZ libs arn't present + +* Thu Jan 25 2024 Fedora Release Engineering - 0.8.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 0.8.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 0.8.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 0.8.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 0.8.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 0.8.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 0.8.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 0.8.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 0.8.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 0.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 0.8.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 0.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 0.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 8 2018 Daniel P. Berrangé - 0.8.0-1 +- Update to 0.8.0 release + +* Mon Mar 26 2018 Iryna Shcherbina - 0.6.0-7 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Feb 07 2018 Fedora Release Engineering - 0.6.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 0.6.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.6.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 0.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jul 1 2015 Daniel P. Berrange - 0.6.0-1 +- Update to 0.6.0 release + +* Wed Jun 17 2015 Fedora Release Engineering - 0.5.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 0.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 22 2014 Kalev Lember - 0.5.1-3 +- Rebuilt for gobject-introspection 1.41.4 + +* Sat Jun 07 2014 Fedora Release Engineering - 0.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Nov 18 2013 Daniel P. Berrange - 0.5.1-1 +- Update to 0.5.1 release + +* Thu Oct 3 2013 Daniel P. Berrange - 0.5.0-3 +- Add fully versioned dep between libvirt-sandbox & libvirt-sandbox-libs + +* Tue Oct 1 2013 Daniel P. Berrange - 0.5.0-2 +- Fix boot with Linux 3.11 kernel + +* Thu Aug 1 2013 Daniel P. Berrange - 0.5.0-1 +- Update to 0.5.0 release + +* Tue Jul 9 2013 Daniel P. Berrange - 0.2.1-1 +- Update to 0.2.1 release + +* Tue May 7 2013 Daniel P. Berrange - 0.2.0-1 +- Update to 0.2.0 release + +* Tue Mar 5 2013 Daniel P. Berrange - 0.1.2-1 +- Update to 0.1.2 release + +* Fri Feb 22 2013 Daniel P. Berrange - 0.1.1-4 +- Add dep on pod2man + +* Thu Feb 14 2013 Fedora Release Engineering - 0.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jan 17 2013 Daniel P. Berrange - 0.1.1-2 +- Conditionalize dep on libvirt-daemon-qemu + * Mon Dec 10 2012 Daniel P. Berrange - 0.1.1-1 - Update to 0.1.1 release diff --git a/sources b/sources index d0532db..ecadc58 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -16734f7a7927f47b845747ef2df4ef68 libvirt-sandbox-0.1.1.tar.gz +SHA512 (libvirt-sandbox-0.8.0.tar.gz) = 633368b6b41c520ae678b850e4c6c96cc3220adcfda9a9a36ad67d50f10b1d18e40a2d92e76a8d99a63e7e24a1f9cf3153eca0acf4745bd48c381289974476d2 diff --git a/update-patches.pl b/update-patches.pl new file mode 100755 index 0000000..d758c2c --- /dev/null +++ b/update-patches.pl @@ -0,0 +1,110 @@ +#!/usr/bin/perl +# +# Update the local patches and RPM spec with patches from +# an upstream tree with matching branch name. +# +# For example +# +# - Checkout upstream GIT repo for libvirt-sandbox +# - Create a branch name matching current RHEL (eg rhel-6.4) +# - Populate the branch by cherry-picking patches from master +# +# This script will then +# +# - Setup the upstream GIT repo as a remote named 'upstream' +# - Extract version number from RPM spec +# - Look for a tag 'v$VERSION' in upstream GIT +# - Run 'git format-patches v$VERSION..upstream/rhel-6.4' +# - Re-write the RPM spec to update all PatchNNN and %patchNNN lines +# +# The only manual step required is to fill in the changelog +# + + +use strict; +use warnings; + +my $gitupstream = "git://libvirt.org/libvirt-sandbox.git"; +my $rpmspec = "libvirt-sandbox.spec"; + +open SPEC, "$rpmspec" or die "cannot read $rpmspec: $!"; +my @spec = ; +close SPEC; + +my $version; + +foreach my $line (@spec) { + if ($line =~ /^Version:\s*(\S+)\s*$/) { + $version = $1; + } +} + +die "cannot find Version: line in RPM spec" + unless $version; + +my $gittag = "v" . $version; +my $gitbranch = $gittag . "-maint"; + +my $haveupstream; + +open GIT, "-|", "git", "remote" or die "cannot run git remote: $!"; +while () { + if (/upstream/) { + $haveupstream = 1; + } +} + +close GIT; + +unless ($haveupstream) { + `git remote add upstream $gitupstream`; +} + +`git fetch upstream`; + + +$haveupstream = 0; + +open GIT, "-|", "git", "branch", "-a" or die "cannot find git branch -a: $!"; +while () { + if (m,upstream/$gitbranch,) { + $haveupstream = 1; + } +} +close GIT; + +die "cannot find upstream/$gitbranch" unless $haveupstream; + +`git format-patch --no-signature -N $gittag..upstream/$gitbranch`; + +opendir DH, "." or die "cannot read current directory: $!"; + +my @patches + = grep { + /^\d\d\d.*\.patch/ + } readdir(DH); + +closedir DH; + +@patches = sort @patches; + +open SPEC, ">$rpmspec" or die "cannot update $rpmspec: $!"; + +foreach my $line (@spec) { + print SPEC $line unless $line =~ /(Patch|%patch)/; + + my $i; + if ($line =~ /Source0/) { + for ($i = 0 ; $i <= $#patches ; $i++) { + printf SPEC "Patch%d: %s\n", $i+1, $patches[$i]; + } + } elsif ($line =~ /%setup/) { + for ($i = 0 ; $i <= $#patches ; $i++) { + printf SPEC "%%patch%d -p1\n", $i+1; + } + } +} + +close SPEC or die "cannot save $rpmspec: $!"; + +`git add *.patch $rpmspec`;