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
19 changes: 5 additions & 14 deletions default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,11 @@
};
utoipa-swagger-ui = attrs: rec {
# utoipa-swagger-ui tries to redownload swagger-ui, which is blocked by Nix's sandboxing
# so we download it instead, and put it where it expects to be cached
preConfigure =
let
swaggerUi = pkgs.fetchurl {
url = "https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.3.zip";
hash = "sha256-zrb8feuuDzt/g6y7Tucfh+Y2BWZov0soyNPR5LBqKx4=";
};
in ''
mkdir -p target/build/utoipa-swagger-ui.out
ln -s "${swaggerUi}" target/build/utoipa-swagger-ui.out/swagger-ui.zip
'';
# Build script only supports fetching from HTTP, not file URLs
# Last path element decides the cache key, which we rely on above
SWAGGER_UI_DOWNLOAD_URL = "file:///invalid-path/swagger-ui.zip";
# so we download it instead, and tell it to use that

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nightkr this happens to solve my problem as well. But i am currently facing a situation where nix throws this error when trying to copy the zip file to the target build folder.

{ code: 13, kind: PermissionDenied, message: "Permission denied" }

Is this something you have faced before? i'd appreciate your thoughts on this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As in the Nix daemon itself throws the error, or build.rs does? Can't say it's something I recognize immediately, but if I were you I'd try to patch utoipa-swagger-ui's build.rs to dump out the environment (what absolute path is it writing to, who's it running as, how much of the path exists, what're the permissions like, etc etc etc).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes the build.rs does throws this during the nix build. and yes i can identify the various environment related details. Except i'm new to nix and i don't know if i actually can modify the permissions so the build passes. but i'll research more on it. thanks for your prompt response.

SWAGGER_UI_DOWNLOAD_URL = "file://${pkgs.fetchurl {
url = "https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.3.zip";
hash = "sha256-zrb8feuuDzt/g6y7Tucfh+Y2BWZov0soyNPR5LBqKx4=";
}}";
Comment on lines +27 to +31

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:chefkiss:

};
};
}
Expand Down
18 changes: 9 additions & 9 deletions nix/sources.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.