]> git.pld-linux.org Git - packages/xfsprogs.git/blobdiff - xfsprogs.spec
Up to 5.14.2.
[packages/xfsprogs.git] / xfsprogs.spec
index 9dc008a32a5ffef99da908b805bb099d13f9b7c2..f7f82c9ef0b6b7dec414851afb2cdc3b0cb1020d 100644 (file)
@@ -1,48 +1,45 @@
 #
 # 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.11
+Version:       5.14.2
 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: 35d7951922dad275b7109e81609600ba
+Source0:       https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/%{name}-%{version}.tar.xz
+# Source0-md5: 597e7067b8aa24d440bc87c29e987377
 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:                %{name}-repair-tcmalloc.patch
-Patch7:                %{name}-noquotasync.patch
-URL:           http://www.xfs.org/
-BuildRequires: autoconf
+Patch1:                %{name}-pl.po-update.patch
+# Patch1-md5:  5996ff94e993eb0f956376bffce8d77d
+URL:           https://xfs.wiki.kernel.org/
+# for <attr/attributes.h>
+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
-%{?with_tcmalloc:Requires:     libtcmalloc >= 1.8.3-3}
+BuildRequires: userspace-rcu-devel
+BuildRequires: userspace-rcu-static
+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"
@@ -50,18 +47,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.
 
@@ -84,6 +69,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
@@ -111,94 +114,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
-%{?with_tcmalloc:%patch6 -p1}
-%patch7 -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.ac
-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.ac
-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 \
+%{__make} \
        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
@@ -210,39 +151,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
@@ -250,58 +179,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
This page took 0.043232 seconds and 4 git commands to generate.