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: %{name}-repair-mem.patch
23 Patch7: %{name}-repair-nofutexhang.patch
24 Patch8: %{name}-repair-tcmalloc.patch
25 Patch9: %{name}-noquotasync.patch
26 URL: http://www.xfs.org/
27 BuildRequires: autoconf
28 BuildRequires: automake
32 BuildRequires: dietlibc-static >= 2:0.31-6
33 BuildRequires: libuuid-dietlibc
35 BuildRequires: glibc-static
36 BuildRequires: libuuid-static
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 %{?with_tcmalloc:Requires: libtcmalloc >= 1.8.3-3}
48 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50 %if "%{pld_release}" == "ac"
51 # libtool in ac doesn't do the reordering of args properly
52 %define filterout_ld -Wl,--as-needed
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
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}
68 A set of commands to use the XFS filesystem, including mkfs.xfs.
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
77 This implementation is on-disk compatible with the IRIX version of
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.
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ść.
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
97 Header files and libraries to develop software which operates on XFS
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.
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}
111 Static XFS software libraries.
113 %description static -l pl.UTF-8
114 Biblioteki statyczne do XFS.
117 Summary: Tools for the XFS filesystem - initrd version
118 Summary(pl.UTF-8): Narzędzia do systemu plików XFS - wersja dla initrd
122 A set of commands to use the XFS filesystem, including mkfs.xfs
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
138 %{?with_tcmalloc:%patch8 -p1}
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|' \
151 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
152 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
157 %{?with_dietlibc:CC="diet %{__cc} -static"} \
158 --sbindir=%{_bindir} \
161 DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
162 OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
164 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
165 LIBUUID="%{dietlibdir}/libuuid.a" \
167 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
168 LDFLAGS="%{rpmldflags} -all-static" \
169 LIBUUID="%{dietlibdir}/libuuid.a" \
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
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|' \
184 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
185 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
193 --sbindir=%{_bindir}\
197 DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
198 OPTIMIZER="%{rpmcflags}"
204 rm -rf $RPM_BUILD_ROOT
205 install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc}
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
213 DIST_MANIFEST="$DIST_INSTALL"
214 %{__make} install-dev \
215 DIST_MANIFEST="$DIST_INSTALL_DEV"
217 install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid
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
228 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
229 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
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
237 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
238 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd
241 echo "#10:/mnt/ftp/roman" >> $RPM_BUILD_ROOT/etc/projects
242 echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid
246 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
249 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so
252 rm -rf $RPM_BUILD_ROOT
254 %post -p /sbin/ldconfig
255 %postun -p /sbin/ldconfig
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*
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
292 %{_mandir}/man3/*handle.3*
293 %{_mandir}/man3/xfsctl.3*
296 %defattr(644,root,root,755)
297 %{_libexecdir}/libhandle.a
298 %{_libexecdir}/libxcmd.a
299 %{_libexecdir}/libxfs.a
300 %{_libexecdir}/libxlog.a
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