From owner-freebsd-ports@freebsd.org Fri May 15 20:04:02 2020 Return-Path: Delivered-To: freebsd-ports@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5C0332FF636 for ; Fri, 15 May 2020 20:04:02 +0000 (UTC) (envelope-from fbsd@www.zefox.net) Received: from www.zefox.net (www.zefox.net [50.1.20.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "www.zefox.com", Issuer "www.zefox.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 49NzrJ4W88z4P9g for ; Fri, 15 May 2020 20:03:59 +0000 (UTC) (envelope-from fbsd@www.zefox.net) Received: from www.zefox.net (localhost [127.0.0.1]) by www.zefox.net (8.15.2/8.15.2) with ESMTPS id 04FK3xxX054617 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Fri, 15 May 2020 13:03:59 -0700 (PDT) (envelope-from fbsd@www.zefox.net) Received: (from fbsd@localhost) by www.zefox.net (8.15.2/8.15.2/Submit) id 04FK3w8n054616; Fri, 15 May 2020 13:03:58 -0700 (PDT) (envelope-from fbsd) Date: Fri, 15 May 2020 13:03:58 -0700 From: bob prohaska To: Mark Millard Cc: FreeBSD ports Subject: Re: Conflict on very first port (xorg) on rpi3 Message-ID: <20200515200358.GA54521@www.zefox.net> References: <4961F458-26EF-447F-8033-B00FA720C58F.ref@yahoo.com> <4961F458-26EF-447F-8033-B00FA720C58F@yahoo.com> <20200515151922.GC51382@www.zefox.net> <20200515164921.6zyiorfgnqhf5nls@t480.local> <20200515180554.GD51382@www.zefox.net> <35F4EC61-AC55-4FA4-89D4-7742E449CC8A@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 49NzrJ4W88z4P9g X-Spamd-Bar: ++ Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of fbsd@www.zefox.net has no SPF policy when checking 50.1.20.27) smtp.mailfrom=fbsd@www.zefox.net X-Spamd-Result: default: False [2.08 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.33)[-0.332,0]; WWW_DOT_DOMAIN(0.50)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; IP_SCORE(0.05)[ip: (0.21), ipnet: 50.1.16.0/20(0.11), asn: 7065(-0.03), country: US(-0.05)]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[zefox.net]; AUTH_NA(1.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_SPAM_LONG(0.47)[0.467,0]; R_SPF_NA(0.00)[]; FREEMAIL_TO(0.00)[yahoo.com]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:7065, ipnet:50.1.16.0/20, country:US]; MID_RHS_MATCH_FROM(0.00)[]; MID_RHS_WWW(0.50)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 May 2020 20:04:02 -0000 On Fri, May 15, 2020 at 12:33:02PM -0700, Mark Millard wrote: > [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 wrote: > > > > On 2020-May-15, at 11:05, bob prohaska 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. Sorry, I mis-wrote. What you're describing is what I did..... > > > > 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.) > A brief look at the man page for devel/poudriere suggests that several GB of space will be required for each port to be built; is that the case in practice? Seems like that would lead to stupendous overhead for complex ports, like browsers. > 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. > It appears that simply deinstalling the existing port causing a conflict is the best short-term approach. Can't solve the run-time conflict issue that way, but it's a start... Thanks for writing! bob prohaska >