Conflict on very first port (xorg) on rpi3
Mark Millard
marklmi at yahoo.com
Fri May 15 19:33:08 UTC 2020
[Gack: devel/cmake needs devel/py-sphinx by default
and devel/llvm80 needs both devel/cmake and
devel/py-pshinx18 by default.]
On 2020-May-15, at 11:59, Mark Millard <marklmi at yahoo.com> wrote:
>
> On 2020-May-15, at 11:05, bob prohaska <fbsd at www.zefox.net> wrote:
>
>> On Fri, May 15, 2020 at 01:49:21PM -0300, Danilo G. Baio wrote:
>>> On Fri, May 15, 2020 at 08:19:22AM -0700, bob prohaska wrote:
>>>> On Fri, May 15, 2020 at 12:33:10AM -0700, Mark Millard via freebsd-ports wrote:
>>>>>
>>>>> Some building and isntalling had to occur prior to the
>>>>> textproc/py-sphinx18 build attempt, possibly from
>>>>> prior session(s) of building and installing.
>>>>>
>>>>>
>>>>
>>>> In this case x11/xorg was the first port attempted in a new
>>>> ports tree. The only "prior sessions" would have been within
>>>> the dependencies of x11/xorg. Is that resolvable by poudriere?
>>>>
>>>>> textproc/py-sphinx18 is new as of 2020-May-11.
>>>>> The devel/llvm[16789]0 ports require textproc/py-sphinx18 .
>>>>> Only about 26 ports require textproc/py-sphinx18 but
>>>>> I'll not list the others.
>>>>>
>>>>> textproc/py-sphinx has been around longer and has
>>>>> 142 ports that require it. I'll not list them.
>>>>>
>>>>>
>>>>> textproc/py-sphinx18/Makefile lists:
>>>>>
>>>>> CONFLICTS_INSTALL= py*-sphinx
>>>>>
>>>>> textproc/py-sphinx/Makefile lists:
>>>>>
>>>>> CONFLICTS_INSTALL= py*-sphinx18
>>>>>
>>>>>
>>>>> So, for example, indirectly the devel/llvm[16789]0
>>>>> ports conflict with at least 142 other ports because
>>>>> of the textproc/py-sphinx* difference in requirements.
>>>>>
>>>>>
>>>>> The conflict is real and limits what combinations
>>>>> of ports you may have installed at the same time.
>>>>
>>>> I'll try deinstalling the conflicting port and hope
>>>> it won't be required later....
>>>
>>> It seems that just devel/llvm80 is pulling sphinx18 when building
>>> x11/xorg.
>>>
>>> Try disabling DOCS option on devel/llvm80 for now.
>>>
>>> I've opened a PR to track this issue:
>>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246487
>>>
>>
>> Wish I'd known it was only the DOCS option! Too late now,
>> sphinx18 is deinstalled and llvm80 is building.
>
> What? llvm80 requires textproc/py-sphinx18 (when
> the options cause such), not textproc/py-sphinx .
> Deleting textproc/py-sphinx18 and building
> devel/llvm80 will try to rebuild/install
> textproc/py-sphinx18 unless the options are
> set to avoid needing textproc/py-sphinx18 .
>
> To build devel/llvm80 it would be
> textproc/py-sphinx that would be deinstalled first
> so that textproc/py-sphinx18 could be built and
> installed during the build.
>
> After devel/llvm80 is installed, textproc/py-sphinx18
> would be uninstalled so that textproc/py-sphinx could
> be built/installed when xorg is re-tried with llvm80
> already installed.
I did not trace down other dependencies but now
looking a little (leaving options at defaults):
devel/cmake needs devel/py-sphinx by default
and devel/llvm80 needs both devel/cmake and
devel/py-pshinx18 by default. (xorg need not
bein involved: just building devel/llvm[16789]0
has the issue.)
Thus the sequence for default options may need
to be something like:
*) Starting without textproc/py-sphinx18
installed
A) build textproc/py-sphinx and devel/cmake
and install devel/cmake ( py-sphinx can
be via indirection through devel/cmake )
(cmake does not have a run-time dependency
on textproc/py-sphinx as far as I can tell.)
B) uninstall textproc/py-sphinx so that
textproc/py-sphinx18 can be built and
installed
C) build textproc/py-shpyinx18 and devel/llvm80
and install devel/llvm80 ( py-sphinx18 can
be via indirection through devel/llvm80 )
D) uninstall textproc/py-sphinx18 so that
either textproc/py-sphinx* can be installed
if needed
E) build xorg.
(Since I use devel/poudriere-develto build
packages and then install just packages for
things that I run, I do not have to do such
explicit conflict management for build-time
conflicts.)
Of course, figuring out options to change
the status of also may avoid having some
of the dependencies and so avoid some
conflicts.
>> This is probably a dumb question, but is there some way
>> to learn at the outset what conflicts need to be worked
>> around? Something like a "make conflicts" target? Seemingly
>> it could be done by hand, but that promises to be tedious.
>
> Not that will tell you what combinations of
> options lead to what combinations of required
> build or run prerequisites: That could be
> a lot of combinations to cover. It is also
> dependent on poudriere-like-building vs. not
> for build prerequisites having conflicts
> involved or not.
>
> If one is familiar enough to see potential
> conflicts in lists of dependencies there are
> the makefile targets:
>
> run-depends-list, build-depends-list
> Print a list of all the compile and run
> dependencies, and dependencies of those
> dependencies, by port directory.
>
> all-depends-list Print a list of all dependencies for the port.
>
> pretty-print-run-depends-list, pretty-print-build-depends-list
> Print a list of all the compile and run
> dependencies, and dependencies of those
> dependencies, by port name and version.
>
> (but no "all" variant for pretty-print-* ?).
> What is listed would depend on the options
> specified.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-ports
mailing list