Added RHEL/CentOS example spec file.
authorRichard Jones <rjones@centos5x32.home.annexia.org>
Fri, 8 May 2009 07:39:05 +0000 (08:39 +0100)
committerRichard Jones <rjones@centos5x32.home.annexia.org>
Fri, 8 May 2009 07:39:05 +0000 (08:39 +0100)
contrib/centos5.3-libguestfs.spec [new file with mode: 0644]

diff --git a/contrib/centos5.3-libguestfs.spec b/contrib/centos5.3-libguestfs.spec
new file mode 100644 (file)
index 0000000..27292e4
--- /dev/null
@@ -0,0 +1,434 @@
+# libguestfs.spec.  Generated from libguestfs.spec.in by configure.
+
+Summary:     Access and modify virtual machine disk images
+Name:        libguestfs
+Version:     1.0.19
+Release:     1%{?dist}
+License:     LGPLv2+
+Group:       Development/Libraries
+URL:         http://et.redhat.com/~rjones/libguestfs/
+Source0:     http://et.redhat.com/~rjones/libguestfs/files/%{name}-%{version}.tar.gz
+BuildRoot:   %{_tmppath}/%{name}-%{version}-%{release}-root
+
+# Currently fails on non-x86 because of this error:
+# "qemu: linux kernel too old to load a ram disk"
+ExclusiveArch: %{ix86} x86_64
+
+# Basic build requirements:
+BuildRequires: /usr/bin/pod2man
+BuildRequires: /usr/bin/pod2text
+BuildRequires: febootstrap >= 1.9
+BuildRequires: fakechroot >= 2.9-20
+BuildRequires: fakeroot >= 1.12.2-21
+BuildRequires: readline-devel
+BuildRequires: createrepo
+
+# This is only needed for RHEL 5 because readline-devel doesn't
+# properly depend on it, but doesn't do any harm on other platforms:
+BuildRequires: ncurses-devel
+
+# These are only required if you want to build the bindings for
+# different languages:
+BuildRequires: ocaml
+BuildRequires: ocaml-findlib-devel
+BuildRequires: perl-Test-Pod
+BuildRequires: perl-Test-Pod-Coverage
+BuildRequires: python-devel
+BuildRequires: ruby-devel
+BuildRequires: rubygem-rake
+BuildRequires: java >= 1.5.0
+BuildRequires: jpackage-utils
+BuildRequires: java-devel
+
+
+%description
+Libguestfs is a library for accessing and modifying guest disk images.
+Amongst the things this is good for: making batch configuration
+changes to guests, getting disk used/free statistics (see also:
+virt-df), migrating between virtualization systems (see also:
+virt-p2v), performing partial backups, performing partial guest
+clones, cloning guests and changing registry/UUID/hostname info, and
+much else besides.
+
+Libguestfs uses Linux kernel and qemu code, and can access any type of
+guest filesystem that Linux and qemu can, including but not limited
+to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition
+schemes, qcow, qcow2, vmdk.
+
+Libguestfs provides ways to enumerate guest storage (eg. partitions,
+LVs, what filesystem is in each LV, etc.).  It can also run commands
+in the context of the guest.  Also you can access filesystems over FTP.
+
+Libguestfs is a library that can be linked with C and C++ management
+programs.
+
+See also the 'guestfish' package for shell scripting and command line
+access.
+
+For Perl bindings, see 'perl-libguestfs'.
+
+For OCaml bindings, see 'ocaml-libguestfs-devel'.
+
+For Python bindings, see 'python-libguestfs'.
+
+For Ruby bindings, see 'ruby-libguestfs'.
+
+For Java bindings, see 'libguestfs-java-devel'.
+
+
+%package devel
+Summary:     Development tools and libraries for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+Requires:    pkgconfig
+
+
+%description devel
+%{name}-devel contains development tools and libraries
+for %{name}.
+
+
+%package -n guestfish
+Summary:     Shell for accessing and modifying virtual machine disk images
+Group:       Development/Tools
+License:     GPLv2+
+Requires:    %{name} = %{version}-%{release}
+Requires:    /usr/bin/pod2text
+
+
+%description -n guestfish
+Guestfish is the Filesystem Interactive SHell, for accessing and
+modifying virtual machine disk images from the command line and shell
+scripts.
+
+
+# virt-inspector cannot yet be built on RHEL 5 because
+#¬†we need perl-Sys-Virt.
+#%package -n virt-inspector
+#Summary:     Display OS version, kernel, drivers, etc in a virtual machine
+#Group:       Development/Tools
+#License:     GPLv2+
+#Requires:    %{name} = %{version}-%{release}
+#Requires:    guestfish
+#Requires:    perl-Sys-Virt
+#
+#
+#%description -n virt-inspector
+#Virt-inspector examines a virtual machine and tries to determine the
+#version of the OS, the kernel version, what drivers are installed,
+#whether the virtual machine is fully virtualized (FV) or
+#para-virtualized (PV), what applications are installed and more.
+
+
+%package -n ocaml-%{name}
+Summary:     OCaml bindings for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+
+
+%description -n ocaml-%{name}
+ocaml-%{name} contains OCaml bindings for %{name}.
+
+This is for toplevel and scripting access only.  To compile OCaml
+programs which use %{name} you will also need ocaml-%{name}-devel.
+
+
+%package -n ocaml-%{name}-devel
+Summary:     OCaml bindings for %{name}
+Group:       Development/Libraries
+Requires:    ocaml-%{name} = %{version}-%{release}
+
+
+%description -n ocaml-%{name}-devel
+ocaml-%{name}-devel contains development libraries
+required to use the OCaml bindings for %{name}.
+
+
+%package -n perl-%{name}
+Summary:     Perl bindings for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+Requires:    perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+
+
+%description -n perl-%{name}
+perl-%{name} contains Perl bindings for %{name}.
+
+
+%package -n python-%{name}
+Summary:     Python bindings for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+
+%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
+%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+
+%description -n python-%{name}
+python-%{name} contains Python bindings for %{name}.
+
+
+%package -n ruby-%{name}
+Summary:     Ruby bindings for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+Requires:    ruby(abi) = 1.8
+Provides:    ruby(guestfs) = %{version}
+
+%{!?ruby_sitelib: %define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")}
+%{!?ruby_sitearch: %define ruby_sitearch %(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")}
+
+%description -n ruby-%{name}
+ruby-%{name} contains Ruby bindings for %{name}.
+
+
+%package java
+Summary:     Java bindings for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+Requires:    java >= 1.5.0
+Requires:    jpackage-utils
+
+%description java
+%{name}-java contains Java bindings for %{name}.
+
+If you want to develop software in Java which uses %{name}, then
+you will also need %{name}-java-devel.
+
+
+%package java-devel
+Summary:     Java development package for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+Requires:    %{name}-java = %{version}-%{release}
+
+%description java-devel
+%{name}-java-devel contains the tools for developing Java software
+using %{name}.
+
+See also %{name}-javadoc.
+
+
+%package javadoc
+Summary:     Java documentation for %{name}
+Group:       Development/Libraries
+Requires:    %{name} = %{version}-%{release}
+Requires:    %{name}-java = %{version}-%{release}
+Requires:    jpackage-utils
+
+%description javadoc
+%{name}-javadoc contains the Java documentation for %{name}.
+
+
+%prep
+%setup -q
+
+mkdir -p daemon/m4
+
+
+%build
+vmchannel_test=no \
+./configure \
+  --prefix=%{_prefix} --libdir=%{_libdir} \
+  --mandir=%{_mandir} \
+  --with-java-home=%{java_home} \
+  --with-qemu="qemu-kvm qemu-system-%{_build_arch} qemu" \
+  --with-repo=centos-5 \
+  --with-mirror=http://mirror.centos.org/centos-5/5.3/os/%{_arch}/ \
+  --with-updates=none \
+  --enable-debug-command
+
+# This ensures that /usr/sbin/chroot is on the path.  Not needed
+# except for RHEL 5, it shouldn't do any harm on other platforms.
+export PATH=/usr/sbin:$PATH
+
+# 'INSTALLDIRS' ensures that perl libs are installed in the vendor dir
+# not the site dir.
+make INSTALLDIRS=vendor %{?_smp_mflags}
+
+
+%check
+# 'make check' won't work in RHEL 5 for well-understood reasons with
+# the tests in some of the language bindings.  However we can still
+# test the C API, which is what this code does.
+make tests
+export LIBGUESTFS_QEMU=$HOME/qemu.wrapper
+test -n "$QUICK_RPMBUILD" || ./tests
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+make DESTDIR=$RPM_BUILD_ROOT install
+
+rm $RPM_BUILD_ROOT%{_libdir}/libguestfs.a
+rm $RPM_BUILD_ROOT%{_libdir}/libguestfs.la
+
+# Clean up the examples/ directory which will get installed in %doc.
+# Note we can't delete the original examples/Makefile because that
+# will be needed by the check section later in the RPM build.
+cp -a examples ex
+pushd ex
+make clean
+rm Makefile*
+rm -rf .deps .libs
+popd
+
+# Same for ocaml/examples.
+cp -a ocaml/examples ocaml/ex
+pushd ocaml/ex
+make clean
+rm Makefile*
+popd
+
+find $RPM_BUILD_ROOT -name perllocal.pod -delete
+find $RPM_BUILD_ROOT -name .packlist -delete
+find $RPM_BUILD_ROOT -name '*.bs' -delete
+
+rm $RPM_BUILD_ROOT%{python_sitearch}/libguestfsmod.a
+rm $RPM_BUILD_ROOT%{python_sitearch}/libguestfsmod.la
+
+if [ "$RPM_BUILD_ROOT%{python_sitearch}" != "$RPM_BUILD_ROOT%{python_sitelib}" ]; then
+   mkdir -p $RPM_BUILD_ROOT%{python_sitelib}
+   mv $RPM_BUILD_ROOT%{python_sitearch}/guestfs.py* \
+     $RPM_BUILD_ROOT%{python_sitelib}/
+fi
+
+# Install ruby bindings by hand.
+mkdir -p $RPM_BUILD_ROOT%{ruby_sitelib}
+mkdir -p $RPM_BUILD_ROOT%{ruby_sitearch}
+install -p -m0644 ruby/lib/guestfs.rb $RPM_BUILD_ROOT%{ruby_sitelib}
+install -p -m0755 ruby/ext/guestfs/_guestfs.so $RPM_BUILD_ROOT%{ruby_sitearch}
+
+# Remove static-linked Java bindings.
+rm $RPM_BUILD_ROOT%{_libdir}/libguestfs_jni.a
+rm $RPM_BUILD_ROOT%{_libdir}/libguestfs_jni.la
+
+# Generator shouldn't be executable when we distribute it.
+chmod -x src/generator.ml
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+
+%files
+%defattr(-,root,root,-)
+%doc COPYING
+%{_libdir}/guestfs/
+%{_libdir}/libguestfs.so.*
+
+
+%files devel
+%defattr(-,root,root,-)
+%doc ChangeLog HACKING TODO README ex html/guestfs.3.html html/pod.css
+%doc src/generator.ml
+%{_libdir}/libguestfs.so
+%{_mandir}/man3/guestfs.3*
+%{_includedir}/guestfs.h
+%{_includedir}/guestfs-actions.h
+%{_includedir}/guestfs-structs.h
+%{_libdir}/pkgconfig/libguestfs.pc
+
+
+%files -n guestfish
+%defattr(-,root,root,-)
+%doc html/guestfish.1.html html/pod.css recipes/
+%{_bindir}/guestfish
+%{_mandir}/man1/guestfish.1*
+
+
+#%files -n virt-inspector
+#%defattr(-,root,root,-)
+#%{_bindir}/virt-inspector
+#%{_mandir}/man1/virt-inspector.1*
+
+
+%files -n ocaml-%{name}
+%defattr(-,root,root,-)
+%doc README
+%{_libdir}/ocaml/guestfs
+%exclude %{_libdir}/ocaml/guestfs/*.a
+%exclude %{_libdir}/ocaml/guestfs/*.cmxa
+%exclude %{_libdir}/ocaml/guestfs/*.cmx
+%exclude %{_libdir}/ocaml/guestfs/*.mli
+%{_libdir}/ocaml/stublibs/*.so
+%{_libdir}/ocaml/stublibs/*.so.owner
+
+
+%files -n ocaml-%{name}-devel
+%defattr(-,root,root,-)
+%doc ocaml/ex
+%{_libdir}/ocaml/guestfs/*.a
+%{_libdir}/ocaml/guestfs/*.cmxa
+%{_libdir}/ocaml/guestfs/*.cmx
+%{_libdir}/ocaml/guestfs/*.mli
+
+
+%files -n perl-%{name}
+%defattr(-,root,root,-)
+%doc perl/examples
+%{perl_vendorarch}/*
+%{_mandir}/man3/Sys::Guestfs.3pm*
+
+
+%files -n python-%{name}
+%defattr(-,root,root,-)
+%doc README
+%{python_sitearch}/*
+%{python_sitelib}/*.py
+#%{python_sitelib}/*.pyc
+#%{python_sitelib}/*.pyo
+
+
+%files -n ruby-%{name}
+%defattr(-,root,root,-)
+%doc README
+%{ruby_sitelib}/guestfs.rb
+%{ruby_sitearch}/_guestfs.so
+
+
+%files java
+%defattr(-,root,root,-)
+%doc README
+%{_libdir}/libguestfs_jni*.so.*
+%{_datadir}/java/*.jar
+
+
+%files java-devel
+%defattr(-,root,root,-)
+%doc README
+%{_libdir}/libguestfs_jni*.so
+
+
+%files javadoc
+%defattr(-,root,root,-)
+%doc README
+%{_datadir}/javadoc/%{name}-java-%{version}
+
+
+%changelog
+* Thu May  7 2009 Richard Jones <rjones@redhat.com> - 1.0.19-1
+- New upstream version 1.0.19.
+
+* Tue Apr 28 2009 Richard Jones <rjones@redhat.com> - 1.0.15-1
+- New upstream version 1.0.15.
+
+* Fri Apr 24 2009 Richard Jones <rjones@redhat.com> - 1.0.12-1
+- New upstream version 1.0.12.
+
+* Wed Apr 22 2009 Richard Jones <rjones@redhat.com> - 1.0.6-1
+- New upstream version 1.0.6.
+
+* Mon Apr 20 2009 Richard Jones <rjones@redhat.com> - 1.0.2-1
+- New upstream version 1.0.2.
+
+* Thu Apr 16 2009 Richard Jones <rjones@redhat.com> - 0.9.9-12
+- Multiple fixes to get it to scratch build in Koji.
+
+* Sat Apr  4 2009 Richard Jones <rjones@redhat.com> - 0.9.9-1
+- Initial build.