Hello Matthias,
Am 07.02.26 um 14:28 schrieb Matthias Brennwald:
KiCad changes files without reason or authorization.
Steps to reproduce:
* Open a KiCad file
* Double click on an element to see details
* Close the file
* --> KiCad asks if the changes should be saved, although nothing was
changed.
* --> User clicks "Discard" to prevent changing the file anyway.
* --> The file gets changed (new timestamp), although KiCad was told to not
change it.
Has the content of the file changed? I guess no.
If not than the behavior isn't issue and a normal thing that is happen
due how filesystems do work.
An example.
Given we create a new file 'testfile.txt' and we look at the low level
file properties which are created by the tool stat.
$ echo -e "Current time: $(date '+%F %H:%M:%S.%N')\n" && echo "test data" >
testfile.txt && LANG= stat testfile.txt
Current time: 2026-03-15 10:04:20.999735307 <--- The output of the date call.
File: testfile.txt <--- The output of the stat command.
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 259,3 Inode: 1713991 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ carsten) Gid: ( 1000/ carsten)
Access: 2026-03-15 10:04:20.997852751 +0200
Modify: 2026-03-15 10:04:20.997852751 +0200
Change: 2026-03-15 10:04:20.997852751 +0200
Birth: 2026-03-15 10:04:20.997852751 +0200
You can see the file is created with four dedicated values about
different times. As the file was just created all the parameters have
the same timestamp!
Now do just using the cat command, means we will read the file.
$ echo -e "Current time: $(date '+%F %H:%M:%S.%N')\n" && cat testfile.txt &&
LANG= stat testfile.txt
Current time: 2026-03-15 10:04:49.073065930
test data
File: testfile.txt
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 259,3 Inode: 1713991 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ carsten) Gid: ( 1000/ carsten)
Access: 2026-03-15 10:04:49.071198334 +0200 <-----
Modify: 2026-03-15 10:04:20.997852751 +0200
Change: 2026-03-15 10:04:20.997852751 +0200
Birth: 2026-03-15 10:04:20.997852751 +0200
The timestamp has only changed for the Access entry as it was a read
only access.
Now open the file in a editor, change nothing but save the file while
closing.
$ echo -e "Current time: $(date '+%F %H:%M:%S.%N')\n" && LANG= stat testfile.txt
Current time: 2026-03-15 10:07:46.117659114
File: testfile.txt
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 259,3 Inode: 1713991 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ carsten) Gid: ( 1000/ carsten)
Access: 2026-03-15 10:05:07.320072273 +0200 <-----
Modify: 2026-03-15 10:05:05.683993944 +0200 <-----
Change: 2026-03-15 10:05:05.687994136 +0200 <-----
Birth: 2026-03-15 10:04:20.997852751 +0200
Now it is visible that the timestamp for the Access, Modify and Change
has been changed. But the content is still the same.
If you still think the behavior is a bug you will need to address this
issue upstream, Debian is not doing any special things, we do just
package the upstream data with just some minor modifications about the
apptsream data and the string of the Release version.
Further information can be found also here.
https://linuxconfig.org/check-file-access-and-modification-time-in-linux
--
Regards
Carsten