From 832ad0cba9b0f6160a841024aa9f40ca7d5e04c10a28cb07d5a2b71fdc13c691 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Tue, 24 Apr 2018 12:01:10 +0000 Subject: [PATCH 1/4] Accepting request 600605 from home:dsterba:branches:filesystems - update to version 4.16.1 OBS-URL: https://build.opensuse.org/request/show/600605 OBS-URL: https://build.opensuse.org/package/show/filesystems/btrfsprogs?expand=0&rev=293 --- 0001-btrfs-progs-build-fix-static-build.patch | 36 ------------------- boot-btrfs.sh | 3 -- btrfs-progs-v4.16.1.tar.gz | 3 ++ btrfs-progs-v4.16.tar.gz | 3 -- btrfsprogs.changes | 14 ++++++++ btrfsprogs.spec | 16 +-------- 6 files changed, 18 insertions(+), 57 deletions(-) delete mode 100644 0001-btrfs-progs-build-fix-static-build.patch create mode 100644 btrfs-progs-v4.16.1.tar.gz delete mode 100644 btrfs-progs-v4.16.tar.gz diff --git a/0001-btrfs-progs-build-fix-static-build.patch b/0001-btrfs-progs-build-fix-static-build.patch deleted file mode 100644 index 428362b..0000000 --- a/0001-btrfs-progs-build-fix-static-build.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 9ee71d74d9ed339b6c7a886125d57eb3bde84547 Mon Sep 17 00:00:00 2001 -From: David Sterba -Date: Fri, 6 Apr 2018 17:39:56 +0200 -Subject: [PATCH] btrfs-progs: build: fix static build - -Add missing libbtrfsutil objects to btrfs.static. - -Signed-off-by: David Sterba ---- - Makefile | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 5ba76d2eee40..8785ca2af77e 100644 ---- a/Makefile -+++ b/Makefile -@@ -261,6 +261,7 @@ endif - static_objects = $(patsubst %.o, %.static.o, $(objects)) - static_cmds_objects = $(patsubst %.o, %.static.o, $(cmds_objects)) - static_libbtrfs_objects = $(patsubst %.o, %.static.o, $(libbtrfs_objects)) -+static_libbtrfsutil_objects = $(patsubst %.o, %.static.o, $(libbtrfsutil_objects)) - static_convert_objects = $(patsubst %.o, %.static.o, $(convert_objects)) - static_mkfs_objects = $(patsubst %.o, %.static.o, $(mkfs_objects)) - static_image_objects = $(patsubst %.o, %.static.o, $(image_objects)) -@@ -453,7 +454,7 @@ btrfs: btrfs.o $(objects) $(cmds_objects) $(libs_static) - @echo " [LD] $@" - $(Q)$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) $(LIBS_COMP) - --btrfs.static: btrfs.static.o $(static_objects) $(static_cmds_objects) $(static_libbtrfs_objects) -+btrfs.static: btrfs.static.o $(static_objects) $(static_cmds_objects) $(static_libbtrfs_objects) $(static_libbtrfsutil_objects) - @echo " [LD] $@" - $(Q)$(CC) -o $@ $^ $(STATIC_LDFLAGS) $(STATIC_LIBS) $(STATIC_LIBS_COMP) - --- -2.16.2 - diff --git a/boot-btrfs.sh b/boot-btrfs.sh index 9c59ee6..caa4225 100644 --- a/boot-btrfs.sh +++ b/boot-btrfs.sh @@ -3,12 +3,9 @@ #%depends: dm dmraid lvm2 udev md luks #%programs: btrfs #%programs: btrfs-convert -#%programs: btrfs-debug-tree -#%programs: btrfs-dump-super #%programs: btrfs-find-root #%programs: btrfs-image #%programs: btrfs-select-super -#%programs: btrfs-zero-log #%programs: btrfsck #%programs: btrfstune # for fsck(8): listed twice so that a copy really ends up in /sbin diff --git a/btrfs-progs-v4.16.1.tar.gz b/btrfs-progs-v4.16.1.tar.gz new file mode 100644 index 0000000..691a7b6 --- /dev/null +++ b/btrfs-progs-v4.16.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b7569b613918ea260dda7c9f34decdbfe93585d3b526dd8dfa35da94ac759e7 +size 2408325 diff --git a/btrfs-progs-v4.16.tar.gz b/btrfs-progs-v4.16.tar.gz deleted file mode 100644 index 79afc35..0000000 --- a/btrfs-progs-v4.16.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eaa7d83ea8b7cbabf949d39b7a837d802468f993c9b671b3460b25852bc9eb19 -size 2379430 diff --git a/btrfsprogs.changes b/btrfsprogs.changes index 34aa3b6..fa7c0fb 100644 --- a/btrfsprogs.changes +++ b/btrfsprogs.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Tue Apr 24 00:00:00 CEST 2018 - dsterba@suse.cz + +- update to version 4.16.1 + * remove obsolete tools: btrfs-debug-tree, btrfs-zero-log, btrfs-show-super, + btrfs-calc-size + * sb-mod: new debugging tool to edit superblock items + * mkfs: detect if thin-provisioned device does not have enough space + * check: don't try to verify checksums on metadata dump images + * build: fail documentation build if xmlto is not found + * build: fix build of btrfs.static +- Remove patch: 0001-btrfs-progs-build-fix-static-build.patch (upstream) +- Update initrd script + ------------------------------------------------------------------- Fri Apr 6 00:00:00 CEST 2018 - dsterba@suse.cz diff --git a/btrfsprogs.spec b/btrfsprogs.spec index 10d7634..fc9d2d5 100644 --- a/btrfsprogs.spec +++ b/btrfsprogs.spec @@ -31,7 +31,7 @@ %define build_docs 0 Name: btrfsprogs -Version: 4.16 +Version: 4.16.1 Release: 0 Summary: Utilities for the Btrfs filesystem License: GPL-2.0-only @@ -46,7 +46,6 @@ Source4: setup-btrfs.sh Source5: sles11-defaults.h Patch1: mkfs-default-features.patch -Patch2: 0001-btrfs-progs-build-fix-static-build.patch %if %build_docs BuildRequires: asciidoc @@ -168,7 +167,6 @@ thing. %prep %setup -q -n btrfs-progs-v%{version} %patch1 -p1 -%patch2 -p1 %build ./autogen.sh @@ -216,21 +214,18 @@ install -m 0755 -d %{buildroot}/%{_bindir} # move some utilities out of /usr/sbin mv %{buildroot}/%{_sbindir}/btrfs-map-logical %{buildroot}/%{_bindir} # initrd rescue utilities -install -m 0755 btrfs-zero-log %{buildroot}/%{_sbindir} install -m 0755 btrfs-select-super %{buildroot}/%{_sbindir} install -m 0755 btrfs-image %{buildroot}/%{_sbindir} install -m 0755 btrfstune %{buildroot}/%{_sbindir} install -m 0755 btrfs-find-root %{buildroot}/%{_sbindir} install -m 0755 -d %{buildroot}/sbin ln -s %{_sbindir}/btrfs %{buildroot}/sbin -ln -s %{_sbindir}/btrfs-zero-log %{buildroot}/sbin ln -s %{_sbindir}/btrfs-convert %{buildroot}/sbin ln -s %{_sbindir}/btrfs-select-super %{buildroot}/sbin ln -s %{_sbindir}/btrfs-image %{buildroot}/sbin ln -s %{_sbindir}/btrfstune %{buildroot}/sbin ln -s %{_sbindir}/btrfsck %{buildroot}/sbin ln -s %{_sbindir}/btrfs-find-root %{buildroot}/sbin -ln -s %{_sbindir}/btrfs-debug-tree %{buildroot}/sbin ln -s %{_sbindir}/mkfs.btrfs %{buildroot}/sbin ln -s %{_sbindir}/fsck.btrfs %{buildroot}/sbin %if 0%{?suse_version} < 1310 @@ -280,22 +275,18 @@ done /sbin/fsck.btrfs # mkinitrd utils /sbin/btrfs -/sbin/btrfs-zero-log /sbin/btrfs-convert /sbin/btrfs-image /sbin/btrfstune /sbin/btrfsck /sbin/mkfs.btrfs -/sbin/btrfs-debug-tree %{_sbindir}/btrfs -%{_sbindir}/btrfs-zero-log %{_sbindir}/btrfs-convert %{_sbindir}/btrfs-image %{_sbindir}/btrfstune %{_sbindir}/btrfsck %{_sbindir}/fsck.btrfs %{_sbindir}/mkfs.btrfs -%{_sbindir}/btrfs-debug-tree %if 0%{?suse_version} < 1310 %dir /lib/mkinitrd %dir /lib/mkinitrd/scripts @@ -310,9 +301,7 @@ done %{_mandir}/man8/btrfs.8.gz %{_mandir}/man5/btrfs.5.gz %{_mandir}/man8/btrfs-convert.8.gz -%{_mandir}/man8/btrfs-debug-tree.8.gz %{_mandir}/man8/btrfs-map-logical.8.gz -%{_mandir}/man8/btrfs-zero-log.8.gz %{_mandir}/man8/btrfstune.8.gz %{_mandir}/man8/btrfs-balance.8.gz %{_mandir}/man8/btrfs-check.8.gz @@ -330,7 +319,6 @@ done %{_mandir}/man8/btrfs-send.8.gz %{_mandir}/man8/btrfs-subvolume.8.gz %{_mandir}/man8/btrfs-select-super.8.gz -%{_mandir}/man8/btrfs-show-super.8.gz %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/btrfs @@ -347,13 +335,11 @@ done %files -n btrfsprogs-static %defattr(-, root, root) %{_sbindir}/btrfs.static -%{_sbindir}/btrfs-zero-log.static %{_sbindir}/btrfs-convert.static %{_sbindir}/btrfs-image.static %{_sbindir}/btrfstune.static %{_sbindir}/btrfsck.static %{_sbindir}/mkfs.btrfs.static -%{_sbindir}/btrfs-debug-tree.static %{_sbindir}/btrfs-corrupt-block.static %{_sbindir}/btrfs-find-root.static %{_sbindir}/btrfs-map-logical.static From 4d080a91b2e8f128664941ffbf82501b5c03aa323bd4d81ab7058d40dfbb1182 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Mon, 30 Apr 2018 14:54:20 +0000 Subject: [PATCH 2/4] Accepting request 602573 from home:jeff_mahoney:branches:filesystems - Fix building on SLE11: * btrfs-progs: convert: fix support for e2fsprogs < 1.42 * btrfs-progs: build: detect whether -std=gnu90 is supported * btrfs-progs: build: autoconf 2.63 compatibility * Fixed mismerged addition of libbtrfsutil1 package description - Added patches: * 0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch * 0002-btrfs-progs-build-autoconf-2.63-compatibility.patch * 0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch OBS-URL: https://build.opensuse.org/request/show/602573 OBS-URL: https://build.opensuse.org/package/show/filesystems/btrfsprogs?expand=0&rev=294 --- ...nvert-fix-support-for-e2fsprogs-1.42.patch | 69 ++++++ ...gs-build-autoconf-2.63-compatibility.patch | 30 +++ ...d-detect-whether-std-gnu90-is-suppor.patch | 217 ++++++++++++++++++ btrfsprogs.changes | 13 ++ btrfsprogs.spec | 25 +- 5 files changed, 344 insertions(+), 10 deletions(-) create mode 100644 0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch create mode 100644 0002-btrfs-progs-build-autoconf-2.63-compatibility.patch create mode 100644 0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch diff --git a/0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch b/0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch new file mode 100644 index 0000000..ec08323 --- /dev/null +++ b/0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch @@ -0,0 +1,69 @@ +From 1a9818aa0dcbcd48eadbb122a1433497f758db9a Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney +Date: Fri, 27 Apr 2018 13:58:41 -0400 +Subject: [PATCH 1/3] btrfs-progs: convert: fix support for e2fsprogs < 1.42 +Patch-mainline: Submitted, linux-btrfs 26 Apr 2018 + +Commit 324d4c1857a (btrfs-progs: convert: Add larger device support) +introduced new dependencies on the 64-bit API provided by e2fsprogs. +That API was introduced in v1.42 (along with bigalloc). + +This patch maps the following to their equivalents in e2fsprogs < 1.42. +- ext2fs_get_block_bitmap_range2 +- ext2fs_inode_data_blocks2 +- ext2fs_read_ext_attr2 + +Since we need to detect and define EXT2_FLAG_64BITS for compatibilty +anyway, it makes sense to use that to detect the older e2fsprogs instead +of defining a new flag ourselves. + +Signed-off-by: Jeff Mahoney +--- + configure.ac | 6 +----- + convert/source-ext2.h | 12 +++++++++++- + 2 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index af13a95..2dea1c6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -140,11 +140,7 @@ BTRFSCONVERT_EXT2=0 + BTRFSCONVERT_REISERFS=0 + if test "x$enable_convert" = xyes; then + if test "x$with_convert" = "xauto" || echo "$with_convert" | grep -q "ext2"; then +- PKG_CHECK_MODULES(EXT2FS, [ext2fs >= 1.42],, +- [PKG_CHECK_MODULES(EXT2FS, [ext2fs], +- [AC_DEFINE([HAVE_OLD_E2FSPROGS], [1], +- [E2fsprogs does not support BIGALLOC])] +- )]) ++ PKG_CHECK_MODULES(EXT2FS, [ext2fs]) + PKG_CHECK_MODULES(COM_ERR, [com_err]) + convertfs="${convertfs:+$convertfs,}ext2" + BTRFSCONVERT_EXT2=1 +diff --git a/convert/source-ext2.h b/convert/source-ext2.h +index 80833b2..c321412 100644 +--- a/convert/source-ext2.h ++++ b/convert/source-ext2.h +@@ -33,8 +33,18 @@ + * BIGALLOC. + * Unlike normal RO compat flag, BIGALLOC affects how e2fsprogs check used + * space, and btrfs-convert heavily relies on it. ++ * ++ * e2fsprogs 1.42 also introduced the 64-bit API. Any file system ++ * that requires it will have EXT4_FEATURE_INCOMPAT_64BIT set and ++ * will fail to open with earlier releases. We can map it to the ++ * older API without risk of corruption. + */ +-#ifdef HAVE_OLD_E2FSPROGS ++#ifndef EXT2_FLAG_64BITS ++#define EXT2_FLAG_64BITS (0) ++#define ext2fs_get_block_bitmap_range2 ext2fs_get_block_bitmap_range ++#define ext2fs_inode_data_blocks2 ext2fs_inode_data_blocks ++#define ext2fs_read_ext_attr2 ext2fs_read_ext_attr ++#define ext2fs_blocks_count(s) ((s)->s_blocks_count) + #define EXT2FS_CLUSTER_RATIO(fs) (1) + #define EXT2_CLUSTERS_PER_GROUP(s) (EXT2_BLOCKS_PER_GROUP(s)) + #define EXT2FS_B2C(fs, blk) (blk) +-- +1.7.12.4 + diff --git a/0002-btrfs-progs-build-autoconf-2.63-compatibility.patch b/0002-btrfs-progs-build-autoconf-2.63-compatibility.patch new file mode 100644 index 0000000..7ad9913 --- /dev/null +++ b/0002-btrfs-progs-build-autoconf-2.63-compatibility.patch @@ -0,0 +1,30 @@ +From ce3c33cd54a4de8a3c49c11806fae195328b4413 Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney +Date: Fri, 27 Apr 2018 14:50:08 -0400 +Subject: [PATCH 2/3] btrfs-progs: build: autoconf 2.63 compatibility +Patch-mainline: Submitted, linux-btrfs 30 Apr 2018 + +Commit 2e1932e6a38 (btrfs-progs: build: simplify version tracking) +started m4_chomp to strip the newlines from the version file. m4_chomp +was introduced in autoconf 2.64 but SLE11 ships with autoconf 2.63. +For purposes of just stripping the newline, m4_flatten is sufficient. + +Signed-off-by: Jeff Mahoney +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 2dea1c6..9e5603b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,5 +1,5 @@ + AC_INIT([btrfs-progs], +- m4_chomp(m4_include([VERSION])), ++ m4_flatten(m4_include([VERSION])), + [linux-btrfs@vger.kernel.org],, + [http://btrfs.wiki.kernel.org]) + +-- +1.7.12.4 + diff --git a/0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch b/0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch new file mode 100644 index 0000000..ccd3b1a --- /dev/null +++ b/0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch @@ -0,0 +1,217 @@ +From 7b71ff68c7027a1fa9329ad9167625b81ea3aab2 Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney +Date: Fri, 27 Apr 2018 14:47:28 -0400 +Subject: [PATCH 3/3 v2] btrfs-progs: build: detect whether -std=gnu90 is + supported +Patch-mainline: Submitted, linux-btrfs 30 Apr 2018 + +GCC releases prior to 4.5.0 don't support -std=gnu90 so btrfs-progs won't +build at all on older distros. We can detect whether the compiler +supports -std=gnu90 and fall back to -std=gnu89 if it doesn't. + +AX_CHECK_COMPILE_FLAG is the right way to do this, but it depends on +autoconf 2.64. AX_GCC_VERSION has been deprecated, so we'll use that +only for earlier autoconf versions so we can drop it when we drop +support for older autoconf releases. + +Signed-off-by: Jeff Mahoney +--- + Makefile | 1 - + Makefile.inc.in | 1 + + configure.ac | 1 + + m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++ + m4/ax_gcc_version.m4 | 37 +++++++++++++++++++++++ + m4/btrfs_detect_cstd.m4 | 20 ++++++++++++ + 6 files changed, 133 insertions(+), 1 deletion(-) + create mode 100644 m4/ax_check_compile_flag.m4 + create mode 100644 m4/ax_gcc_version.m4 + create mode 100644 m4/btrfs_detect_cstd.m4 + +diff --git a/Makefile b/Makefile +index 5ba76d2..c0eb3d6 100644 +--- a/Makefile ++++ b/Makefile +@@ -63,7 +63,6 @@ ABSTOPDIR = $(shell pwd) + TOPDIR := . + + # Common build flags +-CSTD = -std=gnu90 + CFLAGS = $(SUBST_CFLAGS) \ + $(CSTD) \ + -include config.h \ +diff --git a/Makefile.inc.in b/Makefile.inc.in +index 52410f6..fb32461 100644 +--- a/Makefile.inc.in ++++ b/Makefile.inc.in +@@ -4,6 +4,7 @@ + export + + CC = @CC@ ++CSTD = @BTRFS_CSTD_FLAGS@ + LN_S = @LN_S@ + AR = @AR@ + RM = @RM@ +diff --git a/configure.ac b/configure.ac +index 9e5603b..4f63bb6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -26,6 +26,7 @@ AC_CONFIG_SRCDIR([btrfs.c]) + AC_PREFIX_DEFAULT([/usr/local]) + + AC_PROG_CC ++BTRFS_DETECT_CSTD + AC_CANONICAL_HOST + AC_C_CONST + AC_C_VOLATILE +diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 +new file mode 100644 +index 0000000..dcabb92 +--- /dev/null ++++ b/m4/ax_check_compile_flag.m4 +@@ -0,0 +1,74 @@ ++# =========================================================================== ++# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) ++# ++# DESCRIPTION ++# ++# Check whether the given FLAG works with the current language's compiler ++# or gives an error. (Warnings, however, are ignored) ++# ++# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on ++# success/failure. ++# ++# If EXTRA-FLAGS is defined, it is added to the current language's default ++# flags (e.g. CFLAGS) when the check is done. The check is thus made with ++# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to ++# force the compiler to issue an error when a bad flag is given. ++# ++# INPUT gives an alternative input source to AC_COMPILE_IFELSE. ++# ++# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this ++# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Guido U. Draheim ++# Copyright (c) 2011 Maarten Bosmans ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see . ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++#serial 5 ++ ++AC_DEFUN([AX_CHECK_COMPILE_FLAG], ++[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF ++AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl ++AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ++ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS ++ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" ++ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], ++ [AS_VAR_SET(CACHEVAR,[yes])], ++ [AS_VAR_SET(CACHEVAR,[no])]) ++ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) ++AS_VAR_IF(CACHEVAR,yes, ++ [m4_default([$2], :)], ++ [m4_default([$3], :)]) ++AS_VAR_POPDEF([CACHEVAR])dnl ++])dnl AX_CHECK_COMPILE_FLAGS +diff --git a/m4/ax_gcc_version.m4 b/m4/ax_gcc_version.m4 +new file mode 100644 +index 0000000..63914d5 +--- /dev/null ++++ b/m4/ax_gcc_version.m4 +@@ -0,0 +1,37 @@ ++dnl @synopsis AX_GCC_VERSION(MAJOR, MINOR, PATCHLEVEL, [ACTION-SUCCESS], [ACTION-FAILURE]) ++dnl @summary check wither gcc is at least version MAJOR.MINOR.PATCHLEVEL ++dnl @category InstalledPackages ++dnl ++dnl Check whether we are using gcc and, if so, whether its version ++dnl is at least MAJOR.MINOR.PATCHLEVEL ++dnl ++dnl ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on ++dnl success/failure. ++dnl ++dnl @version 2005-05-30 ++dnl @license GPLWithACException ++dnl @author Steven G. Johnson and Matteo Frigo. ++AC_DEFUN([AX_GCC_VERSION], ++[ ++AC_REQUIRE([AC_PROG_CC]) ++AC_CACHE_CHECK(whether we are using gcc $1.$2.$3 or later, ax_cv_gcc_$1_$2_$3, ++[ ++ax_cv_gcc_$1_$2_$3=no ++if test "$GCC" = "yes"; then ++dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp. ++AC_EGREP_CPP(yes, [ ++#ifdef __GNUC__ ++# if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ > $2) \ ++ || (__GNUC__ == $1 && __GNUC_MINOR__ == $2 && __GNUC_PATCHLEVEL__ >= $3) ++ yes; ++# endif ++#endif ++], [ax_cv_gcc_$1_$2_$3=yes]) ++fi ++]) ++if test "$ax_cv_gcc_$1_$2_$3" = yes; then ++ m4_default([$4], :) ++else ++ m4_default([$5], :) ++fi ++]) +diff --git a/m4/btrfs_detect_cstd.m4 b/m4/btrfs_detect_cstd.m4 +new file mode 100644 +index 0000000..f0c45d9 +--- /dev/null ++++ b/m4/btrfs_detect_cstd.m4 +@@ -0,0 +1,20 @@ ++dnl We prefer -std=gnu90 but gcc versions prior to 4.5.0 don't support ++dnl it. AX_CHECK_COMPILE_FLAG is the right way to determine whether a ++dnl particular version of gcc supports a flag, but it requires autoconf ++dnl 2.64. Since (for now) we still want to support older releases ++dnl that ship with autoconf 2.63, we the also-deprecated AX_GCC_VERSION ++dnl macro there. ++AC_DEFUN([BTRFS_DETECT_CSTD], ++[ ++ m4_version_prereq([2.64], [ ++ AX_CHECK_COMPILE_FLAG([-std=gnu90], ++ [BTRFS_CSTD_FLAGS=-std=gnu90], ++ [BTRFS_CSTD_FLAGS=-std=gnu89]) ++ ], [ ++ AX_GCC_VERSION([4], [5], [0], ++ [BTRFS_CSTD_FLAGS=-std=gnu90], ++ [BTRFS_CSTD_FLAGS=-std=gnu89]) ++ ]) ++ AC_SUBST([BTRFS_CSTD_FLAGS]) ++]) dnl BTRFS_DETECT_CSTD ++ +-- +1.7.12.4 + diff --git a/btrfsprogs.changes b/btrfsprogs.changes index fa7c0fb..0de69d9 100644 --- a/btrfsprogs.changes +++ b/btrfsprogs.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Apr 30 14:39:07 UTC 2018 - jeffm@suse.com + +- Fix building on SLE11: + * btrfs-progs: convert: fix support for e2fsprogs < 1.42 + * btrfs-progs: build: detect whether -std=gnu90 is supported + * btrfs-progs: build: autoconf 2.63 compatibility + * Fixed mismerged addition of libbtrfsutil1 package description +- Added patches: + * 0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch + * 0002-btrfs-progs-build-autoconf-2.63-compatibility.patch + * 0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch + ------------------------------------------------------------------- Tue Apr 24 00:00:00 CEST 2018 - dsterba@suse.cz diff --git a/btrfsprogs.spec b/btrfsprogs.spec index fc9d2d5..7943f51 100644 --- a/btrfsprogs.spec +++ b/btrfsprogs.spec @@ -46,6 +46,9 @@ Source4: setup-btrfs.sh Source5: sles11-defaults.h Patch1: mkfs-default-features.patch +Patch2: 0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch +Patch3: 0002-btrfs-progs-build-autoconf-2.63-compatibility.patch +Patch4: 0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch %if %build_docs BuildRequires: asciidoc @@ -136,6 +139,15 @@ Group: System/Kernel Conflicts: udev < %{udev_with_btrfs_builtin} BuildArch: noarch +%description udev-rules +This package contains the udev rule file for configuring device mapper +devices that are components of btrfs file systems. It is meant to be +used with versions of udev that contain the "built-in" btrfs command +(v190 and newer). Older versions of udev will call the version of +"btrfs ready" contained in the btrfsprogs package, which does the right +thing. +%endif + %package -n libbtrfsutil1 Summary: Utility library for interacting with Btrfs Group: System/Libraries @@ -155,18 +167,12 @@ Requires: libbtrfsutil1 = %{version} This package contains the libraries and headers files for developers to build applications to interface with Btrfs using libbtrfsutil. -%description udev-rules -This package contains the udev rule file for configuring device mapper -devices that are components of btrfs file systems. It is meant to be -used with versions of udev that contain the "built-in" btrfs command -(v190 and newer). Older versions of udev will call the version of -"btrfs ready" contained in the btrfsprogs package, which does the right -thing. -%endif - %prep %setup -q -n btrfs-progs-v%{version} %patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %build ./autogen.sh @@ -362,7 +368,6 @@ done %files -n libbtrfsutil-devel %defattr(-, root, root) -%dir %{_includedir} %{_includedir}/btrfsutil.h %{_libdir}/libbtrfsutil.so From eda25cc29f0ad5bdd8a0141bb22b7edd4880cc5a2001e2226728811e278e0278 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Mon, 30 Apr 2018 15:02:16 +0000 Subject: [PATCH 3/4] Accepting request 602578 from home:dsterba:branches:filesystems replace tar by upstream version OBS-URL: https://build.opensuse.org/request/show/602578 OBS-URL: https://build.opensuse.org/package/show/filesystems/btrfsprogs?expand=0&rev=295 --- btrfs-progs-v4.16.1.tar.gz | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/btrfs-progs-v4.16.1.tar.gz b/btrfs-progs-v4.16.1.tar.gz index 691a7b6..25d1a70 100644 --- a/btrfs-progs-v4.16.1.tar.gz +++ b/btrfs-progs-v4.16.1.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8b7569b613918ea260dda7c9f34decdbfe93585d3b526dd8dfa35da94ac759e7 -size 2408325 +oid sha256:bfb8f7441f5d3a13e94c430b31d7662801ed0b521be0be27a06f3eb9af5c7945 +size 2379697 From a72f1962f49fb6a12d7b84a17f21eb3f75e5e8cc9a1b4d6a4ff8a35f98cbc380 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Fri, 4 May 2018 15:29:34 +0000 Subject: [PATCH 4/4] Accepting request 604056 from home:dsterba:branches:filesystems - fix installation of btrfs.5.gz OBS-URL: https://build.opensuse.org/request/show/604056 OBS-URL: https://build.opensuse.org/package/show/filesystems/btrfsprogs?expand=0&rev=296 --- btrfsprogs.changes | 5 +++++ btrfsprogs.spec | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/btrfsprogs.changes b/btrfsprogs.changes index 0de69d9..2ac43d4 100644 --- a/btrfsprogs.changes +++ b/btrfsprogs.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri May 4 00:00:00 CEST 2018 - dsterba@suse.cz + +- fix installation of btrfs.5.gz + ------------------------------------------------------------------- Mon Apr 30 14:39:07 UTC 2018 - jeffm@suse.com diff --git a/btrfsprogs.spec b/btrfsprogs.spec index 7943f51..a490802 100644 --- a/btrfsprogs.spec +++ b/btrfsprogs.spec @@ -204,10 +204,12 @@ make install \ %if !%build_docs cd Documentation -# fool make to avoid rebuilding some of the sources +# fool make to avoid rebuilding some of the sources, the final btrfs.5.gz is in +# the tarball and we have to overwrite it in the installation path touch btrfs-man5.5.gz btrfs-man5.asciidoc -touch btrfs-ioctl.asciidoc touch btrfs-ioctl.3.gz +touch btrfs-ioctl.asciidoc btrfs-ioctl.3.gz make V=1 MV=mv DESTDIR=%{buildroot} prefix=%{_prefix} bindir=%{_sbindir} mandir=%{_mandir} libdir=%{_libdir} install +install -m 0644 btrfs.5.gz %{buildroot}/%{_mandir}/man5 cd .. %endif