Hi Neal, all,
On Tue, 2020-08-04 at 07:42 -0400, Neal Gompa wrote:
On Tue, Aug 4, 2020 at 7:32 AM Till Hofmann thofmann@fedoraproject.org wrote:
Hi all,
I have a number of packages that are FTBFS due to https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds.
None of my packages has seen any commits for that change. I've read on the list that packages that are considered "a complete mess" are not touched. Are all my packages "a complete mess"?
More seriously, are we expected to fix this ourselves? What happened to "proposal owners will fix as many Fedora packages as possible"? Should I just re-assign the bug to cmake?
I don't generally mind fixing my packages, but I'm confused by the lack of communication here.
There are only a few packages that were considered a complete mess, mostly packages that did crazy build process scripting in the %build and %install sections. Most packages don't fall in that category. Basically if I can't understand how it works, I don't want to touch it.
The reason yours hadn't been touched yet is because neither Igor nor myself managed to get to yours before the mass rebuild.
It would be ideal if you can fix your own packages if we hadn't gotten to them, as you know your packages. :)
The general advice I would give is that if you did the following:
%cmake . %make_build %make_install
Then you should change it to the following:
%cmake %cmake_build %cmake_install
(Note the lack of "." as an argument to %cmake)
If you are doing something like the following:
mkdir -p %{_target_platform} pushd %{_target_platform} %cmake .. popd
%make_build -C %{_target_platform} %make_install -C %{_target_platform}
Or like the following
mkdir -p %{_target_platform} pushd %{_target_platform} %cmake .. popd
pushd %{_target_platform} %make_build popd pushd %{_target_platform} %make_install popd
Then you should do the following:
%undefine __cmake_in_source_build
%cmake %cmake_build %cmake_install
What if I build for multiple platforms at the same time? E.g. in dnf we have:
%build %if %{with python2} pushd build-py2 %cmake -DPYTHON_DESIRED:FILEPATH=%{__python2} -DDNF_VERSION=%{version} %cmake_build make doc-man popd %endif
%if %{with python3} pushd build-py3 %cmake -DPYTHON_DESIRED:FILEPATH=%{__python3} -DDNF_VERSION=%{version} %cmake_build make doc-man popd %endif
Do the new macros handle this case as well or do I need to stick to the old way (with defining the variable)?
Cheers, Lukas
The %undefine is only needed if you reuse your spec on F32 and older (including EPEL). Note that EPEL7 with cmake3 requires also undefining %__cmake3_in_source_build, since all macros use "cmake3" instead of "cmake" in that instance.
-- 真実はいつも一つ!/ Always, there's only one truth! _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org