From af7849f184f2bb47d698a497a1637a16185eaa99 Mon Sep 17 00:00:00 2001
From: Neil Conway <neilc@samurai.com>
Date: Tue, 5 Oct 2004 00:12:49 +0000
Subject: [PATCH] License cleanup: crypt.c and qsort.c to latest NetBSD CVS
 sources, to pickup license clarification (3-clause BSD is now used). Add
 license terms to memcmp.c (also from NetBSD), which previously had none.
 Finally, pickup an upstream fix to crypt.c (const-ify some arrays).

---
 src/port/crypt.c  | 36 ++++++++++++++++--------------------
 src/port/memcmp.c | 38 ++++++++++++++++++++++++++++++++++----
 src/port/qsort.c  | 28 ++++++++++++----------------
 3 files changed, 62 insertions(+), 40 deletions(-)

diff --git a/src/port/crypt.c b/src/port/crypt.c
index 11d60fbefb8..7d0f14a6d10 100644
--- a/src/port/crypt.c
+++ b/src/port/crypt.c
@@ -11,22 +11,18 @@
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
+ *    notice, this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *	  must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *	  may be used to endorse or promote products derived from this software
- *	  without specific prior written permission.
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.	IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
@@ -337,7 +333,7 @@ int			chars_in;
 
 /* =====  (mostly) Standard DES Tables ==================== */
 
-static unsigned char IP[] = {	/* initial permutation */
+static const unsigned char IP[] = {	/* initial permutation */
 	58, 50, 42, 34, 26, 18, 10, 2,
 	60, 52, 44, 36, 28, 20, 12, 4,
 	62, 54, 46, 38, 30, 22, 14, 6,
@@ -350,7 +346,7 @@ static unsigned char IP[] = {	/* initial permutation */
 
 /* The final permutation is the inverse of IP - no table is necessary */
 
-static unsigned char ExpandTr[] = {		/* expansion operation */
+static const unsigned char ExpandTr[] = {		/* expansion operation */
 	32, 1, 2, 3, 4, 5,
 	4, 5, 6, 7, 8, 9,
 	8, 9, 10, 11, 12, 13,
@@ -361,7 +357,7 @@ static unsigned char ExpandTr[] = {		/* expansion operation */
 	28, 29, 30, 31, 32, 1,
 };
 
-static unsigned char PC1[] = {	/* permuted choice table 1 */
+static const unsigned char PC1[] = {	/* permuted choice table 1 */
 	57, 49, 41, 33, 25, 17, 9,
 	1, 58, 50, 42, 34, 26, 18,
 	10, 2, 59, 51, 43, 35, 27,
@@ -373,12 +369,12 @@ static unsigned char PC1[] = {	/* permuted choice table 1 */
 	21, 13, 5, 28, 20, 12, 4,
 };
 
-static unsigned char Rotates[] = {		/* PC1 rotation schedule */
+static const unsigned char Rotates[] = {		/* PC1 rotation schedule */
 	1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
 };
 
 /* note: each "row" of PC2 is left-padded with bits that make it invertible */
-static unsigned char PC2[] = {	/* permuted choice table 2 */
+static const unsigned char PC2[] = {	/* permuted choice table 2 */
 	9, 18, 14, 17, 11, 24, 1, 5,
 	22, 25, 3, 28, 15, 6, 21, 10,
 	35, 38, 23, 19, 12, 4, 26, 8,
@@ -390,7 +386,7 @@ static unsigned char PC2[] = {	/* permuted choice table 2 */
 	0, 0, 46, 42, 50, 36, 29, 32,
 };
 
-static unsigned char S[8][64] = {		/* 48->32 bit substitution tables */
+static const unsigned char S[8][64] = {		/* 48->32 bit substitution tables */
 	/* S[1]			*/
 	{14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7,
 		0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8,
@@ -433,7 +429,7 @@ static unsigned char S[8][64] = {		/* 48->32 bit substitution tables */
 	2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11}
 };
 
-static unsigned char P32Tr[] = {	/* 32-bit permutation function */
+static const unsigned char P32Tr[] = {	/* 32-bit permutation function */
 	16, 7, 20, 21,
 	29, 12, 28, 17,
 	1, 15, 23, 26,
@@ -444,7 +440,7 @@ static unsigned char P32Tr[] = {	/* 32-bit permutation function */
 	22, 11, 4, 25,
 };
 
-static unsigned char CIFP[] = { /* compressed/interleaved permutation */
+static const unsigned char CIFP[] = { /* compressed/interleaved permutation */
 	1, 2, 3, 4, 17, 18, 19, 20,
 	5, 6, 7, 8, 21, 22, 23, 24,
 	9, 10, 11, 12, 25, 26, 27, 28,
@@ -456,7 +452,7 @@ static unsigned char CIFP[] = { /* compressed/interleaved permutation */
 	45, 46, 47, 48, 61, 62, 63, 64,
 };
 
-static unsigned char itoa64[] = /* 0..63 => ascii-64 */
+static const unsigned char itoa64[] = /* 0..63 => ascii-64 */
 "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
 
 
diff --git a/src/port/memcmp.c b/src/port/memcmp.c
index 6a381cbeac8..0ce671566cd 100644
--- a/src/port/memcmp.c
+++ b/src/port/memcmp.c
@@ -4,16 +4,46 @@
  *	  compares memory bytes
  *
  * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/memcmp.c,v 1.5 2004/08/29 04:13:12 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/port/memcmp.c,v 1.6 2004/10/05 00:12:49 neilc Exp $
  *
  * This file was taken from NetBSD and is used by SunOS because memcmp
- * on that platform does not properly compare negative bytes.
+ * on that platform does not properly compare negative bytes. The
+ * NetBSD copyright terms follow.
+ */
+
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chris Torek.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
- *-------------------------------------------------------------------------
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
 
 #include <string.h>
diff --git a/src/port/qsort.c b/src/port/qsort.c
index 20585a8091c..2fb5149a8b3 100644
--- a/src/port/qsort.c
+++ b/src/port/qsort.c
@@ -1,12 +1,12 @@
 /*
- *	Copied from NetBSD CVS, 2002-07-19, bjm
- *	Add do ... while() macro fix
- *	Remove __inline, _DIAGASSERTs, __P
+ *	Modifications from vanilla NetBSD source:
+ *	  Add do ... while() macro fix
+ *	  Remove __inline, _DIAGASSERTs, __P
  *
- *	$PostgreSQL: pgsql/src/port/qsort.c,v 1.4 2003/11/29 19:52:13 pgsql Exp $
+ *	$PostgreSQL: pgsql/src/port/qsort.c,v 1.5 2004/10/05 00:12:49 neilc Exp $
  */
 
-/*	$NetBSD: qsort.c,v 1.12 1999/09/20 04:39:40 lukem Exp $ */
+/*	$NetBSD: qsort.c,v 1.13 2003/08/07 16:43:42 agc Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -16,22 +16,18 @@
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
+ *    notice, this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *	  must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *	  may be used to endorse or promote products derived from this software
- *	  without specific prior written permission.
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.	IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-- 
GitLab