X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=libguestfs.spec.in;h=76b8fb23d8aa441a9dd23fe19a866231aa4c6afd;hp=fc70b0175c931ba37867c229c7b62c5bba51a2ec;hb=08361c8987f4552649b6c708f52e940e1575fa6e;hpb=5a6da98c943be987441673a590c151f15573b6cc diff --git a/libguestfs.spec.in b/libguestfs.spec.in index fc70b01..76b8fb2 100644 --- a/libguestfs.spec.in +++ b/libguestfs.spec.in @@ -1,4 +1,7 @@ -@configure_input@ +# @configure_input@ + +# Enable to build w/o network. +%global buildnonet 0 Summary: Access and modify virtual machine disk images Name: libguestfs @@ -10,6 +13,10 @@ 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 @@ -19,11 +26,16 @@ BuildRequires: readline-devel BuildRequires: qemu >= 0.10-7 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 + # Build requirements for the appliance: # (see 'make-initramfs.sh.in' in the source) BuildRequires: kernel, bash, coreutils, lvm2, ntfs-3g, util-linux-ng BuildRequires: MAKEDEV, net-tools, augeas-libs, file BuildRequires: module-init-tools, procps, strace, iputils +BuildRequires: grub, dosfstools, ntfsprogs # These are only required if you want to build the bindings for # different languages: @@ -35,6 +47,14 @@ BuildRequires: perl-Test-Pod BuildRequires: perl-Test-Pod-Coverage BuildRequires: perl-ExtUtils-MakeMaker BuildRequires: python-devel +BuildRequires: ruby-devel +BuildRequires: rubygem-rake +BuildRequires: java >= 1.5.0 +BuildRequires: jpackage-utils +BuildRequires: java-devel + +# For virt-inspector: +BuildRequires: perl-Sys-Virt # Runtime requires: Requires: qemu >= 0.10-7 @@ -64,17 +84,22 @@ programs. See also the 'guestfish' package for shell scripting and command line access. -For Perl bindings, see 'libguestfs-perl'. +For Perl bindings, see 'perl-libguestfs'. -For OCaml bindings, see 'libguestfs-ocaml-devel'. +For OCaml bindings, see 'ocaml-libguestfs-devel'. -For Python bindings, see 'libguestfs-python'. +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 @@ -96,42 +121,58 @@ modifying virtual machine disk images from the command line and shell scripts. -%package ocaml +%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 ocaml -%{name}-ocaml contains OCaml bindings for %{name}. +%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 %{name}-ocaml-devel. +programs which use %{name} you will also need ocaml-%{name}-devel. -%package ocaml-devel +%package -n ocaml-%{name}-devel Summary: OCaml bindings for %{name} Group: Development/Libraries -Requires: %{name}-ocaml = %{version}-%{release} +Requires: ocaml-%{name} = %{version}-%{release} -%description ocaml-devel -%{name}-ocaml-devel contains development libraries +%description -n ocaml-%{name}-devel +ocaml-%{name}-devel contains development libraries required to use the OCaml bindings for %{name}. -%package perl +%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 perl -%{name}-perl contains Perl bindings for %{name}. +%description -n perl-%{name} +perl-%{name} contains Perl bindings for %{name}. -%package python +%package -n python-%{name} Summary: Python bindings for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} @@ -139,20 +180,93 @@ 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 python -%{name}-python contains Python bindings for %{name}. +%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 -%configure +%if %{buildnonet} +mkdir repo +find /var/cache/yum/build -type f -name '*.rpm' -print0 | xargs -0 cp -t repo +createrepo repo +%define extra --with-mirror=file://$(pwd)/repo --with-repo=fedora-12 +%else +%define extra %nil +%endif + +./configure \ + --prefix=%{_prefix} --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --with-java-home=%{java_home} \ + --with-qemu="qemu-kvm qemu-system-%{_build_arch} qemu" \ + --enable-debug-command \ + %{extra} + +# 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 +make INSTALLDIRS=vendor %{?_smp_mflags} %check @@ -186,6 +300,7 @@ 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 @@ -196,6 +311,19 @@ if [ "$RPM_BUILD_ROOT%{python_sitearch}" != "$RPM_BUILD_ROOT%{python_sitelib}" ] $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 @@ -215,24 +343,32 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(-,root,root,-) -%doc HACKING TODO README ex html/guestfs.3.html html/pod.css +%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 +%doc html/guestfish.1.html html/pod.css recipes/ %{_bindir}/guestfish %{_mandir}/man1/guestfish.1* -%files ocaml +%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 @@ -242,7 +378,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/ocaml/stublibs/*.so.owner -%files ocaml-devel +%files -n ocaml-%{name}-devel %defattr(-,root,root,-) %doc ocaml/ex %{_libdir}/ocaml/guestfs/*.a @@ -251,25 +387,73 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/ocaml/guestfs/*.mli -%files perl +%files -n perl-%{name} %defattr(-,root,root,-) %doc perl/examples %{perl_vendorarch}/* %{_mandir}/man3/Sys::Guestfs.3pm* -%files python +%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 Apr 16 2009 Richard Jones - @VERSION@-1 +* Fri May 8 2009 Richard Jones - @VERSION@-1 - New upstream version @VERSION@. +* Fri May 8 2009 Richard Jones - 1.0.21-2 +- New upstream version 1.0.21. + +* Thu May 7 2009 Richard Jones - 1.0.20-2 +- New upstream version 1.0.20. + +* Thu May 7 2009 Richard Jones - 1.0.19-1 +- New upstream version 1.0.19. + +* Tue Apr 28 2009 Richard Jones - 1.0.15-1 +- New upstream version 1.0.15. + +* Fri Apr 24 2009 Richard Jones - 1.0.12-1 +- New upstream version 1.0.12. + +* Wed Apr 22 2009 Richard Jones - 1.0.6-1 +- New upstream version 1.0.6. + +* Mon Apr 20 2009 Richard Jones - 1.0.2-1 +- New upstream version 1.0.2. + * Thu Apr 16 2009 Richard Jones - 0.9.9-12 - Multiple fixes to get it to scratch build in Koji.