From owner-freebsd-ports@freebsd.org Tue Oct 11 18:59:56 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 0BB82C0D3BF for ; Tue, 11 Oct 2016 18:59:56 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from mailman.ysv.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id EDB32901 for ; Tue, 11 Oct 2016 18:59:55 +0000 (UTC) (envelope-from julian@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id ECC3DC0D3BE; Tue, 11 Oct 2016 18:59:55 +0000 (UTC) Delivered-To: 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 EC680C0D3BD for ; Tue, 11 Oct 2016 18:59:55 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id CCA178FF; Tue, 11 Oct 2016 18:59:55 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from julian-mbp3.pixel8networks.com (50-196-156-133-static.hfc.comcastbusiness.net [50.196.156.133]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id u9BIxqE1081214 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 11 Oct 2016 11:59:54 -0700 (PDT) (envelope-from julian@freebsd.org) To: "ports@FreeBSD.org" , Baptiste Daroussin From: Julian Elischer Subject: harder and harder to avoid pkg Message-ID: <638fe078-80db-2492-90be-f1280eb8d445@freebsd.org> Date: Tue, 11 Oct 2016 11:59:47 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Oct 2016 18:59:56 -0000 As the number of dependencies between packages get ever higher, it becomes more and more difficult to compile packages and the dependence on binary precompiled packages is increased. However binary packages are unsuitable for some situations. We really need to follow the lead of some of the Linux groups and have -runtime and -devel versions of packages, OR we what woudlbe smarter, woudl be to have several "sub manifests" to allow unpacking in different environments. A simple example: libxml2 This package installs include files and libraries and dicumentation etc. yet if I build an appliance , I want it to only install a singe file. /usr/local/lib/libxml2.so.2 The presence of this file will satisfy any runtime dependencies of packages that require it. Unfortunately there is no way to install just this file, and still report that we have the package loaded, so pkg will always try to reinstall it leading to a huge mess. My current scheme is to unpack all packages into a larger staging area, and *manually* (scripted) copy out only the files I need, and then copy the pkg database, so that when run on the running appliance, pkg THINKS all the packages are loaded on the appliance, even though only the runtime files are installed. This is what we in the industry call "a hack" :-) It is also not robust in the face of changing pkg versions. It would be a lot better it pkg knew it was being asked to install only the runtime set, and coudl accurately store this information in its database, allowing it to satisfy the needs of other packages that need that dependnency only in a runtime manner. Is any of this possible at the moment? suggestions from the ports/pkg community are appreciated.. Julian