From owner-freebsd-questions@FreeBSD.ORG Fri Feb 20 13:42:16 2015 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4FF46EC0; Fri, 20 Feb 2015 13:42:16 +0000 (UTC) Received: from d2ux.org (static.140.151.9.5.clients.your-server.de [5.9.151.140]) by mx1.freebsd.org (Postfix) with ESMTP id CF256C5D; Fri, 20 Feb 2015 13:42:15 +0000 (UTC) Received: from d2ux.org (unknown [10.0.0.4]) by d2ux.org (Postfix) with ESMTP id 634F41FE339; Fri, 20 Feb 2015 14:35:34 +0100 (CET) Received: from d2ux.org ([10.0.0.4]) by d2ux.org (d2ux.org [10.0.0.4]) (amavisd-new, port 10024) with ESMTP id 9t567G_QIsUQ; Fri, 20 Feb 2015 14:35:33 +0100 (CET) Received: from mail.d2ux.org (unknown [10.0.0.7]) by d2ux.org (Postfix) with ESMTP id 223701FD72D; Fri, 20 Feb 2015 14:35:33 +0100 (CET) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 20 Feb 2015 14:35:33 +0100 From: Matthias Petermann To: freebsd-python@freebsd.org, freebsd-questions@freebsd.org Subject: Questions about packaging Python modules in Ports Collection Message-ID: <3c81f98fe02d3047ca3ddf3ced1dcf1f@mail.d2ux.org> X-Sender: matthias@petermann-it.de User-Agent: Roundcube Webmail/1.0.5 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Feb 2015 13:42:16 -0000 Hello, I am maintaining the Tryton ports for FreeBSD and am about to prepare the update from 2.8 to 3.4. Because I think there is some potential to improve, I would like to address some questions and ask for advice from the FreeBSD Python community. First, please allow me to give you some background. Tryton consists of a framework (client and server component), as well as a large number (67) of functional modules that add business domain functionality to the framework. All this modules together make up a comprehensive ERP solution. If one wants to use only a subset from them, the framework allows to enable / disable them on the fly, even if they all are installed. The framework components are located in: /usr/ports/finance/tryton28 (client) /usr/ports/finance/trytond28 (server) and most of the functional modules in: /usr/ports/finance/trytond28_* For each of the functional modules there is a separate port provided, utilizing distutils and autoplist. This works good, but I think of the following potential issues: I) Looking on this with a users eye, it doesn't make too much sense to install only a subset of the modules. Some don't even provide standalone functionality but only provide dependencies to other modules. So most users likely want to install the complete set of Tryton modules and turn them on / off in the frameworks configuration later. II) Supporting multiple Tryton versions at the same time. The Tryton project does a very good job in providing security fixes for legacy releases for a quite long period. From a users point of view it is desirable to have the versions introduced to Ports Collection supported until their upstream EOL. This is required to not force anyone to upgrade to the newest version each, because this is not always possible when running this in production. On the other hand, having at least the newest version available in the ports is required to keep FreeBSD attractive as the platform for new Tryton users. What do you think on the following? 1) Is the large number of separate modules in the sense of the principles of the ports collection? My observations is that this blows up the directory pretty much. 2) Is the statement II) valid or do I overestimate the needs of the typical FreeBSD user base? 3) Is it technically possible to bundle multiple distutils python modules into one port? Is there a good example you know? 4) With regards to I), is it suggested to keep the functional modules as separate ports, or should I apply 3) if technically possible? 5) In ports collection, is it allowed in a port to reference a (common) Makefile of another port? I have seen in NetBSDs pkgsrc for the Tryton port, they source common stuff like the version number of Tryton from a common Makefile: For example, this modules Makefile: http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/finance/py-trytond-account/Makefile uses this: http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/py-trytond/Makefile.common I'll be thankful for any hint and comments. Thanks in advance & kind regards, Matthias