I’m currently trying to package the rust application “Appflowy-Cloud” (GitHub - AppFlowy-IO/AppFlowy-Cloud: AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations. Built with Flutter and Rust.)
It includes some git dependencies from another repository in the Cargo.toml via a crates.io-patch like this:
[dependencies]
collab = { workspace = true }
collab-document = { workspace = true }
collab-entity = { workspace = true }
collab-folder = { workspace = true }
[...]
[workspace.dependencies]
collab = { version = "0.2.0" }
collab-entity = { version = "0.2.0" }
collab-folder = { version = "0.2.0" }
collab-document = { version = "0.2.0" }
[...]
[patch.crates-io]
# It's diffcult to resovle different version with the same crate used in AppFlowy Frontend and the Client-API crate.
# So using patch to workaround this issue.
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "870cd70" }
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "870cd70" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "870cd70" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "870cd70" }
This is my derivation:
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
protobuf,
openssl,
sqlite,
zstd,
}:
rustPlatform.buildRustPackage rec {
pname = "appflowy-cloud";
version = "0.5.3";
src = fetchFromGitHub {
owner = "AppFlowy-IO";
repo = "AppFlowy-Cloud";
rev = version;
hash = "sha256-bFonlXrd7MFSYEtGsDoO307KSDntiB2vQcdKC68hvcc=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"collab-0.2.0" = "sha256-3Y2UrAga7wiV5RF+Lj0PkWA6gsa2h/PkRVUnjbrepqc=";
};
};
nativeBuildInputs = [
pkg-config
protobuf
];
buildInputs = [
openssl
sqlite
zstd
];
}
When I try to build the derivation, i get the following error:
Caused by:
Unable to update https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=870cd70#870cd70e
Caused by:
failed to update replaced source https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=870cd70#870cd70e
Caused by:
failed to parse manifest at `/build/cargo-vendor-dir/collab-document-0.2.0/Cargo.toml`
Caused by:
error inheriting `collab` from workspace root manifest's `workspace.dependencies.collab`
Caused by:
failed to find a workspace root
Apart from this similiar issue on nixpkgs, which is unfortunateley still not fixed, I haven’t found anything related to nix about this.
I’d appreciate any idea on how to fix this