Replacing a package with hard links causes "no hard link target (<target>) in archive"
In postmarketOS we for a while had a mesa-git
package which is just mesa
but tracking the latest git master rather than using a release tarball.
We're now trying to get rid of it so took the mesa
package from Alpine and added replaces=""
statements everywhere.
The upgrade on an existing installation is initiated, but mesa-dri-gallium
fails to install properly with the following messages:
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/etnaviv_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/exynos_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/hx8357d_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/ili9225_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/ili9341_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/imx-drm_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/ingenic-drm_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/kgsl_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/kms_swrast_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/lima_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/mcde_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/meson_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/mi0283qt_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/msm_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/mxsfb-drm_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/nouveau_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/panfrost_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/pl111_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/r300_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/r600_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/radeonsi_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/repaper_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/rockchip_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/st7586_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/st7735r_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/stm_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/sun4i-drm_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/swrast_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/tegra_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/v3d_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/vc4_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
ERROR: mesa-dri-gallium-20.1.5-r0: usr/lib/xorg/modules/dri/virtio_gpu_dri.so: no hard link target (usr/lib/xorg/modules/dri/armada-drm_dri.so) in archive
However, a simple apk fix
fixes this indicating that the hard link target does exist. Issues such as these will mean that graphical upgrades using GNOME Software in combination with gnome-software-plugin-apk
will fail without a clear reason why.
After running apk fix
apk info -L mesa-dri-gallium
also shows /usr/lib/xorg/modules/dri/armada-drm_dri.so
is present in the package:
pine64-pinephone:~$ sudo apk fix
[sudo] password for bart:
(1/1) Reinstalling mesa-dri-gallium (20.1.5-r0)
OK: 1027 MiB in 492 packages
pine64-pinephone:~$ apk info -L mesa-dri-gallium
mesa-dri-gallium-20.1.5-r0 contains:
usr/lib/xorg/modules/dri/armada-drm_dri.so
usr/lib/xorg/modules/dri/etnaviv_dri.so
usr/lib/xorg/modules/dri/exynos_dri.so
usr/lib/xorg/modules/dri/hx8357d_dri.so
usr/lib/xorg/modules/dri/ili9225_dri.so
usr/lib/xorg/modules/dri/ili9341_dri.so
usr/lib/xorg/modules/dri/imx-drm_dri.so
usr/lib/xorg/modules/dri/ingenic-drm_dri.so
usr/lib/xorg/modules/dri/kgsl_dri.so
usr/lib/xorg/modules/dri/kms_swrast_dri.so
usr/lib/xorg/modules/dri/lima_dri.so
usr/lib/xorg/modules/dri/mcde_dri.so
usr/lib/xorg/modules/dri/meson_dri.so
usr/lib/xorg/modules/dri/mi0283qt_dri.so
usr/lib/xorg/modules/dri/msm_dri.so
usr/lib/xorg/modules/dri/mxsfb-drm_dri.so
usr/lib/xorg/modules/dri/nouveau_dri.so
usr/lib/xorg/modules/dri/panfrost_dri.so
usr/lib/xorg/modules/dri/pl111_dri.so
usr/lib/xorg/modules/dri/r300_dri.so
usr/lib/xorg/modules/dri/r600_dri.so
usr/lib/xorg/modules/dri/radeonsi_dri.so
usr/lib/xorg/modules/dri/repaper_dri.so
usr/lib/xorg/modules/dri/rockchip_dri.so
usr/lib/xorg/modules/dri/st7586_dri.so
usr/lib/xorg/modules/dri/st7735r_dri.so
usr/lib/xorg/modules/dri/stm_dri.so
usr/lib/xorg/modules/dri/sun4i-drm_dri.so
usr/lib/xorg/modules/dri/swrast_dri.so
usr/lib/xorg/modules/dri/tegra_dri.so
usr/lib/xorg/modules/dri/v3d_dri.so
usr/lib/xorg/modules/dri/vc4_dri.so
usr/lib/xorg/modules/dri/virtio_gpu_dri.so
The relevant commit to apk-tools is probably 6484ed98