diff --git a/pkgs/tools/filesystems/bees/bees-service-wrapper b/pkgs/tools/filesystems/bees/bees-service-wrapper index 67c95e8f8031..ad72c1d95e9d 100755 --- a/pkgs/tools/filesystems/bees/bees-service-wrapper +++ b/pkgs/tools/filesystems/bees/bees-service-wrapper @@ -1,7 +1,3 @@ -#!@bash@/bin/bash -PATH=@bash@/bin:@coreutils@/bin:@utillinux@/bin:@btrfsProgs@/bin:$PATH -beesd_bin=@bees@/lib/bees/bees -# PLEASE KEEP NIX-ISMS ABOVE THIS LINE TO EASE UPSTREAM MERGE #!/usr/bin/env bash shopt -s extglob diff --git a/pkgs/tools/filesystems/bees/default.nix b/pkgs/tools/filesystems/bees/default.nix index 1dbb62ccb1b2..a014f449079c 100644 --- a/pkgs/tools/filesystems/bees/default.nix +++ b/pkgs/tools/filesystems/bees/default.nix @@ -1,82 +1,76 @@ { lib -, stdenv -, runCommand , fetchFromGitHub -, bash -, btrfs-progs -, coreutils -, python3Packages -, util-linux +, makeWrapper , nixosTests + +, stdenv +# Build inputs +, btrfs-progs +, util-linux +, python3Packages +# bees-service-wrapper +, bash +, coreutils }: -let +stdenv.mkDerivation rec { + pname = "bees"; + version = "0.10"; - bees = stdenv.mkDerivation rec { - pname = "bees"; - version = "0.10"; - - src = fetchFromGitHub { - owner = "Zygo"; - repo = "bees"; - rev = "v${version}"; - hash = "sha256-f3P3BEd8uO6QOZ1/2hBzdcuOSggYvHxW3g9pGftKO8g="; - }; - - buildInputs = [ - btrfs-progs # for btrfs/ioctl.h - util-linux # for uuid.h - ]; - - nativeBuildInputs = [ - python3Packages.markdown # documentation build - ]; - - preBuild = '' - git() { if [[ $1 = describe ]]; then echo ${version}; else command git "$@"; fi; } - export -f git - ''; - - postBuild = '' - unset -f git - ''; - - buildFlags = [ - "ETC_PREFIX=/var/run/bees/configs" - ]; - - makeFlags = [ - "SHELL=bash" - "PREFIX=$(out)" - "ETC_PREFIX=$(out)/etc" - "BEES_VERSION=${version}" - "SYSTEMD_SYSTEM_UNIT_DIR=$(out)/etc/systemd/system" - ]; - - meta = with lib; { - homepage = "https://github.com/Zygo/bees"; - description = "Block-oriented BTRFS deduplication service"; - longDescription = "Best-Effort Extent-Same: bees finds not just identical files, but also identical extents within files that differ"; - license = licenses.gpl3; - platforms = platforms.linux; - maintainers = with maintainers; [ chaduffy ]; - }; + src = fetchFromGitHub { + owner = "Zygo"; + repo = "bees"; + rev = "v${version}"; + hash = "sha256-f3P3BEd8uO6QOZ1/2hBzdcuOSggYvHxW3g9pGftKO8g="; }; -in + buildInputs = [ + btrfs-progs # for btrfs/ioctl.h + util-linux # for uuid.h + ]; + + nativeBuildInputs = [ + makeWrapper + python3Packages.markdown # documentation build + ]; + + preBuild = '' + git() { if [[ $1 = describe ]]; then echo ${version}; else command git "$@"; fi; } + export -f git + ''; + + postBuild = '' + unset -f git + ''; + + postInstall = '' + makeWrapper ${./bees-service-wrapper} "$out"/bin/bees-service-wrapper \ + --prefix PATH : ${lib.makeBinPath [ bash coreutils util-linux btrfs-progs ]} \ + --set beesd_bin "$out"/lib/bees/bees + ''; + + buildFlags = [ + "ETC_PREFIX=/var/run/bees/configs" + ]; + + makeFlags = [ + "SHELL=bash" + "PREFIX=$(out)" + "ETC_PREFIX=$(out)/etc" + "BEES_VERSION=${version}" + "SYSTEMD_SYSTEM_UNIT_DIR=$(out)/etc/systemd/system" + ]; -(runCommand "bees-service" - { - inherit bash bees coreutils; - utillinux = util-linux; # needs to be a valid shell variable name - btrfsProgs = btrfs-progs; # needs to be a valid shell variable name - } '' - mkdir -p -- "$out/bin" - substituteAll ${./bees-service-wrapper} "$out"/bin/bees-service-wrapper - chmod +x "$out"/bin/bees-service-wrapper - ln -s ${bees}/bin/beesd "$out"/bin/beesd -'').overrideAttrs { passthru.tests = { smoke-test = nixosTests.bees; }; + + meta = with lib; { + homepage = "https://github.com/Zygo/bees"; + description = "Block-oriented BTRFS deduplication service"; + longDescription = "Best-Effort Extent-Same: bees finds not just identical files, but also identical extents within files that differ"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ chaduffy ]; + }; }