Commit graph

30 commits

Author SHA1 Message Date
Gerd v. Egidy 815ae32dde fix parsing command line option when there is no default yaml file at all 2022-06-06 12:36:16 +02:00
Francois Dupoux cfcfd6dd7a Merge branch 'lua-config-once' into 'main'
execute sysrescue-configuration.lua only once

See merge request systemrescue/systemrescue-sources!193
2022-05-09 11:26:49 +00:00
Gerd v. Egidy e87660beeb execute sysrescue-configuration.lua only once
Before this patch sysrescue-configuration.lua was executed twice each boot:
(1) during initramfs stage (2) in the regular system as sysrescue-configuration.service

While in theory both runs should create the same output, this isn't guaranteed and
differences could appear for example because of network issues. Finding and debugging
these is difficult because the output of sysrescue-configuration.lua created during
initramfs isn't available anymore when the final system is running.

This patch lets sysrescue-configuration.lua just run once during initramfs. The
output JSON file is then written to the new tmpfs mounted dir /run/archiso/config/.
This dir is also made the new default location for sysrescue-effective-config.json.

A symlink from /etc/sysrescue/sysrescue-effective-config.json to the new location
is created for compatibility with previous releases.
2022-04-25 20:31:18 +02:00
Gerd v. Egidy b11a052e69 change logic of the sysrescuecfg boot command line option: merge instead of replace
When you set a "sysrescuecfg" option on the boot command line before this change,
only the files given on the boot command line were read, not the files in the
sysrescue.d dir. But previous versions of sysrescue-configuration.lua had a set of
built-in default values, these were still used.

Current sysrescue-configuration.lua does not include default values anymore, they
are now all in 100-defaults.yaml. So it is better to always read the default values
from the sysrescue.d dir and just merge files given with the sysrescuecfg option
additionally, with a higher priority.

The sysrescuecfg now also allows absolute paths for local files. When using relative
paths, the common sysrescue.d dirs are prefixed. In this case the file will usually
be loaded again, but at a higher priority.
2022-04-24 01:52:43 +02:00
Gerd v. Egidy 24529bbb58 change yaml config loading logic to full merge
Previously when loading a YAML config, it overrode single values on the second hierarchy level.
But on all deeper levels new values were completely overwritten. This was inconsistent and poses
a problem for config entries that use these levels, like the ca-trust or the in-development autoterminal.

This change implements full merging of dictionaries on all levels to solve this. Values in files later
in precedence overwrite previous values. If the the old and the new config values are both dictionaries,
then the hierarchy levels are merged down recursively.

You can remove a previously existing dict entry again in a later file by assigning it an empty value.

Also fix handling of invalid YAMLs: ignore them instead of aborting execution
2022-04-23 23:18:23 +02:00
Francois Dupoux 770fc6bf15 Update check-binaries.sh script with new custom packages 2022-04-10 18:58:54 +01:00
Gerd v. Egidy a100257d96 Add script and config.yaml parameter for late-loading of SystemRescueModules 2022-03-27 14:07:38 +00:00
Francois Dupoux 860df60dab Fix the type of the default definition of parameter "ar_attempts" (#266) 2022-02-23 07:19:31 +00:00
Francois Dupoux c15d70c558 Added support for loading remote yaml configuration files over http/https (#254) 2022-01-30 09:17:14 +00:00
fdupoux 21bd2294db Update exit status if there are errors in /usr/bin/sysrescue-configuration.lua 2022-01-29 17:59:54 +00:00
Francois Dupoux 0f0d899552 Allow to use option sysrescuecfg to restrict which local yaml config files to process (#254) 2022-01-29 12:34:03 +00:00
fdupoux 520b80e65e Improve processing of options passed on the boot command line 2022-01-28 21:50:17 +00:00
Francois Dupoux 35bd8314f3 Use generic logic for overriding config entries from values in yaml config files (#251) 2022-01-28 20:34:23 +00:00
Francois Dupoux ca6bcd6548 Implement the primary configuration processing script in lua (#251) 2022-01-26 20:07:53 +00:00
Gerd v. Egidy 89b721e142 add ldd check for modesetting_drv.so too
modesetting_drv.so is the library that links to libgbm.so. We not only want
that libgbm.so has all dependecies satisfied, but also the lib that needs
libgbm.so in the first place.
2021-12-31 11:53:00 +01:00
fdupoux a00ea8d566 Update /usr/bin/check-binaries.sh to reflect the current custom packages 2021-12-31 08:10:34 +00:00
fdupoux 77dbde7a8b Add dump/restore utilities (#226) 2021-11-07 11:16:00 +00:00
fdupoux c2392e7516 Use sub-command in cowpacman2srm to specify whether to do prepare or create 2020-11-09 20:33:58 +00:00
Gerd v. Egidy c6352d8e8b add prepare mode to cowpacman2srm script
-p: prepare mode. Only prepares a directory with all files that would go into the SRM,
    but does not run mksquashfs. This allows further modifications by the user.
    In prepare mode the target file parameter is ignored.
2020-11-08 19:52:17 +01:00
Gerd v. Egidy c1ab9675c5 small runtime improvement to the cowpacman2srm script
This prevents trying to create the directories twice by removing duplicate
entries from the file list. Saves about 3 seconds of runtime when testing
with the "atom" package.
2020-11-08 19:26:15 +01:00
Gerd v. Egidy 3b2eaf953b Add cowpacman2srm script
Create SystemRescueModules (SRM) from pacman packages installed into the COW space

This script is meant to help creating SystemRescueModules (SRM) for SystemRescue.
More info about SRMs and this script can be found at:
https://www.system-rescue.org/Modules/

To use first install all packages you want to have in your SRM with pacman.
Default COW (Copy-On-Write) space is a ramdisk, so you usually don't have to do anything
special except provide enough RAM.
You can also enable any systemd services that are in these packages.

Then call:
cowpacman2srm [-c compalg] [-l complevel] targetfile.srm

Copy the .srm file to archisobasedir (default: "sysresccd") on your boot disk
and add the "loadsrm" boot parameter to SystemRescue.

There is no mechanism to check if a SRM is compatible with the version of SystemRescue
you are trying to run it with. So it is higly recommended to only use this script on
the exact version of SystemRescue you plan to use the SRM with.
2020-11-08 15:29:40 +01:00
fdupoux 1aef61a7ff Check dislocker binaries using check-binaries.sh 2020-10-12 17:52:08 +01:00
fdupoux 23680c2796 Added ntfs-3g-system-compression (#134) 2020-08-09 10:20:38 +01:00
fdupoux e039170e31 Test binaries from custom packages during the build (#133) 2020-08-05 20:21:54 +01:00
Marcos Mello ba6a52de0d Autologin rework
* Passes through PAM (pam_systemd module) via login(1). This sets up
  systemd --user instance, which will create and listen on dbus session socket.

* login(1) is called (via agetty(8)) with -p option, keeping the environment
  pam_systemd configured for the user, most importantly
  DBUS_SESSION_BUS_ADDRESS.

* Thus dbus-launch call in /etc/X11/xinit/xinitrc is unnecessary.

* autologin.conf drop-in configured in the template unit (getty@.service)
  to make autologin work on all virtual consoles.
2020-03-03 20:21:46 -03:00
Marcos Mello f7dca9e0b7 Fix and simplify keymap configuration
Use localectl to set kbd and x11 keymaps.

Order sysresccd-initialize.service before getty-pre.target (pasive target,
pulled in manually) to ensure console keymap is proper configured when
getty@.service runs.

Fixes #74
2020-02-28 10:30:32 -03:00
fdupoux 043890b999 Parameterize architecture in build.sh 2020-02-01 14:28:39 +00:00
fdupoux f2ccb777d7 SystemRescueCd-6.0.2 2019-02-21 21:27:05 +00:00
fdupoux 30483ee7df SystemRescueCd-6.0.1 2019-02-09 14:21:40 +00:00
fdupoux 5a6aec2276 SystemRescueCd-6.0.0 2019-02-02 11:22:52 +00:00