]>
Commit | Line | Data |
---|---|---|
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 | %bcond_without tcmalloc # don't use tcmalloc | |
6 | # | |
7 | Summary: Tools for the XFS filesystem | |
8 | Summary(pl.UTF-8): Narzędzia do systemu plików XFS | |
9 | Name: xfsprogs | |
10 | Version: 3.1.11 | |
11 | Release: 1 | |
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 | |
16 | Source1: xfs_lsprojid | |
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 | |
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: 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) | |
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 | %{?with_tcmalloc:%patch6 -p1} | |
135 | %patch7 -p1 | |
136 | ||
137 | %build | |
138 | %{__aclocal} -I m4 | |
139 | ||
140 | %if %{with initrd} | |
141 | oldPATH="$PATH" | |
142 | %if %{with dietlibc} | |
143 | # gold (2.23.52.0.2) on x86 fails with: | |
144 | # /usr/bin/ld: internal error in set_offset, at output.cc:4665 | |
145 | if [ -x /usr/bin/ld.bfd ]; then | |
146 | install -d ld-dir | |
147 | ln -sf /usr/bin/ld.bfd ld-dir/ld | |
148 | export PATH="$(pwd)/ld-dir:$PATH" | |
149 | fi | |
150 | # dietlibc doesn't have aio.h (and xfsprogs does not need it really) | |
151 | # dietlibc has needed librt stuff in libc/libpthread | |
152 | sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \ | |
153 | -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \ | |
154 | configure.ac | |
155 | sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in | |
156 | sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile | |
157 | %endif | |
158 | ||
159 | %{__autoconf} | |
160 | %configure \ | |
161 | %{?with_dietlibc:CC="diet %{__cc} -static"} \ | |
162 | --sbindir=%{_bindir} \ | |
163 | --disable-gettext \ | |
164 | --disable-readline \ | |
165 | DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \ | |
166 | OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED" | |
167 | ||
168 | %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \ | |
169 | LIBUUID="%{dietlibdir}/libuuid.a" \ | |
170 | V=1 | |
171 | %{__make} -j1 db growfs logprint mkfs mdrestore repair \ | |
172 | LDFLAGS="%{rpmldflags} -all-static" \ | |
173 | LIBUUID="%{dietlibdir}/libuuid.a" \ | |
174 | V=1 | |
175 | ||
176 | mkdir -p initrd | |
177 | mv -f db/xfs_db initrd/xfs_db | |
178 | mv -f growfs/xfs_growfs initrd/xfs_growfs | |
179 | mv -f logprint/xfs_logprint initrd/xfs_logprint | |
180 | mv -f mkfs/mkfs.xfs initrd/mkfs.xfs | |
181 | mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore | |
182 | mv -f repair/xfs_repair initrd/xfs_repair | |
183 | ||
184 | %if %{with dietlibc} | |
185 | sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \ | |
186 | -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \ | |
187 | configure.ac | |
188 | sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in | |
189 | sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile | |
190 | %endif | |
191 | ||
192 | %{__make} clean | |
193 | PATH="$oldPATH" | |
194 | %endif | |
195 | ||
196 | %{__autoconf} | |
197 | %configure \ | |
198 | --sbindir=%{_bindir}\ | |
199 | --enable-gettext \ | |
200 | --enable-readline \ | |
201 | --enable-blkid \ | |
202 | DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \ | |
203 | OPTIMIZER="%{rpmcflags}" | |
204 | ||
205 | %{__make} -j1 \ | |
206 | V=1 | |
207 | ||
208 | %install | |
209 | rm -rf $RPM_BUILD_ROOT | |
210 | install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc} | |
211 | ||
212 | DIST_ROOT=$RPM_BUILD_ROOT | |
213 | DIST_INSTALL=$(pwd)/install.manifest | |
214 | DIST_INSTALL_DEV=$(pwd)/install-dev.manifest | |
215 | export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV | |
216 | ||
217 | %{__make} install \ | |
218 | DIST_MANIFEST="$DIST_INSTALL" | |
219 | %{__make} install-dev \ | |
220 | DIST_MANIFEST="$DIST_INSTALL_DEV" | |
221 | ||
222 | install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid | |
223 | ||
224 | ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \ | |
225 | $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so | |
226 | ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \ | |
227 | $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so | |
228 | ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \ | |
229 | $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so | |
230 | ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \ | |
231 | $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so | |
232 | ||
233 | mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir} | |
234 | mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir} | |
235 | ||
236 | %{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \ | |
237 | $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la | |
238 | %{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \ | |
239 | $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la | |
240 | ||
241 | %if %{with initrd} | |
242 | install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd | |
243 | install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd | |
244 | %endif | |
245 | ||
246 | echo "#10:/mnt/ftp/roman" >> $RPM_BUILD_ROOT/etc/projects | |
247 | echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid | |
248 | ||
249 | %find_lang %{name} | |
250 | ||
251 | %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name} | |
252 | ||
253 | # already in /usr | |
254 | %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so | |
255 | ||
256 | %clean | |
257 | rm -rf $RPM_BUILD_ROOT | |
258 | ||
259 | %post -p /sbin/ldconfig | |
260 | %postun -p /sbin/ldconfig | |
261 | ||
262 | %files -f %{name}.lang | |
263 | %defattr(644,root,root,755) | |
264 | %doc README doc/{CHANGES,CREDITS} | |
265 | %config(noreplace) %verify(not md5 mtime size) /etc/projects | |
266 | %config(noreplace) %verify(not md5 mtime size) /etc/projid | |
267 | %attr(755,root,root) %{_sbindir}/fsck.xfs | |
268 | %attr(755,root,root) %{_sbindir}/mkfs.xfs | |
269 | %attr(755,root,root) %{_sbindir}/xfs_repair | |
270 | %attr(755,root,root) %{_bindir}/xfs_* | |
271 | %attr(755,root,root) %{_libdir}/libhandle.so.*.* | |
272 | %attr(755,root,root) %{_libdir}/libxcmd.so.*.* | |
273 | %attr(755,root,root) %{_libdir}/libxfs.so.*.* | |
274 | %attr(755,root,root) %{_libdir}/libxlog.so.*.* | |
275 | %attr(755,root,root) %ghost %{_libdir}/libhandle.so.1 | |
276 | %attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0 | |
277 | %attr(755,root,root) %ghost %{_libdir}/libxfs.so.0 | |
278 | %attr(755,root,root) %ghost %{_libdir}/libxlog.so.0 | |
279 | %{_mandir}/man5/projects.5* | |
280 | %{_mandir}/man5/projid.5* | |
281 | %{_mandir}/man5/xfs.5* | |
282 | %{_mandir}/man8/fsck.xfs.8* | |
283 | %{_mandir}/man8/mkfs.xfs.8* | |
284 | %{_mandir}/man8/xfs_*.8* | |
285 | ||
286 | %files devel | |
287 | %defattr(644,root,root,755) | |
288 | %attr(755,root,root) %{_libexecdir}/libhandle.so | |
289 | %attr(755,root,root) %{_libexecdir}/libxcmd.so | |
290 | %attr(755,root,root) %{_libexecdir}/libxfs.so | |
291 | %attr(755,root,root) %{_libexecdir}/libxlog.so | |
292 | %{_libexecdir}/libhandle.la | |
293 | %{_libexecdir}/libxcmd.la | |
294 | %{_libexecdir}/libxfs.la | |
295 | %{_libexecdir}/libxlog.la | |
296 | %{_includedir}/xfs | |
297 | %{_mandir}/man3/*handle.3* | |
298 | %{_mandir}/man3/xfsctl.3* | |
299 | ||
300 | %files static | |
301 | %defattr(644,root,root,755) | |
302 | %{_libexecdir}/libhandle.a | |
303 | %{_libexecdir}/libxcmd.a | |
304 | %{_libexecdir}/libxfs.a | |
305 | %{_libexecdir}/libxlog.a | |
306 | ||
307 | %if %{with initrd} | |
308 | %files initrd | |
309 | %defattr(644,root,root,755) | |
310 | %attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs | |
311 | %attr(755,root,root) %{_libexecdir}/initrd/xfs_db | |
312 | %attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs | |
313 | %attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint | |
314 | %attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore | |
315 | %attr(755,root,root) %{_libexecdir}/initrd/xfs_repair | |
316 | %endif |