diff --git a/.gitignore b/.gitignore index 1411ef7e1c7c..3bd5fe66df49 100644 --- a/.gitignore +++ b/.gitignore @@ -5,13 +5,13 @@ .idea/ .vscode/ outputs/ -result result-* -source/ /doc/NEWS.html /doc/NEWS.txt /doc/manual.html /doc/manual.pdf +/result +/source/ .version-suffix .DS_Store diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 1115935011ca..ac8b3965dbaa 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -12709,6 +12709,12 @@ githubId = 139251; name = "Tom Hunger"; }; + tejasag = { + name = "Tejas Agarwal"; + email = "tejasagarwalbly@gmail.com"; + github = "tejasag"; + githubId = 67542663; + }; telotortium = { email = "rirelan@gmail.com"; github = "telotortium"; diff --git a/pkgs/applications/editors/neovim/build-neovim-plugin.nix b/pkgs/applications/editors/neovim/build-neovim-plugin.nix new file mode 100644 index 000000000000..cb69b5ecacdb --- /dev/null +++ b/pkgs/applications/editors/neovim/build-neovim-plugin.nix @@ -0,0 +1,35 @@ +{ lib +, stdenv +, buildVimPluginFrom2Nix +, buildLuarocksPackage +, lua51Packages +, toVimPlugin +}: +let + # sanitizeDerivationName + normalizeName = lib.replaceStrings [ "." ] [ "-" ]; +in + + # function to create vim plugin from lua packages that are already packaged in + # luaPackages + { + # the lua attribute name that matches this vim plugin. Both should be equal + # in the majority of cases but we make it possible to have different attribute names + luaAttr ? (normalizeName attrs.pname) + , ... + }@attrs: + let + originalLuaDrv = lua51Packages.${luaAttr}; + luaDrv = lua51Packages.lib.overrideLuarocks originalLuaDrv (drv: { + extraConfig = '' + -- to create a flat hierarchy + lua_modules_path = "lua" + ''; + }); + finalDrv = toVimPlugin (luaDrv.overrideAttrs(oa: { + nativeBuildInputs = oa.nativeBuildInputs or [] ++ [ + lua51Packages.luarocksMoveDataFolder + ]; + })); + in + finalDrv diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix index ee0abb582891..16b19f63d2d3 100644 --- a/pkgs/applications/editors/neovim/utils.nix +++ b/pkgs/applications/editors/neovim/utils.nix @@ -1,4 +1,6 @@ { lib +, buildLuarocksPackage +, callPackage , vimUtils , nodejs , neovim-unwrapped @@ -184,4 +186,9 @@ in { inherit makeNeovimConfig; inherit legacyWrapper; + + buildNeovimPluginFrom2Nix = callPackage ./build-neovim-plugin.nix { + inherit (vimUtils) buildVimPluginFrom2Nix toVimPlugin; + inherit buildLuarocksPackage; + }; } diff --git a/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix b/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix index 6b4cf674ac5a..9e7bb1be2d5c 100644 --- a/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix +++ b/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix @@ -4,6 +4,7 @@ , vimCommandCheckHook , vimGenDocHook , neovimRequireCheckHook +, toVimPlugin }: rec { @@ -23,11 +24,6 @@ rec { let drv = stdenv.mkDerivation (attrs // { name = namePrefix + name; - # dont move the doc folder since vim expects it - forceShare= [ "man" "info" ]; - - nativeBuildInputs = attrs.nativeBuildInputs or [] - ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ vimCommandCheckHook vimGenDocHook ]; inherit unpackPhase configurePhase buildPhase addonInfo preInstall postInstall; installPhase = '' @@ -40,9 +36,9 @@ rec { runHook postInstall ''; }); - in drv.overrideAttrs(oa: { + in toVimPlugin(drv.overrideAttrs(oa: { rtp = "${drv}"; - }); + })); buildVimPluginFrom2Nix = attrs: buildVimPlugin ({ # vim plugins may override this diff --git a/pkgs/applications/editors/vim/plugins/default.nix b/pkgs/applications/editors/vim/plugins/default.nix index c6ef409d637b..17e03b7dd76d 100644 --- a/pkgs/applications/editors/vim/plugins/default.nix +++ b/pkgs/applications/editors/vim/plugins/default.nix @@ -1,5 +1,8 @@ # TODO check that no license information gets lost -{ callPackage, config, lib, vimUtils, vim, darwin, llvmPackages, luaPackages }: +{ callPackage, config, lib, vimUtils, vim, darwin, llvmPackages +, neovimUtils +, luaPackages +}: let @@ -8,24 +11,11 @@ let inherit (lib) extends; - initialPackages = self: { - # Convert derivation to a vim plugin. - toVimPlugin = drv: - drv.overrideAttrs(oldAttrs: { - - nativeBuildInputs = oldAttrs.nativeBuildInputs or [] ++ [ - vimGenDocHook - vimCommandCheckHook - ]; - passthru = (oldAttrs.passthru or {}) // { - vimPlugin = true; - }; - }); - }; + initialPackages = self: { }; plugins = callPackage ./generated.nix { inherit buildVimPluginFrom2Nix; - inherit (vimUtils) buildNeovimPluginFrom2Nix; + inherit (neovimUtils) buildNeovimPluginFrom2Nix; }; # TL;DR diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index dac92940b6de..b11d09063f8a 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -2527,7 +2527,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lua/diagnostic-nvim/"; }; - diffview-nvim = buildNeovimPluginFrom2Nix { + diffview-nvim = buildVimPluginFrom2Nix { pname = "diffview.nvim"; version = "2022-06-09"; src = fetchFromGitHub { @@ -3154,7 +3154,7 @@ final: prev: meta.homepage = "https://github.com/ruifm/gitlinker.nvim/"; }; - gitsigns-nvim = buildNeovimPluginFrom2Nix { + gitsigns-nvim = buildVimPluginFrom2Nix { pname = "gitsigns.nvim"; version = "2022-05-26"; src = fetchFromGitHub { @@ -4282,7 +4282,7 @@ final: prev: meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/"; }; - marks-nvim = buildNeovimPluginFrom2Nix { + marks-nvim = buildVimPluginFrom2Nix { pname = "marks.nvim"; version = "2022-05-13"; src = fetchFromGitHub { @@ -5110,7 +5110,7 @@ final: prev: meta.homepage = "https://github.com/RRethy/nvim-base16/"; }; - nvim-biscuits = buildNeovimPluginFrom2Nix { + nvim-biscuits = buildVimPluginFrom2Nix { pname = "nvim-biscuits"; version = "2022-05-31"; src = fetchFromGitHub { diff --git a/pkgs/applications/editors/vim/plugins/vim-utils.nix b/pkgs/applications/editors/vim/plugins/vim-utils.nix index 1170771c62a1..4c6bb5d0da0f 100644 --- a/pkgs/applications/editors/vim/plugins/vim-utils.nix +++ b/pkgs/applications/editors/vim/plugins/vim-utils.nix @@ -205,9 +205,6 @@ let ln -sf ${plugin}/${rtpPath} $out/pack/${packageName}/${dir}/${lib.getName plugin} ''; - link = pluginPath: if hasLuaModule pluginPath - then linkLuaPlugin pluginPath - else linkVimlPlugin pluginPath; packageLinks = packageName: {start ? [], opt ? []}: let @@ -225,9 +222,9 @@ let [ "mkdir -p $out/pack/${packageName}/start" ] # To avoid confusion, even dependencies of optional plugins are added # to `start` (except if they are explicitly listed as optional plugins). - ++ (builtins.map (x: link x packageName "start") allPlugins) + ++ (builtins.map (x: linkVimlPlugin x packageName "start") allPlugins) ++ ["mkdir -p $out/pack/${packageName}/opt"] - ++ (builtins.map (x: link x packageName "opt") opt) + ++ (builtins.map (x: linkVimlPlugin x packageName "opt") opt) # Assemble all python3 dependencies into a single `site-packages` to avoid doing recursive dependency collection # for each plugin. # This directory is only for python import search path, and will not slow down the startup time. @@ -290,14 +287,14 @@ let /* vim-plug is an extremely popular vim plugin manager. */ plugImpl = - ('' + '' source ${vimPlugins.vim-plug.rtp}/plug.vim silent! call plug#begin('/dev/null') '' + (lib.concatMapStringsSep "\n" (pkg: "Plug '${pkg.rtp}'") plug.plugins) + '' call plug#end() - ''); + ''; /* vim-addon-manager = VAM @@ -533,16 +530,11 @@ rec { } ./neovim-require-check-hook.sh) {}; inherit (import ./build-vim-plugin.nix { - inherit lib stdenv rtpPath vim vimGenDocHook vimCommandCheckHook neovimRequireCheckHook; + inherit lib stdenv rtpPath vim vimGenDocHook + toVimPlugin vimCommandCheckHook neovimRequireCheckHook; }) buildVimPlugin buildVimPluginFrom2Nix; - # TODO placeholder to ease working on automatic plugin detection - # this should be a luarocks "flat" install with appropriate vim hooks - buildNeovimPluginFrom2Nix = attrs: let drv = (buildVimPluginFrom2Nix attrs); in drv.overrideAttrs(oa: { - nativeBuildInputs = oa.nativeBuildInputs ++ [ neovimRequireCheckHook ]; - }); - # used to figure out which python dependencies etc. neovim needs requiredPlugins = { packages ? {}, @@ -566,4 +558,21 @@ rec { nativePlugins = lib.concatMap ({start?[], opt?[], knownPlugins?vimPlugins}: start++opt) nativePluginsConfigs; in nativePlugins ++ nonNativePlugins; + + toVimPlugin = drv: + drv.overrideAttrs(oldAttrs: { + # dont move the "doc" folder since vim expects it + forceShare = [ "man" "info" ]; + + nativeBuildInputs = oldAttrs.nativeBuildInputs or [] + ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ + vimCommandCheckHook vimGenDocHook + # many neovim plugins keep using buildVimPlugin + neovimRequireCheckHook + ]; + + passthru = (oldAttrs.passthru or {}) // { + vimPlugin = true; + }; + }); } diff --git a/pkgs/development/interpreters/lua-5/hooks/default.nix b/pkgs/development/interpreters/lua-5/hooks/default.nix index 61261ca3d046..fc92c59bb910 100644 --- a/pkgs/development/interpreters/lua-5/hooks/default.nix +++ b/pkgs/development/interpreters/lua-5/hooks/default.nix @@ -29,4 +29,12 @@ in { name = "luarocks-check-hook"; deps = [ luarocks ]; } ./luarocks-check-hook.sh) {}; + + # luarocks installs data in a non-overridable location. Until a proper luarocks patch, + # we move the files around ourselves + luarocksMoveDataFolder = callPackage ({ }: + makeSetupHook { + name = "luarocks-move-rock"; + deps = [ ]; + } ./luarocks-move-data.sh) {}; } diff --git a/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh b/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh new file mode 100644 index 000000000000..f0b56178f01e --- /dev/null +++ b/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh @@ -0,0 +1,15 @@ +# luarocks installs data in a non-overridable location. Until a proper luarocks patch, +# we move the files around ourselves +echo "Sourcing luarocks-move-data-hook.sh" + +luarocksMoveDataHook () { + echo "Executing luarocksMoveDataHook" + if [ -d "$out/$rocksSubdir" ]; then + cp -rfv "$out/$rocksSubdir/$pname/$version/." "$out" + fi + + echo "Finished executing luarocksMoveDataHook" +} + +echo "Using luarocksMoveDataHook" +preDistPhases+=" luarocksMoveDataHook" diff --git a/pkgs/development/interpreters/oak/default.nix b/pkgs/development/interpreters/oak/default.nix new file mode 100644 index 000000000000..29b476e7c7e3 --- /dev/null +++ b/pkgs/development/interpreters/oak/default.nix @@ -0,0 +1,25 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "oak"; + version = "0.2"; + + src = fetchFromGitHub { + owner = "thesephist"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-00UanINtrFyjQWiAw1ucB4eEODMr9+wT+99Zy2Oc1j4="; + }; + + vendorSha256 = "sha256-iQtb3zNa57nB6x4InVPw7FCmW7XPw5yuz0OcfASXPD8="; + + meta = with lib; { + description = "Expressive, simple, dynamic programming language"; + homepage = "https://oaklang.org/"; + license = licenses.mit; + maintainers = with maintainers; [ tejasag ]; + }; +} diff --git a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix index 07d817d22938..1bf2078375ac 100644 --- a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix +++ b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix @@ -2,7 +2,7 @@ buildDunePackage rec { pname = "ppx_yojson_conv_lib"; - version = "0.14.0"; + version = "0.15.0"; useDune2 = true; @@ -12,7 +12,7 @@ buildDunePackage rec { owner = "janestreet"; repo = pname; rev = "v${version}"; - sha256 = "12s3xshayy1f8cp9lk6zqwnw60n7cdap55gkksz5w65gdd8bfxmf"; + sha256 = "sha256-Hpg4AKAe7Q5P5UkBpH+5l1nZbIVA2Dr1Q30D4zkrjGo="; }; propagatedBuildInputs = [ yojson ]; diff --git a/pkgs/development/python-modules/aiomusiccast/default.nix b/pkgs/development/python-modules/aiomusiccast/default.nix index 02d7f565c3c1..1ca2cdcb519b 100644 --- a/pkgs/development/python-modules/aiomusiccast/default.nix +++ b/pkgs/development/python-modules/aiomusiccast/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "aiomusiccast"; - version = "0.14.3"; + version = "0.14.4"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -16,8 +16,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "vigonotion"; repo = "aiomusiccast"; - rev = version; - hash = "sha256-ELdNxeU9dajWr4VeOyuvNrSi7B+ImVJM/BlZsw3tcKE="; + rev = "refs/tags/${version}"; + hash = "sha256-vSf4Fcioz+ZrXCaFQQbHzhz7vOknCOEFJXduXJlO/wE="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix index 6acc5b3bf92f..2208558e4bd1 100644 --- a/pkgs/development/python-modules/pyspark/default.nix +++ b/pkgs/development/python-modules/pyspark/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "pyspark"; - version = "3.2.1"; + version = "3.3.0"; src = fetchPypi { inherit pname version; - sha256 = "sha256-C4E1kmLsbprHjDUzROfeAmAn0UDG3vlJ/w2Aq3D4mlQ="; + sha256 = "sha256-fr6OlQVke00STVqC/KYN/TiRAhz4rWxeyId37uzpLPc="; }; # pypandoc is broken with pandoc2, so we just lose docs. diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix index 0016fa76bf4f..5cfc12b5225b 100644 --- a/pkgs/development/python-modules/weconnect-mqtt/default.nix +++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "weconnect-mqtt"; - version = "0.34.0"; + version = "0.35.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -18,8 +18,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "tillsteinbach"; repo = "WeConnect-mqtt"; - rev = "v${version}"; - hash = "sha256-Gj+hXgGkOqKnZ4W2iZ9P6JN3lYMoREMSF/wfGwLL/tc="; + rev = "refs/tags/v${version}"; + hash = "sha256-3WFD99ujaQzJrsKCc9i0zwNEzRjgkGCwUXSip+6/158="; }; propagatedBuildInputs = [ diff --git a/pkgs/tools/virtualization/nixos-shell/default.nix b/pkgs/tools/virtualization/nixos-shell/default.nix index 4e54a8db6bf4..1847dc42147a 100644 --- a/pkgs/tools/virtualization/nixos-shell/default.nix +++ b/pkgs/tools/virtualization/nixos-shell/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "nixos-shell"; - version = "0.2.2"; + version = "1.0.0"; src = fetchFromGitHub { owner = "Mic92"; repo = "nixos-shell"; rev = version; - sha256 = "sha256-a3NJJv7MscAXhIdr07gEAQDYX0Qgb6ax5E8zSdCIgE8="; + sha256 = "sha256-whHBBcthLhEIy2VTaioRZOSZoZR7pk4Qr4DVxwU0r9Y="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d1bead391d89..63539f16d9aa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14486,6 +14486,8 @@ with pkgs; ngn-k = callPackage ../development/interpreters/ngn-k { }; + oak = callPackage ../development/interpreters/oak { }; + obb = callPackage ../development/interpreters/clojure/obb.nix { }; octave = callPackage ../development/interpreters/octave { @@ -30484,7 +30486,9 @@ with pkgs; lua = luajit; }; - neovimUtils = callPackage ../applications/editors/neovim/utils.nix { }; + neovimUtils = callPackage ../applications/editors/neovim/utils.nix { + inherit (lua51Packages) buildLuarocksPackage; + }; neovim = wrapNeovim neovim-unwrapped { }; neovim-qt-unwrapped = libsForQt5.callPackage ../applications/editors/neovim/neovim-qt.nix { }; diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index 385aef164c2d..cb963bb1b177 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -50,7 +50,7 @@ in getLuaCPath = drv: getPath drv luaLib.luaCPathList; inherit (callPackage ../development/interpreters/lua-5/hooks { inherit (args) lib;}) - luarocksCheckHook lua-setup-hook; + luarocksMoveDataFolder luarocksCheckHook lua-setup-hook; inherit lua callPackage; inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;