Erik van Pienbroek wrote:
I agree with your point that placing all targets in a single binary
RPM
isn't an ideal solution. While working on this framework I thought about
the possibility to split everything in per-target RPM's, but I got stuck
at the filelist part. I couldn't think of a method to easily indicate
that all files using %{_mingw32_...} macros have to end up in a mingw32-
package.
Have you got any idea how we can overcome this without introducing a lot
of duplicate instructions in the .spec files?
Uh, I'm not sure how:
%files
%defattr(-,root,root,-)
%{_mingw32_...}/foo
%{_mingw64_...}/foo
%{_darwinx_...}/foo
%{_mingw32_...}/bar
%{_mingw64_...}/bar
%{_darwinx_...}/bar
%{_mingw32_...}/baz
%{_mingw64_...}/baz
%{_darwinx_...}/baz
is any better than:
%files -n mingw32-foo
%defattr(-,root,root,-)
%{_mingw32_...}/foo
%{_mingw32_...}/bar
%{_mingw32_...}/baz
%files -n mingw64-foo
%defattr(-,root,root,-)
%{_mingw64_...}/foo
%{_mingw64_...}/bar
%{_mingw64_...}/baz
%files -n darwinx-foo
%defattr(-,root,root,-)
%{_darwinx_...}/foo
%{_darwinx_...}/bar
%{_darwinx_...}/baz
but I think the best solution is probably to use %files -f. Then you can
define a macro like:
%cross-file share/foo
which would be placed in %install, expand to something like:
echo '%{_mingw32_prefix}/share/foo' >>mingw32-files.txt
echo '%{_mingw64_prefix}/share/foo' >>mingw64-files.txt
echo '%{_darwinx_prefix}/share/foo' >>darwinx-files.txt
and be used with:
%files -n mingw32-foo -f mingw32-files.txt
%defattr(-,root,root,-)
%files -n mingw64-foo -f mingw64-files.txt
%defattr(-,root,root,-)
%files -n darwinx-foo -f darwinx-files.txt
%defattr(-,root,root,-)
Kevin Kofler