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: de9f1f45026c2f4e0776058d429ff4b6
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-tcmalloc.patch
23 Patch7: %{name}-noquotasync.patch
24 URL: http://www.xfs.org/
25 BuildRequires: autoconf
26 BuildRequires: automake
30 BuildRequires: dietlibc-static >= 2:0.31-6
31 BuildRequires: libuuid-dietlibc
33 BuildRequires: glibc-static
34 BuildRequires: libuuid-static
37 BuildRequires: gettext-devel
38 BuildRequires: libblkid-devel
39 %{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
40 BuildRequires: libtool
41 BuildRequires: libuuid-devel
42 BuildRequires: readline-devel
43 BuildRequires: rpm >= 4.4.9-56
44 BuildRequires: rpmbuild(macros) >= 1.402
45 %{?with_tcmalloc:Requires: libtcmalloc >= 1.8.3-3}
46 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 %if "%{pld_release}" == "ac"
49 # libtool in ac doesn't do the reordering of args properly
50 %define filterout_ld -Wl,--as-needed
53 # libxlog uses symbols from binary that links to libxlog
54 # libxcmd uses ("program") symbol from binary that links to libxcmd
55 %define skip_post_check_so libxlog.so.0.0.0 libxcmd.so.0.0.0
57 %define _sbindir /sbin
58 %define _bindir /usr/sbin
59 %define _libdir /%{_lib}
60 %define _libexecdir /usr/%{_lib}
61 # for some reason known only to rpm there must be "\\|" not "\|" here
62 %define dietarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/')
63 %define dietlibdir %{_prefix}/lib/dietlibc/lib-%{dietarch}
66 A set of commands to use the XFS filesystem, including mkfs.xfs.
68 XFS is a high performance journaling filesystem which originated on
69 the SGI IRIX platform. It is completely multi-threaded, can support
70 large files and large filesystems, extended attributes, variable block
71 sizes, is extent based, and makes extensive use of Btrees
72 (directories, extents, free space) to aid both performance and
75 This implementation is on-disk compatible with the IRIX version of
78 %description -l pl.UTF-8
79 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs.
81 XFS jest wysoko wydajnym systemem plików z kroniką, który oryginalnie
82 był używany na platformie SGI IRIX. Jest to w pełni wielowątkowy,
83 obsługujący wielkie pliki oraz wielkie systemy, o rozszerzonych
84 atrybutach, zmiennych wielkościach bloków, mocno wykorzystujący
85 B-drzewa by uzyskać wysoką wydajność oraz skalowalność.
88 Summary: Header files and libraries to develop XFS software
89 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki
90 Group: Development/Libraries
91 Requires: %{name} = %{version}-%{release}
92 Requires: libuuid-devel
95 Header files and libraries to develop software which operates on XFS
98 %description devel -l pl.UTF-8
99 Pliki nagłówkowe i biblioteki potrzebne do rozwoju oprogramowania
100 operującego na systemie plików XFS.
103 Summary: Static XFS software libraries
104 Summary(pl.UTF-8): Biblioteki statyczne do XFS
105 Group: Development/Libraries
106 Requires: %{name}-devel = %{version}-%{release}
109 Static XFS software libraries.
111 %description static -l pl.UTF-8
112 Biblioteki statyczne do XFS.
115 Summary: Tools for the XFS filesystem - initrd version
116 Summary(pl.UTF-8): Narzędzia do systemu plików XFS - wersja dla initrd
120 A set of commands to use the XFS filesystem, including mkfs.xfs
123 %description initrd -l pl.UTF-8
124 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs
134 %{?with_tcmalloc:%patch6 -p1}
142 # dietlibc doesn't have aio.h (and xfsprogs does not need it really)
143 # dietlibc has needed librt stuff in libc/libpthread
144 sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \
145 -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \
147 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
148 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
153 %{?with_dietlibc:CC="diet %{__cc} -static"} \
154 --sbindir=%{_bindir} \
157 DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
158 OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
160 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
161 LIBUUID="%{dietlibdir}/libuuid.a" \
163 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
164 LDFLAGS="%{rpmldflags} -all-static" \
165 LIBUUID="%{dietlibdir}/libuuid.a" \
169 mv -f db/xfs_db initrd/xfs_db
170 mv -f growfs/xfs_growfs initrd/xfs_growfs
171 mv -f logprint/xfs_logprint initrd/xfs_logprint
172 mv -f mkfs/mkfs.xfs initrd/mkfs.xfs
173 mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore
174 mv -f repair/xfs_repair initrd/xfs_repair
177 sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \
178 -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \
180 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
181 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
189 --sbindir=%{_bindir}\
193 DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
194 OPTIMIZER="%{rpmcflags}"
200 rm -rf $RPM_BUILD_ROOT
201 install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc}
203 DIST_ROOT=$RPM_BUILD_ROOT
204 DIST_INSTALL=$(pwd)/install.manifest
205 DIST_INSTALL_DEV=$(pwd)/install-dev.manifest
206 export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV
209 DIST_MANIFEST="$DIST_INSTALL"
210 %{__make} install-dev \
211 DIST_MANIFEST="$DIST_INSTALL_DEV"
213 install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid
215 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \
216 $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so
217 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \
218 $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so
219 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \
220 $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so
221 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \
222 $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so
224 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
225 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
227 %{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \
228 $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la
229 %{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \
230 $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la
233 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
234 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd
237 echo "#10:/mnt/ftp/roman" >> $RPM_BUILD_ROOT/etc/projects
238 echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid
242 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
245 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so
248 rm -rf $RPM_BUILD_ROOT
250 %post -p /sbin/ldconfig
251 %postun -p /sbin/ldconfig
253 %files -f %{name}.lang
254 %defattr(644,root,root,755)
255 %doc README doc/{CHANGES,CREDITS}
256 %config(noreplace) %verify(not md5 mtime size) /etc/projects
257 %config(noreplace) %verify(not md5 mtime size) /etc/projid
258 %attr(755,root,root) %{_sbindir}/fsck.xfs
259 %attr(755,root,root) %{_sbindir}/mkfs.xfs
260 %attr(755,root,root) %{_sbindir}/xfs_repair
261 %attr(755,root,root) %{_bindir}/xfs_*
262 %attr(755,root,root) %{_libdir}/libhandle.so.*.*
263 %attr(755,root,root) %{_libdir}/libxcmd.so.*.*
264 %attr(755,root,root) %{_libdir}/libxfs.so.*.*
265 %attr(755,root,root) %{_libdir}/libxlog.so.*.*
266 %attr(755,root,root) %ghost %{_libdir}/libhandle.so.1
267 %attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0
268 %attr(755,root,root) %ghost %{_libdir}/libxfs.so.0
269 %attr(755,root,root) %ghost %{_libdir}/libxlog.so.0
270 %{_mandir}/man5/projects.5*
271 %{_mandir}/man5/projid.5*
272 %{_mandir}/man5/xfs.5*
273 %{_mandir}/man8/fsck.xfs.8*
274 %{_mandir}/man8/mkfs.xfs.8*
275 %{_mandir}/man8/xfs_*.8*
278 %defattr(644,root,root,755)
279 %attr(755,root,root) %{_libexecdir}/libhandle.so
280 %attr(755,root,root) %{_libexecdir}/libxcmd.so
281 %attr(755,root,root) %{_libexecdir}/libxfs.so
282 %attr(755,root,root) %{_libexecdir}/libxlog.so
283 %{_libexecdir}/libhandle.la
284 %{_libexecdir}/libxcmd.la
285 %{_libexecdir}/libxfs.la
286 %{_libexecdir}/libxlog.la
288 %{_mandir}/man3/*handle.3*
289 %{_mandir}/man3/xfsctl.3*
292 %defattr(644,root,root,755)
293 %{_libexecdir}/libhandle.a
294 %{_libexecdir}/libxcmd.a
295 %{_libexecdir}/libxfs.a
296 %{_libexecdir}/libxlog.a
300 %defattr(644,root,root,755)
301 %attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs
302 %attr(755,root,root) %{_libexecdir}/initrd/xfs_db
303 %attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs
304 %attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint
305 %attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore
306 %attr(755,root,root) %{_libexecdir}/initrd/xfs_repair