]> git.pld-linux.org Git - packages/xfsprogs.git/blob - xfsprogs.spec
612da8832b668c501a29e49417051496abe0748d
[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.6
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:  fbd2c1c5abed4b11047bea6ce53bc6e4
15 Patch0:         %{name}-miscfix-v2.patch
16 Patch2:         %{name}-sharedlibs.patch
17 Patch3:         %{name}-pl.po-update.patch
18 Patch4:         %{name}-dynamic_exe.patch
19 Patch5:         %{name}-diet.patch
20 URL:            http://www.xfs.org/
21 BuildRequires:  autoconf
22 BuildRequires:  automake
23 BuildRequires:  bash
24 %if %{with initrd}
25         %if %{with dietlibc}
26 BuildRequires:  dietlibc-static >= 2:0.31-6
27 BuildRequires:  libuuid-dietlibc
28         %else
29 BuildRequires:  glibc-static
30 BuildRequires:  libuuid-static
31         %endif
32 %endif
33 BuildRequires:  gettext-devel
34 BuildRequires:  libblkid-devel
35 BuildRequires:  libtool
36 BuildRequires:  libuuid-devel
37 BuildRequires:  readline-devel
38 BuildRequires:  rpm >= 4.4.9-56
39 BuildRequires:  rpmbuild(macros) >= 1.402
40 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41
42 %if "%{pld_release}" == "ac"
43 # libtool in ac doesn't do the reordering of args properly
44 %define         filterout_ld -Wl,--as-needed
45 %endif
46
47 # libxlog uses symbols from binary that links to libxlog
48 # libxcmd uses ("program") symbol from binary that links to libxcmd
49 %define         skip_post_check_so      libxlog.so.0.0.0        libxcmd.so.0.0.0
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 %patch2 -p1
125 %patch3 -p1
126 %patch4 -p1
127 %patch5 -p1
128
129 %build
130 %{__aclocal} -I m4
131
132 %if %{with initrd}
133 %if %{with dietlibc}
134 # dietlibc doesn't have aio.h (and xfsprogs does not need it really)
135 # dietlibc has needed librt stuff in libc/libpthread
136 sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \
137         -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \
138         configure.in
139 sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in
140 sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile
141 %endif
142
143 %{__autoconf}
144 %configure \
145         %{?with_dietlibc:CC="diet %{__cc} -static"} \
146         --sbindir=%{_bindir} \
147         --disable-gettext \
148         --disable-readline \
149         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
150         OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED"
151
152 %{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \
153         LIBUUID="%{dietlibdir}/libuuid.a" \
154         V=1
155 %{__make} -j1 db growfs logprint mkfs mdrestore repair \
156         LDFLAGS="%{rpmldflags} -all-static" \
157         LIBUUID="%{dietlibdir}/libuuid.a" \
158         V=1
159
160 mkdir -p initrd
161 mv -f db/xfs_db initrd/xfs_db
162 mv -f growfs/xfs_growfs initrd/xfs_growfs
163 mv -f logprint/xfs_logprint initrd/xfs_logprint
164 mv -f mkfs/mkfs.xfs initrd/mkfs.xfs
165 mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore
166 mv -f repair/xfs_repair initrd/xfs_repair
167
168 %if %{with dietlibc}
169 sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \
170         -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \
171         configure.in
172 sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in
173 sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile
174 %endif
175
176 %{__make} clean
177 %endif
178
179 %{__autoconf}
180 %configure \
181         --sbindir=%{_bindir}\
182         --enable-gettext \
183         --enable-readline \
184         --enable-blkid \
185         DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \
186         OPTIMIZER="%{rpmcflags}"
187
188 %{__make} -j1 \
189         V=1
190
191 %install
192 rm -rf $RPM_BUILD_ROOT
193 install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc}
194
195 DIST_ROOT=$RPM_BUILD_ROOT
196 DIST_INSTALL=$(pwd)/install.manifest
197 DIST_INSTALL_DEV=$(pwd)/install-dev.manifest
198 export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV
199
200 %{__make} install \
201         DIST_MANIFEST="$DIST_INSTALL"
202 %{__make} install-dev \
203         DIST_MANIFEST="$DIST_INSTALL_DEV"
204
205 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \
206          $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so
207 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \
208         $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so
209 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \
210         $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so
211 ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \
212         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so
213
214 mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir}
215 mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir}
216
217 %{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \
218         $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la
219 %{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \
220         $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la
221
222 %if %{with initrd}
223 install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd
224 install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd
225 %endif
226
227 echo "#10:/mnt/ftp/roman"  >> $RPM_BUILD_ROOT/etc/projects
228 echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid
229
230 %find_lang %{name}
231
232 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
233
234 # already in /usr
235 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so
236
237 %clean
238 rm -rf $RPM_BUILD_ROOT
239
240 %post   -p /sbin/ldconfig
241 %postun -p /sbin/ldconfig
242
243 %files -f %{name}.lang
244 %defattr(644,root,root,755)
245 %doc README doc/{CHANGES,CREDITS}
246 %config(noreplace) %verify(not md5 mtime size) /etc/projects
247 %config(noreplace) %verify(not md5 mtime size) /etc/projid
248 %attr(755,root,root) %{_sbindir}/fsck.xfs
249 %attr(755,root,root) %{_sbindir}/mkfs.xfs
250 %attr(755,root,root) %{_sbindir}/xfs_repair
251 %attr(755,root,root) %{_bindir}/xfs_*
252 %attr(755,root,root) %{_libdir}/libhandle.so.*.*
253 %attr(755,root,root) %{_libdir}/libxcmd.so.*.*
254 %attr(755,root,root) %{_libdir}/libxfs.so.*.*
255 %attr(755,root,root) %{_libdir}/libxlog.so.*.*
256 %attr(755,root,root) %ghost %{_libdir}/libhandle.so.1
257 %attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0
258 %attr(755,root,root) %ghost %{_libdir}/libxfs.so.0
259 %attr(755,root,root) %ghost %{_libdir}/libxlog.so.0
260 %{_mandir}/man5/projects.5*
261 %{_mandir}/man5/projid.5*
262 %{_mandir}/man5/xfs.5*
263 %{_mandir}/man8/fsck.xfs.8*
264 %{_mandir}/man8/mkfs.xfs.8*
265 %{_mandir}/man8/xfs_*.8*
266
267 %files devel
268 %defattr(644,root,root,755)
269 %attr(755,root,root) %{_libexecdir}/libhandle.so
270 %attr(755,root,root) %{_libexecdir}/libxcmd.so
271 %attr(755,root,root) %{_libexecdir}/libxfs.so
272 %attr(755,root,root) %{_libexecdir}/libxlog.so
273 %{_libexecdir}/libhandle.la
274 %{_libexecdir}/libxcmd.la
275 %{_libexecdir}/libxfs.la
276 %{_libexecdir}/libxlog.la
277 %{_includedir}/xfs
278 %{_mandir}/man3/*handle.3*
279 %{_mandir}/man3/xfsctl.3*
280
281 %files static
282 %defattr(644,root,root,755)
283 %{_libexecdir}/libhandle.a
284 %{_libexecdir}/libxcmd.a
285 %{_libexecdir}/libxfs.a
286 %{_libexecdir}/libxlog.a
287
288 %if %{with initrd}
289 %files initrd
290 %defattr(644,root,root,755)
291 %attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs
292 %attr(755,root,root) %{_libexecdir}/initrd/xfs_db
293 %attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs
294 %attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint
295 %attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore
296 %attr(755,root,root) %{_libexecdir}/initrd/xfs_repair
297 %endif
This page took 0.03558 seconds and 2 git commands to generate.