X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS,URIBL_RHS_DOB X-Spam-Check-By: sourceware.org Message-ID: <4A4765A7.2030504@cwilson.fastmail.fm> Date: Sun, 28 Jun 2009 08:44:23 -0400 From: Charles Wilson User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.22) Gecko/20090605 Thunderbird/2.0.0.22 Mnenhy/0.7.6.666 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: [RFC] jpeg library References: <4A466538 DOT 8030007 AT cwilson DOT fastmail DOT fm> <4A46FAA4 DOT 2 AT users DOT sourceforge DOT net> <4A470ADF DOT 5010306 AT cwilson DOT fastmail DOT fm> <4A471802 DOT 5030001 AT users DOT sourceforge DOT net> In-Reply-To: <4A471802.5030001@users.sourceforge.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Yaakov (Cygwin/X) wrote: > On 28/06/2009 01:17, Charles Wilson wrote: >> Nope. Upstream development is DEAD. There was some flurry of activity >> about two years ago, but it never went anywhere. If IJG's libjpeg >> wasn't so widespread and widely used, I'd want to look at some other >> library that supports the format... > > Actually, are you sure about that? http://www.ijg.org/ lists a version > 7, released yesterday, as the current version. WTH? You're kidding me...I'm floored. There's a private mailing list (with no online archives, natch) for the IJG project, but my subscription is with an different email account, so I haven't checked it in a while...nope, no activity on THAT list recently. Maybe there's a new list? Anyway, wow. OK, this changes things... From the (competing?) libjpeg on sourceforge, there was a conversation earlier this week, involving Guido Vollbeding (current IJG jpeg maintainer), Tom Lane (previous IJG jpeg maintainer), and Bob Friesenhahn (sourceforge libjpeg maintainer, GraphicsMagick). Guido said: > I have taken great care that v6b can be replaced seamlessly with v7, > and even v8 will remain API compatible while introducing essential > novelties. BUT...they went ahead and changed the library version number anyway. In the sourceforge code (on which cygwin's current jpeg is based), it was -version-info=62. In the new jpeg-v7 code, it is -version-info=7:0 In effect, this represents a change from "cygjpeg-62.dll" to "cygjpeg-7.dll". Given the speed of jpeg development, I doubt any of us will be alive when the new DLL number series gets up to 61 (at over 10 years per major number...it'll be 2549 A.D. before we get there). In that same conversation, there is a lot of mention of the use of symbol versioning as the panacea for all possible version conflicts. Nobody has seemed to point out that it works only on ELF systems. Looks like jpeg-7 incorporates a number of the Debian patches, and many of the patches from jpegclub.org, so that's good (Hmmm. Actually, the jpegclub.org website has been updated and now claims "JPEGclub.org...maintains the Independent JPEG Group's (IJG) software.". I guess this isn't surprising, as jpegclub.org has always been Guido Vollbeding's site; now that he's taken over from Tom Lane officially, this only makes sense). So, to sum up: ORDINARILY, the new jpeg library should be binary compatible (and definitely API compatible) with the old one. It has lots of new functionality, but in a backwards-compatible way. However, they changed the SONAME anyway, which gives us the perfect opportunity we're looking for. OK...new plan: jpeg-v7 will be released for cygwin-1.7 only, using gcc4/dw2/shared-libgcc only, and will have the name "cygjpeg-7.dll". It will NOT have lossless jpeg support. I'll do this soon. -- Chuck -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple