From owner-freebsd-pkg@freebsd.org Wed Jun 8 00:53:16 2016 Return-Path: Delivered-To: freebsd-pkg@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 E607FB6F887 for ; Wed, 8 Jun 2016 00:53:16 +0000 (UTC) (envelope-from lists@opsec.eu) 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 D6FDD19FF for ; Wed, 8 Jun 2016 00:53:16 +0000 (UTC) (envelope-from lists@opsec.eu) Received: by mailman.ysv.freebsd.org (Postfix) id D23F3B6F886; Wed, 8 Jun 2016 00:53:16 +0000 (UTC) Delivered-To: pkg@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 CF0CCB6F885; Wed, 8 Jun 2016 00:53:16 +0000 (UTC) (envelope-from lists@opsec.eu) Received: from home.opsec.eu (home.opsec.eu [IPv6:2001:14f8:200::1]) (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 923DD19FE; Wed, 8 Jun 2016 00:53:16 +0000 (UTC) (envelope-from lists@opsec.eu) Received: from pi by home.opsec.eu with local (Exim 4.87 (FreeBSD)) (envelope-from ) id 1bARkH-0003eC-1e; Wed, 08 Jun 2016 02:53:21 +0200 Date: Wed, 8 Jun 2016 02:53:21 +0200 From: Kurt Jaeger To: "Mikhail T." Cc: freebsd-ports@FreeBSD.org, pkg@FreeBSD.org Subject: Re: gem, pip et al vs. pkg Message-ID: <20160608005320.GQ41922@home.opsec.eu> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: freebsd-pkg@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Binary package management and package tools discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 00:53:17 -0000 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. > In the other direction, if someone were to install a Ruby gem using the > gem-utility (or pip-perl, or pip-python, or even rpm), why aren't the > installed files registered in the pkg's database? We have the sources > for all of these utilities -- we can modify them to register the package > and its files with the pkg. > > The changes may even be welcomed upstream, if they are abstract enough > to allow registration with the Operating System's package-manager on > /all/ OSes, which would bother implementing a custom backend... Sounds valid, now someone has to implement this -- and send it upstream for each language. -- pi@opsec.eu +49 171 3101372 4 years to go !