Closed Bug 573367 Opened 12 years ago Closed 11 years ago

Update mozilla/security/nss/lib/zlib to zlib 1.2.5

Categories

(NSS :: Libraries, enhancement, P2)

enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: djeter, Assigned: wtc)

References

()

Details

Attachments

(7 files, 3 obsolete files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.3a6pre) Gecko/20100620 SeaMonkey/2.1a2pre
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.3a6pre) Gecko/20100620 SeaMonkey/2.1a2pre

zlib 1.2.5 is available. These changes should be picked up.

Reproducible: Always
Attached patch Patch to upgrade to zlib-1.2.5 (obsolete) — Splinter Review
The last patch was broken. This fixes that problem.
Attachment #452576 - Attachment is obsolete: true
Apart from generally using the latest versions, what problems does this 
change solve for NSS?
Looking through the bug list, I don't see anything right now that this update would solve in NSS.
Ignoring our recent changes to our copy of zlib to
remove VMS support (bug 491044) and fix misspellings
(bug 506041), I found that this is the only change
we've made to zlib 1.2.3.

In the future we should refrain from making cosmetic
changes to third-party code, and create patch files
for our local changes.  I will take care of these
as part of the zlib 1.2.5 update.
Daniel, thanks for your patch.  This kind of patch
can't be reviewed by inspection.  I will review your
patch by duplicating your work and verifying that I
get the same results.
Assignee: nobody → wtc
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Priority: -- → P2
Target Milestone: --- → 3.13
I duplicated Daniel's work independently.  There are
only three differences.

1. Daniel added leading underscores (_) to lseek, open,
read, write, and close.  I believe he did that to fix
Visual C++ compiler warnings like this:

d:/wtc/nss-zlib-1.2.5/mozilla/security/nss/lib/zlib/gzlib.c(173) : warning C4996
: 'open': The POSIX name for this item is deprecated. Instead, use the ISO C++ c
onformant name: _open. See online help for details.
        C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\io.h(328) : see de
claration of 'open'

The _open, _lseek, _read, _write, _close symbols will
cause unresolved symbol linker errors on Unix.  I
suggest we suppress these compiler warnings by compiling
with -D_CRT_NONSTDC_NO_WARNINGS.  I will attach a patch
for mozilla/security/coreconf/WIN32.mk next.

2. Cosmetic: I sorted the .c files in manifest.mn in
alphabetical order.

3. I applied NSS's local change for zutil.h (attachment
468041 [review]).
This suppresses Visual C++ compiler warnings like these:

d:/wtc/nss-zlib-1.2.5/mozilla/security/nss/lib/zlib/gzread.c(31) : warning C4996
: 'read': The POSIX name for this item is deprecated. Instead, use the ISO C++ c
onformant name: _read. See online help for details.
        C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\io.h(329) : see de
claration of 'read'
d:/wtc/nss-zlib-1.2.5/mozilla/security/nss/lib/zlib/gzread.c(650) : warning C499
6: 'close': The POSIX name for this item is deprecated. Instead, use the ISO C++
 conformant name: _close. See online help for details.
        C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\io.h(318) : see de
claration of 'close'

Both Mozilla and NSPR are compiling with
-D_CRT_NONSTDC_NO_WARNINGS.  It's related to the
-D_CRT_SECURE_NO_WARNINGS flag that Nelson added.
Attachment #468061 - Flags: review?(nelson)
Attachment #468058 - Attachment description: Diffs between the work of djeter and wtc → Diffs between the update results of djeter and wtc
I made the changes described in comment 8 to
Daniel Jeter II's patch and checked it in on
the NSS trunk (NSS 3.13).
Attachment #452581 - Attachment is obsolete: true
Add the following to mozilla/security/nss/lib/zlib
to make it easier to update to new versions of zlib.

README.nss
patches (new directory)
patches/msvc-vsnprintf.patch
patches/prune-zlib.sh
Attachment #468094 - Flags: review?(nelson)
Update the makefile target "test" to the shell commands
used in zlib 1.2.5.

Minor edits of README.nss.
Attachment #468094 - Attachment is obsolete: true
Attachment #468105 - Flags: review?(nelson)
Attachment #468094 - Flags: review?(nelson)
Comment on attachment 468061 [details] [diff] [review]
Compile with -D_CRT_NONSTDC_NO_WARNINGS on Windows (checked in)

Christophe, could you review this patch?  It's described in comment 9.

Please use these MXR queries to verify both Mozilla and NSPR use the
-D_CRT_NONSTDC_NO_WARNINGS flag.  Thanks.

http://mxr.mozilla.org/mozilla-central/search?string=_CRT_NONSTDC_NO_WARNINGS
http://mxr.mozilla.org/nspr/search?string=_CRT_NONSTDC_NO_WARNINGS
Attachment #468061 - Flags: review?(nelson) → review?(christophe.ravel.bugs)
Comment on attachment 468105 [details] [diff] [review]
Add README.nss and patches to mozilla/security/nss/lib/zlib, v2 (checked in)

Elio, please review this patch.  It's described in comment 12 and comment 13.
I want to create a convention for third-party code in NSS.  Thanks.
Attachment #468105 - Flags: review?(nelson) → review?(emaldona)
Comment on attachment 468061 [details] [diff] [review]
Compile with -D_CRT_NONSTDC_NO_WARNINGS on Windows (checked in)

r=christophe
Attachment #468061 - Flags: review?(christophe.ravel.bugs) → review+
Comment on attachment 468061 [details] [diff] [review]
Compile with -D_CRT_NONSTDC_NO_WARNINGS on Windows (checked in)

Patch checked in on the NSS trunk (NSS 3.13).

Checking in WIN32.mk;
/cvsroot/mozilla/security/coreconf/WIN32.mk,v  <--  WIN32.mk
new revision: 1.43; previous revision: 1.42
done
Attachment #468061 - Attachment description: Compile with -D_CRT_NONSTDC_NO_WARNINGS on Windows → Compile with -D_CRT_NONSTDC_NO_WARNINGS on Windows (checked in)
Comment on attachment 468105 [details] [diff] [review]
Add README.nss and patches to mozilla/security/nss/lib/zlib, v2 (checked in)

>Index: mozilla/security/nss/lib/zlib/Makefile
>===================================================================
>RCS file: /cvsroot/mozilla/security/nss/lib/zlib/Makefile,v
>retrieving revision 1.6
>diff -u -r1.6 Makefile
>--- mozilla/security/nss/lib/zlib/Makefile	7 Nov 2009 01:13:10 -0000	1.6
>+++ mozilla/security/nss/lib/zlib/Makefile	22 Aug 2010 04:47:01 -0000
>@@ -79,10 +79,9 @@
> 
> test: $(PROGRAMS)
> 	@cd $(OBJDIR); \
>-	echo hello world | ./minigzip | ./minigzip -d || \
>-	  echo '		*** minigzip test FAILED ***' ; \
>-	if ./example; then \
>+	if echo hello world | ./minigzip | ./minigzip -d && ./example; then \
> 	  echo '		*** zlib test OK ***'; \
> 	else \
>-	  echo '		*** zlib test FAILED ***'; \
>+	  echo '		*** zlib test FAILED ***'; false; \
> 	fi
>+	-@rm -f foo.gz
>Index: mozilla/security/nss/lib/zlib/README.nss
>===================================================================
>RCS file: mozilla/security/nss/lib/zlib/README.nss
>diff -N mozilla/security/nss/lib/zlib/README.nss
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ mozilla/security/nss/lib/zlib/README.nss	22 Aug 2010 04:47:01 -0000
>@@ -0,0 +1,18 @@
>+zlib data compression library
>+
>+URL: http://zlib.net/
>+Version: 1.2.5
>+License: zlib License
>+License File: http://zlib.net/zlib_license.html
>+
>+Description:
>+
>+NSS uses zlib in libSSL (for the DEFLATE compression method), modutil, and
>+signtool.
>+
>+Local Modifications:
>+
>+- patches/prune-zlib.sh: run this shell script to remove unneeded files
>+  from the zlib distribution.
>+- patches/msvc-vsnprintf.patch: define HAVE_VSNPRINTF for Visual C++ 2008
>+  (9.0) and later.
>Index: mozilla/security/nss/lib/zlib/patches/msvc-vsnprintf.patch
>===================================================================
>RCS file: mozilla/security/nss/lib/zlib/patches/msvc-vsnprintf.patch
>diff -N mozilla/security/nss/lib/zlib/patches/msvc-vsnprintf.patch
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ mozilla/security/nss/lib/zlib/patches/msvc-vsnprintf.patch	22 Aug 2010 04:47:01 -0000
>@@ -0,0 +1,22 @@
>+--- zlib-1.2.5/zutil.h	2010-04-18 12:29:24 -0700
>++++ zlib/zutil.h	2010-08-21 18:07:03 -0700
>+@@ -172,17 +172,18 @@
>+ #endif
>+ 
>+ #ifndef F_OPEN
>+ #  define F_OPEN(name, mode) fopen((name), (mode))
>+ #endif
>+ 
>+          /* functions */
>+ 
>+-#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
>++#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) || \
>++   (defined(_MSC_VER) && _MSC_VER >= 1500)
>+ #  ifndef HAVE_VSNPRINTF
>+ #    define HAVE_VSNPRINTF
>+ #  endif
>+ #endif
>+ #if defined(__CYGWIN__)
>+ #  ifndef HAVE_VSNPRINTF
>+ #    define HAVE_VSNPRINTF
>+ #  endif
>Index: mozilla/security/nss/lib/zlib/patches/prune-zlib.sh
>===================================================================
>RCS file: mozilla/security/nss/lib/zlib/patches/prune-zlib.sh
>diff -N mozilla/security/nss/lib/zlib/patches/prune-zlib.sh
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ mozilla/security/nss/lib/zlib/patches/prune-zlib.sh	22 Aug 2010 04:47:01 -0000
>@@ -0,0 +1,30 @@
>+files_to_remove="
>+CMakeLists.txt
>+ChangeLog
>+FAQ
>+INDEX
>+Makefile
>+Makefile.in
>+amiga
>+configure
>+contrib
>+doc
>+examples
>+make_vms.com
>+msdos
>+nintendods
>+old
>+qnx
>+treebuild.xml
>+watcom
>+win32
>+zconf.h.cmakein
>+zconf.h.in
>+zlib.3
>+zlib.3.pdf
>+zlib.map
>+zlib.pc.in
>+zlib2ansi
>+"
>+
>+rm -rf $files_to_remove
Attachment #468105 - Flags: review?(emaldona) → review+
r+. only the first part of the patch was needed by now as other parts are already checked in, pardon for my delay.
Comment on attachment 468105 [details] [diff] [review]
Add README.nss and patches to mozilla/security/nss/lib/zlib, v2 (checked in)

Patch checked in on the NSS trunk (NSS 3.13).

Checking in Makefile;
/cvsroot/mozilla/security/nss/lib/zlib/Makefile,v  <--  Makefile
new revision: 1.7; previous revision: 1.6
done
RCS file: /cvsroot/mozilla/security/nss/lib/zlib/README.nss,v
done
Checking in README.nss;
/cvsroot/mozilla/security/nss/lib/zlib/README.nss,v  <--  README.nss
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/security/nss/lib/zlib/patches/msvc-vsnprintf.patch,v
done
Checking in patches/msvc-vsnprintf.patch;
/cvsroot/mozilla/security/nss/lib/zlib/patches/msvc-vsnprintf.patch,v  <--  msvc
-vsnprintf.patch
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/security/nss/lib/zlib/patches/prune-zlib.sh,v
done
Checking in patches/prune-zlib.sh;
/cvsroot/mozilla/security/nss/lib/zlib/patches/prune-zlib.sh,v  <--  prune-zlib.
sh
initial revision: 1.1
done
Attachment #468105 - Attachment description: Add README.nss and patches to mozilla/security/nss/lib/zlib, v2 → Add README.nss and patches to mozilla/security/nss/lib/zlib, v2 (checked in)
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.