Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 rustPlatform,
4 fetchFromGitHub,
5 pkg-config,
6 installShellFiles,
7 dbus,
8 stdenv,
9}:
10
11rustPlatform.buildRustPackage rec {
12 pname = "veryl";
13 version = "0.16.2";
14
15 src = fetchFromGitHub {
16 owner = "veryl-lang";
17 repo = "veryl";
18 rev = "v${version}";
19 hash = "sha256-YMJUxeCc9b7EObkQHTkP34JCYVFYhh6aUp4fLBQINP0=";
20 fetchSubmodules = true;
21 };
22
23 cargoHash = "sha256-2+3UlnIZIRJv+pZhFa8NU+S6/D5eHhuYZ095HUygPSk=";
24
25 nativeBuildInputs = [
26 pkg-config
27 installShellFiles
28 ];
29
30 buildInputs = [
31 dbus
32 ];
33
34 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
35 installShellCompletion --cmd veryl \
36 --bash <($out/bin/veryl metadata --completion bash) \
37 --fish <($out/bin/veryl metadata --completion fish) \
38 --zsh <($out/bin/veryl metadata --completion zsh)
39 '';
40
41 checkFlags = [
42 # takes over an hour
43 "--skip=tests::progress"
44 # tempfile::tempdir().unwrap() -> "No such file or directory"
45 "--skip=tests::bump_version"
46 "--skip=tests::bump_version_with_commit"
47 "--skip=tests::check"
48 "--skip=tests::load"
49 "--skip=tests::lockfile"
50 "--skip=tests::publish"
51 "--skip=tests::publish_with_commit"
52 # "Permission Denied", while making its cache dir?
53 "--skip=analyzer::test_25_dependency"
54 "--skip=analyzer::test_68_std"
55 "--skip=emitter::test_25_dependency"
56 "--skip=emitter::test_68_std"
57 "--skip=filelist::test"
58 "--skip=path::directory_directory"
59 "--skip=path::directory_target"
60 "--skip=path::source_directory"
61 "--skip=path::source_target"
62 "--skip=path::rootdir_directory_directory"
63 "--skip=path::rootdir_directory_target"
64 "--skip=path::rootdir_source_directory"
65 "--skip=path::rootdir_source_target"
66 "--skip=path::subdir_directory_directory"
67 "--skip=path::subdir_directory_target"
68 "--skip=path::subdir_source_directory"
69 "--skip=path::subdir_source_target"
70 ];
71
72 meta = {
73 description = "Modern Hardware Description Language";
74 homepage = "https://veryl-lang.org/";
75 changelog = "https://github.com/veryl-lang/veryl/releases/tag/v${version}";
76 license = with lib.licenses; [
77 mit
78 asl20
79 ];
80 maintainers = with lib.maintainers; [ pbsds ];
81 mainProgram = "veryl";
82 };
83}