Three JPEG packages, no pkgconfig information

Charles Wilson cygwin@cwilson.fastmail.fm
Wed Dec 28 05:39:00 GMT 2005


David Arnstein wrote:
> When I run cygwin setup.exe, I see three JPEG related packages: jpeg, 
> libjpeg62, and libjpeg6b. 

Right.  The jpeg package contains documentation, static libraries, 
import libraries, header files, and executable utility programs.  The 
other two packages each contain a specific version of the shared library:

   libjpeg62 --> contains /usr/bin/cygjpeg-62.dll
   libjpeg6b --> contains /usr/bin/cygjpeg6b.dll

cygjpeg-62.dll is the current version, and that's what you'll link 
against if you use -ljpeg when compiling your app.  cygjpeg6b.dll is 
only present in the distribution for backwards compatibility: some 
existing cygwin programs require the older version simply because they 
have not yet been recompiled to use the newer version.  You'll see this 
pattern often in the cygwin distribution: multiple packages that all 
each contain a single DLL, all with slightly different version numbers. 
  It's simply a backwards compatibility thing.

> Not one of these packages leaves a file in 
> /usr/lib/pkgconfig.

pkgconfig is not universally supported by every package in the linux 
universe.  Jpeg is one of those packages whose official maintainers (the 
Independent JPEG Group, or IJG) have chosen NOT to provide pkgconfig 
files.  Therefore, the cygwin distribution of their software ALSO does 
not provide them.  (Actually, I believe the most recent IJG release, 
jpeg-v6b, predates the very existence of pkgconfig -- which shows the 
pace of development of libjpeg)

> I am trying to compile some image processing programs (such as gthumb) 
> and so I'd like to know if it is normal to see these three overlapping 
> packages present. 

It is normal, as explained above.  But they aren't really "overlapping".

> Why don't they install files in /usr/lib/pkgconfig? 

Explained above: the upstream "official" maintainers of the IJG jpeg 
library have chosen not to provide them; it is not for us mere mortals 
to reason why.  For other software, I'd say "I'm sure they would 
consider a patch adding that functionality" -- but not jpeg.  libjpeg 
development is practically dead, and has had no new release in years. 
Nor is there a fork of the current software with active development: I 
can only assume that most people seem to think that jpeg-v6b works fine 
and see no need to fork/continue development.

There have been recent signs of life on the IJG (private) mailing list, 
but I wouldn't hold my breath.

> Is 
> this directory only for Gnome related work?

No.

But none of this extended discussion should matter: if you have the 
'jpeg' and 'libjpeg62' packages installed, then you have the appropriate 
headers in /usr/include and link librares in /usr/lib -- which are part 
of the default search path for gcc.  So gthumb et. al. should have NO 
problem detecting that you have jpeg installed, and you need no extra 
flags (such as would be provided by 'pkg-config --cflags jpeg' or 
'pkg-config --libs jpeg') to make that happen.

--
Chuck
cygwin-jpeg and cygwin-pkgconfig maintainer


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list