From owner-freebsd-ports@freebsd.org Thu Mar 14 06:02:06 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 3B4CD1530060 for ; Thu, 14 Mar 2019 06:02:06 +0000 (UTC) (envelope-from eugen@grosbein.net) 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 9731D8CAFC for ; Thu, 14 Mar 2019 06:02:05 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: by mailman.ysv.freebsd.org (Postfix) id 59BEB1530025; Thu, 14 Mar 2019 06:02:05 +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 487411530023 for ; Thu, 14 Mar 2019 06:02:05 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:d12:604::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id C44E28CAF5; Thu, 14 Mar 2019 06:02:04 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id x2E61mfi005705 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 14 Mar 2019 07:01:52 +0100 (CET) (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: hrs@FreeBSD.org Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id x2E61lXS015237 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 14 Mar 2019 13:01:48 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: loose dependency To: Hiroki Sato , meta@FreeBSD.org References: <20190314031726.aaspgwdcuithhgnc@icepick.vmeta.jp> <20190314.134014.2127053084940820202.hrs@allbsd.org> Cc: ports@FreeBSD.org From: Eugene Grosbein Message-ID: Date: Thu, 14 Mar 2019 13:01:42 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20190314.134014.2127053084940820202.hrs@allbsd.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: C44E28CAF5 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] 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 06:02:06 -0000 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.