diff options
Diffstat (limited to 'nixpkgs/pkgs/development/nim-packages')
69 files changed, 1436 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/nim-packages/asciigraph/default.nix b/nixpkgs/pkgs/development/nim-packages/asciigraph/default.nix new file mode 100644 index 000000000000..0d8b471102ee --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/asciigraph/default.nix @@ -0,0 +1,21 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "asciigraph"; + version = "unstable-2021-03-02"; + + src = fetchFromGitHub { + owner = "Yardanico"; + repo = "asciigraph"; + rev = "9f51fc4e94d0960ab63fa6ea274518159720aa69"; + hash = "sha256-JMBAW8hkE2wuXkRt4aHqFPoz1HX1J4SslvcaQXfpDNk"; + }; + + + meta = with lib; + src.meta // { + description = "Console ascii line graphs in pure Nim"; + license = [ licenses.mit ]; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/astpatternmatching/default.nix b/nixpkgs/pkgs/development/nim-packages/astpatternmatching/default.nix new file mode 100644 index 000000000000..6f1137ac7045 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/astpatternmatching/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "krux02"; + repo = "ast-pattern-matching"; + rev = "87f7d163421af5a4f5e5cb6da7b93278e6897e96"; + sha256 = "19mb5bb6riia8380p5dpc3q0vwgrj958dd6p7vw8vkvwiqrzg6zq"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/asynctools/default.nix b/nixpkgs/pkgs/development/nim-packages/asynctools/default.nix new file mode 100644 index 000000000000..54893d00a980 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/asynctools/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub, astpatternmatching }: + +buildNimPackage rec { + pname = "asynctools"; + version = "unstable-2021-07-06"; + + src = fetchFromGitHub { + owner = "cheatfate"; + repo = "asynctools"; + rev = "84ced6d002789567f2396c75800ffd6dff2866f7"; + hash = "sha256-mrO+WeSzCBclqC2UNCY+IIv7Gs8EdTDaTeSgXy3TgNM="; + }; + + meta = with lib; { + description = "Various asynchronous tools for Nim language"; + homepage = "https://github.com/cheatfate/asynctools"; + license = licenses.mit; + maintainers = [ maintainers.marsam ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/base32/default.nix b/nixpkgs/pkgs/development/nim-packages/base32/default.nix new file mode 100644 index 000000000000..a6ae28b45b54 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/base32/default.nix @@ -0,0 +1,17 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "base32"; + version = "0.1.3"; + src = fetchFromGitHub { + owner = "OpenSystemsLab"; + repo = "${pname}.nim"; + rev = version; + hash = "sha256-BsDly13xsY2bu4N9LGHB0OGej/JhAx3B01TDdF0M8Jk="; + }; + meta = src.meta // { + description = "Base32 library for Nim"; + maintainers = with lib.maintainers; [ ehmry ]; + license = lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/base45/default.nix b/nixpkgs/pkgs/development/nim-packages/base45/default.nix new file mode 100644 index 000000000000..349508445953 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/base45/default.nix @@ -0,0 +1,18 @@ +{ lib, buildNimPackage, fetchFromSourcehut }: + +buildNimPackage rec { + pname = "base45"; + version = "20230124"; + src = fetchFromSourcehut { + owner = "~ehmry"; + repo = pname; + rev = version; + hash = "sha256-9he+14yYVGt2s1IuRLPRsv23xnJzERkWRvIHr3PxFYk="; + }; + meta = src.meta // { + description = "Base45 library for Nim"; + license = lib.licenses.unlicense; + mainProgram = pname; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/build-nim-package/default.nix b/nixpkgs/pkgs/development/nim-packages/build-nim-package/default.nix new file mode 100644 index 000000000000..6e20b78899f6 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/build-nim-package/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, nim, nim_builder }: +pkgArgs: + +let + baseAttrs = { + strictDeps = true; + enableParallelBuilding = true; + doCheck = true; + configurePhase = '' + runHook preConfigure + export NIX_NIM_BUILD_INPUTS=''${pkgsHostTarget[@]} $NIX_NIM_BUILD_INPUTS + nim_builder --phase:configure + runHook postConfigure + ''; + buildPhase = '' + runHook preBuild + nim_builder --phase:build + runHook postBuild + ''; + checkPhase = '' + runHook preCheck + nim_builder --phase:check + runHook postCheck + ''; + installPhase = '' + runHook preInstall + nim_builder --phase:install + runHook postInstall + ''; + meta = { inherit (nim.meta) maintainers platforms; }; + }; + + inputsOverride = + { depsBuildBuild ? [ ], nativeBuildInputs ? [ ], ... }: { + depsBuildBuild = [ nim_builder ] ++ depsBuildBuild; + nativeBuildInputs = [ nim ] ++ nativeBuildInputs; + }; + + composition = finalAttrs: + let + asFunc = x: if builtins.isFunction x then x else (_: x); + prev = baseAttrs // (asFunc ((asFunc pkgArgs) finalAttrs)) baseAttrs; + in prev // inputsOverride prev; + +in stdenv.mkDerivation composition diff --git a/nixpkgs/pkgs/development/nim-packages/bumpy/default.nix b/nixpkgs/pkgs/development/nim-packages/bumpy/default.nix new file mode 100644 index 000000000000..c816f0901777 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/bumpy/default.nix @@ -0,0 +1,23 @@ +{ lib, buildNimPackage, fetchFromGitHub, vmath }: + +buildNimPackage rec { + pname = "bumpy"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "treeform"; + repo = pname; + rev = version; + hash = "sha256-mDmDlhOGoYYjKgF5j808oT2NqRlfcOdLSDE3WtdJFQ0="; + }; + + propagatedBuildInputs = [ vmath ]; + + + meta = with lib; + src.meta // { + description = "2d collision library"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/c2nim/default.nix b/nixpkgs/pkgs/development/nim-packages/c2nim/default.nix new file mode 100644 index 000000000000..c748883dbbc8 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/c2nim/default.nix @@ -0,0 +1,19 @@ +{ lib, buildNimPackage, fetchFromGitHub, SDL2 }: + +buildNimPackage rec { + pname = "c2nim"; + version = "0.9.19"; + nimBinOnly = true; + src = fetchFromGitHub { + owner = "nim-lang"; + repo = pname; + rev = version; + hash = "sha256-E8sAhTFIWAnlfWyuvqK8h8g7Puf5ejLEqgLNb5N17os="; + }; + meta = with lib; + src.meta // { + description = "Tool to translate Ansi C code to Nim"; + license = licenses.mit; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/cbor/default.nix b/nixpkgs/pkgs/development/nim-packages/cbor/default.nix new file mode 100644 index 000000000000..2949f4c1c853 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/cbor/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromSourcehut }: + +buildNimPackage rec { + pname = "cbor"; + version = "20230619"; + src = fetchFromSourcehut { + owner = "~ehmry"; + repo = "nim_${pname}"; + rev = version; + hash = "sha256-F6T/5bUwrJyhRarTWO9cjbf7UfEOXPNWu6mfVKNZsQA="; + }; + meta = with lib; + src.meta // { + description = + "Concise Binary Object Representation decoder and encoder (RFC8949)"; + license = licenses.unlicense; + maintainers = [ maintainers.ehmry ]; + mainProgram = "cbordiag"; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/chroma/default.nix b/nixpkgs/pkgs/development/nim-packages/chroma/default.nix new file mode 100644 index 000000000000..266cd0645f36 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/chroma/default.nix @@ -0,0 +1,7 @@ +{ fetchNimble }: + +fetchNimble { + pname = "chroma"; + version = "0.2.5"; + hash = "sha256-6lNHpO2aMorgkaPfo6kRcOs9r5R6T/kislVmkeoulw8="; +} diff --git a/nixpkgs/pkgs/development/nim-packages/coap/default.nix b/nixpkgs/pkgs/development/nim-packages/coap/default.nix new file mode 100644 index 000000000000..b7a35dcb1a96 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/coap/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitea, taps }: + +buildNimPackage rec { + pname = "coap"; + version = "20230125"; + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "eris"; + repo = "${pname}-nim"; + rev = version; + hash = "sha256-wlDyqRxXTrX+zXDIe2o9FTU2o26LO/6m7H/FGok1JDw="; + }; + propagatedBuildInputs = [ taps ]; + meta = src.meta // { + description = + "Nim implementation of the Constrained Application Protocol (CoAP) over TCP"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/docopt/default.nix b/nixpkgs/pkgs/development/nim-packages/docopt/default.nix new file mode 100644 index 000000000000..38465384fbde --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/docopt/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "docopt"; + repo = "docopt.nim"; + rev = "v0.6.7"; + sha256 = "1ga7ckg21fzwwvh26jp2phn2h3pvkn8g8sm13dxif33rp471bv37"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/eris/default.nix b/nixpkgs/pkgs/development/nim-packages/eris/default.nix new file mode 100644 index 000000000000..2d7b229ca1a1 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/eris/default.nix @@ -0,0 +1,36 @@ +{ lib, buildNimPackage, fetchFromGitea, pkg-config, base32, coap, cbor +, freedesktop_org, illwill, syndicate, tkrzw }: + +buildNimPackage (final: prev: { + pname = "eris"; + version = "20230722"; + outputs = [ "bin" "out" ]; + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "eris"; + repo = "nim-eris"; + rev = final.version; + hash = "sha256-JVl2/PmFVYuD4s9hKoQwVDKUa3PBWK5SBDEmVHVSuig="; + }; + propagatedNativeBuildInputs = [ pkg-config ]; + propagatedBuildInputs = + [ base32 coap cbor freedesktop_org illwill tkrzw ]; + postInstall = '' + mkdir -p "$bin/share/recoll/filters" + mv "$bin/bin/rclerislink" "$bin/share/recoll/filters/" + + mkdir -p "$bin/share/applications" + substitute "eris-open.desktop" "$bin/share/applications/eris-open.desktop"\ + --replace "Exec=eriscmd " "Exec=$bin/bin/eriscmd " + + install -D "eris-link.xml" -t "$bin/share/mime/packages" + install -D "eris48.png" "$bin/share/icons/hicolor/48x48/apps/eris.png" + ''; + meta = final.src.meta // { + homepage = "https://codeberg.org/eris/nim-eris"; + license = lib.licenses.unlicense; + maintainers = with lib.maintainers; [ ehmry ]; + mainProgram = "eriscmd"; + badPlatforms = lib.platforms.darwin; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/fetch-nimble/builder.sh b/nixpkgs/pkgs/development/nim-packages/fetch-nimble/builder.sh new file mode 100644 index 000000000000..bc2f9bfc94f1 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/fetch-nimble/builder.sh @@ -0,0 +1,13 @@ +if [ -e .attrs.sh ]; then source .attrs.sh; fi +source $stdenv/setup +export HOME=$NIX_BUILD_TOP + +nimble --accept --noSSLCheck develop "${pkgname}@${version}" +# TODO: bring in the certificates for Nimble to verify the fetch of +# the package list. + +pkgdir=${NIX_BUILD_TOP}/${pkgname} + +find "$pkgdir" -name .git -print0 | xargs -0 rm -rf + +cp -a "$pkgdir" "$out" diff --git a/nixpkgs/pkgs/development/nim-packages/fetch-nimble/default.nix b/nixpkgs/pkgs/development/nim-packages/fetch-nimble/default.nix new file mode 100644 index 000000000000..ccdacc8e27b9 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/fetch-nimble/default.nix @@ -0,0 +1,20 @@ +{ lib, makeOverridable, stdenv, gitMinimal, nim, cacert }: + +makeOverridable ( + + { pname, version, hash ? lib.fakeHash, + + meta ? { }, passthru ? { }, preferLocalBuild ? true }: + stdenv.mkDerivation { + inherit version meta passthru preferLocalBuild; + pname = pname + "-src"; + pkgname = pname; + builder = ./builder.sh; + nativeBuildInputs = [ gitMinimal nim ]; + outputHash = hash; + outputHashAlgo = null; + outputHashMode = "recursive"; + impureEnvVars = lib.fetchers.proxyImpureEnvVars + ++ [ "GIT_PROXY_COMMAND" "SOCKS_SERVER" ]; + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + }) diff --git a/nixpkgs/pkgs/development/nim-packages/flatty/default.nix b/nixpkgs/pkgs/development/nim-packages/flatty/default.nix new file mode 100644 index 000000000000..26a827830d1c --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/flatty/default.nix @@ -0,0 +1,21 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "flatty"; + version = "0.3.4"; + + src = fetchFromGitHub { + owner = "treeform"; + repo = pname; + rev = version; + hash = "sha256-ZmhjehmEJHm5qNlsGQvyYLajUdwhWt1+AtRppRrNtgA="; + }; + + + meta = with lib; + src.meta // { + description = "Tools and serializer for plain flat binary files"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/freedesktop_org/default.nix b/nixpkgs/pkgs/development/nim-packages/freedesktop_org/default.nix new file mode 100644 index 000000000000..52e672b3d697 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/freedesktop_org/default.nix @@ -0,0 +1,30 @@ +{ lib, buildNimPackage, fetchFromSourcehut, fetchFromGitHub }: + +let + # freedesktop_org requires a fork of configparser + configparser = buildNimPackage rec { + pname = "configparser"; + version = "20230120"; + src = fetchFromGitHub { + repo = "nim-" + pname; + owner = "ehmry"; + rev = "695f1285d63f1954c25eb1f42798d90fa7bcbe14"; + hash = "sha256-Z2Qr14pv2RHzQNfEYIKuXKHfHvvIfaEiGCHHCWJZFyw="; + }; + }; +in buildNimPackage rec { + pname = "freedesktop_org"; + version = "20230201"; + src = fetchFromSourcehut { + owner = "~ehmry"; + repo = pname; + rev = version; + hash = "sha256-gEN8kiWYCfC9H7o4UE8Xza5s7OwU3TFno6XnIlEm9Dg="; + }; + propagatedBuildInputs = [ configparser ]; + meta = src.meta // { + description = "Some Nim procedures for looking up freedesktop.org data"; + license = lib.licenses.unlicense; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/frosty/default.nix b/nixpkgs/pkgs/development/nim-packages/frosty/default.nix new file mode 100644 index 000000000000..6394c455d07f --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/frosty/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "disruptek"; + repo = "frosty"; + rev = "0.3.1"; + sha256 = "0hd6484ihjgl57gmqyp5xfq5prycb49k0313fqky600mhz71nmyz"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/getdns/default.nix b/nixpkgs/pkgs/development/nim-packages/getdns/default.nix new file mode 100644 index 000000000000..7d85077d7e8a --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/getdns/default.nix @@ -0,0 +1,24 @@ +{ lib, buildNimPackage, fetchFromSourcehut, pkg-config, getdns }: + +buildNimPackage rec { + pname = "getdns"; + version = "20221222"; + src = fetchFromSourcehut { + owner = "~ehmry"; + repo = pname + "-nim"; + rev = version; + hash = "sha256-y7yzY1PcodIK2kC9409FuTpLn0TsWHGiEPnrULrob+k="; + }; + + propagatedNativeBuildInputs = [ pkg-config ]; + propagatedBuildInputs = [ getdns ]; + + checkPhase = "nim c tests/test_example_synchronous"; + # The test requires network but check if it builds. + + meta = { + inherit (getdns.meta) homepage license platforms; + description = "Nim wrapper over the getdns library"; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/hashlib/default.nix b/nixpkgs/pkgs/development/nim-packages/hashlib/default.nix new file mode 100644 index 000000000000..67fff072c182 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/hashlib/default.nix @@ -0,0 +1,17 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "hashlib"; + version = "1.0.1"; + src = fetchFromGitHub { + owner = "khchen"; + repo = pname; + rev = "84e0247555e4488594975900401baaf5bbbfb531"; + hash = "sha256-nWNThelCh0LPVU7ryZgS/23hRRvJDVL2xWbQibb+zN0="; + }; + meta = src.meta // { + description = "Hash Library for Nim"; + maintainers = with lib.maintainers; [ ehmry ]; + license = lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/hts-nim/default.nix b/nixpkgs/pkgs/development/nim-packages/hts-nim/default.nix new file mode 100644 index 000000000000..d536133ce9b0 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/hts-nim/default.nix @@ -0,0 +1,14 @@ +{ buildNimPackage, fetchFromGitHub, htslib }: + +buildNimPackage rec { + pname = "hts-nim"; + version = "0.3.4"; + src = fetchFromGitHub { + owner = "brentp"; + repo = pname; + rev = "v${version}"; + sha256 = "0670phk1bq3l9j2zaa8i5wcpc5dyfrc0l2a6c21g0l2mmdczffa7"; + }; + propagatedBuildInputs = [ htslib ]; + doCheck = false; +} diff --git a/nixpkgs/pkgs/development/nim-packages/illwill/default.nix b/nixpkgs/pkgs/development/nim-packages/illwill/default.nix new file mode 100644 index 000000000000..aa5101766208 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/illwill/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "illwill"; + version = "0.3.1"; + + src = fetchFromGitHub { + owner = "johnnovak"; + repo = "illwill"; + rev = "v${version}"; + hash = "sha256-4DHGVWzN/WTAyDRBBpXlcfKnYIcbFt42/iWInaBUwi4="; + }; + + meta = with lib; + src.meta // { + description = "A curses inspired simple cross-platform console library for Nim"; + license = [ licenses.wtfpl ]; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/illwillwidgets/default.nix b/nixpkgs/pkgs/development/nim-packages/illwillwidgets/default.nix new file mode 100644 index 000000000000..f767216712ac --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/illwillwidgets/default.nix @@ -0,0 +1,24 @@ +{ lib, buildNimPackage, fetchFromGitHub, illwill }: + +buildNimPackage rec { + pname = "illwillwidgets"; + version = "0.1.11"; + + src = fetchFromGitHub { + owner = "enthus1ast"; + repo = "illwillWidgets"; + rev = "04f507cfd651df430b1421403b3a70cb061c4624"; + hash = "sha256-YVNdgs8jquJ58qbcyNMMJt+hJYcvahYpkSrDBbO4ILU="; + }; + + propagatedBuildInputs = [ illwill ]; + doCheck = false; + + meta = with lib; + src.meta // { + description = "Mouse enabled widgets for illwill"; + + license = [ licenses.mit ]; + maintainers = with maintainers; [ marcusramberg ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/jester/default.nix b/nixpkgs/pkgs/development/nim-packages/jester/default.nix new file mode 100644 index 000000000000..21646f3667f0 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/jester/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "dom96"; + repo = "jester"; + rev = "v0.5.0"; + sha256 = "0m8a4ss4460jd2lcbqcbdd68jhcy35xg7qdyr95mh8rflwvmcvhk"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/jsonschema/default.nix b/nixpkgs/pkgs/development/nim-packages/jsonschema/default.nix new file mode 100644 index 000000000000..e19af7fbb865 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/jsonschema/default.nix @@ -0,0 +1,22 @@ +{ lib, buildNimPackage, fetchFromGitHub, astpatternmatching }: + +buildNimPackage rec { + pname = "jsonschema"; + version = "unstable-2019-09-12"; + + src = fetchFromGitHub { + owner = "PMunch"; + repo = "jsonschema"; + rev = "7b41c03e3e1a487d5a8f6b940ca8e764dc2cbabf"; + sha256 = "1js64jqd854yjladxvnylij4rsz7212k31ks541pqrdzm6hpblbz"; + }; + + propagatedBuildInputs = [ astpatternmatching ]; + + meta = with lib; { + homepage = "https://github.com/PMunch/jsonschema"; + description = "Schema validation of JSON for Nim"; + license = licenses.mit; + maintainers = [ maintainers.marsam ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/jsony/default.nix b/nixpkgs/pkgs/development/nim-packages/jsony/default.nix new file mode 100644 index 000000000000..5f9c0f2741c2 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/jsony/default.nix @@ -0,0 +1,21 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "jsony"; + version = "d0e69bddf83874e15b5c2f52f8b1386ac080b443"; + + src = fetchFromGitHub { + owner = "treeform"; + repo = pname; + rev = version; + sha256 = "1p250wb97nzz2g0vvq6mn521fx7sn1jpk1ralbzqh5q8clh4g7wr"; + }; + + + meta = with lib; + src.meta // { + description = "A loose, direct to object json parser with hooks"; + license = [ licenses.mit ]; + maintainers = [ maintainers.erdnaxe ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/karax/default.nix b/nixpkgs/pkgs/development/nim-packages/karax/default.nix new file mode 100644 index 000000000000..695386826f50 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/karax/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "karaxnim"; + repo = "karax"; + rev = "5cf360c"; + hash = "sha256-TPwQSqi7ciR6QMklWi/bOJnyzCAT1lZyxW4DTiWTALo="; +} diff --git a/nixpkgs/pkgs/development/nim-packages/lscolors/default.nix b/nixpkgs/pkgs/development/nim-packages/lscolors/default.nix new file mode 100644 index 000000000000..5a72c46e4c50 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/lscolors/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "joachimschmidt557"; + repo = "nim-lscolors"; + rev = "v0.3.3"; + sha256 = "0526hqh46lcfsvymb67ldsc8xbfn24vicn3b8wrqnh6mag8wynf4"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/markdown/default.nix b/nixpkgs/pkgs/development/nim-packages/markdown/default.nix new file mode 100644 index 000000000000..9b9f0462c3f9 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/markdown/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "soasme"; + repo = "nim-markdown"; + rev = "a661c26"; + hash = "sha256-/GkCSOmg2JxQhiDS8vgnKIoKvVgld/uIilUHslvwMnk="; +} diff --git a/nixpkgs/pkgs/development/nim-packages/nimSHA2/default.nix b/nixpkgs/pkgs/development/nim-packages/nimSHA2/default.nix new file mode 100644 index 000000000000..ca9f08c8d253 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/nimSHA2/default.nix @@ -0,0 +1,17 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "nimSHA2"; + version = "unstable-2021-09-09"; + src = fetchFromGitHub { + owner = "jangko"; + repo = pname; + rev = "b8f666069dff1ed0c5142dd1ca692f0e71434716"; + hash = "sha256-Wqb3mQ7638UOTze71mf6WMyGiw9qTwhbJiGGb+9OR2k="; + }; + meta = src.meta // { + description = "Secure Hash Algorithm 2"; + maintainers = with lib.maintainers; [ ehmry ]; + license = lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/nim_builder/default.nix b/nixpkgs/pkgs/development/nim-packages/nim_builder/default.nix new file mode 100644 index 000000000000..34da4dfa61a0 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/nim_builder/default.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/development/nim-packages/nim_builder/nim_builder.nim b/nixpkgs/pkgs/development/nim-packages/nim_builder/nim_builder.nim new file mode 100644 index 000000000000..8bb78555c269 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/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 ``nimBinOnly`` is not + ## set in the environment. + if not getEnvBool"nimBinOnly": + 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 $#" % [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/development/nim-packages/nimbox/default.nix b/nixpkgs/pkgs/development/nim-packages/nimbox/default.nix new file mode 100644 index 000000000000..53663c642810 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/nimbox/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "dom96"; + repo = "nimbox"; + rev = "6a56e76c01481176f16ae29b7d7c526bd83f229b"; + sha256 = "15x1sdfxa1xcqnr68705jfnlv83lm0xnp2z9iz3pgc4bz5vwn4x1"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/nimcrypto/default.nix b/nixpkgs/pkgs/development/nim-packages/nimcrypto/default.nix new file mode 100644 index 000000000000..6c212ef45f1a --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/nimcrypto/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "cheatfate"; + repo = "nimcrypto"; + rev = "a5742a9a214ac33f91615f3862c7b099aec43b00"; + sha256 = "0al0jsaicm8vyr63n909dq1glhvpra1n9sllmj0r7lsjsdb59wsz"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/nimraylib-now/default.nix b/nixpkgs/pkgs/development/nim-packages/nimraylib-now/default.nix new file mode 100644 index 000000000000..f2e0028a32e1 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/nimraylib-now/default.nix @@ -0,0 +1,24 @@ +{ lib, nimPackages, fetchFromGitHub, raylib }: + +nimPackages.buildNimPackage rec { + pname = "nimraylib-now"; + version = "0.15.0"; + + src = fetchFromGitHub { + owner = "greenfork"; + repo = "nimraylib_now"; + rev = "v${version}"; + sha256 = "sha256-18YiAzJ46dpD5JN+gH0MWKchZ5YLPBNcm9eVFnyy2Sw="; + }; + + propagatedBuildInputs = [ raylib ]; + + doCheck = false; # no $DISPLAY available + + meta = with lib; { + homepage = "https://github.com/greenfork/nimraylib_now"; + description = "The Ultimate Raylib gaming library wrapper for Nim"; + license = licenses.mit; + maintainers = with maintainers; [ annaaurora ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/nimsimd/default.nix b/nixpkgs/pkgs/development/nim-packages/nimsimd/default.nix new file mode 100644 index 000000000000..9ccd96453572 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/nimsimd/default.nix @@ -0,0 +1,7 @@ +{ fetchNimble }: + +fetchNimble { + pname = "nimsimd"; + version = "1.0.0"; + hash = "sha256-kp61fylAJ6MSN9hLYLi7CU2lxVR/lbrNCvZTe0LJLGo="; +} diff --git a/nixpkgs/pkgs/development/nim-packages/noise/default.nix b/nixpkgs/pkgs/development/nim-packages/noise/default.nix new file mode 100644 index 000000000000..d4b9bfdda5b6 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/noise/default.nix @@ -0,0 +1,18 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage (finalAttrs: { + pname = "noise"; + version = "0.1.8"; + src = fetchFromGitHub { + owner = "jangko"; + repo = "nim-noise"; + rev = "v${finalAttrs.version}"; + sha256 = "sha256-QD7X1QTAKHYa2+QiYjrQq74CnEafwq/RsshlW2yZqmI="; + }; + meta = finalAttrs.src.meta // { + description = "Nim implementation of linenoise"; + homepage = "https://github.com/jangko/nim-noise"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ehmry ]; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/npeg/default.nix b/nixpkgs/pkgs/development/nim-packages/npeg/default.nix new file mode 100644 index 000000000000..c869ff60f6a5 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/npeg/default.nix @@ -0,0 +1,17 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "npeg"; + version = "1.2.1"; + src = fetchFromGitHub { + owner = "zevv"; + repo = pname; + rev = version; + hash = "sha256-kN91cp50ZL4INeRWqwrRK6CAkVXUq4rN4YlcN6WL/3Y="; + }; + meta = src.meta // { + description = "NPeg is a pure Nim pattern matching library"; + maintainers = with lib.maintainers; [ ehmry ]; + license = lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/packedjson/default.nix b/nixpkgs/pkgs/development/nim-packages/packedjson/default.nix new file mode 100644 index 000000000000..25579540c0b7 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/packedjson/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "Araq"; + repo = "packedjson"; + rev = "d11d167"; + sha256 = "1302rn58277c3ic5sfq89c4mkn0d66bhilifh5xjf40x74ahir5x"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/parsetoml/default.nix b/nixpkgs/pkgs/development/nim-packages/parsetoml/default.nix new file mode 100644 index 000000000000..d6504f1d9c67 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/parsetoml/default.nix @@ -0,0 +1,21 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "parsetoml"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "NimParsers"; + repo = "parsetoml"; + rev = "v${version}"; + hash = "sha256-jtqn59x2ZRRgrPir6u/frsDHnl4kvTJWpbejxti8aHY="; + }; + + + meta = with lib; + src.meta // { + description = "A Nim library to parse TOML files"; + license = [ licenses.mit ]; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/pixie/default.nix b/nixpkgs/pkgs/development/nim-packages/pixie/default.nix new file mode 100644 index 000000000000..37b018b6fa65 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/pixie/default.nix @@ -0,0 +1,24 @@ +{ lib, buildNimPackage, fetchFromGitHub, bumpy, chroma, flatty, nimsimd, vmath +, zippy }: + +buildNimPackage rec { + pname = "pixie"; + version = "3.1.2"; + + src = fetchFromGitHub { + owner = "treeform"; + repo = pname; + rev = version; + hash = "sha256-rF72ybfsipBHgQmH0e6DBn1e7WWY6dGn9yp1qvLIS3A="; + }; + + propagatedBuildInputs = [ bumpy chroma flatty nimsimd vmath zippy ]; + + + meta = with lib; + src.meta // { + description = "Full-featured 2d graphics library for Nim"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/preserves/default.nix b/nixpkgs/pkgs/development/nim-packages/preserves/default.nix new file mode 100644 index 000000000000..d48f7830e71f --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/preserves/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, buildNimPackage, fetchFromGitea, nim-unwrapped, npeg }: + +buildNimPackage rec { + pname = "preserves"; + version = "20230530"; + src = fetchFromGitea { + domain = "git.syndicate-lang.org"; + owner = "ehmry"; + repo = "${pname}-nim"; + rev = version; + hash = "sha256-IRIBGjv4po8VyL873v++ovqz8Vg6a9Qbh/M1fxpQXvY="; + }; + propagatedBuildInputs = [ npeg ]; + nimFlags = [ "--path:${nim-unwrapped}/nim" ]; + doCheck = !stdenv.isDarwin; + meta = src.meta // { + description = "Nim implementation of the Preserves data language"; + license = lib.licenses.unlicense; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/redis/default.nix b/nixpkgs/pkgs/development/nim-packages/redis/default.nix new file mode 100644 index 000000000000..1cd7c68ecc94 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/redis/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "zedeus"; + repo = "redis"; + rev = "d0a0e6f"; + sha256 = "166kzflb3wgwvqnv9flyynp8b35xby617lxmk0yas8i4m6vjl00f"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/redpool/default.nix b/nixpkgs/pkgs/development/nim-packages/redpool/default.nix new file mode 100644 index 000000000000..76b222739cae --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/redpool/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "zedeus"; + repo = "redpool"; + rev = "8b7c1db"; + sha256 = "10xh5fhwnahnq1nf6j69vvnbi55kixa0ari630gr6cdx80arvbs6"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/regex/default.nix b/nixpkgs/pkgs/development/nim-packages/regex/default.nix new file mode 100644 index 000000000000..03e4315a2c80 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/regex/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub, unicodedb }: + +buildNimPackage (finalAttrs: { + pname = "regex"; + version = "0.20.2"; + src = fetchFromGitHub { + owner = "nitely"; + repo = "nim-regex"; + rev = "v${finalAttrs.version}"; + hash = "sha256-VViDf0uD6bj9WOO827NRbLUt+PgBPEmz/A/DDRCrHpc="; + }; + propagatedBuildInputs = [ unicodedb ]; + doCheck = false; + meta = finalAttrs.src.meta // { + description = "Pure Nim regex engine"; + homepage = "https://github.com/nitely/nim-regex"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ehmry ]; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/rocksdb/default.nix b/nixpkgs/pkgs/development/nim-packages/rocksdb/default.nix new file mode 100644 index 000000000000..1ad32a086a05 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/rocksdb/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub, rocksdb, stew, tempfile }: + +buildNimPackage rec { + pname = "rocksdb"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "status-im"; + repo = "nim-${pname}"; + rev = "5b1307cb1f4c85bb72ff781d810fb8c0148b1183"; + hash = "sha256-gjMCB9kpWVi9Qv73/jhoAYw857OmQpry//bDQCtyJo0="; + }; + buildInputs = [ stew tempfile ]; + propagatedBuildInputs = [ rocksdb ]; + doCheck = false; + meta = with lib; + src.meta // { + description = "Nim wrapper for RocksDB"; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/safeset/default.nix b/nixpkgs/pkgs/development/nim-packages/safeset/default.nix new file mode 100644 index 000000000000..b92228421c75 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/safeset/default.nix @@ -0,0 +1,21 @@ +{ lib, buildNimPackage, fetchFromGitHub }: +buildNimPackage rec { + pname = "safeset"; + + version = "0.1.1"; + + src = fetchFromGitHub { + owner = "avahe-kellenberger"; + repo = pname; + rev = "v${version}"; + hash = "sha256-ZLdStoNVoQhRkD2iEzKxhs1UPfgnbJM9QCDHdjH7vTU="; + }; + + + meta = with lib; + src.meta // { + description = "safeset library for nim"; + license = [ licenses.gpl2 ]; + maintainers = [ maintainers.marcusramberg ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/sass/default.nix b/nixpkgs/pkgs/development/nim-packages/sass/default.nix new file mode 100644 index 000000000000..79885ed9ec5a --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/sass/default.nix @@ -0,0 +1,13 @@ +{ buildNimPackage, fetchFromGitHub, libsass }: + +buildNimPackage rec { + pname = "sass"; + version = "e683aa1"; + src = fetchFromGitHub { + owner = "dom96"; + repo = pname; + rev = version; + sha256 = "0qvly5rilsqqsyvr67pqhglm55ndc4nd6v90jwswbnigxiqf79lc"; + }; + propagatedBuildInputs = [ libsass ]; +} diff --git a/nixpkgs/pkgs/development/nim-packages/sdl2/default.nix b/nixpkgs/pkgs/development/nim-packages/sdl2/default.nix new file mode 100644 index 000000000000..340cd2718ae2 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/sdl2/default.nix @@ -0,0 +1,16 @@ +{ lib, buildNimPackage, fetchNimble, SDL2 }: + +buildNimPackage (finalAttrs: { + pname = "sdl2"; + version = "2.0.4"; + src = fetchNimble { + inherit (finalAttrs) pname version; + hash = "sha256-Vtcj8goI4zZPQs2TbFoBFlcR5UqDtOldaXSH/+/xULk="; + }; + propagatedBuildInputs = [ SDL2 ]; + meta = { + description = "Nim wrapper for SDL 2.x"; + platforms = lib.platforms.linux; # Problems with Darwin. + license = [ lib.licenses.mit ]; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/segmentation/default.nix b/nixpkgs/pkgs/development/nim-packages/segmentation/default.nix new file mode 100644 index 000000000000..4d1520d62ee8 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/segmentation/default.nix @@ -0,0 +1,19 @@ +{ lib, buildNimPackage, fetchFromGitHub, unicodedb }: + +buildNimPackage (finalAttrs: { + pname = "segmentation"; + version = "0.1.0"; + src = fetchFromGitHub { + owner = "nitely"; + repo = "nim-segmentation"; + rev = "v${finalAttrs.version}"; + sha256 = "007bkx8dwy8n340zbp6wyqfsq9bh6q5ykav1ywdlwykyp1n909bh"; + }; + propagatedBuildInputs = [ unicodedb ]; + meta = finalAttrs.src.meta // { + description = "Unicode text segmentation (tr29)"; + homepage = "https://github.com/nitely/nim-segmentation"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ehmry ]; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/snappy/default.nix b/nixpkgs/pkgs/development/nim-packages/snappy/default.nix new file mode 100644 index 000000000000..e3775b20631b --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/snappy/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub, snappy }: + +buildNimPackage rec { + pname = "snappy"; + version = "0.1.0"; + src = fetchFromGitHub { + owner = "jangko"; + repo = pname; + rev = "d13e2ccb2acaa4e8dedce4f25e8dbf28e19278a6"; + hash = "sha256-18CFRuDK+E701MHrCixx22QSVmglTc0EJwrMCsKwayM="; + }; + propagatedBuildInputs = [ snappy ]; + doCheck = false; + meta = with lib; + src.meta // { + description = "Nim implementation of snappy compression algorithm"; + license = [ lib.licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/spry/default.nix b/nixpkgs/pkgs/development/nim-packages/spry/default.nix new file mode 100644 index 000000000000..590832d11f33 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/spry/default.nix @@ -0,0 +1,22 @@ +{ lib, buildNimPackage, fetchFromGitHub, rocksdb, snappy, spryvm, stew +, tempfile, ui }: + +buildNimPackage rec { + pname = "spry"; + version = "0.9.0"; + src = fetchFromGitHub { + owner = "gokr"; + repo = pname; + rev = "098da7bb34a9113d5db5402fecfc76b1c3fa3b36"; + hash = "sha256-PfWBrG2Z16tLgcN8JYpHaNMysBbbYX812Lkgk0ItMwE="; + }; + buildInputs = [ rocksdb snappy spryvm stew tempfile ui ]; + patches = [ ./nil.patch ./python.patch ]; + meta = with lib; + src.meta // { + description = + "A Smalltalk and Rebol inspired language implemented as an AST interpreter in Nim"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/spry/nil.patch b/nixpkgs/pkgs/development/nim-packages/spry/nil.patch new file mode 100644 index 000000000000..beea30357235 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/spry/nil.patch @@ -0,0 +1,35 @@ +diff --git a/src/ispry.nim b/src/ispry.nim +index 23ad6c3..dc38a9d 100644 +--- a/src/ispry.nim ++++ b/src/ispry.nim +@@ -134,8 +134,8 @@ proc main() = + #discard spry.setBinding(newEvalWord("@"), result) + var output = $result + # Print any result +- if output.isNil: +- output = if suspended: "nil" else: "" ++ if output == "" and suspended: ++ output = "nil" + stdout.write(output & "\n") + # except: + # echo "Oops, sorry about that: " & getCurrentExceptionMsg() & "\n" +diff --git a/src/spry.nim b/src/spry.nim +index 670a280..d81bb4c 100644 +--- a/src/spry.nim ++++ b/src/spry.nim +@@ -87,13 +87,13 @@ for kind, key, val in getopt(): + of cmdEnd: assert(false) # cannot happen + + if eval: +- if filename == nil: ++ if filename == "": + writeHelp() + else: + code = filename + else: + code = +- if filename == nil: ++ if filename == "": + # no filename has been given, so we use stdin + readAll stdin + else: diff --git a/nixpkgs/pkgs/development/nim-packages/spry/python.patch b/nixpkgs/pkgs/development/nim-packages/spry/python.patch new file mode 100644 index 000000000000..565e53c2ddcd --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/spry/python.patch @@ -0,0 +1,43 @@ +diff --git a/src/ispry.nim b/src/ispry.nim +index 23ad6c3..d2cfc89 100644 +--- a/src/ispry.nim ++++ b/src/ispry.nim +@@ -21,7 +21,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath, + spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread, + spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring, + spryvm/sprymodules, spryvm/spryreflect, spryvm/spryblock, spryvm/sprynet, +- spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/sprypython, ++ spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, + spryvm/spryrocksdb + + const Prompt = ">>> " +@@ -63,7 +63,6 @@ proc main() = + + spry.addMemfile() + spry.addThread() +- spry.addPython() + spry.addDebug() + spry.addCompress() + spry.addReflect() +diff --git a/src/spry.nim b/src/spry.nim +index 670a280..cda9027 100644 +--- a/src/spry.nim ++++ b/src/spry.nim +@@ -14,8 +14,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath, + spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread, + spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring, + spryvm/sprymodules, spryvm/spryreflect, spryvm/spryui, spryvm/spryblock, spryvm/sprynet, +- spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb, +- spryvm/sprypython ++ spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb + + var spry = newInterpreter() + +@@ -34,7 +33,6 @@ spry.addOO() + + spry.addMemfile() + spry.addThread() +-spry.addPython() + spry.addDebug() + spry.addCompress() + spry.addReflect() diff --git a/nixpkgs/pkgs/development/nim-packages/spryvm/default.nix b/nixpkgs/pkgs/development/nim-packages/spryvm/default.nix new file mode 100644 index 000000000000..618e78256913 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/spryvm/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub, sqlite }: + +buildNimPackage rec { + pname = "spryvm"; + version = "0.9.3"; + src = fetchFromGitHub { + owner = "gokr"; + repo = pname; + rev = "36c2b56bb194902d33de7bcf70d3041703e107ab"; + hash = "sha256-OxB49ef6qPvSXLsyVl5g2ic/P9MMbF3jRYDWrxNJ0Iw="; + }; + propagatedBuildInputs = [ sqlite ]; + patches = [ ./nil.patch ]; + meta = with lib; + src.meta // { + description = "Spry virtual machine"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/spryvm/nil.patch b/nixpkgs/pkgs/development/nim-packages/spryvm/nil.patch new file mode 100644 index 000000000000..82d42b597fdb --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/spryvm/nil.patch @@ -0,0 +1,21 @@ +diff --git a/spryvm/spryui.nim b/spryvm/spryui.nim +index 37f5329..50440e9 100644 +--- a/spryvm/spryui.nim ++++ b/spryvm/spryui.nim +@@ -140,14 +140,14 @@ proc addUI*(spry: Interpreter) = + nimMeth("openFile"): + var win = WindowNode(evalArgInfix(spry)) + var path = openFile(Window(win.widget)) +- if path.isNil: ++ if path == "": + spry.nilVal + else: + newValue($path) + nimMeth("saveFile"): + var win = WindowNode(evalArgInfix(spry)) + var path = saveFile(Window(win.widget)) +- if path.isNil: ++ if path == "": + spry.nilVal + else: + newValue($path) diff --git a/nixpkgs/pkgs/development/nim-packages/stew/default.nix b/nixpkgs/pkgs/development/nim-packages/stew/default.nix new file mode 100644 index 000000000000..d494e5f879ef --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/stew/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub, snappy }: + +buildNimPackage rec { + pname = "stew"; + version = "0.1.0"; + src = fetchFromGitHub { + owner = "status-im"; + repo = "nim-${pname}"; + rev = "478cc6efdefaabadf0666a3351fb959b78009bcc"; + hash = "sha256-txlTF0zNV5kV4KfE744oB3aVLCfWS9BdoKxUmTQTTRY="; + }; + doCheck = false; + meta = with lib; + src.meta // { + description = + "Backports, standard library candidates and small utilities that don't yet deserve their own repository"; + license = [ lib.licenses.asl20 ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/supersnappy/default.nix b/nixpkgs/pkgs/development/nim-packages/supersnappy/default.nix new file mode 100644 index 000000000000..f2f8205d8286 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/supersnappy/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitHub }: + +fetchFromGitHub { + owner = "guzba"; + repo = "supersnappy"; + rev = "2.1.1"; + sha256 = "03df1qgrbp84swhqy12ansyn951lkaw0kf1arbnki4fkgdnqdamf"; +} diff --git a/nixpkgs/pkgs/development/nim-packages/syndicate/default.nix b/nixpkgs/pkgs/development/nim-packages/syndicate/default.nix new file mode 100644 index 000000000000..e22455ad9098 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/syndicate/default.nix @@ -0,0 +1,19 @@ +{ lib, buildNimPackage, fetchFromGitea, hashlib, preserves }: + +buildNimPackage rec { + pname = "syndicate"; + version = "20230530"; + src = fetchFromGitea { + domain = "git.syndicate-lang.org"; + owner = "ehmry"; + repo = "${pname}-nim"; + rev = version; + hash = "sha256-lUHoMSQwUlz9EDMvpFL9GlrwbwMvZDILSmuakONwe50="; + }; + propagatedBuildInputs = [ hashlib preserves ]; + meta = src.meta // { + description = "Nim implementation of the Syndicated Actor model"; + license = lib.licenses.unlicense; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/taps/default.nix b/nixpkgs/pkgs/development/nim-packages/taps/default.nix new file mode 100644 index 000000000000..ce453dbaa344 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/taps/default.nix @@ -0,0 +1,19 @@ +{ lib, buildNimPackage, fetchFromSourcehut, getdns }: + +buildNimPackage rec { + pname = "taps"; + version = "20230331"; + src = fetchFromSourcehut { + owner = "~ehmry"; + repo = "nim_${pname}"; + rev = version; + hash = "sha256-p2DBJWFwS82oHPq0uMCtZWFbn8GFndEJBjhkHeuPGos="; + }; + propagatedBuildInputs = [ getdns ]; + doCheck = false; + meta = src.meta // { + description = "Transport Services Interface"; + license = lib.licenses.isc; + maintainers = [ lib.maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/tempfile/default.nix b/nixpkgs/pkgs/development/nim-packages/tempfile/default.nix new file mode 100644 index 000000000000..d23ea05cb322 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/tempfile/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "tempfile"; + version = "0.1.7"; + src = fetchFromGitHub { + owner = "OpenSystemsLab"; + repo = "${pname}.nim"; + rev = version; + hash = "sha256-08vvHXVxL1mAcpMzosaHd2FupTJrKJP5JaVcgxN4oYE="; + }; + doCheck = false; # impure + meta = with lib; + src.meta // { + description = "Temporary files and folders"; + license = [ lib.licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + mainProgram = "tempfile_seeder"; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/tkrzw/default.nix b/nixpkgs/pkgs/development/nim-packages/tkrzw/default.nix new file mode 100644 index 000000000000..9f88067f988a --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/tkrzw/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromSourcehut, pkg-config, tkrzw }: + +buildNimPackage rec { + pname = "tkrzw"; + version = "20220922"; + src = fetchFromSourcehut { + owner = "~ehmry"; + repo = "nim-${pname}"; + rev = version; + hash = "sha256-66rUuK+wUrqs1QYjteZcaIrfg+LHQNcR+XM+EtVuGsA="; + }; + propagatedNativeBuildInputs = [ pkg-config ]; + propagatedBuildInputs = [ tkrzw ]; + meta = with lib; + src.meta // { + description = "Nim wrappers over some of the Tkrzw C++ library"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/ui/default.nix b/nixpkgs/pkgs/development/nim-packages/ui/default.nix new file mode 100644 index 000000000000..0af0665bfa65 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/ui/default.nix @@ -0,0 +1,23 @@ +{ lib, buildNimPackage, fetchFromGitHub, libui, pkg-config }: + +buildNimPackage rec { + pname = "ui"; + version = "0.9.4"; + src = fetchFromGitHub { + owner = "nim-lang"; + repo = pname; + rev = "547e1cea8e9fb68c138c422b77af0a3152e50210"; + hash = "sha256-rcvC0TO1r2zU7WEYfcsi/qX+nRITwKj7Fkqd4fHgTwU="; + }; + propagatedBuildInputs = [ libui ]; + propagatedNativeBuildInputs = [ pkg-config ]; + postPatch = '' + echo {.passL: r\"$(pkg-config --libs libui)\".} >> ui/rawui.nim + ''; + meta = with lib; + src.meta // { + description = "Nim bindings to libui"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/unicodedb/default.nix b/nixpkgs/pkgs/development/nim-packages/unicodedb/default.nix new file mode 100644 index 000000000000..cbc897a1fc4e --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/unicodedb/default.nix @@ -0,0 +1,18 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage (finalAttrs: { + pname = "unicodedb"; + version = "0.12.0"; + src = fetchFromGitHub { + owner = "nitely"; + repo = "nim-unicodedb"; + rev = finalAttrs.version; + hash = "sha256-vtksdRTWH/Fjp1z8KSFGjgn1SRUxtUZwlOa+vMuB53A="; + }; + meta = finalAttrs.src.meta // { + description = "Unicode Character Database (UCD, tr44) for Nim"; + homepage = "https://github.com/nitely/nim-unicodedb"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ehmry ]; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/unicodeplus/default.nix b/nixpkgs/pkgs/development/nim-packages/unicodeplus/default.nix new file mode 100644 index 000000000000..8efb1fee7ec0 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/unicodeplus/default.nix @@ -0,0 +1,19 @@ +{ lib, buildNimPackage, fetchFromGitHub, segmentation }: + +buildNimPackage (finalAttrs: { + pname = "unicodeplus"; + version = "0.8.0"; + src = fetchFromGitHub { + owner = "nitely"; + repo = "nim-unicodeplus"; + rev = "v${finalAttrs.version}"; + sha256 = "181wzwivfgplkqn5r4crhnaqgsza7x6fi23i86djb2dxvm7v6qxk"; + }; + propagatedBuildInputs = [ segmentation ]; + meta = finalAttrs.src.meta // { + description = "Common unicode operations"; + homepage = "https://github.com/nitely/nim-unicodeplus"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ehmry ]; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/vmath/default.nix b/nixpkgs/pkgs/development/nim-packages/vmath/default.nix new file mode 100644 index 000000000000..4a19a9c49bb3 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/vmath/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "vmath"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "treeform"; + repo = pname; + rev = version; + hash = "sha256-/v0lQIOMogTxFRtbssziW4W6VhMDepM6Si8igLgcx30="; + }; + + doCheck = !stdenv.isDarwin; + + meta = with lib; + src.meta // { + description = "Math vector library for graphical things"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/ws/default.nix b/nixpkgs/pkgs/development/nim-packages/ws/default.nix new file mode 100644 index 000000000000..704d6d936bda --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/ws/default.nix @@ -0,0 +1,21 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage (finalAttrs: { + pname = "ws"; + version = "0.5.0"; + src = fetchFromGitHub { + owner = "treeform"; + repo = "ws"; + rev = finalAttrs.version; + hash = "sha256-3wVi6CjMTjcc5MJEozJN6W3TuYDb53w2MDCsv6lMH0k="; + }; + preCheck = '' + rm tests/test_ws.nim tests/test_timeout.nim + ''; + meta = finalAttrs.src.meta // { + description = "Simple WebSocket library for Nim"; + homepage = "https://github.com/treeform/ws"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ehmry ]; + }; +}) diff --git a/nixpkgs/pkgs/development/nim-packages/x11/default.nix b/nixpkgs/pkgs/development/nim-packages/x11/default.nix new file mode 100644 index 000000000000..85c5a18a381d --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/x11/default.nix @@ -0,0 +1,20 @@ +{ lib, buildNimPackage, fetchFromGitHub }: + +buildNimPackage rec { + pname = "x11"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "nim-lang"; + repo = pname; + rev = "2093a4c01360cbb5dd33ab79fd4056e148b53ca1"; + hash = "sha256-2XRyXiBxAc9Zx/w0zRBHRZ240qww0FJvIvOKZ8YH50A="; + }; + + meta = with lib; + src.meta // { + description = "X11 library for nim"; + license = [ licenses.mit ]; + maintainers = [ maintainers.marcusramberg ]; + }; +} diff --git a/nixpkgs/pkgs/development/nim-packages/zippy/default.nix b/nixpkgs/pkgs/development/nim-packages/zippy/default.nix new file mode 100644 index 000000000000..c89d030288e5 --- /dev/null +++ b/nixpkgs/pkgs/development/nim-packages/zippy/default.nix @@ -0,0 +1,22 @@ +{ lib, buildNimPackage, fetchFromGitHub, unzip }: + +buildNimPackage rec { + pname = "zippy"; + version = "0.7.3"; + + nativeBuildInputs = [ unzip ]; + + src = fetchFromGitHub { + owner = "guzba"; + repo = pname; + rev = version; + hash = "sha256-w64ENRyP3mNTtESSt7CDDxUkjYSfziNVVedkO4HIuJ8="; + }; + + meta = with lib; + src.meta // { + description = "Pure Nim implementation of deflate, zlib, gzip and zip"; + license = [ licenses.mit ]; + maintainers = [ maintainers.ehmry ]; + }; +} |