diff -Nurp grav-src/system/src/Grav/Common/Cache.php grav-src-nixos/system/src/Grav/Common/Cache.php --- grav-src/system/src/Grav/Common/Cache.php 1970-01-01 01:00:01.000000000 +0100 +++ grav-src-nixos/system/src/Grav/Common/Cache.php 2024-11-22 15:46:47.481175690 +0100 @@ -517,7 +517,7 @@ class Cache extends Getters $output[] = ''; - if (($remove === 'all' || $remove === 'standard') && file_exists($user_config)) { + if (($remove === 'all' || $remove === 'standard') && file_exists($user_config) && is_writable($user_config)) { touch($user_config); $output[] = '<red>Touched: </red>' . $user_config; @@ -544,7 +544,7 @@ class Cache extends Getters { $user_config = USER_DIR . 'config/system.yaml'; - if (file_exists($user_config)) { + if (file_exists($user_config) && is_writable($user_config)) { touch($user_config); } diff -Nurp grav-src/system/src/Grav/Console/Gpm/SelfupgradeCommand.php grav-src-nixos/system/src/Grav/Console/Gpm/SelfupgradeCommand.php --- grav-src/system/src/Grav/Console/Gpm/SelfupgradeCommand.php 1970-01-01 01:00:01.000000000 +0100 +++ grav-src-nixos/system/src/Grav/Console/Gpm/SelfupgradeCommand.php 2024-11-22 16:05:13.752536788 +0100 @@ -94,6 +94,11 @@ class SelfupgradeCommand extends GpmComm $input = $this->getInput(); $io = $this->getIO(); + # Adopted from Arch package. + $io->error('Grav cannot be upgraded this way as it has been installed with a distribution package.'); + $io->writeln('Use Nix to upgrade.'); + return 1; + if (!class_exists(ZipArchive::class)) { $io->title('GPM Self Upgrade'); $io->error('php-zip extension needs to be enabled!');