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

The libpng package in cygwin/latest has been updated (and moved). 

Please read this message in its entirety. A list of changes/notes
concerning this package appear below.

libpng now appears in cygwin/contrib/libpng/ instead of
cygwin/latest/libpng. This should not affect most users; for now,
packages in the contrib directory are treated exactly as if they were in
the latest directory. In the future, setup.exe may have the ability to
mark certain packages -- especially those in contrib -- as optional. If
you are keeping a personal archive of installation packages, as I am,
don't forget to remove your copy of cygwin/latest/libpng/*.

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

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) (Austria)

Note that if this is the first time that you've run the new GUI version
of setup, it will currently download the whole cygwin net release again.
After this point it will only download what is needed.

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-4, so you should also update zlib to that

o Update to abide by the cygwin package system standard:
  - import-lib   /usr/lib/libpng.dll.a
  - static-lib   /usr/lib/libpng.a
  - stripped dll /usr/bin/libpng.dll
  - cygwin-specific docs in /usr/doc/Cygwin/libpng-1.0.8.README
  - generic docs in /usr/doc/libpng-1.0.8/*
o The old package, libpng-1.0.6-1, was built prior to certain changes in
the linker that allowed us to change the naming scheme for static
libraries, import libraries, and header files. Specifically,
/usr/include/static/* and the libpng.a symlink are obsolete.  To
completely remove all obsoleted files from your system, you must remove
the following files by hand:
  - /usr/include/static/png.h 
  - /usr/include/static/pngconf.h
  - /usr/lib/libpng.a-dll
  - /usr/lib/libpng.a-static 
If you choose not to remove any of these files, that's okay -- your
system will still use the newest stuff. If you also update zlib to
zlib-1.1.3-4 (recommended -- see above), then you can also remove
/usr/include/static/zlib.h,zconf.h, and eliminate the
/usr/include/static directory itself.

o If you have installed or plan to install the usr-local package from
cygutils, read this note:

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, adn 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 -- there are instructions for doing

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.

o A word of warning: pngtest will fail if it picks up the wrong libz.dll
at runtime. Make sure you're using the one in the zlib-1.1.3-4 and not
an older copy or the one distributed with Suhaib's X11 stuff. 

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]