From owner-freebsd-questions@FreeBSD.ORG Sun Apr 21 09:23:45 2013 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C2318B48 for ; Sun, 21 Apr 2013 09:23:45 +0000 (UTC) (envelope-from matthias@d2ux.net) Received: from mail.s1.d2ux.org (static.209.96.9.5.clients.your-server.de [5.9.96.209]) by mx1.freebsd.org (Postfix) with ESMTP id 86549D32 for ; Sun, 21 Apr 2013 09:23:44 +0000 (UTC) Received: from mail.s1.d2ux.org (mail [10.0.0.3]) by mail.s1.d2ux.org (Postfix) with ESMTP id 1C9FD84F25CD for ; Sun, 21 Apr 2013 11:23:44 +0200 (CEST) Received: from mail.s1.d2ux.org ([10.0.0.3]) by mail.s1.d2ux.org (mail.s1.d2ux.org [10.0.0.3]) (amavisd-new, port 10024) with ESMTP id R1KO_G58IGmL for ; Sun, 21 Apr 2013 11:23:42 +0200 (CEST) Received: from compaq.local (p5DDA9E95.dip0.t-ipconnect.de [93.218.158.149]) by mail.s1.d2ux.org (Postfix) with ESMTPSA id 6BBF484F2586 for ; Sun, 21 Apr 2013 11:23:42 +0200 (CEST) Message-ID: <5173B04E.3020406@d2ux.net> Date: Sun, 21 Apr 2013 11:24:30 +0200 From: Matthias Petermann User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:10.0.12) Gecko/20130330 Thunderbird/10.0.12 MIME-Version: 1.0 To: freebsd-questions@freebsd.org Subject: Managing conflicts between ports (same package with multiple maintained versions) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Apr 2013 09:23:45 -0000 Hello, I am the maintainer of most of the Tryton ports. Tryton is a python based application framework where you can easily build your own business modules on top. It also provides some default modules for common uses. Currently Tryton 2.4 series is in the ports. From upstream the successor Tryton 2.6 is available. At Tryton, also previous releases are supported for an extended time. This is required, because users who spent time to build their own modules on top of e.g. 2.4 should not be forced to migrate immediately to 2.6 (and likely use a different API) just for a security patch or a bug fix. Thats why I want to bring in 2.6 to the ports while continuing maintaining 2.4. During the planning, I ran into the following issue: Tryton 2.4 and 2.6 install files to the same Python site-packages directory /usr/local/lib/python2.7/site-packages/trytond-2.4.5-py2.7.egg /usr/local/lib/python2.7/site-packages/trytond-2.6.3-py2.7.egg Even there "egg" names are different, the contained package names are equal: /usr/local/lib/python2.7/site-packages/trytond-2.4.5-py2.7.egg/trytond /usr/local/lib/python2.7/site-packages/trytond-2.6.3-py2.7.egg/trytond So for the python interpreter it would not be clear which one to import if you just "import trytond". Renaming the package names doesn't look reasonable because it would require patching all Tryton modules (and will make it incompatible with custom built modules). So I think it is required to define it as a conflict if two versions of Tryton will be installed at the same time. My first approach was to define CONFLICTS= trytond-* in the Makefiles of trytond 2.4 and 2.6. This works and prevents installing two different versions. But portlint doesn't seem happy with it: root@compaq:/usr/ports/finance/trytond # portlint -AC [...] FATAL: Package conflicts with itself. You should remove "trytond-*" from CONFLICTS. 1 fatal error and 4 warnings found. root@compaq:/usr/ports/finance/trytond # So it looks like I need to explicitly specify the conflicting versions, e.g. in Tryton 2.4 Makefile put: CONFLICTS= trytond-2.6.* But this will force me to update the 2.4 Ports everytime a new series of Tryton gets introduced. Is there a better way to achieve this? Thanks in advance & kind regards, Matthias