]> git.ipfire.org Git - thirdparty/mkosi.git/commit
mkosi-initrd: handle symlinks under weak-updates 3702/head
authorAntonio Alvarez Feijoo <antonio.feijoo@suse.com>
Wed, 23 Apr 2025 14:50:28 +0000 (16:50 +0200)
committerAntonio Alvarez Feijoo <antonio.feijoo@suse.com>
Wed, 23 Apr 2025 14:50:28 +0000 (16:50 +0200)
commit565b905aa12e3e97b784e75c0b8fe8a2c722ce6a
treeb3fdf81c48f1028fe2083489c6c52661d0655e9e
parenta83ccc10c74cb507a22c6df5feba473d0ef08ec7
mkosi-initrd: handle symlinks under weak-updates

The weak-updates folder of the current kernel directory may contain symlinks to
an old kernel:

```
$ tree /usr/lib/modules/6.14.1-1-default/weak-updates/
/usr/lib/modules/6.14.1-1-default/weak-updates/
└── updates
    ├── hdaps.ko -> /usr/lib/modules/6.14.0-1-default/updates/hdaps.ko
    ├── nvidia-open-driver-G06-signed-570.133.07
    │   ├── nvidia-drm.ko.zst -> /usr/lib/modules/6.14.0-1-default/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia-drm.ko.zst
    │   ├── nvidia.ko.zst -> /usr/lib/modules/6.14.0-1-default/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia.ko.zst
    │   ├── nvidia-modeset.ko.zst -> /usr/lib/modules/6.14.0-1-default/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia-modeset.ko.zst
    │   └── nvidia-uvm.ko.zst -> /usr/lib/modules/6.14.0-1-default/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia-uvm.ko.zst
    ├── thinkpad_ec.ko -> /usr/lib/modules/6.14.0-1-default/updates/thinkpad_ec.ko
    └── tp_smapi.ko -> /usr/lib/modules/6.14.0-1-default/updates/tp_smapi.ko
```

These symlinks to a different kernel directory make mkosi to fail:

```
‣  Applying kernel module filters
‣   Running modinfo to fetch kernel module dependencies
modinfo: ERROR: could not get modinfo from 'nvidia': No such file or directory
libkmod: ERROR: kmod_module_parse_depline: ctx=0x55cda95602a0 path=/usr/lib/modules/6.14.1-1-default/weak-updates/updates/thinkpad_ec.ko error=No such file or directory
modinfo: ERROR: could not get modinfo from 'hdaps': No such file or directory
libkmod: ERROR: kmod_module_parse_depline: ctx=0x55cda95602a0 path=/usr/lib/modules/6.14.1-1-default/weak-updates/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia-modeset.ko.zst error=No such file or directory
modinfo: ERROR: could not get modinfo from 'nvidia_drm': No such file or directory
libkmod: ERROR: kmod_module_parse_depline: ctx=0x55cda95602a0 path=/usr/lib/modules/6.14.1-1-default/weak-updates/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia.ko.zst error=No such file or directory
modinfo: ERROR: could not get modinfo from 'nvidia_uvm': No such file or directory
modinfo: ERROR: could not get modinfo from 'thinkpad_ec': No such file or directory
libkmod: ERROR: kmod_module_parse_depline: ctx=0x55cda95602a0 path=/usr/lib/modules/6.14.1-1-default/weak-updates/updates/nvidia-open-driver-G06-signed-570.133.07/nvidia.ko.zst error=No such file or directory
modinfo: ERROR: could not get modinfo from 'nvidia_modeset': No such file or directory
libkmod: ERROR: kmod_module_parse_depline: ctx=0x55cda95602a0 path=/usr/lib/modules/6.14.1-1-default/weak-updates/updates/thinkpad_ec.ko error=No such file or directory
modinfo: ERROR: could not get modinfo from 'tp_smapi': No such file or directory
```

Also, do not run `depmod` for this old kernel directory that contains only the
`update` directory.
mkosi/__init__.py
mkosi/initrd.py
mkosi/kmod.py