]> git.pld-linux.org Git - packages/xfsprogs.git/blob - xfsprogs.spec
- up to 3.1.7; po patch merged upstream; add patches: 1) avoid hanging on futexes...
[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 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46
47 %if "%{pld_release}" == "ac"
48 # libtool in ac doesn't do the reordering of args properly
49 %define         filterout_ld -Wl,--as-needed
50 %endif
51
52 # libxlog uses symbols from binary that links to libxlog
53 # libxcmd uses ("program") symbol from binary that links to libxcmd
54 %define         skip_post_check_so      libxlog.so.0.0.0        libxcmd.so.0.0.0
55
56 %define         _sbindir        /sbin
57 %define         _bindir         /usr/sbin
58 %define         _libdir         /%{_lib}
59 %define         _libexecdir     /usr/%{_lib}
60 # for some reason known only to rpm there must be "\\|" not "\|" here
61 %define         dietarch        %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/')
62 %define         dietlibdir      %{_prefix}/lib/dietlibc/lib-%{dietarch}
63
64 %description
65 A set of commands to use the XFS filesystem, including mkfs.xfs.
66
67 XFS is a high performance journaling filesystem which originated on
68 the SGI IRIX platform. It is completely multi-threaded, can support
69 large files and large filesystems, extended attributes, variable block
70 sizes, is extent based, and makes extensive use of Btrees
71 (directories, extents, free space) to aid both performance and
72 scalability.
73
74 This implementation is on-disk compatible with the IRIX version of
75 XFS.
76
77 %description -l pl.UTF-8
78 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs.
79
80 XFS jest wysoko wydajnym systemem plików z kroniką, który oryginalnie
81 był używany na platformie SGI IRIX. Jest to w pełni wielowątkowy,
82 obsługujący wielkie pliki oraz wielkie systemy, o rozszerzonych
83 atrybutach, zmiennych wielkościach bloków, mocno wykorzystujący
84 B-drzewa by uzyskać wysoką wydajność oraz skalowalność.
85
86 %package devel
87 Summary:        Header files and libraries to develop XFS software
88 Summary(pl.UTF-8):      Pliki nagłówkowe i biblioteki
89 Group:          Development/Libraries
90 Requires:       %{name} = %{version}-%{release}
91 Requires:       libuuid-devel
92
93 %description devel
94 Header files and libraries to develop software which operates on XFS
95 filesystems.
96
97 %description devel -l pl.UTF-8
98 Pliki nagłówkowe i biblioteki potrzebne do rozwoju oprogramowania
99 operującego na systemie plików XFS.
100
101 %package static
102 Summary:        Static XFS software libraries
103 Summary(pl.UTF-8):      Biblioteki statyczne do XFS
104 Group:          Development/Libraries
105 Requires:       %{name}-devel = %{version}-%{release}
106
107 %description static
108 Static XFS software libraries.
109
110 %description static -l pl.UTF-8
111 Biblioteki statyczne do XFS.
112
113 %package initrd
114 Summary:        Tools for the XFS filesystem - initrd version
115 Summary(pl.UTF-8):      Narzędzia do systemu plików XFS - wersja dla initrd
116 Group:          Base
117
118 %description initrd
119 A set of commands to use the XFS filesystem, including mkfs.xfs
120  - initrd version.
121
122 %description initrd -l pl.UTF-8
123 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs
124  - wersja dla initrd.
125
126 %prep
127 %setup -q
128 %patch0 -p1
129 %patch2 -p1
130 #%patch3 -p1
131 %patch4 -p1
132 %patch5 -p1
133 %patch6 -p1
134 %patch7 -p1
135 %patch8 -p1
136
137 %build
138 %{__aclocal} -I m4
139
140 %if %{with initrd}
141 %if %{with dietlibc}
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|' \
146         configure.in
147 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
148 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
149 %endif
150
151 %{__autoconf}
152 %configure \
153         %{?with_dietlibc:CC="diet %{__cc} -static"} \
154         --sbindir=%{_bindir} \
155         --disable-gettext \
156         --disable-readline \
157         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
158         OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
159
160 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
161         LIBUUID="%{dietlibdir}/libuuid.a" \
162         V=1
163 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
164         LDFLAGS="%{rpmldflags} -all-static" \
165         LIBUUID="%{dietlibdir}/libuuid.a" \
166         V=1
167
168 mkdir -p initrd
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
175
176 %if %{with dietlibc}
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|' \
179         configure.in
180 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
181 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
182 %endif
183
184 %{__make} clean
185 %endif
186
187 %{__autoconf}
188 %configure \
189         --sbindir=%{_bindir}\
190         --enable-gettext \
191         --enable-readline \
192         --enable-blkid \
193         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
194         OPTIMIZER="%{rpmcflags}"
195
196 %{__make} -j1 \
197         V=1
198
199 %install
200 rm -rf $RPM_BUILD_ROOT
201 install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc}
202
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
207
208 %{__make} install \
209         DIST_MANIFEST="$DIST_INSTALL"
210 %{__make} install-dev \
211         DIST_MANIFEST="$DIST_INSTALL_DEV"
212
213 install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid
214
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
223
224 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
225 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
226
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
231
232 %if %{with initrd}
233 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
234 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd
235 %endif
236
237 echo "#10:/mnt/ftp/roman"  >> $RPM_BUILD_ROOT/etc/projects
238 echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid
239
240 %find_lang %{name}
241
242 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
243
244 # already in /usr
245 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so
246
247 %clean
248 rm -rf $RPM_BUILD_ROOT
249
250 %post   -p /sbin/ldconfig
251 %postun -p /sbin/ldconfig
252
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*
276
277 %files devel
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
287 %{_includedir}/xfs
288 %{_mandir}/man3/*handle.3*
289 %{_mandir}/man3/xfsctl.3*
290
291 %files static
292 %defattr(644,root,root,755)
293 %{_libexecdir}/libhandle.a
294 %{_libexecdir}/libxcmd.a
295 %{_libexecdir}/libxfs.a
296 %{_libexecdir}/libxlog.a
297
298 %if %{with initrd}
299 %files initrd
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
307 %endif
This page took 0.05729 seconds and 4 git commands to generate.