Unverified Commit f53c279a authored by Mario Rodas's avatar Mario Rodas Committed by GitHub
Browse files

Merge pull request #196680 from NickCao/stratisd

stratisd: 3.2.2 -> 3.3.0

Closes #196658
parents 29571c9c 36948f3c
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -6,13 +6,13 @@

python3Packages.buildPythonApplication rec {
  pname = "stratis-cli";
  version = "3.2.0";
  version = "3.3.0";

  src = fetchFromGitHub {
    owner = "stratis-storage";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-JQXTzvm4l/pl2T4djZ3HEdDQJdFE+I9doe8Iv5q34kw=";
    rev = "refs/tags/v${version}";
    hash = "sha256-tS9kjXE7wn5j13PO8c3C98MpFbgmR4le/PNKoXKPKQg=";
  };

  propagatedBuildInputs = with python3Packages; [
+8 −11
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
, rustPlatform
, pkg-config
, asciidoc
, ncurses
, dbus
, cryptsetup
, util-linux
@@ -23,25 +24,20 @@

stdenv.mkDerivation rec {
  pname = "stratisd";
  version = "3.2.2";
  version = "3.3.0";

  src = fetchFromGitHub {
    owner = "stratis-storage";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-dNbbKGRLSYVnPdKfxlLIwXNEf7P6EvGbOp8sfpaw38g=";
    hash = "sha256-6CCSs359gPwUMQ2SFpxaWHXCjqqgIbvCaPL2zLuYRKg=";
  };

  cargoDeps = rustPlatform.fetchCargoTarball {
    inherit src;
    hash = "sha256-tJT0GKLpZtiQ/AZACkNeC3zgso54k/L03dFI0m1Jbls=";
    hash = "sha256-9nE/SFGv1tYyGDdemCahxHlRnLms3eK0r4XQMhQBjSQ=";
  };

  patches = [
    # Allow overriding BINARIES_PATHS with environment variable at compile time
    ./paths.patch
  ];

  postPatch = ''
    substituteInPlace udev/61-stratisd.rules \
      --replace stratis-base32-decode "$out/lib/udev/stratis-base32-decode" \
@@ -61,6 +57,7 @@ stdenv.mkDerivation rec {
    rust.rustc
    pkg-config
    asciidoc
    ncurses # tput
  ];

  buildInputs = [
@@ -70,7 +67,7 @@ stdenv.mkDerivation rec {
    udev
  ];

  BINARIES_PATHS = lib.makeBinPath ([
  EXECUTABLES_PATHS = lib.makeBinPath ([
    xfsprogs
    thin-provisioning-tools
    udev
@@ -84,8 +81,8 @@ stdenv.mkDerivation rec {
    coreutils
  ]);

  makeFlags = [ "PREFIX=${placeholder "out"}" ];
  buildFlags = [ "release" "release-min" "docs/stratisd.8" ];
  makeFlags = [ "PREFIX=${placeholder "out"}" "INSTALL=install" ];
  buildFlags = [ "build" "build-min" "docs/stratisd.8" ];

  doCheck = true;
  checkTarget = "test";
+0 −42
Original line number Diff line number Diff line
diff --git a/src/engine/strat_engine/cmd.rs b/src/engine/strat_engine/cmd.rs
index daaff70f..ed528f7f 100644
--- a/src/engine/strat_engine/cmd.rs
+++ b/src/engine/strat_engine/cmd.rs
@@ -39,8 +39,6 @@ use crate::{
 // The maximum allowable size of the thinpool metadata device
 const MAX_META_SIZE: MetaBlocks = MetaBlocks(255 * ((1 << 14) - 64));
 
-const BINARIES_PATHS: [&str; 4] = ["/usr/sbin", "/sbin", "/usr/bin", "/bin"];
-
 /// Find the binary with the given name by looking in likely locations.
 /// Return None if no binary was found.
 /// Search an explicit list of directories rather than the user's PATH
@@ -49,7 +47,7 @@ const BINARIES_PATHS: [&str; 4] = ["/usr/sbin", "/sbin", "/usr/bin", "/bin"];
 fn find_binary(name: &str) -> Option<PathBuf> {
     BINARIES_PATHS
         .iter()
-        .map(|pre| [pre, name].iter().collect::<PathBuf>())
+        .map(|pre| [pre, &name.into()].iter().collect::<PathBuf>())
         .find(|path| path.exists())
 }
 
@@ -147,6 +145,10 @@ lazy_static! {
         .and_then(|mut hm| hm
             .remove(CLEVIS)
             .and_then(|c| hm.remove(JOSE).map(|j| (c, j))));
+    static ref BINARIES_PATHS: Vec<PathBuf> = match std::option_env!("BINARIES_PATHS") {
+        Some(paths) => std::env::split_paths(paths).collect(),
+        None => ["/usr/sbin", "/sbin", "/usr/bin", "/bin"].iter().map(|p| p.into()).collect(),
+    };
 }
 
 /// Verify that all binaries that the engine might invoke are available at some
@@ -160,7 +162,7 @@ pub fn verify_binaries() -> StratisResult<()> {
             name,
             BINARIES_PATHS
                 .iter()
-                .map(|p| format!("\"{}\"", p))
+                .map(|p| format!("\"{}\"", p.display()))
                 .collect::<Vec<_>>()
                 .join(", "),
         ))),