Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions distros/humble/overrides.nix
Original file line number Diff line number Diff line change
Expand Up @@ -310,4 +310,55 @@ in with lib; {
})
];
});

zenoh-cpp-vendor = (lib.patchAmentVendorGit rosSuper.zenoh-cpp-vendor {}).overrideAttrs(finalAttrs: {
nativeBuildInputs ? [], postPatch ? "", passthru ? {}, ...
}: let
outputHashes = {
"zenoh-1.5.1" = "sha256-EeigSU9l7LCnSkm4/jP0WcdO3Hw9m91zUh8jzVXYhKw=";
};
zenoh-c-source = finalAttrs.passthru.amentVendorSrcs.zenoh_c_vendor;
in {
postPatch = postPatch + ''
ln -s ${zenoh-c-source}/Cargo.lock Cargo.lock
'';
nativeBuildInputs = nativeBuildInputs ++ [
self.rustPlatform.cargoSetupHook
self.rustc
];
cargoDeps = self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/Cargo.lock";
inherit outputHashes;
};

# Patch the build.rs script to be able to build internal
# opaque-types crate without network access.
passthru = lib.recursiveUpdate passthru {
amentVendorSrcs.zenoh_c_vendor = let
src = passthru.amentVendorSrcs.zenoh_c_vendor;
in
self.applyPatches {
inherit src;
name = src.rev;
patches = [ ./zenoh-cpp-vendor/zenoh-c.patch ];
};
};

# Prepare vendored dependencies for internal opaque-types crate.
# Execute in subshell to not change variables set by the normal
# cargoSetupPostUnpackHook.
preBuild = ''
(
mkdir nix-zenoh-opaque-types
cd nix-zenoh-opaque-types
cargoDeps=${self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/build-resources/opaque-types/Cargo.lock";
inherit outputHashes;
}}
cargoSetupPostUnpackHook
)
# Export information for use by our patched build.rs script.
export NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG=$PWD/nix-zenoh-opaque-types/.cargo/config.toml
'';
});
}
12 changes: 12 additions & 0 deletions distros/humble/zenoh-cpp-vendor/vendored-source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"zenoh_c_vendor": {
"url": "https://github.com/eclipse-zenoh/zenoh-c.git",
"rev": "8f9ce70e4c4b55d150632730fd4c48abffbde765",
"hash": "sha256-kbDIatj4GFhUyDo9yCc6FzPYszHE+Vd79w4r452p77Y="
},
"zenoh_cpp_vendor": {
"url": "https://github.com/eclipse-zenoh/zenoh-cpp",
"rev": "05533d20db70ffc1d53a0e07f39caa999e82febd",
"hash": "sha256-lEicWShyKo5NSFyDeMqItZIweY3syXKF629x7woSQ0o="
}
}
25 changes: 25 additions & 0 deletions distros/humble/zenoh-cpp-vendor/zenoh-c.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
diff --git a/buildrs/opaque_types_generator.rs b/buildrs/opaque_types_generator.rs
index c1d0bdd3..2d190518 100644
--- a/buildrs/opaque_types_generator.rs
+++ b/buildrs/opaque_types_generator.rs
@@ -14,7 +14,10 @@ pub fn generate_opaque_types() {
let data_in = std::fs::read_to_string(path_in).unwrap();

// Check for cargo-level errors (dependency resolution, manifest parsing, etc.)
- if data_in.contains("error: failed to") || data_in.contains("Caused by:") {
+ if data_in.contains("error: failed to")
+ || data_in.contains("error: no matching package named")
+ || data_in.contains("Caused by:")
+ {
panic!(
"Failed to generate opaque types due to cargo error:\n\nCommand executed:\n\n{command}\n\nCargo output:\n\n{data_in}"
);
@@ -127,6 +130,8 @@ fn produce_opaque_types_data() -> (String, PathBuf) {
.arg("build")
.args(feature_args)
.args(linker_args)
+ .arg("--config")
+ .arg(std::env::var("NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG").unwrap())
.arg("--target")
.arg(target)
.arg("--manifest-path")
51 changes: 50 additions & 1 deletion distros/jazzy/overrides.nix
Original file line number Diff line number Diff line change
Expand Up @@ -275,5 +275,54 @@ in {
];
});

zenoh-cpp-vendor = lib.patchAmentVendorGit rosSuper.zenoh-cpp-vendor { };
zenoh-cpp-vendor = (lib.patchAmentVendorGit rosSuper.zenoh-cpp-vendor {}).overrideAttrs(finalAttrs: {
nativeBuildInputs ? [], postPatch ? "", passthru ? {}, ...
}: let
outputHashes = {
"zenoh-1.5.1" = "sha256-EeigSU9l7LCnSkm4/jP0WcdO3Hw9m91zUh8jzVXYhKw=";
};
zenoh-c-source = finalAttrs.passthru.amentVendorSrcs.zenoh_c_vendor;
in {
postPatch = postPatch + ''
ln -s ${zenoh-c-source}/Cargo.lock Cargo.lock
'';
nativeBuildInputs = nativeBuildInputs ++ [
self.rustPlatform.cargoSetupHook
self.rustc
];
cargoDeps = self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/Cargo.lock";
inherit outputHashes;
};

# Patch the build.rs script to be able to build internal
# opaque-types crate without network access.
passthru = lib.recursiveUpdate passthru {
amentVendorSrcs.zenoh_c_vendor = let
src = passthru.amentVendorSrcs.zenoh_c_vendor;
in
self.applyPatches {
inherit src;
name = src.rev;
patches = [ ./zenoh-cpp-vendor/zenoh-c.patch ];
};
};

# Prepare vendored dependencies for internal opaque-types crate.
# Execute in subshell to not change variables set by the normal
# cargoSetupPostUnpackHook.
preBuild = ''
(
mkdir nix-zenoh-opaque-types
cd nix-zenoh-opaque-types
cargoDeps=${self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/build-resources/opaque-types/Cargo.lock";
inherit outputHashes;
}}
cargoSetupPostUnpackHook
)
# Export information for use by our patched build.rs script.
export NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG=$PWD/nix-zenoh-opaque-types/.cargo/config.toml
'';
});
}
25 changes: 25 additions & 0 deletions distros/jazzy/zenoh-cpp-vendor/zenoh-c.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
diff --git a/buildrs/opaque_types_generator.rs b/buildrs/opaque_types_generator.rs
index c1d0bdd3..2d190518 100644
--- a/buildrs/opaque_types_generator.rs
+++ b/buildrs/opaque_types_generator.rs
@@ -14,7 +14,10 @@ pub fn generate_opaque_types() {
let data_in = std::fs::read_to_string(path_in).unwrap();

// Check for cargo-level errors (dependency resolution, manifest parsing, etc.)
- if data_in.contains("error: failed to") || data_in.contains("Caused by:") {
+ if data_in.contains("error: failed to")
+ || data_in.contains("error: no matching package named")
+ || data_in.contains("Caused by:")
+ {
panic!(
"Failed to generate opaque types due to cargo error:\n\nCommand executed:\n\n{command}\n\nCargo output:\n\n{data_in}"
);
@@ -127,6 +130,8 @@ fn produce_opaque_types_data() -> (String, PathBuf) {
.arg("build")
.args(feature_args)
.args(linker_args)
+ .arg("--config")
+ .arg(std::env::var("NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG").unwrap())
.arg("--target")
.arg(target)
.arg("--manifest-path")
51 changes: 51 additions & 0 deletions distros/kilted/overrides.nix
Original file line number Diff line number Diff line change
Expand Up @@ -233,4 +233,55 @@ in {
})
];
});

zenoh-cpp-vendor = (lib.patchAmentVendorGit rosSuper.zenoh-cpp-vendor {}).overrideAttrs(finalAttrs: {
nativeBuildInputs ? [], postPatch ? "", passthru ? {}, ...
}: let
outputHashes = {
"zenoh-1.5.1" = "sha256-EeigSU9l7LCnSkm4/jP0WcdO3Hw9m91zUh8jzVXYhKw=";
};
zenoh-c-source = finalAttrs.passthru.amentVendorSrcs.zenoh_c_vendor;
in {
postPatch = postPatch + ''
ln -s ${zenoh-c-source}/Cargo.lock Cargo.lock
'';
nativeBuildInputs = nativeBuildInputs ++ [
self.rustPlatform.cargoSetupHook
self.rustc
];
cargoDeps = self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/Cargo.lock";
inherit outputHashes;
};

# Patch the build.rs script to be able to build internal
# opaque-types crate without network access.
passthru = lib.recursiveUpdate passthru {
amentVendorSrcs.zenoh_c_vendor = let
src = passthru.amentVendorSrcs.zenoh_c_vendor;
in
self.applyPatches {
inherit src;
name = src.rev;
patches = [ ./zenoh-cpp-vendor/zenoh-c.patch ];
};
};

# Prepare vendored dependencies for internal opaque-types crate.
# Execute in subshell to not change variables set by the normal
# cargoSetupPostUnpackHook.
preBuild = ''
(
mkdir nix-zenoh-opaque-types
cd nix-zenoh-opaque-types
cargoDeps=${self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/build-resources/opaque-types/Cargo.lock";
inherit outputHashes;
}}
cargoSetupPostUnpackHook
)
# Export information for use by our patched build.rs script.
export NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG=$PWD/nix-zenoh-opaque-types/.cargo/config.toml
'';
});
}
12 changes: 12 additions & 0 deletions distros/kilted/zenoh-cpp-vendor/vendored-source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"zenoh_c_vendor": {
"url": "https://github.com/eclipse-zenoh/zenoh-c.git",
"rev": "8f9ce70e4c4b55d150632730fd4c48abffbde765",
"hash": "sha256-kbDIatj4GFhUyDo9yCc6FzPYszHE+Vd79w4r452p77Y="
},
"zenoh_cpp_vendor": {
"url": "https://github.com/eclipse-zenoh/zenoh-cpp",
"rev": "05533d20db70ffc1d53a0e07f39caa999e82febd",
"hash": "sha256-lEicWShyKo5NSFyDeMqItZIweY3syXKF629x7woSQ0o="
}
}
25 changes: 25 additions & 0 deletions distros/kilted/zenoh-cpp-vendor/zenoh-c.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
diff --git a/buildrs/opaque_types_generator.rs b/buildrs/opaque_types_generator.rs
index c1d0bdd3..2d190518 100644
--- a/buildrs/opaque_types_generator.rs
+++ b/buildrs/opaque_types_generator.rs
@@ -14,7 +14,10 @@ pub fn generate_opaque_types() {
let data_in = std::fs::read_to_string(path_in).unwrap();

// Check for cargo-level errors (dependency resolution, manifest parsing, etc.)
- if data_in.contains("error: failed to") || data_in.contains("Caused by:") {
+ if data_in.contains("error: failed to")
+ || data_in.contains("error: no matching package named")
+ || data_in.contains("Caused by:")
+ {
panic!(
"Failed to generate opaque types due to cargo error:\n\nCommand executed:\n\n{command}\n\nCargo output:\n\n{data_in}"
);
@@ -127,6 +130,8 @@ fn produce_opaque_types_data() -> (String, PathBuf) {
.arg("build")
.args(feature_args)
.args(linker_args)
+ .arg("--config")
+ .arg(std::env::var("NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG").unwrap())
.arg("--target")
.arg(target)
.arg("--manifest-path")
51 changes: 51 additions & 0 deletions distros/rolling/overrides.nix
Original file line number Diff line number Diff line change
Expand Up @@ -233,4 +233,55 @@ in {
})
];
});

zenoh-cpp-vendor = (lib.patchAmentVendorGit rosSuper.zenoh-cpp-vendor {}).overrideAttrs(finalAttrs: {
nativeBuildInputs ? [], postPatch ? "", passthru ? {}, ...
}: let
outputHashes = {
"zenoh-1.5.1" = "sha256-EeigSU9l7LCnSkm4/jP0WcdO3Hw9m91zUh8jzVXYhKw=";
};
zenoh-c-source = finalAttrs.passthru.amentVendorSrcs.zenoh_c_vendor;
in {
postPatch = postPatch + ''
ln -s ${zenoh-c-source}/Cargo.lock Cargo.lock
'';
nativeBuildInputs = nativeBuildInputs ++ [
self.rustPlatform.cargoSetupHook
self.rustc
];
cargoDeps = self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/Cargo.lock";
inherit outputHashes;
};

# Patch the build.rs script to be able to build internal
# opaque-types crate without network access.
passthru = lib.recursiveUpdate passthru {
amentVendorSrcs.zenoh_c_vendor = let
src = passthru.amentVendorSrcs.zenoh_c_vendor;
in
self.applyPatches {
inherit src;
name = src.rev;
patches = [ ./zenoh-cpp-vendor/zenoh-c.patch ];
};
};

# Prepare vendored dependencies for internal opaque-types crate.
# Execute in subshell to not change variables set by the normal
# cargoSetupPostUnpackHook.
preBuild = ''
(
mkdir nix-zenoh-opaque-types
cd nix-zenoh-opaque-types
cargoDeps=${self.rustPlatform.importCargoLock {
lockFile = "${zenoh-c-source}/build-resources/opaque-types/Cargo.lock";
inherit outputHashes;
}}
cargoSetupPostUnpackHook
)
# Export information for use by our patched build.rs script.
export NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG=$PWD/nix-zenoh-opaque-types/.cargo/config.toml
'';
});
}
12 changes: 12 additions & 0 deletions distros/rolling/zenoh-cpp-vendor/vendored-source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"zenoh_c_vendor": {
"url": "https://github.com/eclipse-zenoh/zenoh-c.git",
"rev": "8f9ce70e4c4b55d150632730fd4c48abffbde765",
"hash": "sha256-kbDIatj4GFhUyDo9yCc6FzPYszHE+Vd79w4r452p77Y="
},
"zenoh_cpp_vendor": {
"url": "https://github.com/eclipse-zenoh/zenoh-cpp",
"rev": "05533d20db70ffc1d53a0e07f39caa999e82febd",
"hash": "sha256-lEicWShyKo5NSFyDeMqItZIweY3syXKF629x7woSQ0o="
}
}
25 changes: 25 additions & 0 deletions distros/rolling/zenoh-cpp-vendor/zenoh-c.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
diff --git a/buildrs/opaque_types_generator.rs b/buildrs/opaque_types_generator.rs
index c1d0bdd3..2d190518 100644
--- a/buildrs/opaque_types_generator.rs
+++ b/buildrs/opaque_types_generator.rs
@@ -14,7 +14,10 @@ pub fn generate_opaque_types() {
let data_in = std::fs::read_to_string(path_in).unwrap();

// Check for cargo-level errors (dependency resolution, manifest parsing, etc.)
- if data_in.contains("error: failed to") || data_in.contains("Caused by:") {
+ if data_in.contains("error: failed to")
+ || data_in.contains("error: no matching package named")
+ || data_in.contains("Caused by:")
+ {
panic!(
"Failed to generate opaque types due to cargo error:\n\nCommand executed:\n\n{command}\n\nCargo output:\n\n{data_in}"
);
@@ -127,6 +130,8 @@ fn produce_opaque_types_data() -> (String, PathBuf) {
.arg("build")
.args(feature_args)
.args(linker_args)
+ .arg("--config")
+ .arg(std::env::var("NIX_ZENOH_OPAQUE_TYPES_CARGO_CONFIG").unwrap())
.arg("--target")
.arg(target)
.arg("--manifest-path")
Loading