
|
[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
|

|