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(a)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(a)lists.fedoraproject.org
To unsubscribe send an email to devel-leave(a)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