yelninei wrote 1 months ago
(address . bug-guix@gnu.org)
When a system wide database exists (at /var/cache/guix/locate/db.sqlite) 'guix locate --clear' invoked as an unprivileged user tries to write to it and fail.
Steps to reproduce:
- sudo mkdir -p /var/cache/guix/locate
- sudo touch /var/cache/guix/locate/db.sqlite
- guix locate --clear
Observe the exception:
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Throw to key `sqlite-error' with args `(sqlite-exec 8 "attempt to write a readonly database")'.
I think the issue is that the 'suitable-database' procedure does not get passed the CREATE?
parameter (indicating that we want a writable db) when '--clear' is given.
I discovered this because this caused the guix-locate.sh test to fail in an normal checkout.
The db in /var/cache/guix/locate/db.sqlite is created and updated via the package-database-service-type.
Thanks.