Go to the FreeLists Home Page Home Signup Help Login
 



[argyllcms] || [Date Prev] [01-2008 Date Index] [Date Next] || [Thread Prev] [01-2008 Thread Index] [Thread Next]

[argyllcms] Re: ArgyllCMS build system

  • From: "Hal V. Engel" <hvengel@xxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Tue, 1 Jan 2008 17:11:19 -0800
On Tuesday 01 January 2008 13:07:42 Nicolas Mailhot wrote:
> Le mardi 01 janvier 2008 à 21:55 +0100, Gerhard Fuernkranz a écrit :
> > Nicolas Mailhot wrote:
> > > A fourth way is to just rebuild everything depending on argyll every
> > > time its version is bumped. Which is painful but less painful than the
> > > current fork + static linking situation.
> >
> > Unfortunately not just rebuild. Rebuilding would be sufficient if only
> > the ABIs change. But if the APIs change (for instance, if a function now
> > has five arguments, while it had only three arguments in the previous
> > version, and if the data types of some of these arguments have changed
> > too,...), then even code changes are necessary in the programs which use
> > those APIs.
>
> That's what I meant. Rebuild the core package, rebuild the dependant
> packages you can, wait for the others upstreams to catch up or patch
> them at the distro level if the maintainer feels like it, etc

In many cases where there is an API change to ArgyllCMS the changes that are 
needed in LProf are non-trivial and there are a limited number of individuals 
that are qualified to make those changes.  In other words the odds of a 
distro package maintainer being able to make a patch that actually works 
correctly in at least some cases is close to zero.   Please don't take this 
the wrong way since there are parts of LProf and ArgyllCMS that are very 
complex and in some cases the complexity from both intersects.   These parts 
should only be touched by someone who really knows what they are doing.   In 
fact there are places in LProf that I don't even consider myself qualified to 
work on.

Just like those who are managing distro packaging I would like ArgyllCMS to 
have a fairly stable API and ABI that would allow it's library functions to 
be used in a shared manor.  But ArgyllCMS is clearly a work in progress and I 
don't expect that this will happen any time soon.  In fact I am all in favor 
of Graeme working his way through the process until he feels that things are 
mature enough for that to happen.    I don't care how long it takes to get to 
that point and I can live with the current situation in the mean time. 

As it stands there are only two applications using the ArgyllCMS "libraries" 
and LProf only uses a subset of these.  I do not expect to see any new open 
source applications in this problem domain anytime soon and in fact there may 
never be any other apps in the domain.   From my perspective the only group 
for whom this is close to being "painful" is the LProf team since we are the 
ones reintegrating the ArgyllCMS functionality when there is a version bump.  
Even then most of these version bumps only take a few hours to reintegrate 
(IE. it is a pin prick not a broken arm).  I have never seen a case of any 
distro patching LProf (beyond fixing things like build issues and spelling 
errors) with anything other than a patch provided by one of the LProf 
developers and LProf has been a fairly common app for distros to package 
since at least 1999.  I expect that this would also be true for ArgyllCMS 
once it becomes packaged.

My biggest concern in this area is that there are ArgyllCMS and LProf specific 
customized versions of comonly installed libraries (libusb in ArgyllCMS and 
LCMS in LProf are two examples).  Those customizations should likely be 
included in the default versions of these libraries.  I can't speak for 
Graeme but I know that I have offered to help get the changes for those 
libraries that have been modified by LProf integrated into these upstream 
libraries.   I suspect that we will not see this happen for a long time and 
in some cases perhaps never.  Developers who are using very common libraries 
like this, particularly those who are pushing the limits of the existing 
versions of those libraries, should be able to submit patches to upstream and 
have new versions of those libraries incorporate (a perhaps modified version) 
of those patches or have other functionality added that accomplices the same 
thing at some point.  

The customized versions of these common libraries are currently in Beta 
versions of ArgyllCMS and only in LProf CVS (IE. has not been released) and 
in some cases the developers might not even be sure that the changes are 
correct until more testing has occurred.  Patches or other information about 
the mods may not have been submitted to upstream because of this uncertainty.   
I know this was the case with at least some of the changes LProf has made to 
the argyllCMS code although this is not the case with the LCMS changes.

This is an area where those who are doing distro packaging work can be very 
helpful.  If, for example, someone created a patch set that contained the 
ArgyllCMS changes to libusb and then this incorporated this into one or more 
distros to be able to support ArgyllCMS meter library with a shared version 
of the library this could result in those patches making their way into the 
upstream library sooner.  This would benefit everyone. 

Hal





[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.