From 236b5295bf3e497153a5cae9708c3d0249f2daf6 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Sat, 4 Apr 2009 11:27:26 +0100 Subject: [PATCH] Mostly working spec file. --- .gitignore | 2 + Makefile.am | 5 ++- configure.ac | 5 ++- libguestfs.spec.in | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 9 +++- 5 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 libguestfs.spec.in diff --git a/.gitignore b/.gitignore index f3d3dce..2e02d96 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,8 @@ initramfs.timestamp initramfs.*.img install-sh missing +libguestfs.spec +libguestfs-*.tar.gz libtool ltmain.sh make-initramfs.sh diff --git a/Makefile.am b/Makefile.am index d900061..8e2b49d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,7 +21,9 @@ SUBDIRS = src daemon fish examples EXTRA_DIST = \ make-initramfs.sh update-initramfs.sh \ - guestfs.pod guestfs-actions.pod + guestfs.pod guestfs-actions.pod \ + libguestfs.spec \ + HACKING # Build the root filesystem. # Currently this is arch-dependent, so it seems like putting it in @@ -65,6 +67,7 @@ guestfs.3: guestfs.pod guestfs-actions.pod $(POD2MAN) \ --section 3 \ -c "Virtualization Support" \ + --name "guestfs" \ --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \ > $@ diff --git a/configure.ac b/configure.ac index 0f7b4c3..dc1d81f 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -AC_INIT([libguestfs],[0.2]) +AC_INIT([libguestfs],[0.3]) AM_INIT_AUTOMAKE AC_CONFIG_MACRO_DIR([m4]) @@ -100,7 +100,8 @@ AC_CONFIG_SUBDIRS([daemon]) dnl Produce output files. AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile src/Makefile fish/Makefile examples/Makefile - make-initramfs.sh update-initramfs.sh]) + make-initramfs.sh update-initramfs.sh + libguestfs.spec]) AC_OUTPUT dnl WTF? diff --git a/libguestfs.spec.in b/libguestfs.spec.in new file mode 100644 index 0000000..7a33c62 --- /dev/null +++ b/libguestfs.spec.in @@ -0,0 +1,121 @@ +# @configure_input@ + +%global mirror http://hakodate/mirrors/fedora/10/Fedora/x86_64/os/ + +Summary: Access and modify virtual machine disk images +Name: libguestfs +Version: @VERSION@ +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 + +BuildRequires: /usr/bin/pod2man +BuildRequires: /usr/bin/pod2text +BuildRequires: febootstrap + +Requires: qemu + + +%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. + + +%package devel +Summary: Development tools and libraries for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + + +%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. + + +%prep +%setup -q + + +%build +%configure --with-mirror=%{mirror} +make + + +%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. +pushd examples +make clean +rm Makefile* +rm -rf .deps .libs +popd + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root,-) +%doc COPYING +%{_libdir}/guestfs/ +%{_libdir}/libguestfs.so.* + + +%files devel +%defattr(-,root,root,-) +%doc HACKING README examples +%{_libdir}/libguestfs.so +%{_mandir}/man3/guestfs.3* + + +%files -n guestfish +%defattr(-,root,root,-) +%{_bindir}/guestfish + + +%changelog +* Sat Apr 4 2009 Richard Jones - @VERSION@-1 +- Initial build. diff --git a/src/Makefile.am b/src/Makefile.am index 68cabba..7fa17e0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,12 +15,17 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -lib_LTLIBRARIES = libguestfs.la - # NB. guestfs-actions.c is #include'd into guestfs.c, so it should not # be listed as a source file. EXTRA_DIST = guestfs-actions.c +EXTRA_DIST += guestfs_protocol.x \ + guestfs_protocol.c \ + guestfs_protocol.h + +lib_LTLIBRARIES = libguestfs.la + +libguestfs_la_LDFLAGS = -version-info 0:0:0 libguestfs_la_SOURCES = \ guestfs.c \ guestfs.h \ -- 1.8.3.1