View | Details | Raw Unified | Return to bug 223721 | Differences between
and this patch

Collapse All | Expand All

(-)textproc/htmldoc/Makefile (-42 / +28 lines)
Lines 1-62 Link Here
1
# Created by: Glenn Trewitt <glenn@trewitt.org>
1
# Created by: Glenn Trewitt <glenn@trewitt.org>
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	htmldoc
4
PORTNAME=		htmldoc
5
PORTVERSION=	1.8.28
5
PORTVERSION=		1.9.3
6
PORTREVISION=	3
6
DISTVERSIONPREFIX=	v
7
CATEGORIES=	textproc
7
CATEGORIES=		textproc
8
MASTER_SITES=	https://github.com/michaelrsweet/htmldoc/releases/download/release-${PORTVERSION}/
9
DISTNAME=	${PORTNAME}-${PORTVERSION}-source
10
8
11
MAINTAINER=	jose@diasfernandes.pt
9
MAINTAINER=	jose@diasfernandes.pt
12
COMMENT=	Converts HTML to PDF and/or PostScript
10
COMMENT=	Converts HTML to PDF and/or PostScript
13
11
14
LICENSE=	GPLv2
12
LICENSE=	GPLv2
13
LICENSE_FILE=	${WRKSRC}/COPYING
15
14
16
BROKEN_SSL=	openssl-devel
15
BROKEN_mips=	Complains of expecting ) before png_ptr
17
16
18
LIB_DEPENDS=	libpng.so:graphics/png
17
LIB_DEPENDS=	libpng.so:graphics/png 
19
18
20
OPTIONS_DEFINE=	HTMLDOCGUI
19
USE_GITHUB=	yes
21
HTMLDOCGUI_DESC=	Build GUI front-end
20
GH_ACCOUNT=	michaelrsweet
22
21
23
USES=		jpeg tar:bzip2 ssl
22
HAS_CONFIGURE=	yes
23
MAKE_ARGS+=	mandir="${MANDIRS}"
24
24
25
GNU_CONFIGURE=	yes
25
OPTIONS_DEFINE=		HTMLDOCGUI SSL
26
# Configure seems broken and ignores these ATM:
26
OPTIONS_DEFAULT=	SSL
27
CONFIGURE_ARGS+=--disable-localjpeg --disable-localzlib --disable-localpng
28
# Explicitely disable gnutls as it fails to build if detected
29
CONFIGURE_ARGS+=--disable-gnutls
30
WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
31
EXCLUDE=	png jpeg zlib htmldoc/md5* htmldoc/rc4* htmldoc/snprintf*
32
EXTRACT_AFTER_ARGS=${EXCLUDE:S,^,--exclude ,}
33
INSTALL_TARGET=	install \
34
		bindir=${STAGEDIR}${PREFIX}/bin \
35
		datadir=${STAGEDIR}${PREFIX}/share \
36
		mandir=${STAGEDIR}${MANPREFIX}/man
37
CPPFLAGS+=	-I${OPENSSLINC}
38
LDFLAGS+=	-L${LOCALBASE}/lib
39
27
40
HTMLDOCGUI_LIB_DEPENDS=	libfltk.so:x11-toolkits/fltk
28
HTMLDOCGUI_DESC=	Build GUI front-end
41
HTMLDOCGUI_CONFIGURE_ON=	--with-gui=yes
29
HTMLDOCGUI_CONFIGURE_WITH=	gui=yes
42
HTMLDOCGUI_CONFIGURE_OFF=	--with-gui=no
30
HTMLDOCGUI_LIB_DEPENDS+=	libfltk.so:x11-toolkits/fltk \
31
				libfontconfig.so:x11-fonts/fontconfig
32
HTMLDOCGUI_USE+=		XORG=x11,xrender,xcursor,xfixes \
33
				xext,xft,xinerama jpeg
34
SSL_CONFIGURE_ENABLE=	ssl
35
SSL_LIB_DEPENDS+=	libgnutls.so:security/gnutls
43
36
44
post-patch:
37
.include <bsd.port.pre.mk>
45
	${REINPLACE_CMD} -e 's,@JPEG@ @ZLIB@ @PNG@ ,,' ${WRKSRC}/Makefile.in
46
	${REINPLACE_CMD} -e 's|@LDFLAGS@|-L${LOCALBASE}/lib @LDFLAGS@|'	\
47
	    -e 's|@JPEGINC@ @PNGINC@ @ZLIBINC@|-I${LOCALBASE}/include|' \
48
		${WRKSRC}/Makedefs.in
49
	# Remove redundant code:
50
	${REINPLACE_CMD} -Ee 's,(md5|snprintf|rc4)\.o,,g'	\
51
		${WRKSRC}/htmldoc/Makefile
52
	${REINPLACE_CMD} -Ee 's,md5-private\.h,,;s,rc4\.h,,' \
53
		${WRKSRC}/htmldoc/Dependencies
54
38
55
post-configure:
39
# Fix arm64 build
56
	${REINPLACE_CMD} -e	\
40
.if ${ARCH} == "aarch64"
57
	    's|../png/libpng.a ../zlib/libz.a ../jpeg/libjpeg.a|-ljpeg -lpng -lz|' ${WRKSRC}/Makedefs
41
pre-build:
42
	${REINPLACE_CMD} -e '/PNG_FILTER_OPTIMIZATIONS(pp, bpp);/d' ${WRKSRC}/png/pngrutil.c
43
.endif
58
44
59
post-install:
45
post-install:
60
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/htmldoc
46
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/htmldoc
61
47
62
.include <bsd.port.mk>
48
.include <bsd.port.post.mk>
(-)textproc/htmldoc/distinfo (-2 / +3 lines)
Lines 1-2 Link Here
1
SHA256 (htmldoc-1.8.28-source.tar.bz2) = 2a688bd820ad6f7bdebb274716102dafbf4d5fcfa20a5b8d87a56b030d184732
1
TIMESTAMP = 1535061183
2
SIZE (htmldoc-1.8.28-source.tar.bz2) = 4026568
2
SHA256 (michaelrsweet-htmldoc-v1.9.3_GH0.tar.gz) = 601ad21f6aa7adf57a6fcfeab180dc39d6b99ec2f52f0e559df5bb57f087eb2e
3
SIZE (michaelrsweet-htmldoc-v1.9.3_GH0.tar.gz) = 4482204
(-)textproc/htmldoc/files/patch-htmldoc__http-private.h (-25 lines)
Lines 1-25 Link Here
1
--- ./htmldoc/http-private.h.orig	2011-12-30 08:41:10.000000000 +0100
2
+++ ./htmldoc/http-private.h	2014-01-28 04:47:41.000000000 +0100
3
@@ -83,12 +83,12 @@
4
 #  endif /* __sgi || (__APPLE__ && !_SOCKLEN_T) */
5
 
6
 #  include "http.h"
7
-#  include "md5-private.h"
8
 
9
 #  if defined HAVE_LIBSSL
10
 #    include <openssl/err.h>
11
 #    include <openssl/rand.h>
12
 #    include <openssl/ssl.h>
13
+#    include <openssl/md5.h>
14
 #  elif defined HAVE_GNUTLS
15
 #    include <gnutls/gnutls.h>
16
 #    include <gnutls/x509.h>
17
@@ -276,7 +276,7 @@
18
   char			buffer[HTTP_MAX_BUFFER];
19
 					/* Buffer for incoming data */
20
   int			auth_type;	/* Authentication in use */
21
-  _cups_md5_state_t	md5_state;	/* MD5 state */
22
+  MD5_CTX		md5_state;	/* MD5 state */
23
   char			nonce[HTTP_MAX_VALUE];
24
 					/* Nonce value */
25
   int			nonce_count;	/* Nonce count */
(-)textproc/htmldoc/files/patch-htmldoc__http.c (-11 lines)
Lines 1-11 Link Here
1
--- ./htmldoc/http.c.orig	2014-01-05 21:41:32.000000000 +0100
2
+++ ./htmldoc/http.c	2014-01-28 04:47:07.000000000 +0100
3
@@ -1228,6 +1228,8 @@
4
   * Using the current time is a dubious random seed, but on some systems
5
   * it is the best we can do (on others, this seed isn't even used...)
6
   */
7
+#define CUPS_RAND() arc4random()
8
+#define CUPS_SRAND(v) arc4random_stir()
9
 
10
   CUPS_SRAND(time(NULL));
11
 
(-)textproc/htmldoc/files/patch-htmldoc__ps-pdf.cxx (-285 lines)
Lines 1-285 Link Here
1
--- ./htmldoc/ps-pdf.cxx.orig	2014-01-06 04:42:43.000000000 +0100
2
+++ ./htmldoc/ps-pdf.cxx	2014-01-28 04:47:41.000000000 +0100
3
@@ -120,13 +120,9 @@
4
 
5
 /*#define DEBUG*/
6
 #include "htmldoc.h"
7
-#include "md5-private.h"
8
-#define md5_append _cupsMD5Append
9
-#define md5_finish _cupsMD5Finish
10
-#define md5_init _cupsMD5Init
11
 typedef unsigned char md5_byte_t;
12
-#define md5_state_t _cups_md5_state_t
13
-#include "rc4.h"
14
+#include <openssl/md5.h>
15
+#include <openssl/rc4.h>
16
 #include <stdarg.h>
17
 #include <ctype.h>
18
 #include <time.h>
19
@@ -331,8 +327,8 @@
20
 static uchar		comp_buffer[8192];
21
 static uchar		encrypt_key[16];
22
 static int		encrypt_len;
23
-static rc4_context_t	encrypt_state;
24
-static md5_byte_t	file_id[16];
25
+static RC4_KEY	encrypt_state;
26
+static unsigned char	file_id[16];
27
 
28
 
29
 /*
30
@@ -10545,7 +10541,7 @@
31
 	    {
32
 	      // Encrypt the colormap...
33
 	      encrypt_init();
34
-	      rc4_encrypt(&encrypt_state, cmap[0], cmap[0], ncolors * 3);
35
+	      RC4(&encrypt_state, ncolors * 3, cmap[0], cmap[0]);
36
 	    }
37
 
38
 	    fprintf(out, "/ColorSpace[/Indexed/DeviceRGB %d<", ncolors - 1);
39
@@ -11166,9 +11162,9 @@
40
   int		font_desc[TYPE_MAX][STYLE_MAX];
41
 					/* Font descriptor objects */
42
   char		temp[1024];		/* Temporary string */
43
-  md5_state_t	md5;			/* MD5 state */
44
-  md5_byte_t	digest[16];		/* MD5 digest value */
45
-  rc4_context_t	rc4;			/* RC4 context */
46
+  MD5_CTX	md5;			/* MD5 state */
47
+  unsigned char	digest[16];		/* MD5 digest value */
48
+  RC4_KEY	rc4;			/* RC4 context */
49
   uchar		owner_pad[32],		/* Padded owner password */
50
 		owner_key[32],		/* Owner key */
51
 		user_pad[32],		/* Padded user password */
52
@@ -11568,10 +11564,10 @@
53
     * Compute the file ID...
54
     */
55
 
56
-    md5_init(&md5);
57
-    md5_append(&md5, (md5_byte_t *)OutputPath, sizeof(OutputPath));
58
-    md5_append(&md5, (md5_byte_t *)&doc_time, sizeof(doc_time));
59
-    md5_finish(&md5, file_id);
60
+    MD5_Init(&md5);
61
+    MD5_Update(&md5, (unsigned char *)OutputPath, sizeof(OutputPath));
62
+    MD5_Update(&md5, (unsigned char *)&doc_time, sizeof(doc_time));
63
+    MD5_Final(file_id, &md5);
64
 
65
    /*
66
     * Setup encryption stuff as necessary...
67
@@ -11627,18 +11623,18 @@
68
       * Compute the owner key...
69
       */
70
 
71
-      md5_init(&md5);
72
-      md5_append(&md5, owner_pad, 32);
73
-      md5_finish(&md5, digest);
74
+      MD5_Init(&md5);
75
+      MD5_Update(&md5, owner_pad, 32);
76
+      MD5_Final(digest, &md5);
77
 
78
       if (encrypt_len > 5)
79
       {
80
         // MD5 the result 50 more times...
81
 	for (i = 0; i < 50; i ++)
82
 	{
83
-          md5_init(&md5);
84
-          md5_append(&md5, digest, 16);
85
-          md5_finish(&md5, digest);
86
+          MD5_Init(&md5);
87
+          MD5_Update(&md5, digest, 16);
88
+          MD5_Final(digest, &md5);
89
 	}
90
 
91
         // Copy the padded user password...
92
@@ -11651,14 +11647,14 @@
93
 	  for (j = 0; j < encrypt_len; j ++)
94
 	    encrypt_key[j] = digest[j] ^ i;
95
 
96
-          rc4_init(&rc4, encrypt_key, encrypt_len);
97
-          rc4_encrypt(&rc4, owner_key, owner_key, 32);
98
+          RC4_set_key(&rc4, encrypt_len, encrypt_key);
99
+          RC4(&rc4, 32, owner_key, owner_key);
100
 	}
101
       }
102
       else
103
       {
104
-        rc4_init(&rc4, digest, encrypt_len);
105
-        rc4_encrypt(&rc4, user_pad, owner_key, 32);
106
+        RC4_set_key(&rc4, encrypt_len, digest);
107
+        RC4(&rc4, 32, user_pad, owner_key);
108
       }
109
 
110
      /*
111
@@ -11680,27 +11676,27 @@
112
       * Compute the encryption key...
113
       */
114
 
115
-      md5_init(&md5);
116
-      md5_append(&md5, user_pad, 32);
117
-      md5_append(&md5, owner_key, 32);
118
+      MD5_Init(&md5);
119
+      MD5_Update(&md5, user_pad, 32);
120
+      MD5_Update(&md5, owner_key, 32);
121
 
122
       perm_bytes[0] = perm_value;
123
       perm_bytes[1] = perm_value >> 8;
124
       perm_bytes[2] = perm_value >> 16;
125
       perm_bytes[3] = perm_value >> 24;
126
 
127
-      md5_append(&md5, perm_bytes, 4);
128
-      md5_append(&md5, file_id, 16);
129
-      md5_finish(&md5, digest);
130
+      MD5_Update(&md5, perm_bytes, 4);
131
+      MD5_Update(&md5, file_id, 16);
132
+      MD5_Final(digest, &md5);
133
 
134
       if (encrypt_len > 5)
135
       {
136
         // MD5 the result 50 times..
137
         for (i = 0; i < 50; i ++)
138
 	{
139
-	  md5_init(&md5);
140
-	  md5_append(&md5, digest, 16);
141
-	  md5_finish(&md5, digest);
142
+	  MD5_Init(&md5);
143
+	  MD5_Update(&md5, digest, 16);
144
+	  MD5_Final(digest, &md5);
145
 	}
146
       }
147
 
148
@@ -11712,10 +11708,10 @@
149
 
150
       if (encrypt_len > 5)
151
       {
152
-        md5_init(&md5);
153
-        md5_append(&md5, pad, 32);
154
-        md5_append(&md5, file_id, 16);
155
-        md5_finish(&md5, user_key);
156
+        MD5_Init(&md5);
157
+        MD5_Update(&md5, pad, 32);
158
+        MD5_Update(&md5, file_id, 16);
159
+        MD5_Final(user_key, &md5);
160
 
161
         memset(user_key + 16, 0, 16);
162
 
163
@@ -11726,14 +11722,14 @@
164
 	  for (j = 0; j < encrypt_len; j ++)
165
 	    digest[j] = encrypt_key[j] ^ i;
166
 
167
-          rc4_init(&rc4, digest, encrypt_len);
168
-          rc4_encrypt(&rc4, user_key, user_key, 16);
169
+          RC4_set_key(&rc4, encrypt_len, digest);
170
+          RC4(&rc4, 16, user_key, user_key);
171
 	}
172
       }
173
       else
174
       {
175
-        rc4_init(&rc4, encrypt_key, encrypt_len);
176
-        rc4_encrypt(&rc4, pad, user_key, 32);
177
+        RC4_set_key(&rc4, encrypt_len, encrypt_key);
178
+        RC4(&rc4, 32, pad, user_key);
179
       }
180
 
181
      /*
182
@@ -11920,7 +11916,7 @@
183
       else
184
         bytes = len;
185
 
186
-      rc4_encrypt(&encrypt_state, s, news, bytes);
187
+      RC4(&encrypt_state, bytes, s, news);
188
 
189
       for (i = 0; i < bytes; i ++)
190
         fprintf(out, "%02x", news[i]);
191
@@ -12585,7 +12581,7 @@
192
     unicode[0] = 0xfe;			// Start with BOM
193
     unicode[1] = 0xff;
194
 
195
-    rc4_encrypt(&encrypt_state, unicode, enicode, 2);
196
+    RC4(&encrypt_state, 2, unicode, enicode);
197
 
198
     fprintf(out, "%02x%02x", enicode[0], enicode[1]);
199
 
200
@@ -12595,7 +12591,7 @@
201
       unicode[0] = ch >> 8;
202
       unicode[1] = ch;
203
 
204
-      rc4_encrypt(&encrypt_state, unicode, enicode, 2);
205
+      RC4(&encrypt_state, 2, unicode, enicode);
206
 
207
       fprintf(out, "%02x%02x", enicode[0], enicode[1]);
208
     }
209
@@ -12627,8 +12623,8 @@
210
   int		i;			/* Looping var */
211
   uchar		data[21],		/* Key data */
212
 		*dataptr;		/* Pointer to key data */
213
-  md5_state_t	md5;			/* MD5 state */
214
-  md5_byte_t	digest[16];		/* MD5 digest value */
215
+  MD5_CTX	md5;			/* MD5 state */
216
+  unsigned char	digest[16];		/* MD5 digest value */
217
 
218
 
219
  /*
220
@@ -12648,18 +12644,18 @@
221
   * Hash it...
222
   */
223
 
224
-  md5_init(&md5);
225
-  md5_append(&md5, data, encrypt_len + 5);
226
-  md5_finish(&md5, digest);
227
+  MD5_Init(&md5);
228
+  MD5_Update(&md5, data, encrypt_len + 5);
229
+  MD5_Final(digest, &md5);
230
 
231
  /*
232
   * Initialize the RC4 context using the first N+5 bytes of the digest...
233
   */
234
 
235
   if (encrypt_len > 11)
236
-    rc4_init(&encrypt_state, digest, 16);
237
+    RC4_set_key(&encrypt_state, 16, digest);
238
   else
239
-    rc4_init(&encrypt_state, digest, encrypt_len + 5);
240
+    RC4_set_key(&encrypt_state, encrypt_len + 5, digest);
241
 }
242
 
243
 
244
@@ -12727,8 +12723,8 @@
245
     else
246
     {
247
       if (Encryption)
248
-        rc4_encrypt(&encrypt_state, comp_buffer, comp_buffer,
249
-	            (uchar *)compressor.next_out - (uchar *)comp_buffer);
250
+        RC4(&encrypt_state, (uchar *)compressor.next_out - (uchar *)comp_buffer,
251
+	    comp_buffer, comp_buffer);
252
 
253
       fwrite(comp_buffer, (uchar *)compressor.next_out - (uchar *)comp_buffer,
254
              1, out);
255
@@ -12751,8 +12747,8 @@
256
     else
257
     {
258
       if (Encryption)
259
-        rc4_encrypt(&encrypt_state, comp_buffer, comp_buffer,
260
-	            (uchar *)compressor.next_out - (uchar *)comp_buffer);
261
+        RC4(&encrypt_state, (uchar *)compressor.next_out - (uchar *)comp_buffer,
262
+	    comp_buffer, comp_buffer);
263
 
264
       fwrite(comp_buffer, (uchar *)compressor.next_out - (uchar *)comp_buffer,
265
              1, out);
266
@@ -12844,8 +12840,8 @@
267
 	else
268
 	{
269
 	  if (Encryption)
270
-            rc4_encrypt(&encrypt_state, comp_buffer, comp_buffer,
271
-	        	(uchar *)compressor.next_out - (uchar *)comp_buffer);
272
+		RC4(&encrypt_state, (uchar *)compressor.next_out - (uchar *)comp_buffer,
273
+		    comp_buffer, comp_buffer);
274
 
275
 	  fwrite(comp_buffer,
276
 	         (uchar *)compressor.next_out - (uchar *)comp_buffer, 1, out);
277
@@ -12878,7 +12874,7 @@
278
       if ((bytes = length - i) > (int)sizeof(newbuf))
279
         bytes = sizeof(newbuf);
280
 
281
-      rc4_encrypt(&encrypt_state, buf + i, newbuf, bytes);
282
+      RC4(&encrypt_state, bytes, buf + i, newbuf);
283
       fwrite(newbuf, bytes, 1, out);
284
     }
285
   }
(-)textproc/htmldoc/files/patch-htmldoc_htmlsep.cxx (-11 lines)
Lines 1-11 Link Here
1
--- htmldoc/htmlsep.cxx.orig	2013-08-09 13:43:34 UTC
2
+++ htmldoc/htmlsep.cxx
3
@@ -524,7 +524,7 @@ write_doc(FILE   **out,			// I - Output 
4
     if (t->markup >= MARKUP_H1 && t->markup < (MARKUP_H1 + TocLevels) &&
5
         htmlGetVariable(t, (uchar *)"_HD_OMIT_TOC") == NULL)
6
     {
7
-      if (heading >= 0)
8
+      if (*heading >= 0)
9
         write_footer(out, *heading);
10
 
11
       (*heading) ++;
(-)textproc/htmldoc/pkg-descr (-1 / +1 lines)
Lines 14-17 Link Here
14
HTMLDOC is available under the GPL.
14
HTMLDOC is available under the GPL.
15
Commercial support is available from the author.
15
Commercial support is available from the author.
16
16
17
WWW: http://www.htmldoc.org/
17
WWW: http://michaelrsweet.github.io/htmldoc

Return to bug 223721