Accepting request 605498 from home:mcgrof:branches:filesystems

- Fix OpenSUSE Tumbleweed package build (bsc#1091300) due to the libhandle1
  library shared object (so) name expectations, this is documented here:
  https://en.opensuse.org/openSUSE:Shared_library_packaging_policy
- Move systemd check to use a macro, to make it clear when the check is
  used and for what purpose exactly. Perhaps this should be moved later
  into a generic OpenSUSE/SUSE macro as a generic check as I suspect tons
  of other rpms will likely need the same.
- Address -Werror errors on old compilers, for the life of me I can't see
  how xfsprogs is at fault, so just disable -Werror on older compilers for
  now. In the future we can consider adding a work around for the compiler
  instead of disabling -Werror entirely, but for now this is the best I can
  come up with.
- Drop make_xfs_scrub_interp_explicit.patch, this is now upstream
- Update to v4.16.1 (using verbiage from xfsprogs/doc/CHANGES now):
  * fsck.xfs: remove bashism which may interfere with boot (Eric Sandeen)
  * platforms: warn of impending deprecation of irix, freebsd, darwin
  * mkfs.xfs : enable sparse inodes by default (Darrick Wong)
  * fsck.xfs: allow forced boot-time repairs using xfs_repair (Jan Tulak)
  * xfs_repair: new -e flag alters exit code for fixed errors (Jan Tulak)
  * xfs_repair: fix to allow zeroing of corrupt log (Xiao Yang)
  * xfs_repair: remove old dead code (Eric Sandeen)
  * xfs_io: fix operation time reporting (Dave Chinner)
  * xfs_io: add RWF_DSYNC support to pwrite (Dave Chinner)
  * xfs_io: support a basic extent swap command (Brian Foster)
  * xfs_scrub: Many updates, still experimental (Darrick Wong)
  * xfs_db: print transaction reservation type information
  * libxfs: framework to detect memory leaks (Eric Sandeen)
  * misc: Fix up new warnings from gcc 7.3 (Darrick Wong)
  * misc: enable link time optimization, if requested (Darrick Wong)
  * misc: enable retpolines across all xfsprogs utilities (Darrick Wong)

OBS-URL: https://build.opensuse.org/request/show/605498
OBS-URL: https://build.opensuse.org/package/show/filesystems/xfsprogs?expand=0&rev=68
This commit is contained in:
Jan Kara 2018-05-09 16:22:52 +00:00 committed by Git OBS Bridge
parent 80e7d12f7f
commit 936923d48c
7 changed files with 182 additions and 43 deletions

View File

@ -1,10 +0,0 @@
diff --git a/scrub/xfs_scrub_all.in b/scrub/xfs_scrub_all.in
index fff05da3ea7a..80f07d5c8b02 100644
--- a/scrub/xfs_scrub_all.in
+++ b/scrub/xfs_scrub_all.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/python3
# Run online scrubbers in parallel, but avoid thrashing.
#

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iQIcBAABAgAGBQJalL8QAAoJECCuFpLhPd7gjgwQAJ7yXVQ3M/ZAIQ+Qi1y4qc1s
mNz8qjxrrWLqkWa1Pl3bcpGv/VuULoTT7XUF66AL7S2O44xioQ2KrJ/NCLWQ/9Ai
hI+kw0EIGzwZh1Crj86vUA9TeAV59qme8wWL3saqtvjnLfcVdwlPkXAviOwaEx+Z
qYYkhyFUGQFqxgQxnK5iAqeNDDWb8Xuy0NVahTcWOQGKaHXnyUvRmyEcHlHzjN/b
Sn0GCySSwtzu2rk0j0Wg3xqUcLUDPyt4kQ+6/temgJmiqkHVqkiku2YfLFJCTuKC
QrnhPqSRTqkTLRnCyrjoFENdnSfEFE9AO4tUQwc5DJoTMsXk9X9cVHdRO4D7F7Tj
55ENcm39DnH3g7xogsIE/pQD4VHgs68Ye65szERZ15JelOuGFTJj/mfayJz2b5Gb
vXVa5EvQ8GVanDIo/Yz5adqG605cNJw0SH3Q/vPBPQ47tM3Xqx4QwLHVVnIybjJr
du8Rm5GL+kiI9jel+INP2orlc3VnuWA81vQmkgr0OkcWuHTRfBYr6EA9GsYpkJ8q
EbDu+kGW5nOANljXwdQ8cJI7fo5MhJkUf8+7XaFJMYpN99ny7TnmFbBUGGfeHGnH
UWmGwOxIsnB+IAuUktnD40v8YdQtI6cWMO69dIjAH3ACj74gFOS91tzyOLng9IVZ
9/TrDZb8EeVD6JROortO
=LHS8
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:27c36de9346a274143ad06c65b2fdbafd2806f3f37fa2c1235a08ed920d2bf3c
size 1188964

17
xfsprogs-4.16.1.tar.sign Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iQIcBAABAgAGBQJa59q/AAoJECCuFpLhPd7gcwIQAJrN1TcTAHck+u/6z/CpaO/0
bXqUn0CZqMCuZPBWiovIJyLeS6qBkDJ55VWFcc8zxNCjdzrNWV2xr34fYyF0vBXQ
rGbuedzTiQDs+T3OQNKDVZyQWh0S9SbKZAeCxMIA4deGWckji8N75TMruYGagjuv
YeesetmGal4xxaCieKjWbkRwQYATRszSXWGtKWnW4Q0iSESuZzIggfKbrFrUJUmu
DMQwSj+R5ybRkj7b20tosztHl0nVoKsTF+pqp1fLDEYjZ0QX9bjKPpQpgvk5u7k/
rfeZeToSoYXUl4qmGdeOQgpZeMLRKGdPXu7HY/gJpieqI5RN29wMVsC1iC13ojHl
4jorpRBwVHAZYOlDHD21n1W5A5oohMXChy3LVwRzXx4NrALIV69mbpe9W9x/e4Px
lpOrNxoqmCpge4uU67c8OcWHPXidur2l/kYkatWZ+6S1ICYR+rJNEyKkKAJDvRQh
7JBdpmJceCMio2+2RI+/UHkRlkCaiZww8FQVMQWUrVxroN1nkoEX+rZwcttJ/zzj
sN3LFE/GyAxxcBux4XhVgK9Z+BMou1RXCir4utoISnmg6d5dT3fwASAPZgdc7qIv
TXOHNTM6UZlYQOvOsj+z6cBMdwPfBDHhpT9qHvIUQ2XFEAh6OmBFIgb1nPX+cJTl
GSuqaPvYTsM9D785VAyg
=sxJN
-----END PGP SIGNATURE-----

3
xfsprogs-4.16.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3d5c2da46112b86cbd967fee43cea731d38a1b2aaf601b57674ed34e808652df
size 1199632

View File

@ -1,3 +1,37 @@
-------------------------------------------------------------------
Tue May 8 22:35:08 UTC 2018 - lurodriguez@suse.com
- Fix OpenSUSE Tumbleweed package build (bsc#1091300) due to the libhandle1
library shared object (so) name expectations, this is documented here:
https://en.opensuse.org/openSUSE:Shared_library_packaging_policy
- Move systemd check to use a macro, to make it clear when the check is
used and for what purpose exactly. Perhaps this should be moved later
into a generic OpenSUSE/SUSE macro as a generic check as I suspect tons
of other rpms will likely need the same.
- Address -Werror errors on old compilers, for the life of me I can't see
how xfsprogs is at fault, so just disable -Werror on older compilers for
now. In the future we can consider adding a work around for the compiler
instead of disabling -Werror entirely, but for now this is the best I can
come up with.
- Drop make_xfs_scrub_interp_explicit.patch, this is now upstream
- Update to v4.16.1 (using verbiage from xfsprogs/doc/CHANGES now):
* fsck.xfs: remove bashism which may interfere with boot (Eric Sandeen)
* platforms: warn of impending deprecation of irix, freebsd, darwin
* mkfs.xfs : enable sparse inodes by default (Darrick Wong)
* fsck.xfs: allow forced boot-time repairs using xfs_repair (Jan Tulak)
* xfs_repair: new -e flag alters exit code for fixed errors (Jan Tulak)
* xfs_repair: fix to allow zeroing of corrupt log (Xiao Yang)
* xfs_repair: remove old dead code (Eric Sandeen)
* xfs_io: fix operation time reporting (Dave Chinner)
* xfs_io: add RWF_DSYNC support to pwrite (Dave Chinner)
* xfs_io: support a basic extent swap command (Brian Foster)
* xfs_scrub: Many updates, still experimental (Darrick Wong)
* xfs_db: print transaction reservation type information
* libxfs: framework to detect memory leaks (Eric Sandeen)
* misc: Fix up new warnings from gcc 7.3 (Darrick Wong)
* misc: enable link time optimization, if requested (Darrick Wong)
* misc: enable retpolines across all xfsprogs utilities (Darrick Wong)
-------------------------------------------------------------------
Thu Apr 19 20:46:25 UTC 2018 - lurodriguez@suse.com

View File

@ -18,12 +18,37 @@
%define _dracutmodulesdir %{_libexecdir}/dracut/modules.d
# Note: requiring split_so_package does imply xfs_use_systemd, however,
# needing xfs_use_systemd does not imply requiring split_so_package. These
# need to be kept split for now.
# We're strict now about packages with shared objects, they must be in their
# own package. This is not a requirement for older releases so do not do the
# split there. For details see:
# https://en.opensuse.org/openSUSE:Shared_library_packaging_policy
%if 0%{?suse_version} >= 1315
%define split_so_package 1
%else
%define split_so_package 0
%endif
# Starting with OpenSUSE Leap 42.1 and SLE12-SP1 we get systemd
%if 0%{?sle_version} >= 120100
%define xfs_use_systemd 1
%else
%define xfs_use_systemd 0
%endif
Name: xfsprogs
Version: 4.15.1
Version: 4.16.1
Release: 0
Summary: Utilities for managing the XFS file system
License: GPL-2.0-or-later
Group: System/Filesystems
%if 0%{?suse_version} > 1310
%else
%endif
Url: http://xfs.org
Source0: https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-%{version}.tar.xz
Source1: https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-%{version}.tar.sign
@ -31,7 +56,6 @@ Source2: %{name}.keyring
Source3: module-setup.sh.in
Source4: dracut-fsck-help.txt
Patch0: xfsprogs-docdir.diff
Patch1: make_xfs_scrub_interp_explicit.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libblkid-devel
@ -48,8 +72,7 @@ BuildRequires: suse-module-tools
%endif
BuildRequires: xz
Requires(post): coreutils
# Starting with OpenSUSE Leap 42.1 and SLE12-SP1 we get systemd
%if 0%{?sle_version} >= 120100
%if 0%{?xfs_use_systemd} == 1
BuildRequires: pkgconfig
BuildRequires: pkgconfig(systemd)
%endif
@ -67,6 +90,20 @@ 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.
%if 0%{?split_so_package} == 1
%package -n libhandle1
Summary: XFS Filesystem-specific Shared library
Group: Development/Libraries/C and C++
%description -n libhandle1
libhandle1 contains the shared libraries needed by xfsprogs
to run xfsprogs programs.
libhandle1 is always needed by xfsprogs. If you want to use this
library for your own new xfs tools install xfsprogs-devel.
%endif
%package devel
Summary: XFS Filesystem-specific Static Libraries and Headers
Group: Development/Libraries/C and C++
@ -85,7 +122,6 @@ want to install xfsprogs.
%setup -q
%if 0%{?suse_version}
%patch0 -p1
%patch1 -p1
%endif
%build
@ -95,9 +131,20 @@ autoconf
export OPTIMIZER="-fPIC"
export DEBUG=-DNDEBUG
export LIBUUID=%{_libdir}/libuuid.a
%if 0%{?sle_version} >= 120100
%if 0%{?xfs_use_systemd} == 1
export USE_SYSTEMD="--with-systemd-unit-dir=%{_unitdir}"
%endif
# Some paranoid compiler errors appear with read() which *do not* appear
# on newer compilers. With -Werror we'd fail building the packages so
# we need to work around these compilers for now. I tried fixing
# these concerns but in no way saw any issues with the warning issued,
# as such I don't think this is a real code issue, but more a compiler
# issue.
%if 0%{?sle_version} < 150000
export CFLAGS="$CFLAGS -Wno-error"
%endif
%configure --enable-readline=yes $USE_SYSTEMD
make %{?_smp_mflags} V=1
@ -118,6 +165,56 @@ install -m 0755 -d %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
install -m 0755 module-setup.sh %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
# This seems more complex than it looks but deserves some notes otherwise
# anyone trying to undertand this will really scratch their heads. First the
# split_so_package implies that instead of doing the ldconfig's for the main
# xfsprogs package we'd be doing it now for the libhandle1 package. But if a
# system has systemd, the main xfsprogs package requires its own set of
# pre/post/prerun/postrun hooks for the main xfsprogs for the service files.
# For the systems that lack the requirement for libhandle1, we can expect them
# to also not require systemd, and as such the only package in those system
# requiring hooks is the main xfsprogs package which provides the libhandle so
# file.
%if 0%{?split_so_package} == 1
%if 0%{?suse_version} >= 1310
%if 0%{?xfs_use_systemd} == 1
%pre
%service_add_pre xfs_scrub@.service xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service
%post
%service_add_post xfs_scrub@.service xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service
%preun
%service_del_preun xfs_scrub@.service xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service
%postun
%service_del_postun xfs_scrub@.service xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service
%endif
%post -n libhandle1
%{?regenerate_initrd_post}
/sbin/ldconfig
%postun -n libhandle1
%{?regenerate_initrd_post}
/sbin/ldconfig
%posttrans -n libhandle1
%{?regenerate_initrd_posttrans}
%else
%postun -n libhandle1
%post -p /sbin/ldconfig
%endif
%else
# Below are systems that do not require the libhandle1 package. For these,
# its as we had things before, and xfsprogs provides the so library.
%if 0%{?suse_version} >= 1310
%post
%{?regenerate_initrd_post}
@ -129,10 +226,12 @@ install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
%posttrans
%{?regenerate_initrd_posttrans}
%else
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%else
%postun
%post -p /sbin/ldconfig
%endif
%endif
%files -f %{name}.lang
@ -141,11 +240,12 @@ install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
/sbin/*
#EndUsrMerge
%{_sbindir}/*
# this is only used by xfs cmds, therefore no urgent need for a shlib package
%if 0%{?split_so_package} != 1
%{_libdir}/libhandle.so.*
%endif
%dir %{_libdir}/xfsprogs/
%{_libdir}/xfsprogs/xfs_scrub_all.cron
%if 0%{?sle_version} >= 120100
%if 0%{?xfs_use_systemd} == 1
%{_libdir}/xfsprogs/xfs_scrub_fail
%{_unitdir}/xfs_scrub@.service
%{_unitdir}/xfs_scrub_all.service
@ -160,12 +260,27 @@ install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
%{_dracutmodulesdir}/95suse-xfs/dracut-fsck-help.txt
%{_dracutmodulesdir}/95suse-xfs/module-setup.sh
%files devel
%if 0%{?split_so_package} == 1
%files -n libhandle1
%{_libdir}/libhandle.so.1.0.3
# The .1 symlink belongs to the main library package as per the
# documentation here:
# https://en.opensuse.org/openSUSE:Shared_library_packaging_policy
%{_libdir}/libhandle.so.1
%endif
%files -n xfsprogs-devel
%defattr(-,root,root,755)
%{_includedir}/xfs
%{_libdir}/*.so
# The symlink single so file belongs in devel packages as per rpm lint
# and documentation here:
# https://en.opensuse.org/openSUSE:Shared_library_packaging_policy
%{_libdir}/libhandle.so
# Archives for static builds
%{_libdir}/*.a
# Description of the libraries for libtool
%{_libdir}/*.la
%{_mandir}/man3/*
%changelog