Return-Path: Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: (qmail 94607 invoked from network); 3 Jun 2008 13:46:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 3 Jun 2008 13:46:25 -0000 Received: (qmail 71768 invoked by uid 500); 3 Jun 2008 13:46:28 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 71745 invoked by uid 500); 3 Jun 2008 13:46:28 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 71733 invoked by uid 99); 3 Jun 2008 13:46:28 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Jun 2008 06:46:28 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Jun 2008 13:45:40 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id A96ED234C12D for ; Tue, 3 Jun 2008 06:46:01 -0700 (PDT) Message-ID: <83954785.1212500761692.JavaMail.jira@brutus> Date: Tue, 3 Jun 2008 06:46:01 -0700 (PDT) From: "Daniel Pocock (JIRA)" To: dev@activemq.apache.org Subject: [jira] Commented: (AMQCPP-158) libtool release and version-info arguments need to be set correctly In-Reply-To: <26183517.1197661286891.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/activemq/browse/AMQCPP-158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43189#action_43189 ] Daniel Pocock commented on AMQCPP-158: -------------------------------------- Here are some suggestions, I will pursue these and see what I can find: a) look at the way similar products are solving the problem - many of the libraries packaged on systems like Debian already have stuff in their build scripts to do this b) advice from people experienced in library packaging - most of the major Linux distributions have mailing lists for packaging issues, the people on these lists have probably seen this problem solved in many different ways > libtool release and version-info arguments need to be set correctly > ------------------------------------------------------------------- > > Key: AMQCPP-158 > URL: https://issues.apache.org/activemq/browse/AMQCPP-158 > Project: ActiveMQ C++ Client > Issue Type: Bug > Affects Versions: 2.1.2 > Environment: Debian > Reporter: Daniel Pocock > Assignee: Nathan Mittler > Fix For: 2.2 > > > When make is invoked, libtool is asked to build the library with this command line: > /bin/sh ../../libtool --tag=CXX --mode=link g++ -ansi -pedantic -W -Wall -fPIC -fstrict-aliasing -Wstrict-aliasing=2 -Wno-long-long -g -O2 -version-info 2:1:2 -release 2.1.2 -o libactivemq-cpp.la -rpath /usr/lib activemq/core/libactivemq_cpp_la-ActiveMQConsumer.lo ........... > Notice the `-release 2.1.2' argument to libtool? Using a unique release number with each build means that applications will only run with one specific build, and no others. > Perhaps `-release 2' might be more appropriate? This would mean that an application that expects version 2.1.1 would still be willing to link with 2.2.0 (for example) at runtime. Alternatively, it may be better to omit the release argument, and just use version-info. > The -version-info argument allows more fine-grained control - however, it is not meant to be written as MAJOR:MINOR:REVISION. The three values mean `version:revision:age', where: > - version = ABI version, an integer that is increment whenever binary compatibility changes > - revision = implementation (this number is incremented when there is a code change that does not impact the binary interface) > - age = how many previous versions are binary compatible, e.g if age = 2, then version, (version - 1) and (version - 2) are all binary compatible - the age value specified for this library (2) suggests that it is binary compatible to the original version (0). > ABI version numbers are not the same as product version numbers. If the product number is 2.1.2, that does not mean the -version-info argument is 2:1:2. > I have created some pages on the wiki to discuss version and packaging issues; these issues need to be agreed upon by the community before a version scheme can be implemented in the build system. > I am willing to work on the details and contribute a patch for this once there has been some consensus on which is the best versioning scheme to adopt and what level of binary compatibility is expected. > Wiki pages: > http://cwiki.apache.org/confluence/display/AMQCPP/ActiveMQ-CPP+product+version+number > http://cwiki.apache.org/confluence/display/AMQCPP/ActiveMQ-CPP%2C+libtool+and+packaging+notes -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.