On Tue, Apr 30, 2019 at 6:42 PM Tomasz Kłoczko <kloczko.tomasz@xxxxxxxxx> wrote: > > On Tue, 30 Apr 2019 at 21:04, Neal Gompa <ngompa13@xxxxxxxxx> wrote: >> >> > And what is wrong with just "BuildRequires: pkgconfig"? >> >> That is no guarantee that '/usr/bin/pkg-config' will be provided, >> which is required by the dep generator and various tools. > > > You just put in my hand +1 to not use paths in BuildRequires. > +1 for me. Thx. > If you will look across /usr/lib/macros and files in /usr/lib/rpm/macros.d you will find hundreds of other commands used with full path and only occasionally some of them are used in BRs in form "BuildRequires: /some/path/command". > Are going to request/propose to change whole distribution pattern of BRs? Really? > FYI: We call that thing which you are refusing to use .. abstraction. No I didn't. I know perfectly well what abstractions are, and you're asking me to remove an abstraction, not add one. And no, I'm not going to request that. However, that's what we have *now* and that abstraction (yes, it is one!) allows any valid provider of /usr/bin/pkg-config to step in and satisfy the role for the dependency generator. That's how *I* swapped pkgconfig for pkgconf back in Fedora 26. Trust me, I know how this works. >> >> > Don't you see that this forces dependencies resolution to use packages files list? >> >> This is free already, as that data is always part of the solver cache. >> >> Besides, there is no ban on paths that are provided by primary.xml >> (*/bin, */sbin, */lib(64|exec), /etc). The ban is basically pointless, >> but that's what it is. > > > <counerargument=WRONG> > rpmbuild is not using dnf xml files :-/ > </counerargument> > Yes, but "dnf builddep" does... which we use as part of constructing a package build environment. >> > IIRC Fedora already had policy to not use paths in BRs. >> >> Outside of paths already provided in primary.xml, packagers SHOULD NOT, yes. > > > You are again talking about install package time dependencies resolution. > Command rpmbuild which is processing spec files is using rpm database. > We are talking about packages build time dependencies resolution. Are you seriously being obtuse on purpose? But you seem to be missing the point. We use the BuildRequires listed in the spec to install build dependencies using DNF with Mock. That's how build environments are populated. All build-time dependencies are install-time dependencies when you're preparing to build a package. I don't know how you missed *that*. > Please do me a favourite and execute on your system from root "rpm --rebuilddb; ls -l /var/lib/rpm/{Basenames,Providename}" and answer on the question: query to which one rpm table has chance to be shorter? > Just stop. Please. First: the phrase is "do me a favor", not "do me a favo[u]rite". Second, do you not even know that Mock passes --nodeps to rpmbuild because the rpmdb in the chroot isn't necessarily compatible with rpm in the chroot? We currently don't allow rpmbuild to evaluate dependencies at all. We may change this if Koji switches to producing bootstrap chroots before producing the build chroot. So right now, that lookup is not even happening. Third, if the lookup is happening, rpmbuild is perfectly capable of evaluating file deps effectively. The rpmdb is relatively efficient for this kind of lookup. -- 真実はいつも一つ!/ Always, there's only one truth! _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx