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
7 Summary: Tools for the XFS filesystem
8 Summary(pl.UTF-8): Narzędzia do systemu plików XFS
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
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 URL: http://www.xfs.org/
26 BuildRequires: autoconf
27 BuildRequires: automake
31 BuildRequires: dietlibc-static >= 2:0.31-6
32 BuildRequires: libuuid-dietlibc
34 BuildRequires: glibc-static
35 BuildRequires: libuuid-static
38 BuildRequires: gettext-devel
39 BuildRequires: libblkid-devel
40 %{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
41 BuildRequires: libtool
42 BuildRequires: libuuid-devel
43 BuildRequires: readline-devel
44 BuildRequires: rpm >= 4.4.9-56
45 BuildRequires: rpmbuild(macros) >= 1.402
46 Requires: libtcmalloc >= 1.8.3-3
47 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49 %if "%{pld_release}" == "ac"
50 # libtool in ac doesn't do the reordering of args properly
51 %define filterout_ld -Wl,--as-needed
54 # libxlog uses symbols from binary that links to libxlog
55 # libxcmd uses ("program") symbol from binary that links to libxcmd
56 %define skip_post_check_so libxlog.so.0.0.0 libxcmd.so.0.0.0
58 %define _sbindir /sbin
59 %define _bindir /usr/sbin
60 %define _libdir /%{_lib}
61 %define _libexecdir /usr/%{_lib}
62 # for some reason known only to rpm there must be "\\|" not "\|" here
63 %define dietarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/')
64 %define dietlibdir %{_prefix}/lib/dietlibc/lib-%{dietarch}
67 A set of commands to use the XFS filesystem, including mkfs.xfs.
69 XFS is a high performance journaling filesystem which originated on
70 the SGI IRIX platform. It is completely multi-threaded, can support
71 large files and large filesystems, extended attributes, variable block
72 sizes, is extent based, and makes extensive use of Btrees
73 (directories, extents, free space) to aid both performance and
76 This implementation is on-disk compatible with the IRIX version of
79 %description -l pl.UTF-8
80 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs.
82 XFS jest wysoko wydajnym systemem plików z kroniką, który oryginalnie
83 był używany na platformie SGI IRIX. Jest to w pełni wielowątkowy,
84 obsługujący wielkie pliki oraz wielkie systemy, o rozszerzonych
85 atrybutach, zmiennych wielkościach bloków, mocno wykorzystujący
86 B-drzewa by uzyskać wysoką wydajność oraz skalowalność.
89 Summary: Header files and libraries to develop XFS software
90 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki
91 Group: Development/Libraries
92 Requires: %{name} = %{version}-%{release}
93 Requires: libuuid-devel
96 Header files and libraries to develop software which operates on XFS
99 %description devel -l pl.UTF-8
100 Pliki nagłówkowe i biblioteki potrzebne do rozwoju oprogramowania
101 operującego na systemie plików XFS.
104 Summary: Static XFS software libraries
105 Summary(pl.UTF-8): Biblioteki statyczne do XFS
106 Group: Development/Libraries
107 Requires: %{name}-devel = %{version}-%{release}
110 Static XFS software libraries.
112 %description static -l pl.UTF-8
113 Biblioteki statyczne do XFS.
116 Summary: Tools for the XFS filesystem - initrd version
117 Summary(pl.UTF-8): Narzędzia do systemu plików XFS - wersja dla initrd
121 A set of commands to use the XFS filesystem, including mkfs.xfs
124 %description initrd -l pl.UTF-8
125 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs
137 %{?with_tcmalloc:%patch8 -p1}
144 # dietlibc doesn't have aio.h (and xfsprogs does not need it really)
145 # dietlibc has needed librt stuff in libc/libpthread
146 sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \
147 -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \
149 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
150 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
155 %{?with_dietlibc:CC="diet %{__cc} -static"} \
156 --sbindir=%{_bindir} \
159 DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
160 OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
162 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
163 LIBUUID="%{dietlibdir}/libuuid.a" \
165 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
166 LDFLAGS="%{rpmldflags} -all-static" \
167 LIBUUID="%{dietlibdir}/libuuid.a" \
171 mv -f db/xfs_db initrd/xfs_db
172 mv -f growfs/xfs_growfs initrd/xfs_growfs
173 mv -f logprint/xfs_logprint initrd/xfs_logprint
174 mv -f mkfs/mkfs.xfs initrd/mkfs.xfs
175 mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore
176 mv -f repair/xfs_repair initrd/xfs_repair
179 sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \
180 -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \
182 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
183 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
191 --sbindir=%{_bindir}\
195 DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
196 OPTIMIZER="%{rpmcflags}"
202 rm -rf $RPM_BUILD_ROOT
203 install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc}
205 DIST_ROOT=$RPM_BUILD_ROOT
206 DIST_INSTALL=$(pwd)/install.manifest
207 DIST_INSTALL_DEV=$(pwd)/install-dev.manifest
208 export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV
211 DIST_MANIFEST="$DIST_INSTALL"
212 %{__make} install-dev \
213 DIST_MANIFEST="$DIST_INSTALL_DEV"
215 install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid
217 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \
218 $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so
219 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \
220 $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so
221 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \
222 $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so
223 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \
224 $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so
226 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
227 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
229 %{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \
230 $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la
231 %{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \
232 $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la
235 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
236 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd
239 echo "#10:/mnt/ftp/roman" >> $RPM_BUILD_ROOT/etc/projects
240 echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid
244 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
247 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so
250 rm -rf $RPM_BUILD_ROOT
252 %post -p /sbin/ldconfig
253 %postun -p /sbin/ldconfig
255 %files -f %{name}.lang
256 %defattr(644,root,root,755)
257 %doc README doc/{CHANGES,CREDITS}
258 %config(noreplace) %verify(not md5 mtime size) /etc/projects
259 %config(noreplace) %verify(not md5 mtime size) /etc/projid
260 %attr(755,root,root) %{_sbindir}/fsck.xfs
261 %attr(755,root,root) %{_sbindir}/mkfs.xfs
262 %attr(755,root,root) %{_sbindir}/xfs_repair
263 %attr(755,root,root) %{_bindir}/xfs_*
264 %attr(755,root,root) %{_libdir}/libhandle.so.*.*
265 %attr(755,root,root) %{_libdir}/libxcmd.so.*.*
266 %attr(755,root,root) %{_libdir}/libxfs.so.*.*
267 %attr(755,root,root) %{_libdir}/libxlog.so.*.*
268 %attr(755,root,root) %ghost %{_libdir}/libhandle.so.1
269 %attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0
270 %attr(755,root,root) %ghost %{_libdir}/libxfs.so.0
271 %attr(755,root,root) %ghost %{_libdir}/libxlog.so.0
272 %{_mandir}/man5/projects.5*
273 %{_mandir}/man5/projid.5*
274 %{_mandir}/man5/xfs.5*
275 %{_mandir}/man8/fsck.xfs.8*
276 %{_mandir}/man8/mkfs.xfs.8*
277 %{_mandir}/man8/xfs_*.8*
280 %defattr(644,root,root,755)
281 %attr(755,root,root) %{_libexecdir}/libhandle.so
282 %attr(755,root,root) %{_libexecdir}/libxcmd.so
283 %attr(755,root,root) %{_libexecdir}/libxfs.so
284 %attr(755,root,root) %{_libexecdir}/libxlog.so
285 %{_libexecdir}/libhandle.la
286 %{_libexecdir}/libxcmd.la
287 %{_libexecdir}/libxfs.la
288 %{_libexecdir}/libxlog.la
290 %{_mandir}/man3/*handle.3*
291 %{_mandir}/man3/xfsctl.3*
294 %defattr(644,root,root,755)
295 %{_libexecdir}/libhandle.a
296 %{_libexecdir}/libxcmd.a
297 %{_libexecdir}/libxfs.a
298 %{_libexecdir}/libxlog.a
302 %defattr(644,root,root,755)
303 %attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs
304 %attr(755,root,root) %{_libexecdir}/initrd/xfs_db
305 %attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs
306 %attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint
307 %attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore
308 %attr(755,root,root) %{_libexecdir}/initrd/xfs_repair