From owner-freebsd-ports@freebsd.org Thu Mar 14 09:54:20 2019 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D018153B1BA for ; Thu, 14 Mar 2019 09:54:20 +0000 (UTC) (envelope-from meta@FreeBSD.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 1C3846F756 for ; Thu, 14 Mar 2019 09:54:20 +0000 (UTC) (envelope-from meta@FreeBSD.org) Received: by mailman.ysv.freebsd.org (Postfix) id C9C69153B1B8; Thu, 14 Mar 2019 09:54:19 +0000 (UTC) Delivered-To: ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7736153B1B7 for ; Thu, 14 Mar 2019 09:54:19 +0000 (UTC) (envelope-from meta@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 55B086F752; Thu, 14 Mar 2019 09:54:19 +0000 (UTC) (envelope-from meta@FreeBSD.org) Received: from icepick.vmeta.jp (unknown [IPv6:2405:6586:2280:1200:4931:6862:e0d7:ee6a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: meta/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 1A7A510E9A; Thu, 14 Mar 2019 09:54:17 +0000 (UTC) (envelope-from meta@FreeBSD.org) Date: Thu, 14 Mar 2019 18:54:13 +0900 From: Koichiro Iwao To: Eugene Grosbein Cc: Hiroki Sato , ports@FreeBSD.org Subject: Re: loose dependency Message-ID: <20190314095413.rthlg3kkiwhaezjf@icepick.vmeta.jp> References: <20190314031726.aaspgwdcuithhgnc@icepick.vmeta.jp> <20190314.134014.2127053084940820202.hrs@allbsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Operating-System: FreeBSD 12.0-STABLE amd64 User-Agent: NeoMutt/20180716 X-Rspamd-Queue-Id: 55B086F752 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.99)[-0.985,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Mar 2019 09:54:20 -0000 On Thu, Mar 14, 2019 at 01:01:42PM +0700, Eugene Grosbein wrote: > 14.03.2019 11:40, Hiroki Sato wrote: > > > Koichiro Iwao wrote > > in <20190314031726.aaspgwdcuithhgnc@icepick.vmeta.jp>: > > > > me> Hi, > > me> > > me> If a port have runtime dependency on bin/convert command of ImageMagick > > me> but whichever ImageMagick{6,7}{,-nox11} are OK, how port Makefile should > > me> be written? > > me> > > me> ImageMagick6 and 7 conflicts each other. I want to respect user's > > me> choice which ImageMagick to use. > > > > There is no easy solution to solve it completely because currently > > package dependency is solved in a strict manner including package > > names and version numbers, not only existence of specific files. > > Creating multiple ports which depend on each software or using > > FLAVORS to make it easier is a way to provide packages with every > > possible combinations of dependency and let one to choose. > > OTOH, one still may create a port depending on existence of specific file > and fetching another port automatically in case of file absence. > It works just fine for those using ports as primary source, not packages. > > And yes, if one uses packages, it is forced to live with "default" versions > including dependencies or build its own pkg repo. In this case, I think FLAVORS don't fit but that's OK. Regarding FLAVORS, is it possible to depend on any of FLAVORS, not on one specific FLAVORS? For example, a port requires some command written in python but python version doesn't matter. -- meta