This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Updated: libpng-1.0.8-2

The libpng package has been updated to version 1.0.8-2.  libpng is a
library that provides routines to access and manipulate Portable Network
Graphics (PNG) images.  PNG is a lossless, patent-unencumbered image
format intended to replace GIF.


- dll is now called 'cygpng2.dll' to avoid naming conflicts dlls from
other platforms. If you have an application that depends on libpng.dll,
you must either recompile so that the app depends on cygpng2.dll, or
take special steps to preserve libpng.dll (see below).  Hopefully this
short-term inconvenience will reduce long-term difficulties.

- see this thread: "DLL naming flamefest" for a detailed
discussion of the arguments for/against this renaming, and concerning
dll versioning.

- updates from 1.0.9pre3 (I've tested these, but they only apply to the
asm acceleration code, which isn't included in the binary package.  So,
I didn't bump the version number)


To update your installation, click on the "Install Cygwin now" link on
the web page.  This downloads setup.exe
to your system.

Since setup will uninstall the old version, if you want to preserve
/usr/bin/libpng.dll, do:
   'cp /usr/bin/libpng.dll /usr/bin/libpng.dll.bak'
BEFORE continuing.  AFTER running setup.exe, do:
   'cp /usr/bin/libpng.dll.bak /usr/bin/libpng.dll'
(yes, I know this is obvious; I just wanted to emphasize that there is
no automated way of doing it)

Run setup and answer all of the questions.  PLEASE, PLEASE, PLEASE
choose a mirror site for your download.  The '' site
is badly overloaded.  The mirrors below have the latest version of this
package: (US)
(Germany) (Greece)

The setup.exe program will figure out what needs to be updated on your
system and should install the less package automatically.

If you have questions or comments, please send them to the Cygwin
mailing list at: .  I would appreciate if you
would use this mailing list rather than emailing me directly. This
includes ideas and comments about the setup utility or Cygwin general.

If you want to make a point or ask a question the Cygwin mailing list is
the appropriate place.


If you want to unsubscribe to the cygwin-announce mailing list, look at
the "List-Unsubscribe: " tag in the email header of this message. Send
email to the address specified there.  It will be in the format:


o Building the package from source requires gcc-2.95.2-2 and
binutils-20000722-1 or later

o depends on zlib-1.1.3-5, so you should also update zlib to that

o updates from 1.0.9pre3 (I've tested these, but they only apply to the
asm acceleration code -- which isn't included in the binary package. 
So, I didn't bump the version number)

o follows new naming scheme for dlls:
  - import-lib   /usr/lib/libpng.dll.a
  - static-lib   /usr/lib/libpng.a
  - stripped dll /usr/bin/cygpng2.dll (**)
  - cygwin-specific docs in /usr/doc/Cygwin/libpng-1.0.8.README
  - generic docs in /usr/doc/libpng-1.0.8/*

(**) png-developers specify that 1.x.y packages have an interface
version number of 2. The 2.x.y packages are forthcoming, and will be
have a version number of 3.
o The source archive has already had the cygwin-specific patch applied
to it.

o A cygwin-specific README and PATCH are stored in the source archive,
under <top>/CYGWIN-PATCHES/* (although that patch has already been
applied to the archive itself). The cygwin-specific README is also
installed by the binary distribution as described above.

o If you are building a package that depends on libpng, and you wish to
link *statically*, define -DPNG_STATIC *and* -DZLIB_STATIC to get the
'correct' #define's in png.h/pngconf.h *and* zlib.h/zconf.h when
compiling the .o files in your package. Also, use 'gcc -static' when
linking your package.

o No special -Ddefine options or link options are needed when building a
package that depends on libpng and you want to link dynamically

o I was able to successfully compile and pass libpng's internal tests
('make test') with all of the following build enviromenments:
  - static
  - dll
  - static with pnggccrd (assembler optimizations)
  - dll with pnggccrd
  - static (compiled with 'gcc -mno-win32')
  - dll (+ 'gcc -mno-win32')
  - static with pnggccrd (+ 'gcc -mno-win32')
  - dll with pnggccrd (+ 'gcc -mno-win32')
However, the binary package did not use any of the assembler code, and I
didn't use 'gcc -mno-win32' to compile it. According to tests reported
on the libpng-developer's mailing list, the pnggccrd code did not speed
it up all that much, and it breaks cygwin's compatibility with older
processors (a no-no). If you want to build your own libpng with those
enhancements, download the source -- /usr/doc/Cygwin/libpng-1.0.8.README 
contains instructions for building your own asm-accelerated libpng. 

o Most of the cygwin changes have been accepted into the official
libpng-1.0.8 tree. The remaining changes have to do with the
CYGWIN-PATCHES directory and slight modifications to the Makefile
install: process, and so it's appropriate that these minor changes be
maintained outside the official tree.

Charles Wilson
libpng volunteer maintainer for cygwin

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]