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/