diff --git a/.abf.yml b/.abf.yml index f78a073..0fbc2c0 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,2 +1,2 @@ sources: - btrfs-progs-4.9.1.tar.gz: b0b1da4147c0eb7b18a26063dae0247f21829390 + v4.19.tar.gz: 949cecbbb142ffb234b3de5ba5d0a0dac2530867 diff --git a/ROSA-Skip-validation-which-is-unavailable-offline.patch b/ROSA-Skip-validation-which-is-unavailable-offline.patch new file mode 100644 index 0000000..a291dfa --- /dev/null +++ b/ROSA-Skip-validation-which-is-unavailable-offline.patch @@ -0,0 +1,25 @@ +From a575695a4ea38675af3c14b41e6279f8be5a0d43 Mon Sep 17 00:00:00 2001 +From: Mikhail Novosyolov +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 + diff --git a/btrfs-completion.sh b/btrfs-completion.sh deleted file mode 100755 index 1fc536e..0000000 --- a/btrfs-completion.sh +++ /dev/null @@ -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 diff --git a/btrfs-progs-recognize-fsck.btrfs-like-btrfsck.patch b/btrfs-progs-recognize-fsck.btrfs-like-btrfsck.patch deleted file mode 100644 index 6f40e05..0000000 --- a/btrfs-progs-recognize-fsck.btrfs-like-btrfsck.patch +++ /dev/null @@ -1,58 +0,0 @@ - -Many systems expect a fsck. -a -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] [...] [] - -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 - -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--; diff --git a/btrfs-progs.spec b/btrfs-progs.spec index dce521a..3fea268 100644 --- a/btrfs-progs.spec +++ b/btrfs-progs.spec @@ -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