v4.19. Changes:

* updated to v4.19
* symlink: /usr/bin/btrfs --> /usr/sbin/btrfs
* new build dependencies for new features, e.g. zstd compression
* dropped btrfs-progs-recognize-fsck.btrfs-like-btrfsck.patch because that problem is fixed upstream
* new btrfs-* utilities, some old were depreceated
* new upstream udev rule for friendly naming of RAID devices
* new packages libbtrfsutil and libbtrfsutil-devel (it's a new upstream library)
* ROSA-Skip-validation-which-is-unavailable-offline.patch: turned off validating documentation because it's unavailable offline
* bash-completetion was upstreamized, now we use it from upstream
This commit is contained in:
Mikhail Novosyolov 2018-11-24 10:43:38 +03:00
parent 15195b30e7
commit 1d4d10c83e
5 changed files with 90 additions and 183 deletions

View file

@ -1,2 +1,2 @@
sources:
btrfs-progs-4.9.1.tar.gz: b0b1da4147c0eb7b18a26063dae0247f21829390
v4.19.tar.gz: 949cecbbb142ffb234b3de5ba5d0a0dac2530867

View file

@ -0,0 +1,25 @@
From a575695a4ea38675af3c14b41e6279f8be5a0d43 Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Sat, 24 Nov 2018 01:06:32 +0300
Subject: [PATCH] Skip validation which is unavailable offline
---
Documentation/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/Makefile.in b/Documentation/Makefile.in
index afc16980..32398660 100644
--- a/Documentation/Makefile.in
+++ b/Documentation/Makefile.in
@@ -64,7 +64,7 @@ endif
MANPAGE_XSL = manpage-normal.xsl
XMLTO = @XMLTO@
XMLTO_EXTRA =
-XMLTO_EXTRA = -m manpage-bold-literal.xsl
+XMLTO_EXTRA = --skip-validation -m manpage-bold-literal.xsl
INSTALL = @INSTALL@
RM = @RM@
RMDIR = @RMDIR@
--
2.17.1

View file

@ -1,86 +0,0 @@
_btrfs()
{
local cur prev
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
commands='subvolume filesystem balance scrub check restore inspect-internal device send receive quota qgroup replace help version'
commands_subvolume='snapshot delete create list find-new set-default show'
commands_filesystem='defragment sync resize show df balance label'
commands_device='scan add delete ready stats'
commands_balance='start pause cancel resume status'
commands_inspect_internal='inode-resolve logical-resolve subvolid-resolve'
commands_scrub='start cancel resume status'
commands_quota='enable disable rescan'
commands_qgroup='assign remove create destroy show limit'
commands_replace='start status cancel'
if [ $COMP_CWORD -eq 1 ]; then
COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) )
elif [ $COMP_CWORD -eq 2 ]; then
case $prev in
subvolume)
COMPREPLY=( $( compgen -W "$commands_subvolume" -- "$cur" ) )
return 0
;;
filesystem)
COMPREPLY=( $( compgen -W "$commands_filesystem" -- "$cur" ) )
return 0
;;
device)
COMPREPLY=( $( compgen -W "$commands_device" -- "$cur" ) )
return 0
;;
balance)
COMPREPLY=( $( compgen -W "$commands_balance" -- "$cur" ) )
return 0
;;
scrub)
COMPREPLY=( $( compgen -W "$commands_scrub" -- "$cur" ) )
return 0
;;
inspect-internal)
COMPREPLY=( $( compgen -W "$commands_inspect_internal" -- "$cur" ) )
return 0
;;
quota)
COMPREPLY=( $( compgen -W "$commands_quota" -- "$cur" ) )
return 0
;;
qgroup)
COMPREPLY=( $( compgen -W "$commands_qgroup" -- "$cur" ) )
return 0
;;
replace)
COMPREPLY=( $( compgen -W "$commands_replace" -- "$cur" ) )
return 0
;;
esac
elif [ $COMP_CWORD -eq 3 ]; then
case $prev in
snapshot|delete|create|list|find-new|sync|df| \
scan|add)
_filedir -d
return 0
;;
balance)
COMPREPLY=( $( compgen -W "$commands_balance" -- "$cur" ) )
return 0
;;
defragment)
_filedir
return 0
;;
help)
COMPREPLY=( $( compgen -W "--full" -- "$cur" ) )
return 0
;;
esac
fi
return 0
}
complete -F _btrfs btrfs

View file

@ -1,58 +0,0 @@
Many systems expect a fsck.<filesystem> -a <device>
command to be accepted.
commit: 6cd836d7d95ae61edfca2406f48eeca47b8cfd81
(btrfs-progs: ignore -a option in mkfs)
added this 'support' to btrfsck so one could symlink fsck.btrfs
to btrfsck and get the desired result.
But then it got broken by:
commit 5956f752c66d5259bbb17a2dd47ee8c8cc0e5f4f
(Btrfs-progs: add btrfsck functionality to btrfs)
like this:
# fsck.btrfs -a /dev/loop0
Unknown option: -a
usage: btrfs [--help] [--version] <group> [<group>...] <command> [<args>]
Fix this breakage by doing the same name detection for fsck.btrfs as we do
for btrfsck as added in commit: d5d2046ae3b216af22a8a37c940f2412ba519b6e
(Btrfs-progs: add btrfsck name detection to btrfs)
and we get the expected result:
# fsck.btrfs -a /dev/loop0
Checking filesystem on /dev/loop0
UUID: afe796c5-9e06-43d2-a5f4-a2beca58e82a
checking extents
checking free space cache
cache and super generation don't match, space cache will be invalidated
checking fs roots
checking csums
checking root refs
found 28672 bytes used err is 0
total csum bytes: 0
total tree bytes: 28672
total fs tree bytes: 8192
total extent tree bytes: 4096
btree space waste bytes: 23766
file data blocks allocated: 0
referenced 0
Btrfs v3.12
Signed-off-by: Thomas Backlund <tmb@mageia.org>
diff -Nurp btrfs-progs-v3.12.orig/btrfs.c btrfs-progs-v3.12/btrfs.c
--- btrfs-progs-v3.12.orig/btrfs.c 2013-11-25 22:48:32.000000000 +0200
+++ btrfs-progs-v3.12/btrfs.c 2013-12-26 18:29:31.382400701 +0200
@@ -271,7 +271,7 @@ int main(int argc, char **argv)
else
bname = argv[0];
- if (!strcmp(bname, "btrfsck")) {
+ if (!strcmp(bname, "btrfsck") || !strcmp(bname, "fsck.btrfs")) {
argv[0] = "check";
} else {
argc--;

View file

@ -1,18 +1,19 @@
%define major 0
%define libname %mklibname btrfs %{major}
%define devname %mklibname btrfs -d
%define major_libbtrfs 0
%define libname_libbtrfs %mklibname btrfs %{major_libbtrfs}
%define devname_libbtrfs %mklibname btrfs -d
Summary: Userspace programs for btrfs
%define major_libbtrfsutil 1
%define libname_libbtrfsutil %mklibname btrfsutil %{major_libbtrfsutil}
%define devname_libbtrfsutil %mklibname btrfsutil -d
Summary: Userspace programs for BTRFS
Name: btrfs-progs
Version: 4.9.1
Version: 4.19
Release: 1
License: GPLv2+
Group: System/Kernel and hardware
Url: http://btrfs.wiki.kernel.org/
Source0: https://github.com/kdave/btrfs-progs/archive/%{name}-%{version}.tar.gz
# From http://www.spinics.net/lists/linux-btrfs/msg15899.html
Source1: btrfs-completion.sh
Patch0: btrfs-progs-recognize-fsck.btrfs-like-btrfsck.patch
Source0: https://github.com/kdave/btrfs-progs/archive/v%{version}.tar.gz
BuildRequires: asciidoc
BuildRequires: docbook-dtd45-xml
BuildRequires: docbook-style-xsl
@ -23,7 +24,12 @@ BuildRequires: pkgconfig(blkid)
BuildRequires: pkgconfig(ext2fs)
BuildRequires: pkgconfig(uuid)
BuildRequires: pkgconfig(zlib)
Requires: %{libname} = %{EVRD}
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(udev)
BuildRequires: python3-setuptools
Requires: %{libname_libbtrfs} = %{EVRD}
Requires: %{libname_libbtrfsutil} = %{EVRD}
%description
The btrfs-progs package provides all the userpsace programs needed to create,
@ -31,58 +37,74 @@ check, modify and correct any inconsistencies in the btrfs filesystem.
%files
%doc COPYING INSTALL
%{_sbindir}/btrfs
%{_sbindir}/btrfs-convert
%{_sbindir}/btrfs-debug-tree
%{_sbindir}/btrfs-find-root
%{_sbindir}/btrfs-image
%{_sbindir}/btrfs-map-logical
%{_sbindir}/btrfs-zero-log
%{_sbindir}/btrfsck
%{_sbindir}/btrfstune
%{_sbindir}/btrfs-select-super
%{_sbindir}/fsck.btrfs
%{_sbindir}/mkfs.btrfs
%{_mandir}/man5/btrfs.5.*
%{_mandir}/man8/btrfs.8.*
%{_mandir}/man8/btrfs-*.8*
%{_mandir}/man8/btrfsck.8*
%{_mandir}/man8/mkfs.btrfs.8*
%{_mandir}/man8/btrfstune.8.*
%{_mandir}/man8/fsck.btrfs.8*
%{_sbindir}/btrfs*
%{_bindir}/btrfs*
%{_sbindir}/*.btrfs
%{_mandir}/man*/btrfs*
%{_mandir}/man*/*.btrfs.*
%{_udevrulesdir}/*.rules
%{_datadir}/bash-completion/completions/btrfs
#----------------------------------------------------------------------------
%package -n %{libname}
%package -n %{libname_libbtrfs}
Summary: Main library for btrfs
Group: System/Libraries
%description -n %{libname}
%description -n %{libname_libbtrfs}
This package contains the library needed to run programs dynamically
linked with btrfs.
%files -n %{libname}
%{_libdir}/libbtrfs.so.%{major}*
%files -n %{libname_libbtrfs}
%{_libdir}/libbtrfs.so.%{major_libbtrfs}*
#----------------------------------------------------------------------------
%package -n %{devname}
%package -n %{devname_libbtrfs}
Summary: Headers for developing programs that will use btrfs
Group: Development/C
Requires: %{libname} = %{EVRD}
Requires: %{libname_libbtrfs} = %{EVRD}
Provides: btrfs-devel = %{EVRD}
%description -n %{devname}
%description -n %{devname_libbtrfs}
This package contains the headers that programmers will need to develop
applications which will use btrfs.
%files -n %{devname}
%files -n %{devname_libbtrfs}
%{_includedir}/btrfs/*
%{_libdir}/libbtrfs.so
#----------------------------------------------------------------------------
%package -n %{libname_libbtrfsutil}
Summary: Main library for btrfs
Group: System/Libraries
%description -n %{libname_libbtrfs}
This package contains the library needed to run programs dynamically
linked with libbtrfsutil.
%files -n %{libname_libbtrfsutil}
%{_libdir}/libbtrfsutil.so.%{major_libbtrfsutil}*
#----------------------------------------------------------------------------
%package -n %{devname_libbtrfsutil}
Summary: Headers for developing programs that will use libbtrfsutil
Group: Development/C
Requires: %{libname_libbtrfsutil} = %{EVRD}
Provides: btrfsutil-devel = %{EVRD}
%description -n %{devname_libbtrfs}
This package contains the headers that programmers will need to develop
applications which will use libbtrfsutil.
%files -n %{devname_libbtrfsutil}
%{_includedir}/btrfsutil.h
%{_libdir}/libbtrfsutil.so
#----------------------------------------------------------------------------
%prep
%setup -q
%apply_patches
@ -98,4 +120,8 @@ applications which will use btrfs.
rm -f %{buildroot}%{_libdir}/*.a
mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
cp %{SOURCE1} %{buildroot}%{_datadir}/bash-completion/completions/btrfs
install -m0644 ./btrfs-completion %{buildroot}%{_datadir}/bash-completion/completions/btrfs
# (mikhailnov) btrfs utility must be available to not-root users for some actions (creating user snapshots) and getting information
mkdir -p %{buildroot}%{_bindir}
ln -sr %{buildroot}%{_sbindir}/btrfs %{buildroot}%{_bindir}/btrfs