X-Git-Url: http://git.pld-linux.org/?p=packages%2Fxfsprogs.git;a=blobdiff_plain;f=xfsprogs.spec;h=e6d16a8215edae15ae04a0ad287b0bcece67cdb4;hp=378297914d8a5a2eb42d98c180f030027bee6a4e;hb=e3be1a5;hpb=4a867e5e2f3f0e1a45b680cd8b864fa7f82ce15d diff --git a/xfsprogs.spec b/xfsprogs.spec index 3782979..e6d16a8 100644 --- a/xfsprogs.spec +++ b/xfsprogs.spec @@ -1,49 +1,43 @@ # # Conditional build: -%bcond_without initrd # don't build initrd version -%bcond_without dietlibc # link initrd version with static glibc instead of dietlibc -%bcond_without tcmalloc # don't use tcmalloc +%bcond_without debug_asserts # Summary: Tools for the XFS filesystem Summary(pl.UTF-8): Narzędzia do systemu plików XFS Name: xfsprogs -Version: 3.1.7 +Version: 5.11.0 Release: 1 License: LGPL v2.1 (libhandle), GPL v2 (the rest) Group: Applications/System -Source0: ftp://linux-xfs.sgi.com/projects/xfs/cmd_tars/%{name}-%{version}.tar.gz -# Source0-md5: 049cf9873794ea49d0bb3f12d45748a4 +Source0: https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/%{name}-%{version}.tar.xz +# Source0-md5: 803bcddd983803b339acfb76064dfd84 Source1: xfs_lsprojid Patch0: %{name}-miscfix-v2.patch -Patch2: %{name}-sharedlibs.patch -Patch3: %{name}-pl.po-update.patch -Patch4: %{name}-dynamic_exe.patch -Patch5: %{name}-diet.patch -Patch6: xfsprogs-repair-mem.patch -Patch7: xfsprogs-repair-nofutexhang.patch -Patch8: xfsprogs-repair-tcmalloc.patch -URL: http://www.xfs.org/ -BuildRequires: autoconf +Patch1: %{name}-pl.po-update.patch +# Patch1-md5: 1b41527cf19426d6059615c7d82b71e8 +URL: https://xfs.wiki.kernel.org/ +# for +BuildRequires: attr-devel +BuildRequires: autoconf >= 2.50 BuildRequires: automake BuildRequires: bash -%if %{with initrd} - %if %{with dietlibc} -BuildRequires: dietlibc-static >= 2:0.31-6 -BuildRequires: libuuid-dietlibc - %else +BuildRequires: device-mapper-devel +BuildRequires: gettext-tools BuildRequires: glibc-static -BuildRequires: libuuid-static - %endif -%endif -BuildRequires: gettext-devel +BuildRequires: inih-devel BuildRequires: libblkid-devel -%{?with_tcmalloc:BuildRequires: libtcmalloc-devel} +# without .la file so that -static-libtool-libs won't take libedit.a +BuildRequires: libedit-devel >= 3.1-1.20191231.1 +BuildRequires: libicu-devel BuildRequires: libtool BuildRequires: libuuid-devel -BuildRequires: readline-devel +BuildRequires: libuuid-static BuildRequires: rpm >= 4.4.9-56 BuildRequires: rpmbuild(macros) >= 1.402 -Requires: libtcmalloc >= 1.8.3-3 +BuildRequires: sed >= 4.0 +BuildRequires: tar >= 1:1.22 +BuildRequires: xz +Obsoletes: xfsprogs-initrd BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %if "%{pld_release}" == "ac" @@ -51,18 +45,6 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define filterout_ld -Wl,--as-needed %endif -# libxlog uses symbols from binary that links to libxlog -# libxcmd uses ("program") symbol from binary that links to libxcmd -%define skip_post_check_so libxlog.so.0.0.0 libxcmd.so.0.0.0 - -%define _sbindir /sbin -%define _bindir /usr/sbin -%define _libdir /%{_lib} -%define _libexecdir /usr/%{_lib} -# for some reason known only to rpm there must be "\\|" not "\|" here -%define dietarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/') -%define dietlibdir %{_prefix}/lib/dietlibc/lib-%{dietarch} - %description A set of commands to use the XFS filesystem, including mkfs.xfs. @@ -85,6 +67,24 @@ obsługujący wielkie pliki oraz wielkie systemy, o rozszerzonych atrybutach, zmiennych wielkościach bloków, mocno wykorzystujący B-drzewa by uzyskać wysoką wydajność oraz skalowalność. +%package scrub +Summary: xfs_scrub - XFS online check and repair feature (EXPERIMENTAL!) +Summary(pl.UTF-8): xfs_scrub - sprawdzanie i naprawianie zamontowanego systemu plików XFS (EKSPERYMENTALNE!) +Group: Applications/System +Requires: %{name} = %{version}-%{release} +Requires: systemd-units >= 38 + +%description scrub +xfs_scrub is an XFS online check and repair feature. + +WARNING: EXPERIMENTAL, use at your own risk! + +%description scrub -l pl.UTF-8 +xfs_scrub służy do sprawdzania i naprawiania zamontowanego systmeu +plików XFS w locie. + +UWAGA: EXPERIMENTALNE, użycie na własne ryzyko! + %package devel Summary: Header files and libraries to develop XFS software Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki @@ -112,95 +112,32 @@ Static XFS software libraries. %description static -l pl.UTF-8 Biblioteki statyczne do XFS. -%package initrd -Summary: Tools for the XFS filesystem - initrd version -Summary(pl.UTF-8): Narzędzia do systemu plików XFS - wersja dla initrd -Group: Base - -%description initrd -A set of commands to use the XFS filesystem, including mkfs.xfs - - initrd version. - -%description initrd -l pl.UTF-8 -Zbiór komend do użytku z systemem plików XFS, włączając w to mkfs.xfs - - wersja dla initrd. - %prep %setup -q %patch0 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%{?with_tcmalloc:%patch8 -p1} +%patch1 -p1 + +%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' scrub/xfs_scrub_all.in tools/xfsbuflock.py %build %{__aclocal} -I m4 - -%if %{with initrd} -%if %{with dietlibc} -# dietlibc doesn't have aio.h (and xfsprogs does not need it really) -# dietlibc has needed librt stuff in libc/libpthread -sed -i -e 's|^AC_PACKAGE_NEED_AIO_H|dnl AC_PACKAGE_NEED_AIO_H|' \ - -e 's|^AC_PACKAGE_NEED_LIO_LISTIO|dnl AC_PACKAGE_NEED_LIO_LISTIO|' \ - configure.in -sed -i -e 's|\(^LIBRT.*=.*\)|# \1|' include/builddefs.in -sed -i -e 's|\(^LLDLIBS.*=.*\)|\1 -lcompat|' db/Makefile mkfs/Makefile -%endif - -%{__autoconf} -%configure \ - %{?with_dietlibc:CC="diet %{__cc} -static"} \ - --sbindir=%{_bindir} \ - --disable-gettext \ - --disable-readline \ - DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \ - OPTIMIZER="%{rpmcflags} -Wno-deprecated-declarations -Os -D_BSD_SOURCE -D__USE_XOPEN_EXTENDED" - -%{__make} -j1 include libxfs libxlog libxcmd libhandle libdisk \ - LIBUUID="%{dietlibdir}/libuuid.a" \ - V=1 -%{__make} -j1 db growfs logprint mkfs mdrestore repair \ - LDFLAGS="%{rpmldflags} -all-static" \ - LIBUUID="%{dietlibdir}/libuuid.a" \ - V=1 - -mkdir -p initrd -mv -f db/xfs_db initrd/xfs_db -mv -f growfs/xfs_growfs initrd/xfs_growfs -mv -f logprint/xfs_logprint initrd/xfs_logprint -mv -f mkfs/mkfs.xfs initrd/mkfs.xfs -mv -f mdrestore/xfs_mdrestore initrd/xfs_mdrestore -mv -f repair/xfs_repair initrd/xfs_repair - -%if %{with dietlibc} -sed -i -e 's|^dnl AC_PACKAGE_NEED_AIO_H|AC_PACKAGE_NEED_AIO_H|' \ - -e 's|^dnl AC_PACKAGE_NEED_LIO_LISTIO|AC_PACKAGE_NEED_LIO_LISTIO|' \ - configure.in -sed -i -e 's|^# \(LIBRT.*=.*\)|\1|' include/builddefs.in -sed -i -e 's|\(^LLDLIBS.*=.*\) -lcompat|\1|' db/Makefile mkfs/Makefile -%endif - -%{__make} clean -%endif - %{__autoconf} %configure \ - --sbindir=%{_bindir}\ - --enable-gettext \ - --enable-readline \ + DEBUG="%{?with_debug_asserts:-DDEBUG}%{!?with_debug_asserts:-DNDEBUG}" \ + OPTIMIZER="%{rpmcflags}" \ --enable-blkid \ - DEBUG="%{?debug:-DDEBUG}%{!?debug:-DNDEBUG}" \ - OPTIMIZER="%{rpmcflags}" + --enable-editline \ + --enable-gettext \ + --enable-libicu \ + --disable-lto \ + --enable-scrub=yes %{__make} -j1 \ V=1 %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_libexecdir},/etc} +install -d $RPM_BUILD_ROOT/etc/cron.d DIST_ROOT=$RPM_BUILD_ROOT DIST_INSTALL=$(pwd)/install.manifest @@ -212,39 +149,27 @@ export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV %{__make} install-dev \ DIST_MANIFEST="$DIST_INSTALL_DEV" -install %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/xfs_lsprojid - -ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libhandle.so.*.*.*) \ - $RPM_BUILD_ROOT%{_libexecdir}/libhandle.so -ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxcmd.so.*.*.*) \ - $RPM_BUILD_ROOT%{_libexecdir}/libxcmd.so -ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxfs.so.*.*.*) \ - $RPM_BUILD_ROOT%{_libexecdir}/libxfs.so -ln -sf %{_libdir}/$(basename $RPM_BUILD_ROOT%{_libdir}/libxlog.so.*.*.*) \ - $RPM_BUILD_ROOT%{_libexecdir}/libxlog.so +install -p %{SOURCE1} $RPM_BUILD_ROOT%{_sbindir}/xfs_lsprojid -mv $RPM_BUILD_ROOT%{_libdir}/lib*.la $RPM_BUILD_ROOT%{_libexecdir} -mv $RPM_BUILD_ROOT%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libexecdir} - -%{__sed} -i -e "s|libdir='%{_libdir}'|libdir='%{_libexecdir}'|" \ - $RPM_BUILD_ROOT%{_libexecdir}/lib{handle,xcmd,xfs,xlog}.la -%{__sed} -i -e "s| %{_libdir}/libxfs.la | %{_libexecdir}/libxfs.la |" \ - $RPM_BUILD_ROOT%{_libexecdir}/libxlog.la +# adjust symlink to point to actual library, not libhandle.so symlink, which we remove afterwards +ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libhandle.so.*.*.*) \ + $RPM_BUILD_ROOT%{_libdir}/libhandle.so +# adjust library path used at link time +%{__sed} -i -e "s|libdir='/%{_lib}'|libdir='%{_libdir}'|" \ + $RPM_BUILD_ROOT%{_libdir}/libhandle.la +# already in /usr +%{__rm} $RPM_BUILD_ROOT/%{_lib}/libhandle.{so,la,a} -%if %{with initrd} -install -d $RPM_BUILD_ROOT%{_libexecdir}/initrd -install initrd/* $RPM_BUILD_ROOT%{_libexecdir}/initrd -%endif +# install cron file +%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{name}/xfs_scrub_all.cron,/etc/cron.d/xfs_scrub_all} +# (config file paths are specified in libfrog/projects.c) echo "#10:/mnt/ftp/roman" >> $RPM_BUILD_ROOT/etc/projects echo "#ftproman:10" >> $RPM_BUILD_ROOT/etc/projid -%find_lang %{name} - %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name} -# already in /usr -%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{handle,xcmd,xfs,xlog}.so +%find_lang %{name} %clean rm -rf $RPM_BUILD_ROOT @@ -252,58 +177,68 @@ rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig +%post scrub +%systemd_reload + %files -f %{name}.lang %defattr(644,root,root,755) %doc README doc/{CHANGES,CREDITS} %config(noreplace) %verify(not md5 mtime size) /etc/projects %config(noreplace) %verify(not md5 mtime size) /etc/projid -%attr(755,root,root) %{_sbindir}/fsck.xfs -%attr(755,root,root) %{_sbindir}/mkfs.xfs -%attr(755,root,root) %{_sbindir}/xfs_repair -%attr(755,root,root) %{_bindir}/xfs_* -%attr(755,root,root) %{_libdir}/libhandle.so.*.* -%attr(755,root,root) %{_libdir}/libxcmd.so.*.* -%attr(755,root,root) %{_libdir}/libxfs.so.*.* -%attr(755,root,root) %{_libdir}/libxlog.so.*.* -%attr(755,root,root) %ghost %{_libdir}/libhandle.so.1 -%attr(755,root,root) %ghost %{_libdir}/libxcmd.so.0 -%attr(755,root,root) %ghost %{_libdir}/libxfs.so.0 -%attr(755,root,root) %ghost %{_libdir}/libxlog.so.0 +%attr(755,root,root) /sbin/fsck.xfs +%attr(755,root,root) /sbin/mkfs.xfs +%attr(755,root,root) /sbin/xfs_repair +%attr(755,root,root) %{_sbindir}/xfs_* +%exclude %{_sbindir}/xfs_scrub* +%attr(755,root,root) /%{_lib}/libhandle.so.*.* +%attr(755,root,root) %ghost /%{_lib}/libhandle.so.1 +%dir %{_libdir}/%{name} +%attr(755,root,root) %{_libdir}/%{name}/xfs_scrub_fail %{_mandir}/man5/projects.5* %{_mandir}/man5/projid.5* %{_mandir}/man5/xfs.5* %{_mandir}/man8/fsck.xfs.8* %{_mandir}/man8/mkfs.xfs.8* %{_mandir}/man8/xfs_*.8* +%exclude %{_mandir}/man8/xfs_scrub*.8* + +%files scrub +%defattr(644,root,root,755) +%attr(755,root,root) %{_sbindir}/xfs_scrub +%attr(755,root,root) %{_sbindir}/xfs_scrub_all +%{systemdunitdir}/xfs_scrub@.service +%{systemdunitdir}/xfs_scrub_all.service +%{systemdunitdir}/xfs_scrub_all.timer +%{systemdunitdir}/xfs_scrub_fail@.service +%config(noreplace) %verify(not md5 mtime size) /etc/cron.d/xfs_scrub_all +%{_mandir}/man8/xfs_scrub.8* +%{_mandir}/man8/xfs_scrub_all.8* %files devel %defattr(644,root,root,755) -%attr(755,root,root) %{_libexecdir}/libhandle.so -%attr(755,root,root) %{_libexecdir}/libxcmd.so -%attr(755,root,root) %{_libexecdir}/libxfs.so -%attr(755,root,root) %{_libexecdir}/libxlog.so -%{_libexecdir}/libhandle.la -%{_libexecdir}/libxcmd.la -%{_libexecdir}/libxfs.la -%{_libexecdir}/libxlog.la +%attr(755,root,root) %{_libdir}/libhandle.so +%{_libdir}/libhandle.la %{_includedir}/xfs +%{_mandir}/man2/ioctl_xfs_ag_geometry.2* +%{_mandir}/man2/ioctl_xfs_bulkstat.2* +%{_mandir}/man2/ioctl_xfs_fsbulkstat.2* +%{_mandir}/man2/ioctl_xfs_fscounts.2* +%{_mandir}/man2/ioctl_xfs_fsgeometry.2* +%{_mandir}/man2/ioctl_xfs_fsgetxattr.2* +%{_mandir}/man2/ioctl_xfs_fsgetxattra.2* +%{_mandir}/man2/ioctl_xfs_fsinumbers.2* +%{_mandir}/man2/ioctl_xfs_fssetxattr.2* +%{_mandir}/man2/ioctl_xfs_getbmap.2* +%{_mandir}/man2/ioctl_xfs_getbmapa.2* +%{_mandir}/man2/ioctl_xfs_getbmapx.2* +%{_mandir}/man2/ioctl_xfs_getresblks.2* +%{_mandir}/man2/ioctl_xfs_goingdown.2* +%{_mandir}/man2/ioctl_xfs_inumbers.2* +%{_mandir}/man2/ioctl_xfs_scrub_metadata.2* +%{_mandir}/man2/ioctl_xfs_setresblks.2* %{_mandir}/man3/*handle.3* %{_mandir}/man3/xfsctl.3* %files static %defattr(644,root,root,755) -%{_libexecdir}/libhandle.a -%{_libexecdir}/libxcmd.a -%{_libexecdir}/libxfs.a -%{_libexecdir}/libxlog.a - -%if %{with initrd} -%files initrd -%defattr(644,root,root,755) -%attr(755,root,root) %{_libexecdir}/initrd/mkfs.xfs -%attr(755,root,root) %{_libexecdir}/initrd/xfs_db -%attr(755,root,root) %{_libexecdir}/initrd/xfs_growfs -%attr(755,root,root) %{_libexecdir}/initrd/xfs_logprint -%attr(755,root,root) %{_libexecdir}/initrd/xfs_mdrestore -%attr(755,root,root) %{_libexecdir}/initrd/xfs_repair -%endif +%{_libdir}/libhandle.a