Remove *~ files when doing 'make clean'.
[libguestfs.git] / libguestfs.spec.in
1 # @configure_input@
2
3 #%global mirror http://hakodate/mirrors/fedora/10/Fedora/x86_64/os/
4
5 Summary:     Access and modify virtual machine disk images
6 Name:        libguestfs
7 Version:     @VERSION@
8 Release:     1%{?dist}
9 License:     LGPLv2+
10 Group:       Development/Libraries
11 URL:         http://et.redhat.com/~rjones/libguestfs/
12 Source0:     http://et.redhat.com/~rjones/libguestfs/files/%{name}-%{version}.tar.gz
13 BuildRoot:   %{_tmppath}/%{name}-%{version}-%{release}-root
14
15 # Basic build requirements:
16 BuildRequires: /usr/bin/pod2man
17 BuildRequires: /usr/bin/pod2text
18 BuildRequires: febootstrap >= 1.5
19 BuildRequires: augeas-devel
20
21 # If you want to build the bindings for different languages:
22 BuildRequires: ocaml
23 BuildRequires: perl-devel
24 BuildRequires: perl-Test-Pod
25 BuildRequires: perl-Test-Pod-Coverage
26 BuildRequires: perl-ExtUtils-MakeMaker
27 # BuildRequires: python-devel
28
29 # Runtime requires:
30 Requires:    qemu
31
32
33 %description
34 Libguestfs is a library for accessing and modifying guest disk images.
35 Amongst the things this is good for: making batch configuration
36 changes to guests, getting disk used/free statistics (see also:
37 virt-df), migrating between virtualization systems (see also:
38 virt-p2v), performing partial backups, performing partial guest
39 clones, cloning guests and changing registry/UUID/hostname info, and
40 much else besides.
41
42 Libguestfs uses Linux kernel and qemu code, and can access any type of
43 guest filesystem that Linux and qemu can, including but not limited
44 to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition
45 schemes, qcow, qcow2, vmdk.
46
47 Libguestfs provides ways to enumerate guest storage (eg. partitions,
48 LVs, what filesystem is in each LV, etc.).  It can also run commands
49 in the context of the guest.  Also you can access filesystems over FTP.
50
51 Libguestfs is a library that can be linked with C and C++ management
52 programs.
53
54 See also the 'guestfish' package for shell scripting and command line
55 access.
56
57
58 %package devel
59 Summary:     Development tools and libraries for %{name}
60 Group:       Development/Libraries
61 Requires:    %{name} = %{version}-%{release}
62
63
64 %description devel
65 %{name}-devel contains development tools and libraries
66 for %{name}.
67
68
69 %package -n guestfish
70 Summary:     Shell for accessing and modifying virtual machine disk images
71 Group:       Development/Tools
72 License:     GPLv2+
73 Requires:    %{name} = %{version}-%{release}
74 Requires:    /usr/bin/pod2text
75
76
77 %description -n guestfish
78 Guestfish is the Filesystem Interactive SHell, for accessing and
79 modifying virtual machine disk images from the command line and shell
80 scripts.
81
82
83 %package ocaml
84 Summary:     OCaml bindings for %{name}
85 Group:       Development/Libraries
86 Requires:    %{name} = %{version}-%{release}
87
88
89 %description ocaml
90 %{name}-ocaml contains OCaml bindings for %{name}.
91
92 This is for toplevel and scripting access only.  To compile OCaml
93 programs which use %{name} you will also need %{name}-ocaml-devel.
94
95
96 %package ocaml-devel
97 Summary:     OCaml bindings for %{name}
98 Group:       Development/Libraries
99 Requires:    %{name}-ocaml = %{version}-%{release}
100
101
102 %description ocaml-devel
103 %{name}-ocaml-devel contains development libraries
104 required to use the OCaml bindings for %{name}.
105
106
107 %package perl
108 Summary:     Perl bindings for %{name}
109 Group:       Development/Libraries
110 Requires:    %{name} = %{version}-%{release}
111 Requires:    perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
112
113
114 %description perl
115 %{name}-perl contains Perl bindings for %{name}.
116
117
118 # %package python
119 # Summary:     Python bindings for %{name}
120 # Group:       Development/Libraries
121 # Requires:    %{name} = %{version}-%{release}
122
123
124 # %description python
125 # %{name}-python contains Python bindings for %{name}.
126
127
128 %prep
129 %setup -q
130
131
132 %build
133 #%configure --with-mirror=%{mirror}
134 %configure
135
136 # 'INSTALLDIRS' ensures that perl libs are installed in the vendor dir
137 # not the site dir.
138 make INSTALLDIRS=vendor
139
140
141 %install
142 rm -rf $RPM_BUILD_ROOT
143
144 make DESTDIR=$RPM_BUILD_ROOT install
145
146 rm $RPM_BUILD_ROOT%{_libdir}/libguestfs.a
147 rm $RPM_BUILD_ROOT%{_libdir}/libguestfs.la
148
149 # Clean up the examples/ directory which will get installed in %doc.
150 pushd examples
151 make clean
152 rm Makefile*
153 rm -rf .deps .libs
154 popd
155
156 # Same for ocaml/examples.
157 pushd ocaml/examples
158 make clean
159 rm Makefile*
160 popd
161
162 find $RPM_BUILD_ROOT -name perllocal.pod -delete
163 find $RPM_BUILD_ROOT -name .packlist -delete
164
165
166 %clean
167 rm -rf $RPM_BUILD_ROOT
168
169
170 %post -p /sbin/ldconfig
171
172 %postun -p /sbin/ldconfig
173
174
175 %files
176 %defattr(-,root,root,-)
177 %doc COPYING
178 %{_libdir}/guestfs/
179 %{_libdir}/libguestfs.so.*
180
181
182 %files devel
183 %defattr(-,root,root,-)
184 %doc HACKING README examples html/guestfs.3.html html/pod.css
185 %{_libdir}/libguestfs.so
186 %{_mandir}/man3/guestfs.3*
187 %{_includedir}/guestfs.h
188 %{_includedir}/guestfs-actions.h
189 %{_includedir}/guestfs-structs.h
190
191
192 %files -n guestfish
193 %defattr(-,root,root,-)
194 %doc html/guestfish.1.html html/pod.css
195 %{_bindir}/guestfish
196 %{_mandir}/man1/guestfish.1*
197
198
199 %files ocaml
200 %defattr(-,root,root,-)
201 %{_libdir}/ocaml/guestfs
202 %exclude %{_libdir}/ocaml/guestfs/*.a
203 %exclude %{_libdir}/ocaml/guestfs/*.cmxa
204 %exclude %{_libdir}/ocaml/guestfs/*.cmx
205 %exclude %{_libdir}/ocaml/guestfs/*.mli
206 %{_libdir}/ocaml/stublibs/*.so
207 %{_libdir}/ocaml/stublibs/*.so.owner
208
209
210 %files ocaml-devel
211 %defattr(-,root,root,-)
212 %doc ocaml/examples
213 %{_libdir}/ocaml/guestfs/*.a
214 %{_libdir}/ocaml/guestfs/*.cmxa
215 %{_libdir}/ocaml/guestfs/*.cmx
216 %{_libdir}/ocaml/guestfs/*.mli
217
218
219 %files perl
220 %defattr(-,root,root,-)
221 %doc perl/examples
222 %{perl_vendorarch}/*
223 %{_mandir}/man3/Sys::Guestfs.3pm*
224
225
226 # %files python
227 # %defattr(-,root,root,-)
228
229
230 %changelog
231 * Sat Apr  4 2009 Richard Jones <rjones@redhat.com> - @VERSION@-1
232 - Initial build.