File xfsprogs.spec of Package xfsprogs.openSUSE_Leap_42.3_Update

#
# spec file for package xfsprogs
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define _dracutmodulesdir %{_libexecdir}/dracut/modules.d

Name:           xfsprogs
BuildRequires:  readline-devel
%if 0%{?suse_version} > 0
%if 0%{?suse_version} < 1100
BuildRequires:  e2fsprogs-devel
%else
BuildRequires:  libuuid-devel
%endif
%else
BuildRequires:  libuuid-devel
%endif
BuildRequires:  dracut
BuildRequires:  libblkid-devel
BuildRequires:  libtool
Version:        4.3.0
Release:        0
%if 0%{?suse_version} >= 1010
# hint for ZYPP
Supplements:    filesystem(xfs)
%endif
Provides:       xfsprogs-%{version}
#AutoReqProv:    no
Url:            http://oss.sgi.com/projects/xfs/
Summary:        Utilities for managing the XFS file system
License:        GPL-2.0-or-later
Group:          System/Filesystems
Source0:        xfsprogs-%{version}.tar.gz
Source1:        module-setup.sh.in
Source2:        dracut-fsck-help.txt
Patch0:         xfsprogs-docdir.diff
Patch1:         0001-Revert-mkfs-default-to-CRC-enabled-filesystems.patch
Patch2:         0001-xfsprogs-mark-sparse-inode-allocation-as-unsupported.patch
Patch3:         xfs_repair-don-t-call-xfs_sb_quota_from_disk-twice.patch
Patch4:         xfs_repair-clear-pthread_t-when-pthread_create-fails.patch
Patch5:         xfs_repair-add-prefetch-trace-calls-to-debug-thread-creation-failures.patch
Patch6:         xfs_repair-fix-thread-creation-failure-recovery.patch
Patch7:         0001-repair-shift-inode-back-into-place-if-corrupted-by-b.patch

BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
A set of commands to use the XFS file system, including mkfs.xfs.

XFS is a high performance journaling file system which originated on
the SGI IRIX platform.	It is completely multithreaded. It can support
large files and large file systems, extended attributes, and variable
block sizes.It is extent based and makes extensive use of Btrees
(directories, extents, and free space) to aid both performance and
scalability.

Refer to the documentation at http://oss.sgi.com/projects/xfs/ for
complete details.  This implementation is on-disk compatible with the
IRIX version of XFS.



Authors:
--------
    SGI

%package        devel
Requires:       xfsprogs = %version
Url:            http://oss.sgi.com/projects/xfs/
Summary:        XFS Filesystem-specific Static Libraries and Headers
Group:          Development/Libraries/C and C++
Requires:       libuuid-devel

%description devel
xfsprogs-devel contains the libraries and header files needed to
develop XFS file system-specific programs.

You should install xfsprogs-devel if you want to develop XFS file
system-specific programs.  If you install xfsprogs-devel, you will also
want to install xfsprogs.

%prep
%setup -q
%if 0%{?suse_version}
%patch0
%endif
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1

%build
export OPTIMIZER="-fPIC"
export DEBUG=-DNDEBUG
export LIBUUID=/usr/%{_lib}/libuuid.a
export CFLAGS="$RPM_OPT_FLAGS"
%configure --enable-static --enable-readline=yes --enable-blkid=yes

# Kill rpaths
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

make %{?_smp_mflags}

PATH_TO_HELP="%{_dracutmodulesdir}/95suse-xfs/dracut-fsck-help.txt"
sed -e "s|@@PATH_TO_HELP@@|$PATH_TO_HELP|" %{SOURCE1} > module-setup.sh

%install
export DIST_ROOT="$RPM_BUILD_ROOT"
make install
make install-dev
#make install-qa
# remove devel stuff from /lib
rm -f -- $RPM_BUILD_ROOT/%{_lib}/*.{so,a,la}
rm -f -- $RPM_BUILD_ROOT/%_libdir/libhandle.so
# move things to usr
mv $RPM_BUILD_ROOT/sbin/* $RPM_BUILD_ROOT%{_sbindir}
mv $RPM_BUILD_ROOT/%_lib/* $RPM_BUILD_ROOT%{_libdir}
#UsrMerge
ln -s %{_sbindir}/{fsck.xfs,mkfs.xfs,xfs_repair} $RPM_BUILD_ROOT/sbin
#EndUserMerge
pushd $RPM_BUILD_ROOT%_libdir
	ln -s libhandle.so.[0-9] libhandle.so
popd
chmod 755 $RPM_BUILD_ROOT/%_sbindir/fsck.xfs
%find_lang %name
install -m 0755 -d %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
install -m 0755 module-setup.sh %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
install -m 0644 %{SOURCE2} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files -f %name.lang
%defattr(-,root,root,755)
#UsrMerge
/sbin/*
#EndUsrMerge
%_sbindir/*
# this is only used by xfs cmds, therefore no urgent need for a shlib package
%_libdir/libhandle.so.*
%doc /usr/share/man/man[58]/*
%doc %_defaultdocdir/%name
%dir %{_dracutmodulesdir}/95suse-xfs/
%{_dracutmodulesdir}/95suse-xfs/dracut-fsck-help.txt
%{_dracutmodulesdir}/95suse-xfs/module-setup.sh

%files devel
%defattr(-,root,root,755)
%dir %_includedir/xfs
%ifarch %{multilib_arches}
%{_includedir}/xfs/platform_defs-%{_arch}.h
%endif
%{_includedir}/xfs/*
%_libdir/*.so
%_libdir/*.a
%_libdir/*.la
/usr/share/man/man3/*

%changelog
openSUSE Build Service is sponsored by