From owner-freebsd-ports@freebsd.org Wed Jun 8 15:10:52 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 03E1EB6F260; Wed, 8 Jun 2016 15:10:52 +0000 (UTC) (envelope-from mailinglists@toco-domains.de) Received: from toco-domains.de (mail.toco-domains.de [IPv6:2a01:4f8:150:50a5::6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C36F8173F; Wed, 8 Jun 2016 15:10:51 +0000 (UTC) (envelope-from mailinglists@toco-domains.de) Received: from [0.0.0.0] (mail.toco-domains.de [IPv6:2a01:4f8:150:50a5::6]) by toco-domains.de (Postfix) with ESMTPA id D00D71AAF017; Wed, 8 Jun 2016 17:10:49 +0200 (CEST) Subject: Re: gem, pip et al vs. pkg To: Kurt Jaeger , "Mikhail T." References: <20160608005320.GQ41922@home.opsec.eu> Cc: pkg@FreeBSD.org, freebsd-ports@FreeBSD.org From: Torsten Zuehlsdorff Message-ID: <822149db-ba15-fa14-d5b8-530ef287bd63@toco-domains.de> Date: Wed, 8 Jun 2016 17:10:49 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <20160608005320.GQ41922@home.opsec.eu> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 15:10:52 -0000 On 08.06.2016 02:53, Kurt Jaeger wrote: > Hi! > >> The ports tree has thousands of entries, which are simply thin wrappers >> around Ruby's gem or Perl's and/or Python's pip. > > Thanks again for asking the right questions. Please add go to that > list 8-} > >> Why do we need them? Obviously, it is primarily >> for other ports to be able to depend on them. But why can't we satisfy >> this need without creating a port for each such little package? > > Because right now the mechanism we use is the only one we have. > >> If a port declares: >> >> RUN_DEPENDS= /foo/:gem//bar/[:/version/] >> >> why can't the /bar/-gem (with the latest or specified version) be >> automatically installed -- and/or registered as a dependency -- without >> there being a dedicated port for it? > > We would need to mirror the language-specific dependency tracking > in the ports system. While doable, it's definitly non-trivial. Also it is not always language specific. Some rubygems for example requires other non-ruby software to be installed. This is handled by the ports very good - but if there is no such requirement a port is overhead. Also gems allow/need sometime specific versions - which is hard to track and keep right in the ports tree. Greetings, Torsten