From 5fdf01dbeef1f64f8c446561498d662702451ac1 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 2 Feb 2024 12:01:56 -0700 Subject: [PATCH] Revert "stand/lua: always allow overriding with local config files" This reverts commit d3d0b735571d9562812ce5b343a6e91f7a795dbe. no mail sent out, and the commit message was wrong. Sponsored by: Netflix --- UPDATING | 21 --------------------- stand/defaults/loader.conf | 3 +-- stand/defaults/loader.conf.5 | 32 ++++---------------------------- stand/lua/config.lua | 15 +++------------ stand/lua/config.lua.8 | 8 ++------ 5 files changed, 10 insertions(+), 69 deletions(-) diff --git a/UPDATING b/UPDATING index 33bae2a42b9d..14fae1eb0656 100644 --- a/UPDATING +++ b/UPDATING @@ -27,27 +27,6 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: world, or to merely disable the most expensive debugging functionality at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) -20240202: - Loader now also read configuration files listed in local_loader_conf_files. - Files listed here are the last ones read. And /boot/loader.conf.local was - moved from loader_conf_files to local_loader_conf_files leaving only - loader.conf and device.hints in loader_conf_files by default. - - The following sequencing is applied: - - 1. Bootstrap: - /boot/defaults/loader.conf - - 2. Read loader_conf_files files: - /boot/device.hints - /boot/loader.conf - - 3. Read loader_conf_dirs files: - /boot/loader.conf.d/*.conf - - 4. And finally, rread local_loader_conf_files files: - /boot/loader.conf.local - 20240201: sendmail 8.18.1 has been imported and merged. This version enforces stricter RFC compliance by default, especially with respect to line diff --git a/stand/defaults/loader.conf b/stand/defaults/loader.conf index a5d27b96b6ba..e0062bbc8149 100644 --- a/stand/defaults/loader.conf +++ b/stand/defaults/loader.conf @@ -13,9 +13,8 @@ exec="echo Loading /boot/defaults/loader.conf" kernel="kernel" # /boot sub-directory containing kernel and modules bootfile="kernel" # Kernel name (possibly absolute path) kernel_options="" # Flags to be passed to the kernel -loader_conf_files="/boot/device.hints /boot/loader.conf" +loader_conf_files="/boot/device.hints /boot/loader.conf /boot/loader.conf.local" loader_conf_dirs="/boot/loader.conf.d" -local_loader_conf_files="/boot/loader.conf.local" nextboot_conf="/boot/nextboot.conf" verbose_loading="NO" # Set to YES for verbose loader output diff --git a/stand/defaults/loader.conf.5 b/stand/defaults/loader.conf.5 index e38ad865c288..0d82a3dac9b3 100644 --- a/stand/defaults/loader.conf.5 +++ b/stand/defaults/loader.conf.5 @@ -131,10 +131,6 @@ Space separated list of directories to process for configuration files. The lua-based loader will process files with a .Dq .conf suffix that are placed in these directories. -Files found here are processed after the ones listed in -.Va loader_conf_files -but before the ones found in -.Va local_loader_conf_files . .It Ar loader_conf_files Defines additional configuration files to be processed right after the present file. @@ -142,13 +138,6 @@ present file. should be treated as write-only. One cannot depend on any value remaining in the loader environment or carried over into the kernel environment. -.It Ar local_loader_conf_files -Space separated list of additional configuration files to be processed at last, -i.e., after -.Va loader_conf_files -and -.Va loader_conf_dirs -are processed. .It Ar product_vars When set, must be a space separated list of environment variable names to walk through to guess product information. @@ -285,14 +274,6 @@ default settings can be ignored. The few of them which are important or useful are: .Bl -tag -width bootfile -offset indent -.It Va local_loader_conf_files -.Pq Dq /boot/loader.conf.local -Ensure -.Va loader.conf.local -can always be used to override settings from files found in -.Va loader_conf_files -and -.Va loader_conf_dirs . .It Va bitmap_load .Pq Dq NO If set to @@ -474,18 +455,13 @@ It is not available in the default Forth-based loader. .Sh FILES .Bl -tag -width /boot/defaults/loader.conf -compact .It Pa /boot/defaults/loader.conf -Default settings \(em do not change this file. +default settings \(em do not change this file. .It Pa /boot/loader.conf -User defined settings. +user defined settings. .It Pa /boot/loader.conf.lua -User defined settings written in lua. -.It Pa /boot/loader.conf.d/*.conf -User defined settings split in separate files. -.It Pa /boot/loader.conf.d/*.lua -User defined settings written in lua and split in separate files. +user defined settings written in lua. .It Pa /boot/loader.conf.local -Machine-specific settings for sites with a common loader.conf. Allow to override -settings defined in other files. +machine-specific settings for sites with a common loader.conf. .El .Sh SEE ALSO .Xr kenv 1 , diff --git a/stand/lua/config.lua b/stand/lua/config.lua index 86f5ef6174a2..210bb9338783 100644 --- a/stand/lua/config.lua +++ b/stand/lua/config.lua @@ -630,7 +630,8 @@ function config.readConf(file, loaded_files) return end - local top_level = next(loaded_files) == nil -- Are we the top-level readConf? + -- We'll process loader_conf_dirs at the top-level readConf + local load_conf_dirs = next(loaded_files) == nil print("Loading " .. file) -- The final value of loader_conf_files is not important, so just @@ -655,7 +656,7 @@ function config.readConf(file, loaded_files) end end - if top_level then + if load_conf_dirs then local loader_conf_dirs = getEnv("loader_conf_dirs") -- If product_vars is set, it must be a list of environment variable names @@ -681,7 +682,6 @@ function config.readConf(file, loaded_files) end end - -- Process "loader_conf_dirs" extra-directories if loader_conf_dirs ~= nil then for name in loader_conf_dirs:gmatch("[%w%p]+") do if lfs.attributes(name, "mode") ~= "directory" then @@ -700,15 +700,6 @@ function config.readConf(file, loaded_files) ::nextdir:: end end - - -- Always allow overriding with local config files, e.g., - -- /boot/loader.conf.local. - local local_loader_conf_files = getEnv("local_loader_conf_files") - if local_loader_conf_files then - for name in local_loader_conf_files:gmatch("[%w%p]+") do - config.readConf(name, loaded_files) - end - end end end diff --git a/stand/lua/config.lua.8 b/stand/lua/config.lua.8 index b2b1122285eb..f9896f2aa420 100644 --- a/stand/lua/config.lua.8 +++ b/stand/lua/config.lua.8 @@ -64,13 +64,9 @@ as a configuration file .Po e.g., as .Pa loader.conf .Pc -and then process files listed in the +and then processing files listed in .Ev loader_conf_files -variable. Additionnaly, the top-level call to readConf will process files listed in the -.Ev loader_conf_dirs -and -.Ev local_loader_conf_files -variables +variable .Po see .Xr loader.conf 5 .Pc .