{ stdenv, fetchurl, pkgconfig, attr, acl, zlib, libuuid, e2fsprogs, lzo
, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt
}:

let version = "4.8.3"; in

stdenv.mkDerivation rec {
  name = "btrfs-progs-${version}";

  src = fetchurl {
    url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
    sha256 = "1wlflrygnpndppil9g12pk184f75g9qx1lkr0x1gijigglqhr9n1";
  };

  buildInputs = [
    pkgconfig attr acl zlib libuuid e2fsprogs lzo
    asciidoc xmlto docbook_xml_dtd_45 docbook_xsl libxslt
  ];

  # gcc bug with -O1 on ARM with gcc 4.8
  # This should be fine on all platforms so apply universally
  patchPhase = "sed -i s/-O1/-O2/ configure";

  meta = with stdenv.lib; {
    description = "Utilities for the btrfs filesystem";
    homepage = https://btrfs.wiki.kernel.org/;
    license = licenses.gpl2;
    maintainers = with maintainers; [ nckx raskin wkennington ];
    platforms = platforms.linux;
  };
}

{ stdenv, fetchurl, pkgconfig, attr, acl, zlib, libuuid, e2fsprogs, lzo
, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt
}:

let version = "4.8.2"; in

stdenv.mkDerivation rec {
  name = "btrfs-progs-${version}";

  src = fetchurl {
    url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
    sha256 = "0pswcfmdnfc586770h74abp67gn2xv8fd46vxlimnmn837sj7h41";
  };

  buildInputs = [
    pkgconfig attr acl zlib libuuid e2fsprogs lzo
    asciidoc xmlto docbook_xml_dtd_45 docbook_xsl libxslt
  ];

  # gcc bug with -O1 on ARM with gcc 4.8
  # This should be fine on all platforms so apply universally
  patchPhase = "sed -i s/-O1/-O2/ configure";

  meta = with stdenv.lib; {
    description = "Utilities for the btrfs filesystem";
    homepage = https://btrfs.wiki.kernel.org/;
    license = licenses.gpl2;
    maintainers = with maintainers; [ nckx raskin wkennington ];
    platforms = platforms.linux;
  };
}

Revert "btrfs-progs: 4.8.2 -> 4.8.3"
Revert "btrfs-progs: 4.8.2 -> 4.8.3"

This reverts commit e82c325bff0295ed4bbbd308fd4f99cdfd9ab515.

This package update breaks the `update-grub.pl` script:

    updating GRUB 2 menu...
    Btrfs did not return a path for the subvolume at /
    error: unable to activate new configuration

This backwards-incompatible change is the culprit:

    $ /nix/store/np25r3yzv2r41ji7v73j110inpj8lhn2-btrfs-progs-4.8.2/bin/btrfs subvol show /
    / is toplevel subvolume

vs.

    $ /nix/store/h53vs13nqvjwahpl26a4s7ygqk9xw1mw-btrfs-progs-4.8.3/bin/btrfs subvol show /
    /
    	Name: 			<FS_TREE>
    	UUID: 			-
    	Parent UUID: 		-
    	Received UUID: 		-
    	Creation time: 		-
    	Subvolume ID: 		5
    	Generation: 		6004631
    	Gen at creation: 	0
    	Parent ID: 		0
    	Top level ID: 		0
    	Flags: 			-
    	Snapshot(s):
