On 12/3/20 7:27 PM, Tom Stellard wrote:
On 12/3/20 8:32 AM, Fabio Valentini wrote:
On Thu, Dec 3, 2020 at 5:17 PM Tom Stellard <tstel...@redhat.com> wrote:

On 12/3/20 7:39 AM, Fabio Valentini wrote:
On Thu, Dec 3, 2020 at 4:35 PM Tom Stellard <tstel...@redhat.com> wrote:

On 12/2/20 5:45 AM, Artem Tim wrote:
How to quickly retest packages which listed here https://fedorapeople.org/~tstellar/needs_br_make_packages.txt? I've tested few locally and in Koji Rawhide scratch, but they are compiled fine.
___

If the packages use make and they BuildRequire: make then there is
nothing else to do.  I will try to re-run the scripts everyday to keep
the list updated.

I still think a lot of those are "false positives".
CMake has a hard Requires on make, so if I BuildRequires cmake, adding
"BuildRequires: make" is just redundant.
https://src.fedoraproject.org/rpms/cmake/blob/master/f/cmake.spec#_185


The only safe way to do this is to add BuildRequires: make to every
package that uses make.  We can't depend on these dependency chains to
keep things working, because they may not always be there.

That argument doesn't hold much water. CMake always requires a
backend, and right now it hard-requires make.
Until that's no longer the case, adding BR: make to packages already
having BR: cmake is just a waste of time.
If I can't be sure of *anything*, then wouldn't I have to add the
entire expected dependency tree as BRs?, down to glibc and filesystem?

There is a difference between packages that are needed to build and packages that are just dependencies of other packages.  For example, if your package uses make you should BuildRequire: make.  You do not need to BuildRequire: guile22 which is a dependency of make.  Why? Because if make drops the dependency on guile22, your package will continue to build correctly.  I am not suggesting that packages that use make need to also BuildRequire: guile22, for example.

+1


I do think cmake is a special case due to the new %cmake_build macros. It's possible for packages to only use the macros and rely on whatever make's default build system generator is.  In this specific case, I think that omitting BuildRequires: make is a valid option.

Indeed. If you're only ever invoking 'cmake' and not 'make', then you're simply using services provided by 'cmake' and how they go about providing it is none of your business, and its up to cmake to handle the dependencies in that case.


However, in the discussion on the mailing list for this change, not everyone agreed that cmake should Require make and this point was never resolved.  So, since there is still ambiguity here, I am planning to do the safest option, which is to add BuildRequires: make even for packages that use %cmake_build and do not invoke make directly.

I am not planning to start doing any changes for another 10 days.  Would it make sense to take this specific issue with the %cmake_build macros to FESCO and get a definitive decision?  I don't really have any strong opinions here, I just really want to avoid this change causing mass build failures either now or in the future, which is why I have been arguing for the 'safer' approach.  I am perfectly fine to take a different approach if FESCO decides something else would be better.

These discussions reappear on semi-predictable cycles and then go around and round and round...

Fundamentally, the generic issue at hand is not any different from the DSO linkage change ten years ago. For those who don't remember or weren't around, see
https://fedoraproject.org/wiki/Features/ChangeInImplicitDSOLinking
https://fedoraproject.org/wiki/UnderstandingDSOLinkChange

The world is that little bit better place thanks to that change, and all the principles and reasoning holds for package dependencies as well.

        - Panu -


-Tom

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@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

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@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
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@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

Reply via email to