| From d86210973df93ccca0befd56afba2132da925ebc Mon Sep 17 00:00:00 2001 |
| From: Chris Liddell <chris.liddell@artifex.com> |
| Date: Thu, 18 Apr 2019 16:58:41 +0100 |
| Subject: [PATCH] Bug 700986: Remove the crazy md5 file copying nonsense |
| |
| To preserve building as a standalone test exe, we avoided using Ghostscript |
| includes in the md5 source and header files, but dynamically add them to |
| copies of the files during the build. Since we no longer need/care for the |
| stand alone exe, remove the build complication, and just include the header |
| file normally. |
| |
| Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| [Retrieved from: |
| http://git.ghostscript.com/?p=user/chrisl/ghostpdl.git;a=commitdiff;h=d86210973df9] |
| --- |
| base/gsmd5.h | 2 + |
| base/lib.mak | 10 +-- |
| base/md5main.c | 141 ----------------------------------------- |
| doc/Develop.htm | 1 - |
| windows/ghostscript.vcproj | 4 -- |
| windows/ghostscript_rt.vcxproj | 1 - |
| 6 files changed, 5 insertions(+), 154 deletions(-) |
| delete mode 100644 base/md5main.c |
| |
| diff --git a/base/gsmd5.h b/base/gsmd5.h |
| index 206ea6b..b159afb 100644 |
| --- a/base/gsmd5.h |
| +++ b/base/gsmd5.h |
| @@ -50,6 +50,8 @@ |
| #ifndef md5_INCLUDED |
| # define md5_INCLUDED |
| |
| +#include "memory_.h" |
| + |
| /* |
| * This package supports both compile-time and run-time determination of CPU |
| * byte order. If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be |
| diff --git a/base/lib.mak b/base/lib.mak |
| index 3ed088a..21e2cb7 100644 |
| --- a/base/lib.mak |
| +++ b/base/lib.mak |
| @@ -387,13 +387,8 @@ gsmd5_h=$(GLSRC)gsmd5.h |
| # We have to use a slightly different compilation approach in order to |
| # get std.h included when compiling md5.c. |
| md5_=$(GLOBJ)gsmd5.$(OBJ) |
| -$(GLOBJ)gsmd5.$(OBJ) : $(GLSRC)gsmd5.c $(AK) $(gsmd5_h)\ |
| - $(EXP)$(ECHOGS_XE) $(LIB_MAK) $(MAKEDIRS) |
| - $(EXP)$(ECHOGS_XE) -w $(GLGEN)gsmd5.h -x 23 include -x 2022 memory_.h -x 22 |
| - $(EXP)$(ECHOGS_XE) -a $(GLGEN)gsmd5.h -+R $(GLSRC)gsmd5.h |
| - $(CP_) $(GLSRC)gsmd5.c $(GLGEN)gsmd5.c |
| - $(GLCC) $(GLO_)gsmd5.$(OBJ) $(C_) $(GLGEN)gsmd5.c |
| - $(RM_) $(GLGEN)gsmd5.c $(GLGEN)gsmd5.h |
| +$(GLOBJ)gsmd5.$(OBJ) : $(GLSRC)gsmd5.c $(AK) $(gsmd5_h) $(LIB_MAK) $(MAKEDIRS) |
| + $(GLCC) $(GLO_)gsmd5.$(OBJ) $(C_) $(GLSRC)gsmd5.c |
| |
| # SHA-256 digest |
| sha2_h=$(GLSRC)sha2.h |
| @@ -12346,3 +12341,4 @@ $(GLSRC)gxshade4.h:$(GLSRC)gstypes.h |
| $(GLSRC)gxshade4.h:$(GLSRC)stdpre.h |
| $(GLSRC)gxshade4.h:$(GLGEN)arch.h |
| $(GLSRC)gxshade4.h:$(GLSRC)gs_dll_call.h |
| +$(GLSRC)gsmd5.h:$(GLSRC)memory_.h |
| diff --git a/base/md5main.c b/base/md5main.c |
| deleted file mode 100644 |
| index 75c523b..0000000 |
| --- a/base/md5main.c |
| +++ /dev/null |
| @@ -1,141 +0,0 @@ |
| -/* |
| - Copyright (C) 2002-2018 Artifex Software, Inc. |
| - All rights reserved. |
| - |
| - This software is provided 'as-is', without any express or implied |
| - warranty. In no event will the authors be held liable for any damages |
| - arising from the use of this software. |
| - |
| - Permission is granted to anyone to use this software for any purpose, |
| - including commercial applications, and to alter it and redistribute it |
| - freely, subject to the following restrictions: |
| - |
| - 1. The origin of this software must not be misrepresented; you must not |
| - claim that you wrote the original software. If you use this software |
| - in a product, an acknowledgment in the product documentation would be |
| - appreciated but is not required. |
| - 2. Altered source versions must be plainly marked as such, and must not be |
| - misrepresented as being the original software. |
| - 3. This notice may not be removed or altered from any source distribution. |
| - |
| - L. Peter Deutsch |
| - ghost@aladdin.com |
| - |
| - */ |
| -/* |
| - Independent implementation of MD5 (RFC 1321). |
| - |
| - This code implements the MD5 Algorithm defined in RFC 1321, whose |
| - text is available at |
| - http://www.ietf.org/rfc/rfc1321.txt |
| - The code is derived from the text of the RFC, including the test suite |
| - (section A.5) but excluding the rest of Appendix A. It does not include |
| - any code or documentation that is identified in the RFC as being |
| - copyrighted. |
| - |
| - The original and principal author of md5.c is L. Peter Deutsch |
| - <ghost@aladdin.com>. Other authors are noted in the change history |
| - that follows (in reverse chronological order): |
| - |
| - 2007-06-08 RG Namespaced the api calls to avoid conflict with other |
| - implementations when linking gs as a library. |
| - 2002-04-13 lpd Splits off main program into a separate file, md5main.c. |
| - */ |
| - |
| -#include "gsmd5.h" |
| -#include <math.h> |
| -#include <stdio.h> |
| -#include <string.h> |
| - |
| -/* |
| - * This file builds an executable that performs various functions related |
| - * to the MD5 library. Typical compilation: |
| - * gcc -o md5main -lm md5main.c md5.c |
| - */ |
| -static const char *const usage = "\ |
| -Usage:\n\ |
| - md5main --test # run the self-test (A.5 of RFC 1321)\n\ |
| - md5main --t-values # print the T values for the library\n\ |
| - md5main --version # print the version of the package\n\ |
| -"; |
| -static const char *const version = "2002-04-13"; |
| - |
| -/* Run the self-test. */ |
| -static int |
| -do_test(void) |
| -{ |
| - static const char *const test[7*2] = { |
| - "", "d41d8cd98f00b204e9800998ecf8427e", |
| - "a", "0cc175b9c0f1b6a831c399e269772661", |
| - "abc", "900150983cd24fb0d6963f7d28e17f72", |
| - "message digest", "f96b697d7cb7938d525a2f31aaf161d0", |
| - "abcdefghijklmnopqrstuvwxyz", "c3fcd3d76192e4007dfb496cca67e13b", |
| - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", |
| - "d174ab98d277d9f5a5611c2c9f419d9f", |
| - "12345678901234567890123456789012345678901234567890123456789012345678901234567890", "57edf4a22be3c955ac49da2e2107b67a" |
| - }; |
| - int i; |
| - int status = 0; |
| - |
| - for (i = 0; i < 7*2; i += 2) { |
| - gs_md5_state_t state; |
| - gs_md5_byte_t digest[16]; |
| - char hex_output[16*2 + 1]; |
| - int di; |
| - |
| - gs_md5_init(&state); |
| - gs_md5_append(&state, (const gs_md5_byte_t *)test[i], strlen(test[i])); |
| - gs_md5_finish(&state, digest); |
| - for (di = 0; di < 16; ++di) |
| - gs_sprintf(hex_output + di * 2, "%02x", digest[di]); |
| - if (strcmp(hex_output, test[i + 1])) { |
| - printf("MD5 (\"%s\") = ", test[i]); |
| - puts(hex_output); |
| - printf("**** ERROR, should be: %s\n", test[i + 1]); |
| - status = 1; |
| - } |
| - } |
| - if (status == 0) |
| - puts("md5 self-test completed successfully."); |
| - return status; |
| -} |
| - |
| -/* Print the T values. */ |
| -static int |
| -do_t_values(void) |
| -{ |
| - int i; |
| - for (i = 1; i <= 64; ++i) { |
| - unsigned long v = (unsigned long)(4294967296.0 * fabs(sin((double)i))); |
| - |
| - /* |
| - * The following nonsense is only to avoid compiler warnings about |
| - * "integer constant is unsigned in ANSI C, signed with -traditional". |
| - */ |
| - if (v >> 31) { |
| - printf("#define T%d /* 0x%08lx */ (T_MASK ^ 0x%08lx)\n", i, |
| - v, (unsigned long)(unsigned int)(~v)); |
| - } else { |
| - printf("#define T%d 0x%08lx\n", i, v); |
| - } |
| - } |
| - return 0; |
| -} |
| - |
| -/* Main program */ |
| -int |
| -main(int argc, char *argv[]) |
| -{ |
| - if (argc == 2) { |
| - if (!strcmp(argv[1], "--test")) |
| - return do_test(); |
| - if (!strcmp(argv[1], "--t-values")) |
| - return do_t_values(); |
| - if (!strcmp(argv[1], "--version")) { |
| - puts(version); |
| - return 0; |
| - } |
| - } |
| - puts(usage); |
| - return 0; |
| -} |
| diff --git a/doc/Develop.htm b/doc/Develop.htm |
| index c1ffceb..1ed3030 100644 |
| --- a/doc/Develop.htm |
| +++ b/doc/Develop.htm |
| @@ -684,7 +684,6 @@ Other: |
| <a href="../base/gx.h">base/gx.h</a>, |
| <a href="../base/gsmd5.c">base/gsmd5.c</a>, |
| <a href="../base/gsmd5.h">base/gsmd5.h</a>, |
| -<a href="../base/md5main.c">base/md5main.c</a>, |
| <a href="../base/aes.c">base/aes.c</a>, |
| <a href="../base/aes.h">base/aes.h</a>. |
| |
| diff --git a/windows/ghostscript.vcproj b/windows/ghostscript.vcproj |
| index d607949..fdbeaa1 100644 |
| --- a/windows/ghostscript.vcproj |
| +++ b/windows/ghostscript.vcproj |
| @@ -2510,10 +2510,6 @@ |
| > |
| </File> |
| <File |
| - RelativePath="..\base\md5main.c" |
| - > |
| - </File> |
| - <File |
| RelativePath="..\base\memento.c" |
| > |
| </File> |
| diff --git a/windows/ghostscript_rt.vcxproj b/windows/ghostscript_rt.vcxproj |
| index 589b2d1..fca736b 100644 |
| --- a/windows/ghostscript_rt.vcxproj |
| +++ b/windows/ghostscript_rt.vcxproj |
| @@ -597,7 +597,6 @@ |
| <ClCompile Include="..\base\gxtype1.c" /> |
| <ClCompile Include="..\base\gzspotan.c" /> |
| <ClCompile Include="..\base\gsmd5.c" /> |
| - <ClCompile Include="..\base\md5main.c" /> |
| <ClCompile Include="..\base\memento.c" /> |
| <ClCompile Include="..\base\minftrsz.c" /> |
| <ClCompile Include="..\base\mkromfs.c" /> |
| -- |
| 2.9.1 |
| |
| |