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

Reply via email to