aboutsummaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rw-r--r--misc/clangbuildanalyzer.nix3
-rw-r--r--misc/launchd/org.nixos.nix-daemon.plist.in5
-rw-r--r--misc/pre-commit.nix99
3 files changed, 102 insertions, 5 deletions
diff --git a/misc/clangbuildanalyzer.nix b/misc/clangbuildanalyzer.nix
index cee8a0d77..d73fa8bbb 100644
--- a/misc/clangbuildanalyzer.nix
+++ b/misc/clangbuildanalyzer.nix
@@ -25,6 +25,9 @@ stdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [ lf- ];
license = lib.licenses.unlicense;
platforms = lib.platforms.unix;
+ # `long long int` != `size_t`
+ # There's no convenient lib.platforms.32bit or anything, but it's easy enough to do ourselves.
+ badPlatforms = lib.filter (plat: (lib.systems.elaborate plat).is32bit) lib.platforms.all;
mainProgram = "ClangBuildAnalyzer";
};
})
diff --git a/misc/launchd/org.nixos.nix-daemon.plist.in b/misc/launchd/org.nixos.nix-daemon.plist.in
index e1470cf99..664608305 100644
--- a/misc/launchd/org.nixos.nix-daemon.plist.in
+++ b/misc/launchd/org.nixos.nix-daemon.plist.in
@@ -2,11 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
- <key>EnvironmentVariables</key>
- <dict>
- <key>OBJC_DISABLE_INITIALIZE_FORK_SAFETY</key>
- <string>YES</string>
- </dict>
<key>Label</key>
<string>org.nixos.nix-daemon</string>
<key>KeepAlive</key>
diff --git a/misc/pre-commit.nix b/misc/pre-commit.nix
new file mode 100644
index 000000000..b287f3cec
--- /dev/null
+++ b/misc/pre-commit.nix
@@ -0,0 +1,99 @@
+{
+ /**
+ Path to Lix's source, normally the flake's "self" argument
+ */
+ self ? pkgs.lib.cleanSource ./.,
+ /**
+ Already instantiated Nixpkgs
+ */
+ pkgs,
+ /**
+ pre-commit-hooks source path, normally from the flake input
+ */
+ pre-commit-hooks,
+}:
+let
+ inherit (pkgs) lib;
+ # Import pre-commit bypassing the flake because flakes don't let
+ # you have overlays. Also their implementation forces an
+ # unnecessary reimport of nixpkgs for our use cases.
+ tools = import (pre-commit-hooks + "/nix/call-tools.nix") pkgs;
+ pre-commit-run = pkgs.callPackage (pre-commit-hooks + "/nix/run.nix") {
+ inherit tools;
+ isFlakes = true;
+ # unused!
+ gitignore-nix-src = builtins.throw "gitignore-nix-src is unused";
+ };
+in
+pre-commit-run {
+ src = self;
+ hooks = {
+ no-commit-to-branch = {
+ enable = true;
+ settings.branch = [ "main" ];
+ };
+ check-case-conflicts.enable = true;
+ check-executables-have-shebangs = {
+ enable = true;
+ stages = [ "commit" ];
+ };
+ check-shebang-scripts-are-executable = {
+ enable = true;
+ stages = [ "commit" ];
+ };
+ check-symlinks = {
+ enable = true;
+ excludes = [ "^tests/functional/lang/symlink-resolution/broken$" ];
+ };
+ check-merge-conflicts.enable = true;
+ end-of-file-fixer = {
+ enable = true;
+ excludes = [
+ "\\.drv$"
+ "^tests/functional/lang/"
+ ];
+ };
+ mixed-line-endings = {
+ enable = true;
+ excludes = [ "^tests/functional/lang/" ];
+ };
+ release-notes = {
+ enable = true;
+ package = pkgs.build-release-notes;
+ files = "^doc/manual/rl-next(-dev)?";
+ pass_filenames = false;
+ entry = ''
+ ${lib.getExe pkgs.build-release-notes} doc/manual/rl-next doc/manual/rl-next-dev
+ '';
+ };
+ check-headers = {
+ enable = true;
+ package = pkgs.check-headers;
+ files = "^src/";
+ types = [
+ "c++"
+ "file"
+ "header"
+ ];
+ # generated files; these will never actually be seen by this
+ # check, and are left here as documentation
+ excludes = [
+ "(parser|lexer)-tab\\.hh$"
+ "\\.gen\\.hh$"
+ ];
+ entry = lib.getExe pkgs.check-headers;
+ };
+ # TODO: Once the test suite is nicer, clean up and start
+ # enforcing trailing whitespace on tests that don't explicitly
+ # check for it.
+ trim-trailing-whitespace = {
+ enable = true;
+ stages = [ "commit" ];
+ excludes = [ "^tests/functional/lang/" ];
+ };
+ treefmt = {
+ enable = true;
+ settings.formatters = [ pkgs.nixfmt ];
+ };
+ };
+}