On 06/01/2017 22:42, Carlos E. R. wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
This is an old problem that I had on 13.1 and remains on Leap.
YaST fails installing a certain package with an error message that explains nothing (sorry, I didn't copy it).
Running rpm directly on it explains just a bit more:
Telcontar:~ # rpm --install /var/cache/zypp/packages/OBS_Games/noarch/FlightGear-data-2016.2.1-2.1.noarch.rpm error: unpacking of archive failed on file /usr/share/doc/packages/FlightGear-data/COPYING;586ff82e: cpio: link error: FlightGear-data-2016.2.1-2.1.noarch: install failed Telcontar:~ #
So I try trace.
Telcontar:~ # strace -ff -o rpmtrace rpm --install --verbose /var/cache/zypp/packages/OBS_Games/noarch/FlightGear-data-2016.2.1-2.1.noarch.rpm ...
It seems the problem is here:
open("/usr/share/flightgear/Fonts/LiberationFonts/COPYING;586ffa1a", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 20 fcntl(20, F_SETFD, FD_CLOEXEC) = 0 umask(022) = 0777 write(20, "\t\t GNU GENERAL PUBLIC LICENSE"..., 17992) = 17992 close(20) = 0 link("/usr/share/flightgear/Fonts/LiberationFonts/COPYING;586ffa1a", "/usr/share/doc/packages/FlightGear-data/COPYING;586ffa1a") = -1 EXDEV (Invalid cross-device link) lstat("/usr/share/flightgear/Fonts/LiberationFonts/COPYING;586ffa1a", {st_mode=S_IFREG, st_size=17992, ...}) = 0 unlink("/usr/share/flightgear/Fonts/LiberationFonts/COPYING;586ffa1a") = 0 close(19) = 0 munmap(0x7f6916c58000, 4096) = 0 write(2, "error: ", 7) = 7 write(2, "unpacking of archive failed on f"..., 105) = 105 close(18) = 0 write(2, "error: ", 7) = 7 write(2, "FlightGear-data-2016.2.1-2.1.noa"..., 52) = 52
It is trying to link /usr/share/flightgear/Fonts/LiberationFonts/COPYING to /usr/share/doc/packages/FlightGear-data/COPYING or the other way round, and it happens that /usr/share/flightgear is a diferent filesystem here⁽¹⁾:
/etc/fstab: LABEL=c_usr_gamedta /usr/gamedata reiserfs acl,user_xattr,barrier=flush,relatime 1 4
and /usr/share/flightgear was a symlink to /usr/gamedata/flightgear/
Seeing the problem, I changed to a bind mount:
/etc/fstab: /usr/gamedata/flightgear/ /usr/share/flightgear none bind 0 0
with this 'mount' result:
/dev/sdd12 on /usr/gamedata type reiserfs (rw,relatime,user_xattr,acl) /dev/sdd12 on /usr/share/flightgear type reiserfs (rw,relatime,user_xattr,acl)
but it is not working.
Perhaps I should instead make /usr/share/doc/packages/FlightGear-data/ a symlink or bind mount to somewhere in /usr/gamedata.
Ideas? I need another view...
(1) The reason to use a different filesystem for FlightGear is that the rpm is 1 GB of data consisting of a ton of very small files (and more that can be downloaded), so ideal for reiserfs.
- -- Cheers
Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) AFAIK the file "COPYING" shouldn't be under /usr/share/[name] anyway and should be moved to /usr/share/doc/packages/[name] not linked. Give me a chance to examine the builds and maybe I can fix this. Dave P
-- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org