]> git.pld-linux.org Git - packages/xfsprogs.git/blob - xfsprogs.spec
- force R on google-perftools with some libs in /lib(64)
[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 #
6 Summary:        Tools for the XFS filesystem
7 Summary(pl.UTF-8):      Narzędzia do systemu plików XFS
8 Name:           xfsprogs
9 Version:        3.1.7
10 Release:        1
11 License:        LGPL v2.1 (libhandle), GPL v2 (the rest)
12 Group:          Applications/System
13 Source0:        ftp://linux-xfs.sgi.com/projects/xfs/cmd_tars/%{name}-%{version}.tar.gz
14 # Source0-md5:  049cf9873794ea49d0bb3f12d45748a4
15 Source1:        xfs_lsprojid
16 Patch0:         %{name}-miscfix-v2.patch
17 Patch2:         %{name}-sharedlibs.patch
18 Patch3:         %{name}-pl.po-update.patch
19 Patch4:         %{name}-dynamic_exe.patch
20 Patch5:         %{name}-diet.patch
21 Patch6:         xfsprogs-repair-mem.patch
22 Patch7:         xfsprogs-repair-nofutexhang.patch
23 Patch8:         xfsprogs-repair-tcmalloc.patch
24 URL:            http://www.xfs.org/
25 BuildRequires:  autoconf
26 BuildRequires:  automake
27 BuildRequires:  bash
28 %if %{with initrd}
29         %if %{with dietlibc}
30 BuildRequires:  dietlibc-static >= 2:0.31-6
31 BuildRequires:  libuuid-dietlibc
32         %else
33 BuildRequires:  glibc-static
34 BuildRequires:  libuuid-static
35         %endif
36 %endif
37 BuildRequires:  gettext-devel
38 BuildRequires:  google-perftools-devel
39 BuildRequires:  libblkid-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 Requires:       google-perftools >= 1.8.3-2
46 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47
48 %if "%{pld_release}" == "ac"
49 # libtool in ac doesn't do the reordering of args properly
50 %define         filterout_ld -Wl,--as-needed
51 %endif
52
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
56
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}
64
65 %description
66 A set of commands to use the XFS filesystem, including mkfs.xfs.
67
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
73 scalability.
74
75 This implementation is on-disk compatible with the IRIX version of
76 XFS.
77
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.
80
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ść.
86
87 %package devel
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
93
94 %description devel
95 Header files and libraries to develop software which operates on XFS
96 filesystems.
97
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.
101
102 %package static
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}
107
108 %description static
109 Static XFS software libraries.
110
111 %description static -l pl.UTF-8
112 Biblioteki statyczne do XFS.
113
114 %package initrd
115 Summary:        Tools for the XFS filesystem - initrd version
116 Summary(pl.UTF-8):      Narzędzia do systemu plików XFS - wersja dla initrd
117 Group:          Base
118
119 %description initrd
120 A set of commands to use the XFS filesystem, including mkfs.xfs
121  - initrd version.
122
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
125  - wersja dla initrd.
126
127 %prep
128 %setup -q
129 %patch0 -p1
130 %patch2 -p1
131 #%patch3 -p1
132 %patch4 -p1
133 %patch5 -p1
134 %patch6 -p1
135 %patch7 -p1
136 %patch8 -p1
137
138 %build
139 %{__aclocal} -I m4
140
141 %if %{with initrd}
142 %if %{with dietlibc}
143 # dietlibc doesn't have aio.h (and xfsprogs does not need it really)
144 # dietlibc has needed librt stuff in libc/libpthread
145 sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \
146         -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \
147         configure.in
148 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
149 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
150 %endif
151
152 %{__autoconf}
153 %configure \
154         %{?with_dietlibc:CC="diet %{__cc} -static"} \
155         --sbindir=%{_bindir} \
156         --disable-gettext \
157         --disable-readline \
158         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
159         OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
160
161 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
162         LIBUUID="%{dietlibdir}/libuuid.a" \
163         V=1
164 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
165         LDFLAGS="%{rpmldflags} -all-static" \
166         LIBUUID="%{dietlibdir}/libuuid.a" \
167         V=1
168
169 mkdir -p initrd
170 mv -f db/xfs_db initrd/xfs_db
171 mv -f growfs/xfs_growfs initrd/xfs_growfs
172 mv -f logprint/xfs_logprint initrd/xfs_logprint
173 mv -f mkfs/mkfs.xfs initrd/mkfs.xfs
174 mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore
175 mv -f repair/xfs_repair initrd/xfs_repair
176
177 %if %{with dietlibc}
178 sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \
179         -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \
180         configure.in
181 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
182 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
183 %endif
184
185 %{__make} clean
186 %endif
187
188 %{__autoconf}
189 %configure \
190         --sbindir=%{_bindir}\
191         --enable-gettext \
192         --enable-readline \
193         --enable-blkid \
194         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
195         OPTIMIZER="%{rpmcflags}"
196
197 %{__make} -j1 \
198         V=1
199
200 %install
201 rm -rf $RPM_BUILD_ROOT
202 install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc}
203
204 DIST_ROOT=$RPM_BUILD_ROOT
205 DIST_INSTALL=$(pwd)/install.manifest
206 DIST_INSTALL_DEV=$(pwd)/install-dev.manifest
207 export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV
208
209 %{__make} install \
210         DIST_MANIFEST="$DIST_INSTALL"
211 %{__make} install-dev \
212         DIST_MANIFEST="$DIST_INSTALL_DEV"
213
214 install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid
215
216 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \
217          $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so
218 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \
219         $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so
220 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \
221         $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so
222 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \
223         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so
224
225 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
226 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
227
228 %{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \
229         $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la
230 %{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \
231         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la
232
233 %if %{with initrd}
234 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
235 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd
236 %endif
237
238 echo "#10:/mnt/ftp/roman"  >> $RPM_BUILD_ROOT/etc/projects
239 echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid
240
241 %find_lang %{name}
242
243 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
244
245 # already in /usr
246 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so
247
248 %clean
249 rm -rf $RPM_BUILD_ROOT
250
251 %post   -p /sbin/ldconfig
252 %postun -p /sbin/ldconfig
253
254 %files -f %{name}.lang
255 %defattr(644,root,root,755)
256 %doc README doc/{CHANGES,CREDITS}
257 %config(noreplace) %verify(not md5 mtime size) /etc/projects
258 %config(noreplace) %verify(not md5 mtime size) /etc/projid
259 %attr(755,root,root) %{_sbindir}/fsck.xfs
260 %attr(755,root,root) %{_sbindir}/mkfs.xfs
261 %attr(755,root,root) %{_sbindir}/xfs_repair
262 %attr(755,root,root) %{_bindir}/xfs_*
263 %attr(755,root,root) %{_libdir}/libhandle.so.*.*
264 %attr(755,root,root) %{_libdir}/libxcmd.so.*.*
265 %attr(755,root,root) %{_libdir}/libxfs.so.*.*
266 %attr(755,root,root) %{_libdir}/libxlog.so.*.*
267 %attr(755,root,root) %ghost %{_libdir}/libhandle.so.1
268 %attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0
269 %attr(755,root,root) %ghost %{_libdir}/libxfs.so.0
270 %attr(755,root,root) %ghost %{_libdir}/libxlog.so.0
271 %{_mandir}/man5/projects.5*
272 %{_mandir}/man5/projid.5*
273 %{_mandir}/man5/xfs.5*
274 %{_mandir}/man8/fsck.xfs.8*
275 %{_mandir}/man8/mkfs.xfs.8*
276 %{_mandir}/man8/xfs_*.8*
277
278 %files devel
279 %defattr(644,root,root,755)
280 %attr(755,root,root) %{_libexecdir}/libhandle.so
281 %attr(755,root,root) %{_libexecdir}/libxcmd.so
282 %attr(755,root,root) %{_libexecdir}/libxfs.so
283 %attr(755,root,root) %{_libexecdir}/libxlog.so
284 %{_libexecdir}/libhandle.la
285 %{_libexecdir}/libxcmd.la
286 %{_libexecdir}/libxfs.la
287 %{_libexecdir}/libxlog.la
288 %{_includedir}/xfs
289 %{_mandir}/man3/*handle.3*
290 %{_mandir}/man3/xfsctl.3*
291
292 %files static
293 %defattr(644,root,root,755)
294 %{_libexecdir}/libhandle.a
295 %{_libexecdir}/libxcmd.a
296 %{_libexecdir}/libxfs.a
297 %{_libexecdir}/libxlog.a
298
299 %if %{with initrd}
300 %files initrd
301 %defattr(644,root,root,755)
302 %attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs
303 %attr(755,root,root) %{_libexecdir}/initrd/xfs_db
304 %attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs
305 %attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint
306 %attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore
307 %attr(755,root,root) %{_libexecdir}/initrd/xfs_repair
308 %endif
This page took 0.050288 seconds and 4 git commands to generate.