diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/ni')
20 files changed, 950 insertions, 30 deletions
diff --git a/nixpkgs/pkgs/by-name/ni/nickel/package.nix b/nixpkgs/pkgs/by-name/ni/nickel/package.nix index e509f735995d..3d82fc275c85 100644 --- a/nixpkgs/pkgs/by-name/ni/nickel/package.nix +++ b/nixpkgs/pkgs/by-name/ni/nickel/package.nix @@ -1,6 +1,7 @@ { lib , rustPlatform , fetchFromGitHub +, stdenv , python3 , nix-update-script }: @@ -36,6 +37,11 @@ rustPlatform.buildRustPackage rec { cargoBuildFlags = [ "-p nickel-lang-cli" "-p nickel-lang-lsp" ]; + env = lib.optionalAttrs stdenv.cc.isClang { + # Work around https://github.com/NixOS/nixpkgs/issues/166205. + NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; + }; + nativeBuildInputs = [ python3 ]; diff --git a/nixpkgs/pkgs/by-name/ni/nilaway/package.nix b/nixpkgs/pkgs/by-name/ni/nilaway/package.nix new file mode 100644 index 000000000000..b0420867ead5 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nilaway/package.nix @@ -0,0 +1,28 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "nilaway"; + version = "unstable-2023-11-17"; + + src = fetchFromGitHub { + owner = "uber-go"; + repo = "nilaway"; + rev = "a267567c6ffff900df0c3394d031ee70079ec8df"; + hash = "sha256-Ro1nSTEZcE9u4Ol6CSLBTiPrh72Ly9UcrXyvffzPfow="; + }; + + vendorHash = "sha256-kbVjkWW5D8jp5QFYGiyRuGFArRsQukJIR8xwaUUIUBs="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Static Analysis tool to detect potential Nil panics in Go code"; + homepage = "https://github.com/uber-go/nilaway"; + license = licenses.asl20; + maintainers = with maintainers; [ prit342 jk ]; + mainProgram = "nilaway"; + }; +} diff --git a/nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix b/nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix new file mode 100644 index 000000000000..70b36698a72b --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix @@ -0,0 +1,21 @@ +{ lib, buildNimPackage, fetchFromGitHub, openssl }: + +buildNimPackage (final: prev: { + pname = "atlas"; + version = "unstable-2023-09-22"; + src = fetchFromGitHub { + owner = "nim-lang"; + repo = "atlas"; + rev = "ab22f997c22a644924c1a9b920f8ce207da9b77f"; + hash = "sha256-TsZ8TriVuKEY9/mV6KR89eFOgYrgTqXmyv/vKu362GU="; + }; + buildInputs = [ openssl ]; + prePatch = '' + rm config.nims + ''; # never trust a .nims file + doCheck = false; # tests will clone repos + meta = final.src.meta // { + description = "Nim package cloner"; + license = [ lib.licenses.mit ]; + }; +}) diff --git a/nixpkgs/pkgs/by-name/ni/nim_builder/nim_builder.nim b/nixpkgs/pkgs/by-name/ni/nim_builder/nim_builder.nim new file mode 100644 index 000000000000..ec1d3ccb45b9 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nim_builder/nim_builder.nim @@ -0,0 +1,179 @@ +# SPDX-FileCopyrightText: 2021 Nixpkgs/NixOS contributors +## Custom Nim builder for Nixpkgs. + +import std/[os, osproc, parseutils, sequtils, streams, strutils] + +proc findNimbleFile(): string = + ## Copied from Nimble. + ## Copyright (c) 2015, Dominik Picheta + ## BSD3 + let dir = getCurrentDir() + result = "" + var hits = 0 + for kind, path in walkDir(dir): + if kind in {pcFile, pcLinkToFile}: + let ext = path.splitFile.ext + if ext == ".nimble": + result = path + inc hits + if hits >= 2: + quit("Only one .nimble file should be present in " & dir) + elif hits == 0: + quit("Could not find a file with a .nimble extension in " & dir) + +proc getEnvBool(key: string; default = false): bool = + ## Parse a boolean environmental variable. + let val = getEnv(key) + if val == "": default + else: parseBool(val) + +proc getNimbleFilePath(): string = + ## Get the Nimble file for the current package. + if existsEnv"nimbleFile": + getEnv"nimbleFile" + else: + findNimbleFile() + +proc getNimbleValue(filePath, key: string; default = ""): string = + ## Extract a string value from the Nimble file at ``filePath``. + var + fs = newFileStream(filePath, fmRead) + line: string + if fs.isNil: + quit("could not open " & filePath) + while fs.readline(line): + if line.startsWith(key): + var i = key.len + i.inc skipWhile(line, Whitespace, i) + if line[i] == '=': + inc i + i.inc skipWhile(line, Whitespace, i) + discard parseUntil(line, result, Newlines, i) + if result.len > 0 and result[0] == '"': + result = result.unescape + return + default + +proc getNimbleValues(filePath, key: string): seq[string] = + ## Extract a string sequence from the Nimble file at ``filePath``. + var gunk = getNimbleValue(filePath, key) + result = gunk.strip(chars = {'@', '[', ']'}).split(',') + if result == @[""]: reset result + apply(result) do (s: var string): + s = s.strip() + if s.len > 0 and s[0] == '"': + s = s.unescape() + +proc getOutputDir(name: string): string = + ## Return the output directory for output `name`. + ## If `name` is not a valid output then the first output + ## is returned as a default. + let outputs = splitWhitespace getEnv("outputs") + doAssert(outputs.len > 0) + if outputs.contains name: + result = getEnv(name) + if result == "": + result = getEnv("out") + if result == "": + result = getEnv(outputs[0], "/dev/null") + +proc configurePhase*() = + ## Generate "config.nims" which will be read by the Nim + ## compiler during later phases. + const configFilePath = "config.nims" + echo "generating ", configFilePath + let + nf = getNimbleFilePath() + mode = + if fileExists configFilePath: fmAppend + else: fmWrite + var cfg = newFileStream(configFilePath, mode) + proc switch(key, val: string) = + cfg.writeLine("switch(", key.escape, ",", val.escape, ")") + switch("backend", nf.getNimbleValue("backend", "c")) + switch("nimcache", getEnv("NIX_BUILD_TOP", ".") / "nimcache") + if getEnvBool("nimRelease", true): + switch("define", "release") + for def in getEnv("nimDefines").split: + if def != "": + switch("define", def) + for input in getEnv("NIX_NIM_BUILD_INPUTS").split: + if input != "": + for nimbleFile in walkFiles(input / "*.nimble"): + let inputSrc = normalizedPath( + input / nimbleFile.getNimbleValue("srcDir", ".")) + echo "found nimble input ", inputSrc + switch("path", inputSrc) + close(cfg) + +proc buildPhase*() = + ## Build the programs listed in the Nimble file and + ## optionally some documentation. + var cmds: seq[string] + proc before(idx: int) = + echo "build job ", idx, ": ", cmds[idx] + let + nf = getNimbleFilePath() + bins = nf.getNimbleValues("bin") + srcDir = nf.getNimbleValue("srcDir", ".") + binDir = getOutputDir("bin") / "bin" + if bins != @[]: + for bin in bins: + cmds.add("nim compile $# --parallelBuild:$# --outdir:$# $#" % + [getenv("nimFlags"), getenv("NIX_BUILD_CORES","1"), binDir, normalizedPath(srcDir / bin)]) + if getEnvBool"nimDoc": + echo "generating documentation" + let docDir = getOutputDir("doc") / "doc" + for path in walkFiles(srcDir / "*.nim"): + cmds.add("nim doc --outdir:$# $#" % [docDir, path]) + if cmds.len > 0: + let err = execProcesses( + cmds, n = 1, + beforeRunEvent = before) + if err != 0: quit("build phase failed", err) + +proc installPhase*() = + ## Install the Nim sources if ``nimCopySources`` is + ## set in the environment. + if getEnvBool"nimCopySources": + let + nf = getNimbleFilePath() + srcDir = nf.getNimbleValue("srcDir", ".") + devDir = getOutputDir "dev" + echo "Install ", srcDir, " to ", devDir + copyDir(normalizedPath(srcDir), normalizedPath(devDir / srcDir)) + copyFile(nf, devDir / nf.extractFilename) + +proc checkPhase*() = + ## Build and run the tests in ``tests``. + var cmds: seq[string] + proc before(idx: int) = + echo "check job ", idx, ": ", cmds[idx] + for path in walkPattern("tests/t*.nim"): + cmds.add("nim r $# $#" % [getenv("nimFlags"), path]) + let err = execProcesses( + cmds, n = 1, + beforeRunEvent = before) + if err != 0: quit("check phase failed", err) + +when isMainModule: + import std/parseopt + var phase: string + + for kind, key, val in getopt(): + case kind + of cmdLongOption: + case key.toLowerAscii + of "phase": + if phase != "": quit("only a single phase may be specified") + phase = val + else: quit("unhandled argument " & key) + of cmdEnd: discard + else: quit("unhandled argument " & key) + + case phase + of "configure": configurePhase() + of "build": buildPhase() + of "install": installPhase() + of "check": checkPhase() + else: quit("unhandled phase " & phase) diff --git a/nixpkgs/pkgs/by-name/ni/nim_builder/package.nix b/nixpkgs/pkgs/by-name/ni/nim_builder/package.nix new file mode 100644 index 000000000000..34da4dfa61a0 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nim_builder/package.nix @@ -0,0 +1,19 @@ +{ lib, stdenv, nim }: + +stdenv.mkDerivation { + pname = "nim_builder"; + inherit (nim) version; + dontUnpack = true; + nativeBuildInputs = [ nim ]; + buildPhase = '' + cp ${./nim_builder.nim} nim_builder.nim + nim c --nimcache:$TMPDIR nim_builder + ''; + installPhase = '' + install -Dt $out/bin nim_builder + ''; + meta = { + description = "Internal Nixpkgs utility for buildNimPackage."; + maintainers = [ lib.maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/by-name/ni/nim_lk/lock.json b/nixpkgs/pkgs/by-name/ni/nim_lk/lock.json index 38a4f8c8e3e8..90929f01a04b 100644 --- a/nixpkgs/pkgs/by-name/ni/nim_lk/lock.json +++ b/nixpkgs/pkgs/by-name/ni/nim_lk/lock.json @@ -1 +1,28 @@ -{"depends":[{"method":"fetchzip","packages":["npeg"],"path":"/nix/store/ffkxmjmigfs7zhhiiqm0iw2c34smyciy-source","ref":"1.2.1","rev":"26d62fdc40feb84c6533956dc11d5ee9ea9b6c09","sha256":"0xpzifjkfp49w76qmaylan8q181bs45anmp46l4bwr3lkrr7bpwh","srcDir":"src","url":"https://github.com/zevv/npeg/archive/26d62fdc40feb84c6533956dc11d5ee9ea9b6c09.tar.gz"},{"method":"fetchzip","packages":["preserves"],"path":"/nix/store/nrcpzf9hx70kry3gwhrdzcs3qicjncjh-source","ref":"20231021","rev":"edece399be70818208bf2263c30cb2bcf435bbff","sha256":"0xmw35wmw3a4lja9q4qvlvpxv3xk0hnkjg4fwfw6f3inh6zfiqki","srcDir":"src","url":"https://git.syndicate-lang.org/ehmry/preserves-nim/archive/edece399be70818208bf2263c30cb2bcf435bbff.tar.gz"}]} +{ + "depends": [ + { + "method": "fetchzip", + "packages": [ + "npeg" + ], + "path": "/nix/store/ffkxmjmigfs7zhhiiqm0iw2c34smyciy-source", + "ref": "1.2.1", + "rev": "26d62fdc40feb84c6533956dc11d5ee9ea9b6c09", + "sha256": "0xpzifjkfp49w76qmaylan8q181bs45anmp46l4bwr3lkrr7bpwh", + "srcDir": "src", + "url": "https://github.com/zevv/npeg/archive/26d62fdc40feb84c6533956dc11d5ee9ea9b6c09.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "preserves" + ], + "path": "/nix/store/nrcpzf9hx70kry3gwhrdzcs3qicjncjh-source", + "ref": "20231021", + "rev": "edece399be70818208bf2263c30cb2bcf435bbff", + "sha256": "0xmw35wmw3a4lja9q4qvlvpxv3xk0hnkjg4fwfw6f3inh6zfiqki", + "srcDir": "src", + "url": "https://git.syndicate-lang.org/ehmry/preserves-nim/archive/edece399be70818208bf2263c30cb2bcf435bbff.tar.gz" + } + ] +} diff --git a/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix b/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix index 833860b357fe..597a4d3c89df 100644 --- a/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix +++ b/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix @@ -1,9 +1,16 @@ -{ lib, buildPackages, nim2Packages, fetchFromSourcehut, openssl }: +{ lib +, buildNimPackage +, fetchFromSourcehut +, nim +, nix-prefetch +, nix-prefetch-git +, openssl +, makeWrapper +}: -nim2Packages.buildNimPackage (finalAttrs: { +buildNimPackage (finalAttrs: { pname = "nim_lk"; version = "20231031"; - nimBinOnly = true; src = fetchFromSourcehut { owner = "~ehmry"; @@ -13,8 +20,14 @@ nim2Packages.buildNimPackage (finalAttrs: { }; buildInputs = [ openssl ]; + nativeBuildInputs = [ makeWrapper ]; - nimFlags = finalAttrs.passthru.nimFlagsFromLockFile ./lock.json; + lockFile = ./lock.json; + + postFixup = '' + wrapProgram $out/bin/nim_lk \ + --suffix PATH : ${lib.makeBinPath [ nim nix-prefetch nix-prefetch-git ]} + ''; meta = finalAttrs.src.meta // { description = "Generate Nix specific lock files for Nim packages"; @@ -24,29 +37,4 @@ nim2Packages.buildNimPackage (finalAttrs: { platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ ehmry ]; }; - - passthru.nimFlagsFromLockFile = let - fetchDependency = let - methods = { - fetchzip = { url, sha256, ... }: - buildPackages.fetchzip { - name = "source"; - inherit url sha256; - }; - git = { fetchSubmodules, leaveDotGit, rev, sha256, url, ... }: - buildPackages.fetchgit { - inherit fetchSubmodules leaveDotGit rev sha256 url; - }; - }; - in attrs@{ method, ... }: methods.${method} attrs // attrs; - in lockFile: - with builtins; - lib.pipe lockFile [ - readFile - fromJSON - (getAttr "depends") - (map fetchDependency) - (map ({ outPath, srcDir, ... }: ''--path:"${outPath}/${srcDir}"'')) - ]; - }) diff --git a/nixpkgs/pkgs/by-name/ni/nimble/package.nix b/nixpkgs/pkgs/by-name/ni/nimble/package.nix new file mode 100644 index 000000000000..4e7457a88182 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nimble/package.nix @@ -0,0 +1,31 @@ +{ lib, buildNimPackage, fetchFromGitHub, nim, makeWrapper }: + +buildNimPackage (final: prev: { + pname = "nimble"; + version = "0.14.2"; + + requiredNimVersion = 1; + + src = fetchFromGitHub { + owner = "nim-lang"; + repo = "nimble"; + rev = "v${final.version}"; + hash = "sha256-8b5yKvEl7c7wA/8cpdaN2CSvawQJzuRce6mULj3z/mI="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + doCheck = false; # it works on their machine + + postInstall = '' + wrapProgram $out/bin/nimble \ + --suffix PATH : ${lib.makeBinPath [ nim ]} + ''; + + meta = { + description = "Package manager for the Nim programming language"; + homepage = "https://github.com/nim-lang/nimble"; + license = lib.licenses.bsd3; + mainProgram = "nimble"; + }; +}) diff --git a/nixpkgs/pkgs/by-name/ni/nimdow/lock.json b/nixpkgs/pkgs/by-name/ni/nimdow/lock.json new file mode 100644 index 000000000000..942e739e0863 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nimdow/lock.json @@ -0,0 +1,52 @@ +{ + "depends": [ + { + "method": "fetchzip", + "packages": [ + "nimtest" + ], + "path": "/nix/store/5nnqszvrqdmk7pkh5v8kq1i4q056jcss-source", + "ref": "v0.1.2", + "rev": "17bd3a0f794106428b8592c69832bf48c97b23e2", + "sha256": "15bv4vdg55zlbl9drwcp5lqfhfwdgzqlrz5pnfjg321r26rh2q3b", + "srcDir": "src", + "url": "https://github.com/avahe-kellenberger/nimtest/archive/17bd3a0f794106428b8592c69832bf48c97b23e2.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "parsetoml" + ], + "path": "/nix/store/nrgl7ks2x3svv6pkdxzr97d6jbd3zhlr-source", + "ref": "v0.7.1", + "rev": "6e5e16179fa2db60f2f37d8b1af4128aaa9c8aaf", + "sha256": "0lsgzbjlgd0h9859yn864y9h9h1v4f5jjk81yvfnlkc9zbwb5kfa", + "srcDir": "src", + "url": "https://github.com/NimParsers/parsetoml/archive/6e5e16179fa2db60f2f37d8b1af4128aaa9c8aaf.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "safeseq" + ], + "path": "/nix/store/k04c398bln6yffvajfk8hci47d703cr1-source", + "ref": "v1.0.0", + "rev": "ee71e961a66db64387e1437ca550d0c8218b099c", + "sha256": "01vlih133p3fgfnbiy1i3cq8kipgkpkal0z6jxy975yvz96gcb15", + "srcDir": "src", + "url": "https://github.com/avahe-kellenberger/safeseq/archive/ee71e961a66db64387e1437ca550d0c8218b099c.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "x11" + ], + "path": "/nix/store/8qaywzr8nzsiddjba77nhf75hzmxx0d9-source", + "ref": "1.2", + "rev": "29aca5e519ebf5d833f63a6a2769e62ec7bfb83a", + "sha256": "16npqgmi2qawjxaddj9ax15rfpdc7sqc37i2r5vg23lyr6znq4wc", + "srcDir": "", + "url": "https://github.com/nim-lang/x11/archive/29aca5e519ebf5d833f63a6a2769e62ec7bfb83a.tar.gz" + } + ] +} diff --git a/nixpkgs/pkgs/by-name/ni/nimdow/package.nix b/nixpkgs/pkgs/by-name/ni/nimdow/package.nix new file mode 100644 index 000000000000..a77fb05298b7 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nimdow/package.nix @@ -0,0 +1,40 @@ +{ lib, buildNimPackage, fetchFromGitHub, testers }: + +buildNimPackage (finalAttrs: { + pname = "nimdow"; + + version = "0.7.37"; + + requiredNimVersion = 1; + + src = fetchFromGitHub { + owner = "avahe-kellenberger"; + repo = finalAttrs.pname; + rev = "v${finalAttrs.version}"; + hash = "sha256-930wDS0UW65QzpUHHOuM25oi/OhFmG0Q7N05ftu7XlI="; + }; + + lockFile = ./lock.json; + + postInstall = '' + install -D config.default.toml $out/share/nimdow/config.default.toml + install -D nimdow.desktop $out/share/applications/nimdow.desktop + ''; + + postPatch = '' + substituteInPlace src/nimdowpkg/config/configloader.nim --replace "/usr/share/nimdow" "$out/share/nimdow" + ''; + + passthru.tests.version = testers.testVersion { + package = finalAttrs.finalPackage; + version = "v${finalAttrs.version}"; + }; + + meta = with lib; + finalAttrs.src.meta // { + description = "Nim based tiling window manager"; + license = [ licenses.gpl2 ]; + maintainers = [ maintainers.marcusramberg ]; + mainProgram = "nimdow"; + }; +}) diff --git a/nixpkgs/pkgs/by-name/ni/nimlsp/lock.json b/nixpkgs/pkgs/by-name/ni/nimlsp/lock.json new file mode 100644 index 000000000000..ae1aea4af6dc --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nimlsp/lock.json @@ -0,0 +1,40 @@ +{ + "depends": [ + { + "method": "fetchzip", + "packages": [ + "ast_pattern_matching" + ], + "path": "/nix/store/b4rlaqmh5cm1yk62w8ij05swgdc9n5xq-source", + "ref": "master", + "rev": "eb8b99d595517fd5d41ccc954edb896267f2db78", + "sha256": "13l1qracvcyykjkmgl6zla960yayj1ka6y983wxp6z8fpwb25wn0", + "srcDir": "src", + "url": "https://github.com/nim-lang/ast-pattern-matching/archive/eb8b99d595517fd5d41ccc954edb896267f2db78.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "asynctools" + ], + "path": "/nix/store/7hkns6lb477pnpyzkj2cq8q10shbshwn-source", + "ref": "master", + "rev": "a1a17d06713727d97810cad291e29dd7c672738f", + "sha256": "160h0k26f7xd5fbblc2l29d19ndgixb3aand3j5adrdbkkqhlgz0", + "srcDir": "", + "url": "https://github.com/cheatfate/asynctools/archive/a1a17d06713727d97810cad291e29dd7c672738f.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "jsonschema" + ], + "path": "/nix/store/f9yjcyrvkz9rk1871377hkzlv9rq1x3b-source", + "ref": "packedjson", + "rev": "40208614ea3758e05ea39ab090de258046f99cb3", + "sha256": "12rli1qsx3hsldbs08qphcajh3nbv7hbclsygjacmxxc8im1y5m0", + "srcDir": "src", + "url": "https://github.com/PMunch/jsonschema/archive/40208614ea3758e05ea39ab090de258046f99cb3.tar.gz" + } + ] +} diff --git a/nixpkgs/pkgs/by-name/ni/nimlsp/package.nix b/nixpkgs/pkgs/by-name/ni/nimlsp/package.nix new file mode 100644 index 000000000000..589e08290d58 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nimlsp/package.nix @@ -0,0 +1,46 @@ +{ lib, buildNimPackage, fetchFromGitHub, srcOnly, nim-unwrapped-1 }: + +buildNimPackage (finalAttrs: { + pname = "nimlsp"; + version = "0.4.4"; + + requiredNimVersion = 1; + + src = fetchFromGitHub { + owner = "PMunch"; + repo = "nimlsp"; + rev = "v${finalAttrs.version}"; + sha256 = "sha256-Z67iKlL+dnRbxdFt/n/fsUcb2wpZwzPpL/G29jfCaMY="; + }; + + lockFile = ./lock.json; + + buildInputs = + let + # Needs this specific version to build. + jsonSchemaSrc = fetchFromGitHub { + owner = "PMunch"; + repo = "jsonschema"; + rev = "7b41c03e3e1a487d5a8f6b940ca8e764dc2cbabf"; + sha256 = "1js64jqd854yjladxvnylij4rsz7212k31ks541pqrdzm6hpblbz"; + }; + in + [ jsonSchemaSrc ]; + + nimFlags = [ + "--threads:on" + "-d:explicitSourcePath=${srcOnly nim-unwrapped-1}" + "-d:tempDir=/tmp" + ]; + + nimDefines = [ "nimcore" "nimsuggest" "debugCommunication" "debugLogging" ]; + + doCheck = false; + + meta = { + description = "Language Server Protocol implementation for Nim"; + homepage = "https://github.com/PMunch/nimlsp"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.marsam ]; + }; +}) diff --git a/nixpkgs/pkgs/by-name/ni/nimmm/lock.json b/nixpkgs/pkgs/by-name/ni/nimmm/lock.json new file mode 100644 index 000000000000..d55a02fefc61 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nimmm/lock.json @@ -0,0 +1,40 @@ +{ + "depends": [ + { + "method": "fetchzip", + "packages": [ + "lscolors" + ], + "path": "/nix/store/h2rqjnvjg3xihh88f2hm72506vpklilz-source", + "ref": "v0.3.3", + "rev": "668b46c835944254a445b9cc6dfb887e38fa13f1", + "sha256": "0526hqh46lcfsvymb67ldsc8xbfn24vicn3b8wrqnh6mag8wynf4", + "srcDir": "src", + "url": "https://github.com/joachimschmidt557/nim-lscolors/archive/668b46c835944254a445b9cc6dfb887e38fa13f1.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "nimbox" + ], + "path": "/nix/store/dyv48md5gaz0x61fxi2zc69h05a3jvfq-source", + "ref": "master", + "rev": "6a56e76c01481176f16ae29b7d7c526bd83f229b", + "sha256": "15x1sdfxa1xcqnr68705jfnlv83lm0xnp2z9iz3pgc4bz5vwn4x1", + "srcDir": "", + "url": "https://github.com/dom96/nimbox/archive/6a56e76c01481176f16ae29b7d7c526bd83f229b.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "noise" + ], + "path": "/nix/store/cqn9s90ivzsx7mq5k8m19565247sdsg6-source", + "ref": "v0.1.8", + "rev": "3cb3250ddcdaa74809aad931c066e7ef6e4af36d", + "sha256": "0qmak5n5nrf8nb8szhlz8sf05gmbs0x648p4vcd7ca600kaxfgj0", + "srcDir": "", + "url": "https://github.com/jangko/nim-noise/archive/3cb3250ddcdaa74809aad931c066e7ef6e4af36d.tar.gz" + } + ] +} diff --git a/nixpkgs/pkgs/by-name/ni/nimmm/package.nix b/nixpkgs/pkgs/by-name/ni/nimmm/package.nix new file mode 100644 index 000000000000..e085ed218609 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nimmm/package.nix @@ -0,0 +1,25 @@ +{ lib, buildNimPackage, fetchFromGitHub, termbox, pcre }: + +buildNimPackage (finalAttrs: { + pname = "nimmm"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "joachimschmidt557"; + repo = "nimmm"; + rev = "v${finalAttrs.version}"; + sha256 = "168n61avphbxsxfq8qzcnlqx6wgvz5yrjvs14g25cg3k46hj4xqg"; + }; + + lockFile = ./lock.json; + + buildInputs = [ termbox pcre ]; + + meta = { + description = "Terminal file manager written in Nim"; + homepage = "https://github.com/joachimschmidt557/nimmm"; + license = lib.licenses.gpl3; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.joachimschmidt557 ]; + }; +}) diff --git a/nixpkgs/pkgs/by-name/ni/nitch/package.nix b/nixpkgs/pkgs/by-name/ni/nitch/package.nix new file mode 100644 index 000000000000..772f259ba6fc --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nitch/package.nix @@ -0,0 +1,32 @@ +{ lib, buildNimPackage, fetchFromGitHub, fetchpatch }: + +buildNimPackage { + pname = "nitch"; + version = "0.1.6"; + src = fetchFromGitHub { + owner = "ssleert"; + repo = "nitch"; + rev = "42ad6899931dd5e0cec7b021c2b7e383fcc891f3"; + hash = "sha256-QI7CbP0lvvjD+g29FR/YJjuZboZ+PoHynsNbpYC9SvE="; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/unxsh/nitch/commit/6831cf96144f58c4da298a0bc9b50d33056f6c08.patch"; + sha256 = "sha256-uZUzUBLHBsssNqDxZ0NuTRMN9/gBxIlIiGgQkqCqEFc="; + }) + (fetchpatch { + url = "https://github.com/ssleert/nitch/commit/ff10dea47dbc4d9736bd839b87869f53166cf395.patch"; + hash = "sha256-n7JtI1Td0xMqhuScnMvxTkbY2I+l+FcUTz7aytxFasE="; + }) + ]; + + meta = with lib; { + description = "Incredibly fast system fetch written in nim"; + homepage = "https://github.com/unxsh/nitch"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ michaelBelsanti ]; + mainProgram = "nitch"; + }; +} diff --git a/nixpkgs/pkgs/by-name/ni/nitter/lock.json b/nixpkgs/pkgs/by-name/ni/nitter/lock.json new file mode 100644 index 000000000000..5e059f869af0 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nitter/lock.json @@ -0,0 +1,194 @@ +{ + "depends": [ + { + "method": "fetchzip", + "packages": [ + "asynctools" + ], + "path": "/nix/store/ahig7j046p8mc01jgidvvvba0afccilr-source", + "rev": "pr_fix_compilation", + "sha256": "0lip4qzc49ffa9byx65n7pmsy020a589vhnly373xrfhk2zw9jmd", + "srcDir": "", + "url": "https://github.com/timotheecour/asynctools/archive/pr_fix_compilation.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "dotenv" + ], + "path": "/nix/store/9hxi0hvds11agbmpaha8zp1bgzf7vypv-source", + "ref": "2.0.1", + "rev": "48315332fe79ffce87c81b9d0bec992ba19b6966", + "sha256": "08y8xvpiqk75v0hxhgbhxfbxz7l95vavh1lv8kxkid8rb9p92zr4", + "srcDir": "src", + "url": "https://github.com/euantorano/dotenv.nim/archive/48315332fe79ffce87c81b9d0bec992ba19b6966.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "flatty" + ], + "path": "/nix/store/21380smf8kyxzc4zf0qjsjx0dp5lv5rj-source", + "rev": "e668085", + "sha256": "0886lk20rg1pq56jsz1jjd8vrdz46lgdaxvp97az06mcawhbabbz", + "srcDir": "src", + "url": "https://github.com/treeform/flatty/archive/e668085.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "httpbeast" + ], + "path": "/nix/store/hx85br48sjcridmda4l35cx7c9imxabg-source", + "ref": "v0.4.1", + "rev": "abc13d11c210b614960fe8760e581d44cfb2e3e9", + "sha256": "1x12ypfj341gjg3rh7zjq1wns8rngfyky6gqgb92lyhlvs7h4xzj", + "srcDir": "src", + "url": "https://github.com/dom96/httpbeast/archive/abc13d11c210b614960fe8760e581d44cfb2e3e9.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "jester" + ], + "path": "/nix/store/jz86cks97is931hwsq5wf35kjwfypp6x-source", + "rev": "baca3f", + "sha256": "0i8rxsbp5yd9dasis650vqppika43mzfsls4fc7cz8k5j8xpd6zc", + "srcDir": "", + "url": "https://github.com/dom96/jester/archive/baca3f.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "jsony" + ], + "path": "/nix/store/bzcq8q439rdsqhhihikzv3rsx4l4ybdm-source", + "rev": "ea811be", + "sha256": "1720iqsxjhqmhw1zhhs7d2ncdz25r8fqadls1p1iry1wfikjlnba", + "srcDir": "src", + "url": "https://github.com/treeform/jsony/archive/ea811be.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "karax" + ], + "path": "/nix/store/5vghbi3cfpf7zvbkn0mk9chrf0rsx4yf-source", + "rev": "5cf360c", + "sha256": "1fh0jcjlw0vfqmr5dmhk436g569qvcpml9f981x28wmvm1511z2c", + "srcDir": "", + "url": "https://github.com/karaxnim/karax/archive/5cf360c.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "markdown" + ], + "path": "/nix/store/6jpq2dp02mhjl8pkxzs0a1sjvgyg5h1r-source", + "rev": "158efe3", + "sha256": "1701q0i8yd9rrjraf5fzgcvilwnwgw3wyzzfwpr2drmn3x9pd8fj", + "srcDir": "src", + "url": "https://github.com/soasme/nim-markdown/archive/158efe3.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "nimcrypto" + ], + "path": "/nix/store/dnj20qh97ylf57nka9wbxs735wbw7yxv-source", + "rev": "4014ef9", + "sha256": "1kgqr2lqaffglc1fgbanwcvhkqcbbd20d5b6w4lf0nksfl9c357a", + "srcDir": "", + "url": "https://github.com/cheatfate/nimcrypto/archive/4014ef9.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "packedjson" + ], + "path": "/nix/store/c6wn9azj0kyvl818a40hzqzis0im8gnb-source", + "rev": "9e6fbb6", + "sha256": "09yxshkfpacgl6x8f77snjcwz37r519vh7rrnqrnh5npvgk3h24j", + "srcDir": "", + "url": "https://github.com/Araq/packedjson/archive/9e6fbb6.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "redis" + ], + "path": "/nix/store/x6l3kz5950fb3d0pr5hmldh0xqkqrl62-source", + "rev": "d0a0e6f", + "sha256": "166kzflb3wgwvqnv9flyynp8b35xby617lxmk0yas8i4m6vjl00f", + "srcDir": "src", + "url": "https://github.com/zedeus/redis/archive/d0a0e6f.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "redis" + ], + "path": "/nix/store/x6l3kz5950fb3d0pr5hmldh0xqkqrl62-source", + "rev": "d0a0e6f", + "sha256": "166kzflb3wgwvqnv9flyynp8b35xby617lxmk0yas8i4m6vjl00f", + "srcDir": "src", + "url": "https://github.com/zedeus/redis/archive/d0a0e6f.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "redpool" + ], + "path": "/nix/store/pkwc61k47vzvxfdhsckbyx52rrbav0gz-source", + "rev": "8b7c1db", + "sha256": "10xh5fhwnahnq1nf6j69vvnbi55kixa0ari630gr6cdx80arvbs6", + "srcDir": "src", + "url": "https://github.com/zedeus/redpool/archive/8b7c1db.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "sass" + ], + "path": "/nix/store/2nk90ab1k14px5zi8jwa30x8b8sfnbnm-source", + "rev": "7dfdd03", + "sha256": "19d78787k97l5cis81800hxa9qjr0yzjshlzdp727gh6pn8kc8fj", + "srcDir": "src", + "url": "https://github.com/dom96/sass/archive/7dfdd03.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "supersnappy" + ], + "path": "/nix/store/kibhdjpd3mvn9adsp67amj35a7zrnk6y-source", + "rev": "6c94198", + "sha256": "0gxy7ijm4d2i4dkb64wwq51gns0i2d3d3rrd9cra7fyiahaph4xi", + "srcDir": "src", + "url": "https://github.com/guzba/supersnappy/archive/6c94198.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "ws" + ], + "path": "/nix/store/zd51j4dphs6h1hyhdbzdv840c8813ai8-source", + "ref": "0.5.0", + "rev": "9536bf99ddf5948db221ccb7bb3663aa238a8e21", + "sha256": "0j8z9jlvzb1h60v7rryvh2wx6vg99lra6i62whf3fknc53l641fz", + "srcDir": "src", + "url": "https://github.com/treeform/ws/archive/9536bf99ddf5948db221ccb7bb3663aa238a8e21.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "zippy" + ], + "path": "/nix/store/lhkc989wrk27wwglrxs0ahhxp2c650y5-source", + "rev": "ca5989a", + "sha256": "0rk31ispck48ilvzs0lxpp7z6y238a7d7dh7lmlfwi5i7hx13la6", + "srcDir": "src", + "url": "https://github.com/guzba/zippy/archive/ca5989a.tar.gz" + } + ] +} diff --git a/nixpkgs/pkgs/by-name/ni/nitter/nitter-version.patch b/nixpkgs/pkgs/by-name/ni/nitter/nitter-version.patch new file mode 100644 index 000000000000..94c78ad2d294 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nitter/nitter-version.patch @@ -0,0 +1,17 @@ +diff --git a/src/views/about.nim b/src/views/about.nim +index e7e8de9..54a6050 100644 +--- a/src/views/about.nim ++++ b/src/views/about.nim +@@ -3,10 +3,8 @@ import os, strformat + import karax/[karaxdsl, vdom] + + const +- date = staticExec("git show -s --format=\"%cd\" --date=format:\"%Y.%m.%d\"") +- hash = staticExec("git show -s --format=\"%h\"") +- link = "https://github.com/zedeus/nitter/commit/" & hash +- version = &"{date}-{hash}" ++ link = "@url@" ++ version = "@version@-@rev@" + + var aboutHtml: string + diff --git a/nixpkgs/pkgs/by-name/ni/nitter/package.nix b/nixpkgs/pkgs/by-name/ni/nitter/package.nix new file mode 100644 index 000000000000..6b63037e103d --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nitter/package.nix @@ -0,0 +1,53 @@ +{ lib +, buildNimPackage +, fetchFromGitHub +, nixosTests +, substituteAll +, unstableGitUpdater +}: + +buildNimPackage (finalAttrs: prevAttrs: { + pname = "nitter"; + version = "unstable-2023-10-31"; + + src = fetchFromGitHub { + owner = "zedeus"; + repo = "nitter"; + rev = "b62d73dbd373f08af07c7a79efcd790d3bc1a49c"; + hash = "sha256-yCD7FbqWZMY0fyFf9Q3Ka06nw5Ha7jYLpmPONAhEVIM="; + }; + + lockFile = ./lock.json; + + patches = [ + (substituteAll { + src = ./nitter-version.patch; + inherit (finalAttrs) version; + inherit (finalAttrs.src) rev; + url = builtins.replaceStrings [ "archive" ".tar.gz" ] [ "commit" "" ] finalAttrs.src.url; + }) + ]; + + postBuild = '' + nim compile ${toString finalAttrs.nimFlags} -r tools/gencss + nim compile ${toString finalAttrs.nimFlags} -r tools/rendermd + ''; + + postInstall = '' + mkdir -p $out/share/nitter + cp -r public $out/share/nitter/public + ''; + + passthru = { + tests = { inherit (nixosTests) nitter; }; + updateScript = unstableGitUpdater {}; + }; + + meta = with lib; { + homepage = "https://github.com/zedeus/nitter"; + description = "Alternative Twitter front-end"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ erdnaxe infinidoge ]; + mainProgram = "nitter"; + }; +}) diff --git a/nixpkgs/pkgs/by-name/ni/nitter/update.sh b/nixpkgs/pkgs/by-name/ni/nitter/update.sh new file mode 100755 index 000000000000..30405f34b22e --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nitter/update.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq nix nix-update patchutils +set -euo pipefail + +info() { + if [ -t 2 ]; then + set -- '\033[32m%s\033[39m\n' "$@" + else + set -- '%s\n' "$@" + fi + printf "$@" >&2 +} + +nitter_old_rev=$(nix-instantiate --eval --strict --json -A nitter.src.rev . | jq -r .) +nix-update --version=branch --commit nitter +nitter_new_rev=$(nix-instantiate --eval --strict --json -A nitter.src.rev . | jq -r .) +if [ "$nitter_new_rev" = "$nitter_old_rev" ]; then + info "nitter is up-to-date." + exit +fi + +if curl -Sfs "https://github.com/zedeus/nitter/compare/$nitter_old_rev...$nitter_new_rev.patch" \ +| lsdiff | grep -Fxe 'a/nitter.nimble' -e 'b/nitter.nimble' > /dev/null; then + info "nitter.nimble changed, some dependencies probably need updating." +fi diff --git a/nixpkgs/pkgs/by-name/ni/nix-unit/package.nix b/nixpkgs/pkgs/by-name/ni/nix-unit/package.nix new file mode 100644 index 000000000000..a9f1b7105c29 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ni/nix-unit/package.nix @@ -0,0 +1,57 @@ +{ stdenv +, lib +, boost +, clang-tools +, cmake +, difftastic +, makeWrapper +, meson +, ninja +, nixVersions +, nlohmann_json +, pkg-config +, fetchFromGitHub +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "nix-unit"; + version = "2.18.0"; + + src = fetchFromGitHub { + owner = "nix-community"; + repo = "nix-unit"; + rev = "v${finalAttrs.version}"; + hash = "sha256-9wq14p+85oW4HlD42NJ0jyA++z3nEYjFQ6uT40xdfbc="; + }; + + buildInputs = [ + nlohmann_json + # We pin the nix version to a known working one here as upgrades can likely break the build. + # Since the nix language is rather stable we don't always need to have the latest and greatest for unit tests + # On each update of nix unit we should re-evaluate what version we need. + nixVersions.nix_2_18 + boost + ]; + + nativeBuildInputs = [ + makeWrapper + meson + pkg-config + ninja + # nlohmann_json can be only discovered via cmake files + cmake + ] ++ lib.optional stdenv.cc.isClang [ clang-tools ]; + + postInstall = '' + wrapProgram "$out/bin/nix-unit" --prefix PATH : ${difftastic}/bin + ''; + + meta = { + description = "Nix unit test runner"; + homepage = "https://github.com/nix-community/nix-unit"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ mic92 adisbladis ]; + platforms = lib.platforms.unix; + mainProgram = "nix-unit"; + }; +}) |