diff options
Diffstat (limited to 'third_party')
18 files changed, 1 insertions, 128 deletions
diff --git a/third_party/nix/doc/manual/command-ref/conf-file.xml b/third_party/nix/doc/manual/command-ref/conf-file.xml index 48dce7c950d9..4a5400b1936f 100644 --- a/third_party/nix/doc/manual/command-ref/conf-file.xml +++ b/third_party/nix/doc/manual/command-ref/conf-file.xml @@ -598,37 +598,6 @@ password <replaceable>my-password</replaceable> </varlistentry> - <varlistentry xml:id="conf-plugin-files"> - <term><literal>plugin-files</literal></term> - <listitem> - <para> - A list of plugin files to be loaded by Nix. Each of these - files will be dlopened by Nix, allowing them to affect - execution through static initialization. In particular, these - plugins may construct static instances of RegisterPrimOp to - add new primops or constants to the expression language, - RegisterStoreImplementation to add new store implementations, - RegisterCommand to add new subcommands to the - <literal>nix</literal> command, and RegisterSetting to add new - nix config settings. See the constructors for those types for - more details. - </para> - <para> - Since these files are loaded into the same address space as - Nix itself, they must be DSOs compatible with the instance of - Nix running at the time (i.e. compiled against the same - headers, not linked to any incompatible libraries). They - should not be linked to any Nix libs directly, as those will - be available already at load time. - </para> - <para> - If an entry in the list is a directory, all files in the - directory are loaded as plugins (non-recursively). - </para> - </listitem> - - </varlistentry> - <varlistentry xml:id="conf-pre-build-hook"><term><literal>pre-build-hook</literal></term> <listitem> diff --git a/third_party/nix/src/build-remote/build-remote.cc b/third_party/nix/src/build-remote/build-remote.cc index 2c7e6dbab8cf..82ac2014ef75 100644 --- a/third_party/nix/src/build-remote/build-remote.cc +++ b/third_party/nix/src/build-remote/build-remote.cc @@ -68,8 +68,6 @@ static int _main(int argc, char* argv[]) { settings.maxBuildJobs.set("1"); // hack to make tests with local?root= work - initPlugins(); - auto store = openStore().cast<LocalStore>(); /* It would be more appropriate to use $XDG_RUNTIME_DIR, since diff --git a/third_party/nix/src/libexpr/primops.hh b/third_party/nix/src/libexpr/primops.hh index 45f63a541911..388066f39010 100644 --- a/third_party/nix/src/libexpr/primops.hh +++ b/third_party/nix/src/libexpr/primops.hh @@ -14,9 +14,7 @@ struct RegisterPrimOp { RegisterPrimOp(const std::string& name, size_t arity, PrimOpFun fun); }; -/* These primops are disabled without enableNativeCode, but plugins - may wish to use them in limited contexts without globally enabling - them. */ +/* These primops are disabled without enableNativeCode */ /* Load a ValueInitializer from a DSO and return whatever it initializes */ void prim_importNative(EvalState& state, const Pos& pos, Value** args, Value& v); diff --git a/third_party/nix/src/libmain/shared.hh b/third_party/nix/src/libmain/shared.hh index b749b572c560..60a9e302ff5a 100644 --- a/third_party/nix/src/libmain/shared.hh +++ b/third_party/nix/src/libmain/shared.hh @@ -22,7 +22,6 @@ class Exit : public std::exception { int handleExceptions(const std::string& programName, const std::function<void()>& fun); -/* Don't forget to call initPlugins() after settings are initialized! */ void initNix(); void parseCmdLine( diff --git a/third_party/nix/src/libstore/globals.cc b/third_party/nix/src/libstore/globals.cc index dccf8d9815a7..06ef3dd0402a 100644 --- a/third_party/nix/src/libstore/globals.cc +++ b/third_party/nix/src/libstore/globals.cc @@ -167,35 +167,4 @@ void MaxBuildJobsSetting::set(const std::string& str) { } } -void initPlugins() { - for (const auto& pluginFile : settings.pluginFiles.get()) { - Paths pluginFiles; - try { - auto ents = readDirectory(pluginFile); - for (const auto& ent : ents) { - pluginFiles.emplace_back(pluginFile + "/" + ent.name); - } - } catch (SysError& e) { - if (e.errNo != ENOTDIR) { - throw; - } - pluginFiles.emplace_back(pluginFile); - } - for (const auto& file : pluginFiles) { - /* handle is purposefully leaked as there may be state in the - DSO needed by the action of the plugin. */ - void* handle = dlopen(file.c_str(), RTLD_LAZY | RTLD_LOCAL); - if (handle == nullptr) { - throw Error("could not dynamically open plugin file '%s': %s", file, - dlerror()); - } - } - } - - /* Since plugins can add settings, try to re-apply previously - unknown settings. */ - globalConfig.reapplyUnknownSettings(); - globalConfig.warnUnknownSettings(); -} - } // namespace nix diff --git a/third_party/nix/src/libstore/globals.hh b/third_party/nix/src/libstore/globals.hh index 567ec6c42b6c..7799ff28502f 100644 --- a/third_party/nix/src/libstore/globals.hh +++ b/third_party/nix/src/libstore/globals.hh @@ -452,21 +452,11 @@ class Settings : public Config { Setting<uint64_t> minFreeCheckInterval{ this, 5, "min-free-check-interval", "Number of seconds between checking free disk space."}; - - Setting<Paths> pluginFiles{ - this, - {}, - "plugin-files", - "Plugins to dynamically load at nix initialization time."}; }; // FIXME: don't use a global variable. extern Settings settings; -/* This should be called after settings are initialized, but before - anything else */ -void initPlugins(); - void loadConfFile(); extern const std::string nixVersion; diff --git a/third_party/nix/src/nix-build/nix-build.cc b/third_party/nix/src/nix-build/nix-build.cc index 7e3ee11d68f0..7ebb14e1f319 100644 --- a/third_party/nix/src/nix-build/nix-build.cc +++ b/third_party/nix/src/nix-build/nix-build.cc @@ -255,8 +255,6 @@ static void _main(int argc, char** argv) { myArgs.parseCmdline(args); - initPlugins(); - if (packages && fromArgs) { throw UsageError("'-p' and '-E' are mutually exclusive"); } diff --git a/third_party/nix/src/nix-channel/nix-channel.cc b/third_party/nix/src/nix-channel/nix-channel.cc index 87cc0a1fea87..837fb861d309 100644 --- a/third_party/nix/src/nix-channel/nix-channel.cc +++ b/third_party/nix/src/nix-channel/nix-channel.cc @@ -214,8 +214,6 @@ static int _main(int argc, char** argv) { return true; }); - initPlugins(); - switch (cmd) { case cNone: throw UsageError("no command specified"); diff --git a/third_party/nix/src/nix-collect-garbage/nix-collect-garbage.cc b/third_party/nix/src/nix-collect-garbage/nix-collect-garbage.cc index f6897595cbab..ac8c7d9399fb 100644 --- a/third_party/nix/src/nix-collect-garbage/nix-collect-garbage.cc +++ b/third_party/nix/src/nix-collect-garbage/nix-collect-garbage.cc @@ -82,8 +82,6 @@ static int _main(int argc, char** argv) { return true; }); - initPlugins(); - auto profilesDir = settings.nixStateDir + "/profiles"; if (removeOld) { removeOldGenerations(profilesDir); diff --git a/third_party/nix/src/nix-copy-closure/nix-copy-closure.cc b/third_party/nix/src/nix-copy-closure/nix-copy-closure.cc index d4ea6a85eca7..3dbe29f2240f 100644 --- a/third_party/nix/src/nix-copy-closure/nix-copy-closure.cc +++ b/third_party/nix/src/nix-copy-closure/nix-copy-closure.cc @@ -48,8 +48,6 @@ static int _main(int argc, char** argv) { return true; }); - initPlugins(); - if (sshHost.empty()) { throw UsageError("no host name specified"); } diff --git a/third_party/nix/src/nix-daemon/nix-daemon.cc b/third_party/nix/src/nix-daemon/nix-daemon.cc index 5296199380b3..dc5295821f84 100644 --- a/third_party/nix/src/nix-daemon/nix-daemon.cc +++ b/third_party/nix/src/nix-daemon/nix-daemon.cc @@ -1107,8 +1107,6 @@ static int _main(int argc, char** argv) { return true; }); - initPlugins(); - if (stdio) { if (getStoreType() == tDaemon) { /* Forward on this connection to the real daemon */ diff --git a/third_party/nix/src/nix-env/nix-env.cc b/third_party/nix/src/nix-env/nix-env.cc index 820b8cbcaf02..585cfbe3f722 100644 --- a/third_party/nix/src/nix-env/nix-env.cc +++ b/third_party/nix/src/nix-env/nix-env.cc @@ -1496,8 +1496,6 @@ static int _main(int argc, char** argv) { myArgs.parseCmdline(argvToStrings(argc, argv)); - initPlugins(); - if (op == nullptr) { throw UsageError("no operation specified"); } diff --git a/third_party/nix/src/nix-instantiate/nix-instantiate.cc b/third_party/nix/src/nix-instantiate/nix-instantiate.cc index 6c77a96ebc07..be96943b1234 100644 --- a/third_party/nix/src/nix-instantiate/nix-instantiate.cc +++ b/third_party/nix/src/nix-instantiate/nix-instantiate.cc @@ -153,8 +153,6 @@ static int _main(int argc, char** argv) { myArgs.parseCmdline(argvToStrings(argc, argv)); - initPlugins(); - if (evalOnly && !wantsReadWrite) { settings.readOnlyMode = true; } diff --git a/third_party/nix/src/nix-prefetch-url/nix-prefetch-url.cc b/third_party/nix/src/nix-prefetch-url/nix-prefetch-url.cc index b9de2e826b8e..dc0dce345bcd 100644 --- a/third_party/nix/src/nix-prefetch-url/nix-prefetch-url.cc +++ b/third_party/nix/src/nix-prefetch-url/nix-prefetch-url.cc @@ -100,8 +100,6 @@ static int _main(int argc, char** argv) { myArgs.parseCmdline(argvToStrings(argc, argv)); - initPlugins(); - if (args.size() > 2) { throw UsageError("too many arguments"); } diff --git a/third_party/nix/src/nix-store/nix-store.cc b/third_party/nix/src/nix-store/nix-store.cc index a642780b72e8..7729945b1307 100644 --- a/third_party/nix/src/nix-store/nix-store.cc +++ b/third_party/nix/src/nix-store/nix-store.cc @@ -1276,8 +1276,6 @@ static int _main(int argc, char** argv) { return true; }); - initPlugins(); - if (op == nullptr) { throw UsageError("no operation specified"); } diff --git a/third_party/nix/src/nix/main.cc b/third_party/nix/src/nix/main.cc index a7b6e71bbe93..5536aac53298 100644 --- a/third_party/nix/src/nix/main.cc +++ b/third_party/nix/src/nix/main.cc @@ -144,8 +144,6 @@ void mainWrapped(int argc, char** argv) { args.parseCmdline(argvToStrings(argc, argv)); - initPlugins(); - if (!args.command) { args.showHelpAndExit(); } diff --git a/third_party/nix/tests/plugins.sh b/third_party/nix/tests/plugins.sh deleted file mode 100644 index 4b1baeddce32..000000000000 --- a/third_party/nix/tests/plugins.sh +++ /dev/null @@ -1,7 +0,0 @@ -source common.sh - -set -o pipefail - -res=$(nix eval '(builtins.anotherNull)' --option setting-set true --option plugin-files $PWD/plugins/libplugintest*) - -[ "$res"x = "nullx" ] diff --git a/third_party/nix/tests/plugins/plugintest.cc b/third_party/nix/tests/plugins/plugintest.cc deleted file mode 100644 index 353166cffe3b..000000000000 --- a/third_party/nix/tests/plugins/plugintest.cc +++ /dev/null @@ -1,23 +0,0 @@ -#include "libutil/config.hh" -#include "primops.hh" - -using namespace nix; - -struct MySettings : Config { - Setting<bool> settingSet{this, false, "setting-set", - "Whether the plugin-defined setting was set"}; -}; - -MySettings mySettings; - -static GlobalConfig::Register rs(&mySettings); - -static void prim_anotherNull(EvalState& state, const Pos& pos, Value** args, - Value& v) { - if (mySettings.settingSet) - mkNull(v); - else - mkBool(v, false); -} - -static RegisterPrimOp rp("anotherNull", 0, prim_anotherNull); |