mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 05:31:22 +00:00
nixos/sks: Fix another regression from ab5dcc7068
The two directories KDB and PTree do not exist before the SKS DB is build for the first time. If /var/db/sks is empty and the module is enabled via "services.sks.enable = true;" the following error will occur: ...-unit-script-sks-db-pre-start[xxx]: ln: failed to create symbolic link 'KDB/DB_CONFIG': No such file or directory To avoid this both links have to be created after the DB is build. Note: Creating the directories manually might be better but the initial build might be skipped as a result: unit-script-sks-db-pre-start[xxxxx]: KeyDB directory already exists. Exiting. unit-script-sks-db-pre-start[xxxxx]: PTree directory already exists. Exiting.
This commit is contained in:
parent
9dd1bbc9f3
commit
6852c080d8
|
@ -116,20 +116,22 @@ in {
|
|||
${lib.optionalString (cfg.webroot != null)
|
||||
"ln -sfT \"${cfg.webroot}\" web"}
|
||||
mkdir -p dump
|
||||
# Check that both database configs are symlinks before overwriting them
|
||||
if [ -e KDB/DB_CONFIG ] && [ ! -L KDB/DB_CONFIG ]; then
|
||||
echo "KDB/DB_CONFIG exists but is not a symlink." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -e PTree/DB_CONFIG ] && [ ! -L PTree/DB_CONFIG ]; then
|
||||
echo "PTree/DB_CONFIG exists but is not a symlink." >&2
|
||||
exit 1
|
||||
fi
|
||||
ln -sf ${dbConfig} KDB/DB_CONFIG
|
||||
ln -sf ${dbConfig} PTree/DB_CONFIG
|
||||
${sksPkg}/bin/sks build dump/*.gpg -n 10 -cache 100 || true #*/
|
||||
${sksPkg}/bin/sks cleandb || true
|
||||
${sksPkg}/bin/sks pbuild -cache 20 -ptree_cache 70 || true
|
||||
# Check that both database configs are symlinks before overwriting them
|
||||
# TODO: The initial build will be without DB_CONFIG, but this will
|
||||
# hopefully not cause any significant problems. It might be better to
|
||||
# create both directories manually but we have to check that this does
|
||||
# not affect the initial build of the DB.
|
||||
for CONFIG_FILE in KDB/DB_CONFIG PTree/DB_CONFIG; do
|
||||
if [ -e $CONFIG_FILE ] && [ ! -L $CONFIG_FILE ]; then
|
||||
echo "$CONFIG_FILE exists but is not a symlink." >&2
|
||||
echo "Please remove $PWD/$CONFIG_FILE manually to continue." >&2
|
||||
exit 1
|
||||
fi
|
||||
ln -sf ${dbConfig} $CONFIG_FILE
|
||||
done
|
||||
'';
|
||||
serviceConfig = {
|
||||
WorkingDirectory = "~";
|
||||
|
|
Loading…
Reference in a new issue