Hi Colin,
%_libdir expands to the given architecture's libdir. On i586 it's> Well, it worked on x86_64, but on i586 the symlinks are created under
> /usr/lib64/games/warsow/basewsw instead of /usr/lib/games/warsow/basewsw
> but I don't understand why, it seems that for some reason, the
> %{_libdir} macro is expanding to /usr/lib64 on the BS. This is the spec
> if someone wants to take a look:
>
> http://svnweb.mageia.org/packages/cauldron/warsow-data/current/SPECS/warsow-data.spec?revision=338836&view=markup
/usr/lib, on x86_64 it's /usr/lib64.
Looking at the spec, I think you're doing it a bit wrong.
It's in the %post for a start which is wrong. It should be done as part
of package build, not install. Doing it during install will mean the
files are not "owned" by the package so users cannot tell where they
come from.
Also as you use %_libdir, your package cannot be noarch.
If you want to use /usr/lib all the time then do so (if that's what the
game binary expects) via %{_prefix}/lib not via %_libdir.
Also your fdupes command seems to do nothing other than display
duplicate information, not actually resolve anything. So I'd just remove
it or add appropriate arguments to do hardlinking as needed. Unless this
package has a particular problem with duplicated data, then I'd just
kill it off completely.
Hope that gives you some hints.