]> git.pld-linux.org Git - packages/xfsprogs.git/blob - xfsprogs.spec
- rel 2; git fixes
[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.1
10 Release:        2
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:  c2308b46ee707597ac50aae418d321b8
15 Patch0:         %{name}-miscfix-v2.patch
16 Patch1:         %{name}-install-sh.patch
17 Patch2:         %{name}-sharedlibs.patch
18 Patch3:         %{name}-pl.po-update.patch
19 Patch4:         %{name}-dynamic_exe.patch
20 Patch5:         %{name}-LDFLAGS.patch
21 Patch6:         %{name}-diet.patch
22 Patch7:         %{name}-static-librt.patch
23 Patch8:         %{name}-git.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 BuildRequires:  libtool
40 BuildRequires:  libuuid-devel
41 BuildRequires:  readline-devel
42 BuildRequires:  rpm >= 4.4.9-56
43 BuildRequires:  rpmbuild(macros) >= 1.402
44 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45
46 %if "%{pld_release}" == "ac"
47 # libtool in ac doesn't do the reordering of args properly
48 %define         filterout_ld -Wl,--as-needed
49 %endif
50
51 %define         _sbindir        /sbin
52 %define         _bindir         /usr/sbin
53 %define         _libdir         /%{_lib}
54 %define         _libexecdir     /usr/%{_lib}
55 # for some reason known only to rpm there must be "\\|" not "\|" here
56 %define         dietarch        %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/')
57 %define         dietlibdir      %{_prefix}/lib/dietlibc/lib-%{dietarch}
58
59 %description
60 A set of commands to use the XFS filesystem, including mkfs.xfs.
61
62 XFS is a high performance journaling filesystem which originated on
63 the SGI IRIX platform. It is completely multi-threaded, can support
64 large files and large filesystems, extended attributes, variable block
65 sizes, is extent based, and makes extensive use of Btrees
66 (directories, extents, free space) to aid both performance and
67 scalability.
68
69 This implementation is on-disk compatible with the IRIX version of
70 XFS.
71
72 %description -l pl.UTF-8
73 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs.
74
75 XFS jest wysoko wydajnym systemem plików z kroniką, który oryginalnie
76 był używany na platformie SGI IRIX. Jest to w pełni wielowątkowy,
77 obsługujący wielkie pliki oraz wielkie systemy, o rozszerzonych
78 atrybutach, zmiennych wielkościach bloków, mocno wykorzystujący
79 B-drzewa by uzyskać wysoką wydajność oraz skalowalność.
80
81 %package devel
82 Summary:        Header files and libraries to develop XFS software
83 Summary(pl.UTF-8):      Pliki nagłówkowe i biblioteki
84 Group:          Development/Libraries
85 Requires:       %{name} = %{version}-%{release}
86 Requires:       libuuid-devel
87
88 %description devel
89 Header files and libraries to develop software which operates on XFS
90 filesystems.
91
92 %description devel -l pl.UTF-8
93 Pliki nagłówkowe i biblioteki potrzebne do rozwoju oprogramowania
94 operującego na systemie plików XFS.
95
96 %package static
97 Summary:        Static XFS software libraries
98 Summary(pl.UTF-8):      Biblioteki statyczne do XFS
99 Group:          Development/Libraries
100 Requires:       %{name}-devel = %{version}-%{release}
101
102 %description static
103 Static XFS software libraries.
104
105 %description static -l pl.UTF-8
106 Biblioteki statyczne do XFS.
107
108 %package initrd
109 Summary:        Tools for the XFS filesystem - initrd version
110 Summary(pl.UTF-8):      Narzędzia do systemu plików XFS - wersja dla initrd
111 Group:          Base
112
113 %description initrd
114 A set of commands to use the XFS filesystem, including mkfs.xfs
115  - initrd version.
116
117 %description initrd -l pl.UTF-8
118 Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs
119  - wersja dla initrd.
120
121 %prep
122 %setup -q
123 %patch0 -p1
124 %patch1 -p1
125 %patch2 -p1
126 # currently obsolete until needed again
127 # %patch3 -p1
128 %patch4 -p1
129 %patch5 -p1
130 %patch6 -p1
131 %patch7 -p1
132 %patch8 -p1
133
134 rm -f include/{builddefs,platform_defs}.h
135
136 %build
137 %{__aclocal} -I m4
138
139 %if %{with initrd}
140 %if %{with dietlibc}
141 # dietlibc doesn't have aio.h (and xfsprogs does not need it really)
142 # dietlibc has needed librt stuff in libc/libpthread
143 sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \
144         -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \
145         configure.in
146 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
147 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
148 %endif
149
150 %{__autoconf}
151 %configure \
152         %{?with_dietlibc:CC="diet %{__cc} -static"} \
153         --sbindir=%{_bindir} \
154         --disable-gettext \
155         --disable-readline \
156         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
157         OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
158
159 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
160         LIBUUID="%{dietlibdir}/libuuid.a"
161 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
162         LDFLAGS="%{rpmldflags} -all-static" \
163         LIBUUID="%{dietlibdir}/libuuid.a"
164
165 mkdir -p initrd
166 mv -f db/xfs_db initrd/xfs_db
167 mv -f growfs/xfs_growfs initrd/xfs_growfs
168 mv -f logprint/xfs_logprint initrd/xfs_logprint
169 mv -f mkfs/mkfs.xfs initrd/mkfs.xfs
170 mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore
171 mv -f repair/xfs_repair initrd/xfs_repair
172
173 %if %{with dietlibc}
174 sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \
175         -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \
176         configure.in
177 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
178 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
179 %endif
180
181 %{__make} clean
182 %endif
183
184 %{__autoconf}
185 %configure \
186         --sbindir=%{_bindir}\
187         --enable-gettext \
188         --enable-readline \
189         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
190         OPTIMIZER="%{rpmcflags}"
191
192 %{__make} -j1
193
194 %install
195 rm -rf $RPM_BUILD_ROOT
196
197 install -d $RPM_BUILD_ROOT%{_libexecdir}
198
199 DIST_ROOT=$RPM_BUILD_ROOT
200 DIST_INSTALL=$(pwd)/install.manifest
201 DIST_INSTALL_DEV=$(pwd)/install-dev.manifest
202 export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV
203
204 %{__make} install \
205         DIST_MANIFEST="$DIST_INSTALL"
206 %{__make} install-dev \
207         DIST_MANIFEST="$DIST_INSTALL_DEV"
208
209 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \
210          $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so
211 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \
212         $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so
213 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \
214         $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so
215 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \
216         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so
217
218 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
219 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
220
221 %{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \
222         $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la
223 %{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \
224         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la
225
226 %if %{with initrd}
227 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
228 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd/
229 %endif
230
231 %find_lang %{name}
232
233 rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}
234
235 # already in /usr
236 rm -f $RPM_BUILD_ROOT%{_libdir}/libhandle.{a,la,so}
237 rm -f $RPM_BUILD_ROOT%{_libdir}/libxcmd.{a,la,so}
238 rm -f $RPM_BUILD_ROOT%{_libdir}/libxfs.{a,la,so}
239 rm -f $RPM_BUILD_ROOT%{_libdir}/libxlog.{a,la,so}
240
241 %clean
242 rm -rf $RPM_BUILD_ROOT
243
244 %post   -p /sbin/ldconfig
245 %postun -p /sbin/ldconfig
246
247 %files -f %{name}.lang
248 %defattr(644,root,root,755)
249 %doc README doc/{CHANGES,CREDITS}
250 %attr(755,root,root) %{_sbindir}/fsck.xfs
251 %attr(755,root,root) %{_sbindir}/mkfs.xfs
252 %attr(755,root,root) %{_sbindir}/xfs_repair
253 %attr(755,root,root) %{_bindir}/xfs_*
254 %attr(755,root,root) %{_libdir}/libhandle.so.*.*
255 %attr(755,root,root) %{_libdir}/libxcmd.so.*.*
256 %attr(755,root,root) %{_libdir}/libxfs.so.*.*
257 %attr(755,root,root) %{_libdir}/libxlog.so.*.*
258 %attr(755,root,root) %ghost %{_libdir}/libhandle.so.1
259 %attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0
260 %attr(755,root,root) %ghost %{_libdir}/libxfs.so.0
261 %attr(755,root,root) %ghost %{_libdir}/libxlog.so.0
262 %{_mandir}/man5/projects.5*
263 %{_mandir}/man5/projid.5*
264 %{_mandir}/man5/xfs.5*
265 %{_mandir}/man8/fsck.xfs.8*
266 %{_mandir}/man8/mkfs.xfs.8*
267 %{_mandir}/man8/xfs_*.8*
268
269 %files devel
270 %defattr(644,root,root,755)
271 %attr(755,root,root) %{_libexecdir}/libhandle.so
272 %attr(755,root,root) %{_libexecdir}/libxcmd.so
273 %attr(755,root,root) %{_libexecdir}/libxfs.so
274 %attr(755,root,root) %{_libexecdir}/libxlog.so
275 %{_libexecdir}/libhandle.la
276 %{_libexecdir}/libxcmd.la
277 %{_libexecdir}/libxfs.la
278 %{_libexecdir}/libxlog.la
279 %{_includedir}/xfs
280 %{_mandir}/man3/*handle.3*
281 %{_mandir}/man3/xfsctl.3*
282
283 %files static
284 %defattr(644,root,root,755)
285 %{_libexecdir}/libhandle.a
286 %{_libexecdir}/libxcmd.a
287 %{_libexecdir}/libxfs.a
288 %{_libexecdir}/libxlog.a
289
290 %if %{with initrd}
291 %files initrd
292 %defattr(644,root,root,755)
293 %attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs
294 %attr(755,root,root) %{_libexecdir}/initrd/xfs_db
295 %attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs
296 %attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint
297 %attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore
298 %attr(755,root,root) %{_libexecdir}/initrd/xfs_repair
299 %endif
This page took 0.182731 seconds and 4 git commands to generate.