Bug 339391

Summary: ardour package includes duplicates of system libraries
Product: [Fedora] Fedora Reporter: Tim Mayberry <mojofunk>
Component: ardourAssignee: Anthony Green <green>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: hdegoede
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-10-19 09:14:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tim Mayberry 2007-10-19 09:02:25 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070926 Fedora/2.0.0.6-11.fc8 Firefox/2.0.0.6

Description of problem:
ardour2 is built with the SYSLIBS=0(the default) which means that versions of existing system libraries that are contained in the ardour source package are built and installed into the %{_libdir}/ardour2 directory:

libatkmm.so
libgdkmm2.so
libglibmm2.so
libgnomecanvasmm.so
libgtkmm2.so
libpangomm.so
libsigc++2.so
libsoundtouch.so

I believe that this is contrary to the packaging guidelines
http://fedoraproject.org/wiki/Packaging/Guidelines#head-17396a3b06ec849a7c0c6fc3243673b17e5fed90


Version-Release number of selected component (if applicable):
ardour-2.1-3.fc8

How reproducible:
Always


Steps to Reproduce:
1. Install ardour version 2.X

Actual Results:
package installs system libraries in private lib path and then sets LD_LIBRARY_PATH

Expected Results:
ardour is built with SYSLIBS=1 directive to link against libraries provided by fedora

Additional info:

Comment 1 Hans de Goede 2007-10-19 09:14:41 UTC
Normally I would agree with you, but here is what ardour upstream has to say on
this: (from http://ardour.org/building)


SYSLIBS
    USE AT YOUR OWN RISK: CANCELS ALL SUPPORT FROM ARDOUR AUTHORS. Use existing
    system versions of various libraries instead of internal ones (yes|no)

So doing things the normal way would very much go against what upstream advices,
which is not something we want todo IMHO.


Comment 2 Anthony Green 2007-10-19 12:45:05 UTC
This was discussed during the original ardour review, and ardour was given an
exception...

https://bugzilla.redhat.com/show_bug.cgi?id=189315#c6



Comment 3 Tim Mayberry 2007-10-24 23:30:43 UTC
(In reply to comment #1)
> Normally I would agree with you, but here is what ardour upstream has to say on
> this: (from http://ardour.org/building)
> 
> 
> SYSLIBS
>     USE AT YOUR OWN RISK: CANCELS ALL SUPPORT FROM ARDOUR AUTHORS. Use existing
>     system versions of various libraries instead of internal ones (yes|no)
> 
> So doing things the normal way would very much go against what upstream advices,
> which is not something we want todo IMHO.
> 

If it is this statement that is discouraging you from keeping with the packaging
policy then I'll try to get it changed as SYSLIBS was added for
distributions(originally Debian) with a similar policy about duplicating system
libraries so that they didn't have to patch the build system. The SYSLIBS
functionality has been maintained for several years by myself and another Ardour
developer and it should be straight forward to use without any patching etc.

The build option also existed for the 0.99 versions, but as Anthony pointed out
in bug 189315 none of those "system libraries" were packaged for fedora at the
time but that is not the case for Ardour 2.

Comment 4 Hans de Goede 2007-10-25 09:55:57 UTC
(In reply to comment #3)
> (In reply to comment #1)
> > Normally I would agree with you, but here is what ardour upstream has to say on
> > this: (from http://ardour.org/building)
> > 
> > 
> > SYSLIBS
> >     USE AT YOUR OWN RISK: CANCELS ALL SUPPORT FROM ARDOUR AUTHORS. Use existing
> >     system versions of various libraries instead of internal ones (yes|no)
> > 
> > So doing things the normal way would very much go against what upstream advices,
> > which is not something we want todo IMHO.
> > 
> 
> If it is this statement that is discouraging you from keeping with the packaging
> policy then I'll try to get it changed as SYSLIBS was added for
> distributions(originally Debian) with a similar policy about duplicating system
> libraries so that they didn't have to patch the build system. The SYSLIBS
> functionality has been maintained for several years by myself and another Ardour
> developer and it should be straight forward to use without any patching etc.
> 
> The build option also existed for the 0.99 versions, but as Anthony pointed out
> in bug 189315 none of those "system libraries" were packaged for fedora at the
> time but that is not the case for Ardour 2.

Okay, if I understand you correctly, then you are one of the upstream authors,
and you are saying that you and the other upstream authors are ok with
distributions using then system versions of the libraries?

Does this also mean that the included copies of the libraries are pristine copies?

That would make this a whole different ballgame.


Comment 5 Tim Mayberry 2007-10-25 11:35:01 UTC
(In reply to comment #4)
 
> Okay, if I understand you correctly, then you are one of the upstream authors,
> and you are saying that you and the other upstream authors are ok with
> distributions using then system versions of the libraries?

Yes, I am one of the authors. It is my understanding that the SYSLIBS support
"clause" was not intended to apply to people packaging ardour and that we also
supported the ardour packages on debian when they used it. I'll try to get a
more authoritative answer in a few days when the main developer gets back from a
trip.

> Does this also mean that the included copies of the libraries are pristine copies?

The source code is unmodified, there are additional files to support building
and installing the libraries into private locations etc. 


Comment 6 Hans de Goede 2007-10-25 12:27:23 UTC
(In reply to comment #5)
> (In reply to comment #4)
>  
> > Okay, if I understand you correctly, then you are one of the upstream authors,
> > and you are saying that you and the other upstream authors are ok with
> > distributions using then system versions of the libraries?
> 
> Yes, I am one of the authors. It is my understanding that the SYSLIBS support
> "clause" was not intended to apply to people packaging ardour and that we also
> supported the ardour packages on debian when they used it. I'll try to get a
> more authoritative answer in a few days when the main developer gets back from a
> trip.
> 

Sounds good, I'll wait for that and if there is agreement upstream that this
clause does not apply to Fedora I will happily enable syslibs support.

> > Does this also mean that the included copies of the libraries are pristine
copies?
> 
> The source code is unmodified, there are additional files to support building
> and installing the libraries into private locations etc. 
> 

Sounds good too.


Comment 7 Hans de Goede 2007-12-21 18:55:25 UTC
Tim,

I guess this has slipped under your radar, any chance you could talk to the
other ardour developers about their stance on us using system libs instead of
included ones? It would be nice to switch to system libs if OK-ed by upstream.


Comment 8 Tim Mayberry 2007-12-26 03:17:34 UTC
(In reply to comment #7)
> Tim,
> 
> I guess this has slipped under your radar, any chance you could talk to the
> other ardour developers about their stance on us using system libs instead of
> included ones? It would be nice to switch to system libs if OK-ed by upstream.

Sure, this did come up on IRC a recently but I didn't participate in the
conversation as I'm in a very different timezone to most of the other ardour devs.

The main reason given by the main developer(Paul Davis) for pulling all the C++
library dependencies into the ardour source tree was because of changes in the
C++ ABI. As I understand it the problem being that people were compiling ardour
with a version of g++/libstdc++ with a different ABI version than that used to
compile the C++ library dependencies which caused many issues.

So the solution(good or bad) was to add the libraries to the source tree and
build them with the rest of ardour to ensure they are all built with the same
compiler/CXXABI etc.

I'll try to talk to the other developers in the next few days but feel free to
ask about this issue on the ardour-dev mailing list if you have time.




Comment 9 Hans de Goede 2007-12-26 10:05:51 UTC
(In reply to comment #8)
> The main reason given by the main developer(Paul Davis) for pulling all the C++
> library dependencies into the ardour source tree was because of changes in the
> C++ ABI. As I understand it the problem being that people were compiling ardour
> with a version of g++/libstdc++ with a different ABI version than that used to
> compile the C++ library dependencies which caused many issues.
>

If that was the main reason, then it would be fine to use the system versions in
Fedora as all Fedora packages and libs are built with the same c++ ABI.


Comment 10 Hans de Goede 2008-04-07 14:09:05 UTC
Since the libs included with ardour fail to build with gcc-4.3, and this has
long been fixed in the system versions of these libs. We are now switching to
using system libs, considering what has been explained here, I assume upstream
won't have any big problems with this.

So ardour-2.4-1 which should hit rawhide soon will be built with system-libs.