]> git.pld-linux.org Git - packages/xfsprogs.git/blob - xfsprogs.spec
- force ld.bfd for dietlibc build (gold gets hit by internal error on x86)
[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 %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
This page took 0.055094 seconds and 4 git commands to generate.