From nobody Tue Feb 10 21:14:41 2026 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f9Z814pKSz6S3JK for ; Tue, 10 Feb 2026 21:14:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9Z8142Klz3MZ2 for ; Tue, 10 Feb 2026 21:14:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770758081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8EoH73cPyCBn122/q3WvKj0TLdeBiTcTkubB5ph34BY=; b=IDrW9BxUT8O4jSQwxLAIw+m9H1TWCEQNs2boz91gckJEj6NVJMhoRjwJi4PZofTfQxHjHh JvMEvzDwpe2tetoFW7Z8QHjZyAqPhReFKF4cf0N0GfXS3YToIArSoL7BYHGOBKkS1FhGNC Dl6HZl4cYHymkO5Ns2VuzqbEOR1jVXyGlIb77iu4qbAMkHALWP7SY1HnBRXyzLLGQEqC5T Ppq8xv9B2GzVpzBZKaztjIPErzD0j5E5Wk8R0mthqgsxKJrGUGg1jKoathfmxyMTJ3aud2 lqo/IxOwGOZdVb2KmfhibSElc3nPfBV8+7b5iPZB1aP2aX7nwU9lYFBxzZzjYA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770758081; a=rsa-sha256; cv=none; b=UwJCIYwfOLjQRvsa17K+tiW2DWBXFPlLEWNG6KEGhXcNgzhcwo6WIMtudI+cQPc3mraH3W trk4Tm3PHd77yU2BfYriHjCQfBKTscxVT6v2WZh1p9puJiPqThKFFI9RF++gDMDSo0hYxN oYhVB+JNnTRqQYjE0oHZo6u0+7nClqCJ6WhsAL3l5TtX7AXfeCEPZ8mALsk9zwT7ariBQj 0DlJEBMnjvD/qWeFCJ3DzHY0bbAGM+MaJcwGY0TdAYNxy4AJ40hy83+i19GXCBIDX/v1Kp yX7w8IXyRvZLimoQDmv4KoSWb2Z/0Bph0ALQvawEZBn8+7nkFKtb7hepapKAkw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770758081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8EoH73cPyCBn122/q3WvKj0TLdeBiTcTkubB5ph34BY=; b=ZUMbUBVOKrlYOp1aYsrzeC8XHh7CN8iHtSCn5WBC0xqqzMuREuvKDsK0pkGQ6OLH3S2YWn ZLviyISaFXi9fmB0Y9nA0FaFu0eTRybcOR6PeahmnaX1m1yIrEc4eOnVSSbEE+00JpI5a5 vNtJ8s4eYWrLyrbEafVgI/ig2yiZOgk5ZXpzA2nU/st1sonNQN9c3qVc06s0q62cAiYRIV A261/+cBrwY2YNpIM3v+qIqXznWP0oCV+uDrofRWp7fcbx1P+b9nSXcLYimHNa4E7w3Dzp Po0AU5I4/+I5yk8BCs6QPXUHOqMxNX9hn6/5yKV9nA2kcNe3XaCBL2ZFIoOPeQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9Z813Zhzz4k3 for ; Tue, 10 Feb 2026 21:14:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c18e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 21:14:41 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Dave Marker From: Adam Weinberger Subject: git: e5b44f14fc84 - main - devel/lua-language-server: Update to 3.17.1 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adamw X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e5b44f14fc84d510678492bba5135c7357863686 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 21:14:41 +0000 Message-Id: <698b9fc1.1c18e.4aa5f205@gitrepo.freebsd.org> The branch main has been updated by adamw: URL: https://cgit.FreeBSD.org/ports/commit/?id=e5b44f14fc84d510678492bba5135c7357863686 commit e5b44f14fc84d510678492bba5135c7357863686 Author: Dave Marker AuthorDate: 2026-02-10 21:03:44 +0000 Commit: Adam Weinberger CommitDate: 2026-02-10 21:14:37 +0000 devel/lua-language-server: Update to 3.17.1 By design, LuaLS wants to create a `.luarc.json` in your project root. This file defines important things, like module paths, global symbols, etc. For those of us addicted to Neovim, LuaLS is all about making the most of our nvim configs. Operating on the assumption that everybody likes the same thing we do, this port now supplies a (STRONGLY) recommended luarc in $EXAMPLESDIR, and a pkg-message pointing to it. Also, testing during build phase has been disabled. There are some flaky tests that can lead to failures when the system is under load. Reported by: Dave Marker Approved by: maintainer (Dave Marker) Differential Revision: https://reviews.freebsd.org/D54657 --- devel/lua-language-server/Makefile | 53 +++++++++++++--------- devel/lua-language-server/distinfo | 26 +++++------ .../lua-language-server/files/neovim.luarc.json.in | 20 ++++++++ .../files/patch-3rd_bee.lua_compile_common.lua | 8 ++-- .../patch-3rd_luamake_compile_ninja_freebsd.ninja | 8 ++-- devel/lua-language-server/files/pkg-message.in | 12 +++++ 6 files changed, 85 insertions(+), 42 deletions(-) diff --git a/devel/lua-language-server/Makefile b/devel/lua-language-server/Makefile index 032c47e016af..ee3441295a61 100644 --- a/devel/lua-language-server/Makefile +++ b/devel/lua-language-server/Makefile @@ -1,5 +1,5 @@ PORTNAME= lua-language-server -DISTVERSION= 3.16.1 +DISTVERSION= 3.17.1 PORTEPOCH= 1 CATEGORIES= devel @@ -10,23 +10,23 @@ WWW= https://luals.github.io LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -USES= dos2unix lua:build ninja:make -DOS2UNIX_REGEX= .*\.(cpp|h|lua|md|obj) +USES= dos2unix inotify ninja:make +DOS2UNIX_REGEX= .*\.(cpp|h|json|lua|md|obj) USE_GITHUB= yes GH_ACCOUNT= LuaLS # autogenerated with: # submodules2tuple -v -b $DISTVERSION https://github.com/LuaLS/lua-language-server # But then you must distinguish the 2 `bee.lua` manually. -GH_TUPLE= CppCXY:EmmyLuaCodeStyle:8500f3af:emmyluacodestyle/3rd/EmmyLuaCodeStyle \ - actboy168:bee.lua:ee7efd07:beelua/3rd/bee.lua \ - actboy168:json.lua:f94860ef:jsonlua/3rd/json.lua \ +GH_TUPLE= CppCXY:EmmyLuaCodeStyle:8c4289b7:emmyluacodestyle/3rd/EmmyLuaCodeStyle \ + actboy168:bee.lua:f55b6988:beelua/3rd/bee.lua \ + actboy168:json.lua:08095fd2:jsonlua/3rd/json.lua \ actboy168:ltest:0d2d81f:ltest/3rd/json.lua/test/ltest \ love2d-community:love-api:85363928:loveapi/3rd/love-api \ bjornbytes:lovr-docs:e89c753e:lovrdocs/3rd/lovr-api \ sqmedeiros:lpeglabel:912b0b9e:lpeglabel/3rd/lpeglabel \ - actboy168:luamake:a83fa224:luamake/3rd/luamake \ - actboy168:bee.lua:973fd8a:beelua_luamake/3rd/luamake/bee.lua \ + actboy168:luamake:4c4bd16c:luamake/3rd/luamake \ + actboy168:bee.lua:466c4f0:beelua_luamake/3rd/luamake/bee.lua \ LuaCATS:cocos4.0:c0b2259e:cocos40/meta/3rd/Cocos4.0 \ LuaCATS:defold:05379b40:defold/meta/3rd/Defold \ LuaCATS:jass:80d85cbb:jass/meta/3rd/Jass \ @@ -42,7 +42,7 @@ GH_TUPLE= CppCXY:EmmyLuaCodeStyle:8500f3af:emmyluacodestyle/3rd/EmmyLuaCodeStyle LuaCATS:luv:3615eb12:luv/meta/3rd/luv \ LuaCATS:skynet:afa6717a:skynet/meta/3rd/skynet -SUB_FILES= lua-language-server +SUB_FILES= lua-language-server pkg-message PLIST_FILES= bin/lua-language-server \ ${DATADIR_REL}/bin/lua-language-server \ @@ -52,11 +52,24 @@ PLIST_FILES= bin/lua-language-server \ PORTDATA= locale meta script +PORTEXAMPLES= neovim.luarc.json + +OPTIONS_DEFINE= EXAMPLES + +EXAMPLES_SUB_FILES= neovim.luarc.json + +.include + +# `luamake' has its own syntax for linking of inotify library +.if defined(INOTIFY_PORT) +LM_INOTIFY_LINK= links = "inotify", +.endif + post-patch: ${REINPLACE_CMD} -e 's|%LOCALBASE%|${LOCALBASE}|' ${WRKSRC}/3rd/bee.lua/compile/common.lua - ${REINPLACE_CMD} -e 's|%INOTIFY%|${_INOTIFY_}|' ${WRKSRC}/3rd/bee.lua/compile/common.lua + ${REINPLACE_CMD} -e 's|%LM_INOTIFY_LINK%|${LM_INOTIFY_LINK}|' ${WRKSRC}/3rd/bee.lua/compile/common.lua ${REINPLACE_CMD} -e 's|%LOCALBASE%|${LOCALBASE}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja - ${REINPLACE_CMD} -e 's|%LINK_INOTIFY%|${_LINK_INOTIFY_}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja + ${REINPLACE_CMD} -e 's|%INOTIFY_LIB%|${INOTIFY_LIB}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja ${REINPLACE_CMD} -e 's|%WRKDIR%|${WRKDIR}|' ${WRKSRC}/3rd/luamake/bee.lua/test/test.lua ${REINPLACE_CMD} -e 's|%WRKDIR%|${WRKDIR}|' ${WRKSRC}/3rd/bee.lua/test/test.lua ${REINPLACE_CMD} -e 's|%NINJA_CMD%|${NINJA_CMD}|' ${WRKSRC}/3rd/luamake/compile/build.sh @@ -64,7 +77,7 @@ post-patch: # `luamake all` instead of `luamake rebuild` because there is a flaky test do-build: - cd ${WRKSRC}/3rd/luamake && compile/build.sh + cd ${WRKSRC}/3rd/luamake && compile/build.sh notest cd ${WRKSRC} && 3rd/luamake/luamake all do-install: @@ -76,16 +89,14 @@ do-install: ${INSTALL_DATA} ${WRKSRC}/main.lua ${STAGEDIR}${DATADIR} cd ${WRKSRC} && ${COPYTREE_SHARE} "locale meta script" ${STAGEDIR}${DATADIR} +do-install-EXAMPLES-on: + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + ${INSTALL_DATA} ${WRKDIR}/neovim.luarc.json ${STAGEDIR}${EXAMPLESDIR} + # you may hit https://github.com/LuaLS/lua-language-server/issues/2896 +# also an incorrect test for bee (in both versions) doing thread.sleep do-test: + cd ${WRKSRC}/3rd/luamake && build/freebsd/bin/luamake bee.lua/test/test.lua cd ${WRKSRC} && 3rd/luamake/luamake unit-test -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1500050 -LIB_DEPENDS+= libinotify.so:devel/libinotify -_INOTIFY_= links = "inotify", -_LINK_INOTIFY_= -linotify -.endif - -.include +.include diff --git a/devel/lua-language-server/distinfo b/devel/lua-language-server/distinfo index 6c6f32a4ff88..4c5344bef4b3 100644 --- a/devel/lua-language-server/distinfo +++ b/devel/lua-language-server/distinfo @@ -1,12 +1,12 @@ -TIMESTAMP = 1765405060 -SHA256 (LuaLS-lua-language-server-3.16.1_GH0.tar.gz) = d16d0fa977b6f167fa936f779814335d409658dd5c255f9f9b0fd296fbba4330 -SIZE (LuaLS-lua-language-server-3.16.1_GH0.tar.gz) = 3088143 -SHA256 (CppCXY-EmmyLuaCodeStyle-8500f3af_GH0.tar.gz) = 989a85a7b77077ff723837868e268cf378c81abcf37da95e86b56d9b1aa16739 -SIZE (CppCXY-EmmyLuaCodeStyle-8500f3af_GH0.tar.gz) = 5421604 -SHA256 (actboy168-bee.lua-ee7efd07_GH0.tar.gz) = 4e4eb3fefc17b4ae3237c78e2859f1fb0e7e78767f9940866a92a842620af72d -SIZE (actboy168-bee.lua-ee7efd07_GH0.tar.gz) = 813240 -SHA256 (actboy168-json.lua-f94860ef_GH0.tar.gz) = aaccd6b09a8b337da6b8c0ee93c4c7ba790bcdbc3b296540e445fc4eb8a9ecb8 -SIZE (actboy168-json.lua-f94860ef_GH0.tar.gz) = 27721 +TIMESTAMP = 1768956693 +SHA256 (LuaLS-lua-language-server-3.17.1_GH0.tar.gz) = 0946c926ba47a7299c4ff9b2dd0a068dd8ebd7697646812f7731176174b4886f +SIZE (LuaLS-lua-language-server-3.17.1_GH0.tar.gz) = 3101345 +SHA256 (CppCXY-EmmyLuaCodeStyle-8c4289b7_GH0.tar.gz) = b37d54f3f86eaa5fbdf988b756767d3e7cb9628b9e0d3e8598353eed73a19fe4 +SIZE (CppCXY-EmmyLuaCodeStyle-8c4289b7_GH0.tar.gz) = 5424097 +SHA256 (actboy168-bee.lua-f55b6988_GH0.tar.gz) = 0438c3f87b3d81e3443fc64c0a792c4d4453a45f24a18b4d489db2f8ad611dd6 +SIZE (actboy168-bee.lua-f55b6988_GH0.tar.gz) = 814471 +SHA256 (actboy168-json.lua-08095fd2_GH0.tar.gz) = 70f3436ded730def337fb5859fe152cdfe816a9591a137615750229cbf121d32 +SIZE (actboy168-json.lua-08095fd2_GH0.tar.gz) = 27720 SHA256 (actboy168-ltest-0d2d81f_GH0.tar.gz) = 180c0f0cfbd69211859eb59a9288542ab03bcef447d3bde59b1b06f811c11bbe SIZE (actboy168-ltest-0d2d81f_GH0.tar.gz) = 9069 SHA256 (love2d-community-love-api-85363928_GH0.tar.gz) = 5b21e1e2c1ba6841c2a2865002a4a45890a7d6c146596e502ce0dbea7bbe6919 @@ -15,10 +15,10 @@ SHA256 (bjornbytes-lovr-docs-e89c753e_GH0.tar.gz) = a21fd33355c5518dda1e1e75c2d7 SIZE (bjornbytes-lovr-docs-e89c753e_GH0.tar.gz) = 18279829 SHA256 (sqmedeiros-lpeglabel-912b0b9e_GH0.tar.gz) = e1d3784369f895d417d2e2c7f89725ea8a9133e4584f91681bf877aadd71922d SIZE (sqmedeiros-lpeglabel-912b0b9e_GH0.tar.gz) = 83079 -SHA256 (actboy168-luamake-a83fa224_GH0.tar.gz) = c101a9d759c6c869a2033ed1249a9df455f1f54d088c8c627c73286ee2212959 -SIZE (actboy168-luamake-a83fa224_GH0.tar.gz) = 78683 -SHA256 (actboy168-bee.lua-973fd8a_GH0.tar.gz) = 302fb5874e69ca9dd20f2a31c2b36468bbd8401c0b92f618b54efb1d27402a4c -SIZE (actboy168-bee.lua-973fd8a_GH0.tar.gz) = 812356 +SHA256 (actboy168-luamake-4c4bd16c_GH0.tar.gz) = bcfff1713bbcfeaddefe8838c9ff0bc78eb97e90f01fbb1287c6030ebbc91b76 +SIZE (actboy168-luamake-4c4bd16c_GH0.tar.gz) = 78930 +SHA256 (actboy168-bee.lua-466c4f0_GH0.tar.gz) = 1d82a12f1d29724b613fee0eff54ae419aa73930c5733fd5bff3ce8c907796d6 +SIZE (actboy168-bee.lua-466c4f0_GH0.tar.gz) = 813551 SHA256 (LuaCATS-cocos4.0-c0b2259e_GH0.tar.gz) = 72b03a152e82e8ee08ca6477a52ea98273a4d9f29f2595d47a8d1b878605483e SIZE (LuaCATS-cocos4.0-c0b2259e_GH0.tar.gz) = 165303 SHA256 (LuaCATS-defold-05379b40_GH0.tar.gz) = b8ab1a5043543425c8fe3c9d8e2a42a4ee450fd0322fcdb9f41d0cdfe5461b71 diff --git a/devel/lua-language-server/files/neovim.luarc.json.in b/devel/lua-language-server/files/neovim.luarc.json.in new file mode 100644 index 000000000000..1cf1f690f693 --- /dev/null +++ b/devel/lua-language-server/files/neovim.luarc.json.in @@ -0,0 +1,20 @@ +@comment | Allows editors/neovim, when configured to use lua-language-server, +@comment | to check against the correct version of lua and find neovim specific +@comment | symbols for its own lua configuration. +{ + "schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json", + "runtime": { + "version": "LuaJIT", + "path": [ + "?.lua", + "?/init.lua" + ], + }, + "workspace": { + "library": [ + "$VIMRUNTIME", + "${3rd}/luv/library", + ], + "checkThirdParty": false + } +} diff --git a/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua b/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua index 7a2493f85406..1dee63605160 100644 --- a/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua +++ b/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua @@ -1,6 +1,6 @@ ---- 3rd/bee.lua/compile/common.lua.orig 2025-12-03 14:18:20 UTC +--- 3rd/bee.lua/compile/common.lua.orig 2026-01-10 05:26:24 UTC +++ 3rd/bee.lua/compile/common.lua -@@ -207,7 +207,7 @@ lm:source_set "source_bee" { +@@ -210,7 +210,7 @@ lm:source_set "source_bee" { } }, freebsd = { @@ -9,13 +9,13 @@ sources = need { "bsd", "posix", -@@ -291,8 +291,8 @@ lm:source_set "source_bee" { +@@ -294,8 +294,8 @@ lm:source_set "source_bee" { ldflags = "-pthread" }, freebsd = { - links = "inotify", - linkdirs = "/usr/local/lib", -+ %INOTIFY% ++ %LM_INOTIFY_LINK% + linkdirs = "%LOCALBASE%/lib", ldflags = "-pthread" }, diff --git a/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja b/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja index 99b26383fb2c..65683bf52268 100644 --- a/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja +++ b/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja @@ -1,9 +1,9 @@ ---- 3rd/luamake/compile/ninja/freebsd.ninja.orig 2025-10-29 08:38:58 UTC +--- 3rd/luamake/compile/ninja/freebsd.ninja.orig 2026-01-10 05:26:24 UTC +++ 3rd/luamake/compile/ninja/freebsd.ninja @@ -30,7 +30,7 @@ rule cxx_source_bee_2 rule cxx_source_bee_2 command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ - -fvisibility=hidden -Ibee.lua -Ibee.lua/3rd/lua54 -isystem $ + -fvisibility=hidden -Ibee.lua -Ibee.lua/3rd/lua55 -isystem $ - /usr/local/include -DNDEBUG -o $out -c $in + %LOCALBASE%/include -DNDEBUG -o $out -c $in description = Compile C++ $out @@ -14,7 +14,7 @@ bee.lua/bootstrap/main.cpp rule link_bootstrap - command = $cc $in -o $out -Wl,-E -linotify -L/usr/local/lib -pthread -lm $ -+ command = $cc $in -o $out -Wl,-E %LINK_INOTIFY% -L%LOCALBASE%/lib -pthread -lm $ ++ command = $cc $in -o $out -Wl,-E %INOTIFY_LIB% -L%LOCALBASE%/lib -pthread -lm $ -Wl,--push-state,-Bstatic -lstdc++ -Wl,--pop-state -Wl,-S,-x description = Link Exe $out rule copy @@ -23,7 +23,7 @@ pool = console rule link_luamake - command = $cc $in -o $out -linotify -L/usr/local/lib -pthread -lm $ -+ command = $cc $in -o $out %LINK_INOTIFY% -L%LOCALBASE%/lib -pthread -lm $ ++ command = $cc $in -o $out %INOTIFY_LIB% -L%LOCALBASE%/lib -pthread -lm $ -lstdc++ -Wl,-S,-x description = Link Exe $out rule build_luamake_test diff --git a/devel/lua-language-server/files/pkg-message.in b/devel/lua-language-server/files/pkg-message.in new file mode 100644 index 000000000000..5cec463c378f --- /dev/null +++ b/devel/lua-language-server/files/pkg-message.in @@ -0,0 +1,12 @@ +[ +{ type: install + message: <