]> git.pld-linux.org Git - packages/xfsprogs.git/blob - xfsprogs.spec
- rel 2; don't call expensive quota sync
[packages/xfsprogs.git] / xfsprogs.spec
1 #
2 # Conditional build:
3 %bcond_without  initrd          # don't build initrd version
4 %bcond_without  dietlibc        # link initrd version with static glibc instead of dietlibc
5 %bcond_without  tcmalloc        # don't use tcmalloc
6 #
7 Summary:        Tools for the XFS filesystem
8 Summary(pl.UTF-8):      Narzędzia do systemu plików XFS
9 Name:           xfsprogs
10 Version:        3.1.7
11 Release:        2
12 License:        LGPL v2.1 (libhandle), GPL v2 (the rest)
13 Group:          Applications/System
14 Source0:        ftp://linux-xfs.sgi.com/projects/xfs/cmd_tars/%{name}-%{version}.tar.gz
15 # Source0-md5:  049cf9873794ea49d0bb3f12d45748a4
16 Source1:        xfs_lsprojid
17 Patch0:         %{name}-miscfix-v2.patch
18 Patch2:         %{name}-sharedlibs.patch
19 Patch3:         %{name}-pl.po-update.patch
20 Patch4:         %{name}-dynamic_exe.patch
21 Patch5:         %{name}-diet.patch
22 Patch6:         xfsprogs-repair-mem.patch
23 Patch7:         xfsprogs-repair-nofutexhang.patch
24 Patch8:         xfsprogs-repair-tcmalloc.patch
25 Patch9:         %{name}-noquotasync.patch
26 URL:            http://www.xfs.org/
27 BuildRequires:  autoconf
28 BuildRequires:  automake
29 BuildRequires:  bash
30 %if %{with initrd}
31         %if %{with dietlibc}
32 BuildRequires:  dietlibc-static >= 2:0.31-6
33 BuildRequires:  libuuid-dietlibc
34         %else
35 BuildRequires:  glibc-static
36 BuildRequires:  libuuid-static
37         %endif
38 %endif
39 BuildRequires:  gettext-devel
40 BuildRequires:  libblkid-devel
41 %{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
42 BuildRequires:  libtool
43 BuildRequires:  libuuid-devel
44 BuildRequires:  readline-devel
45 BuildRequires:  rpm >= 4.4.9-56
46 BuildRequires:  rpmbuild(macros) >= 1.402
47 Requires:       libtcmalloc >= 1.8.3-3
48 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49
50 %if "%{pld_release}" == "ac"
51 # libtool in ac doesn't do the reordering of args properly
52 %define         filterout_ld -Wl,--as-needed
53 %endif
54
55 # libxlog uses symbols from binary that links to libxlog
56 # libxcmd uses ("program") symbol from binary that links to libxcmd
57 %define         skip_post_check_so      libxlog.so.0.0.0        libxcmd.so.0.0.0
58
59 %define         _sbindir        /sbin
60 %define         _bindir         /usr/sbin
61 %define         _libdir         /%{_lib}
62 %define         _libexecdir     /usr/%{_lib}
63 # for some reason known only to rpm there must be "\\|" not "\|" here
64 %define         dietarch        %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/')
65 %define         dietlibdir      %{_prefix}/lib/dietlibc/lib-%{dietarch}
66
67 %description
68 A set of commands to use the XFS filesystem, including mkfs.xfs.
69
70 XFS is a high performance journaling filesystem which originated on
71 the SGI IRIX platform. It is completely multi-threaded, can support
72 large files and large filesystems, extended attributes, variable block
73 sizes, is extent based, and makes extensive use of Btrees
74 (directories, extents, free space) to aid both performance and
75 scalability.
76
77 This implementation is on-disk compatible with the IRIX version of
78 XFS.
79
80 %description -l pl.UTF-8
81 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs.
82
83 XFS jest wysoko wydajnym systemem plików z kroniką, który oryginalnie
84 był używany na platformie SGI IRIX. Jest to w pełni wielowątkowy,
85 obsługujący wielkie pliki oraz wielkie systemy, o rozszerzonych
86 atrybutach, zmiennych wielkościach bloków, mocno wykorzystujący
87 B-drzewa by uzyskać wysoką wydajność oraz skalowalność.
88
89 %package devel
90 Summary:        Header files and libraries to develop XFS software
91 Summary(pl.UTF-8):      Pliki nagłówkowe i biblioteki
92 Group:          Development/Libraries
93 Requires:       %{name} = %{version}-%{release}
94 Requires:       libuuid-devel
95
96 %description devel
97 Header files and libraries to develop software which operates on XFS
98 filesystems.
99
100 %description devel -l pl.UTF-8
101 Pliki nagłówkowe i biblioteki potrzebne do rozwoju oprogramowania
102 operującego na systemie plików XFS.
103
104 %package static
105 Summary:        Static XFS software libraries
106 Summary(pl.UTF-8):      Biblioteki statyczne do XFS
107 Group:          Development/Libraries
108 Requires:       %{name}-devel = %{version}-%{release}
109
110 %description static
111 Static XFS software libraries.
112
113 %description static -l pl.UTF-8
114 Biblioteki statyczne do XFS.
115
116 %package initrd
117 Summary:        Tools for the XFS filesystem - initrd version
118 Summary(pl.UTF-8):      Narzędzia do systemu plików XFS - wersja dla initrd
119 Group:          Base
120
121 %description initrd
122 A set of commands to use the XFS filesystem, including mkfs.xfs
123  - initrd version.
124
125 %description initrd -l pl.UTF-8
126 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs
127  - wersja dla initrd.
128
129 %prep
130 %setup -q
131 %patch0 -p1
132 %patch2 -p1
133 %patch3 -p1
134 %patch4 -p1
135 %patch5 -p1
136 %patch6 -p1
137 %patch7 -p1
138 %{?with_tcmalloc:%patch8 -p1}
139 %patch9 -p1
140
141 %build
142 %{__aclocal} -I m4
143
144 %if %{with initrd}
145 %if %{with dietlibc}
146 # dietlibc doesn't have aio.h (and xfsprogs does not need it really)
147 # dietlibc has needed librt stuff in libc/libpthread
148 sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \
149         -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \
150         configure.in
151 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
152 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
153 %endif
154
155 %{__autoconf}
156 %configure \
157         %{?with_dietlibc:CC="diet %{__cc} -static"} \
158         --sbindir=%{_bindir} \
159         --disable-gettext \
160         --disable-readline \
161         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
162         OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
163
164 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
165         LIBUUID="%{dietlibdir}/libuuid.a" \
166         V=1
167 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
168         LDFLAGS="%{rpmldflags} -all-static" \
169         LIBUUID="%{dietlibdir}/libuuid.a" \
170         V=1
171
172 mkdir -p initrd
173 mv -f db/xfs_db initrd/xfs_db
174 mv -f growfs/xfs_growfs initrd/xfs_growfs
175 mv -f logprint/xfs_logprint initrd/xfs_logprint
176 mv -f mkfs/mkfs.xfs initrd/mkfs.xfs
177 mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore
178 mv -f repair/xfs_repair initrd/xfs_repair
179
180 %if %{with dietlibc}
181 sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \
182         -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \
183         configure.in
184 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
185 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
186 %endif
187
188 %{__make} clean
189 %endif
190
191 %{__autoconf}
192 %configure \
193         --sbindir=%{_bindir}\
194         --enable-gettext \
195         --enable-readline \
196         --enable-blkid \
197         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
198         OPTIMIZER="%{rpmcflags}"
199
200 %{__make} -j1 \
201         V=1
202
203 %install
204 rm -rf $RPM_BUILD_ROOT
205 install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc}
206
207 DIST_ROOT=$RPM_BUILD_ROOT
208 DIST_INSTALL=$(pwd)/install.manifest
209 DIST_INSTALL_DEV=$(pwd)/install-dev.manifest
210 export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV
211
212 %{__make} install \
213         DIST_MANIFEST="$DIST_INSTALL"
214 %{__make} install-dev \
215         DIST_MANIFEST="$DIST_INSTALL_DEV"
216
217 install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid
218
219 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \
220          $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so
221 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \
222         $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so
223 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \
224         $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so
225 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \
226         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so
227
228 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
229 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
230
231 %{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \
232         $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la
233 %{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \
234         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la
235
236 %if %{with initrd}
237 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
238 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd
239 %endif
240
241 echo "#10:/mnt/ftp/roman"  >> $RPM_BUILD_ROOT/etc/projects
242 echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid
243
244 %find_lang %{name}
245
246 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
247
248 # already in /usr
249 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so
250
251 %clean
252 rm -rf $RPM_BUILD_ROOT
253
254 %post   -p /sbin/ldconfig
255 %postun -p /sbin/ldconfig
256
257 %files -f %{name}.lang
258 %defattr(644,root,root,755)
259 %doc README doc/{CHANGES,CREDITS}
260 %config(noreplace) %verify(not md5 mtime size) /etc/projects
261 %config(noreplace) %verify(not md5 mtime size) /etc/projid
262 %attr(755,root,root) %{_sbindir}/fsck.xfs
263 %attr(755,root,root) %{_sbindir}/mkfs.xfs
264 %attr(755,root,root) %{_sbindir}/xfs_repair
265 %attr(755,root,root) %{_bindir}/xfs_*
266 %attr(755,root,root) %{_libdir}/libhandle.so.*.*
267 %attr(755,root,root) %{_libdir}/libxcmd.so.*.*
268 %attr(755,root,root) %{_libdir}/libxfs.so.*.*
269 %attr(755,root,root) %{_libdir}/libxlog.so.*.*
270 %attr(755,root,root) %ghost %{_libdir}/libhandle.so.1
271 %attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0
272 %attr(755,root,root) %ghost %{_libdir}/libxfs.so.0
273 %attr(755,root,root) %ghost %{_libdir}/libxlog.so.0
274 %{_mandir}/man5/projects.5*
275 %{_mandir}/man5/projid.5*
276 %{_mandir}/man5/xfs.5*
277 %{_mandir}/man8/fsck.xfs.8*
278 %{_mandir}/man8/mkfs.xfs.8*
279 %{_mandir}/man8/xfs_*.8*
280
281 %files devel
282 %defattr(644,root,root,755)
283 %attr(755,root,root) %{_libexecdir}/libhandle.so
284 %attr(755,root,root) %{_libexecdir}/libxcmd.so
285 %attr(755,root,root) %{_libexecdir}/libxfs.so
286 %attr(755,root,root) %{_libexecdir}/libxlog.so
287 %{_libexecdir}/libhandle.la
288 %{_libexecdir}/libxcmd.la
289 %{_libexecdir}/libxfs.la
290 %{_libexecdir}/libxlog.la
291 %{_includedir}/xfs
292 %{_mandir}/man3/*handle.3*
293 %{_mandir}/man3/xfsctl.3*
294
295 %files static
296 %defattr(644,root,root,755)
297 %{_libexecdir}/libhandle.a
298 %{_libexecdir}/libxcmd.a
299 %{_libexecdir}/libxfs.a
300 %{_libexecdir}/libxlog.a
301
302 %if %{with initrd}
303 %files initrd
304 %defattr(644,root,root,755)
305 %attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs
306 %attr(755,root,root) %{_libexecdir}/initrd/xfs_db
307 %attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs
308 %attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint
309 %attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore
310 %attr(755,root,root) %{_libexecdir}/initrd/xfs_repair
311 %endif
This page took 0.226511 seconds and 4 git commands to generate.