Received: by mail.netbsd.org (Postfix, from userid 605) id 8EDB984E39; Sat, 25 Apr 2020 13:57:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 18AAD84E34 for ; Sat, 25 Apr 2020 13:57:49 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id fJLLuzts6KxR for ; Sat, 25 Apr 2020 13:57:48 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.NetBSD.org [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id 5667884D3C for ; Sat, 25 Apr 2020 13:57:48 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 4A0B7FB27; Sat, 25 Apr 2020 13:57:48 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1587823068157410" MIME-Version: 1.0 Date: Sat, 25 Apr 2020 13:57:48 +0000 From: "Nia Alarie" Subject: CVS commit: pkgsrc/security/yafic To: pkgsrc-changes@NetBSD.org Reply-To: nia@netbsd.org X-Mailer: log_accum Message-Id: <20200425135748.4A0B7FB27@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: pkgsrc-changes.NetBSD.org Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_1587823068157410 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: nia Date: Sat Apr 25 13:57:48 UTC 2020 Modified Files: pkgsrc/security/yafic: Makefile distinfo Added Files: pkgsrc/security/yafic/patches: patch-crypto.c Log Message: yafic: Unbreak with OpenSSL 1.1. Patch taken from FreeBSD Ports. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 pkgsrc/security/yafic/Makefile cvs rdiff -u -r1.3 -r1.4 pkgsrc/security/yafic/distinfo cvs rdiff -u -r0 -r1.1 pkgsrc/security/yafic/patches/patch-crypto.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1587823068157410 Content-Disposition: inline Content-Length: 7034 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/security/yafic/Makefile diff -u pkgsrc/security/yafic/Makefile:1.12 pkgsrc/security/yafic/Makefile:1.13 --- pkgsrc/security/yafic/Makefile:1.12 Fri Apr 24 11:41:38 2020 +++ pkgsrc/security/yafic/Makefile Sat Apr 25 13:57:47 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.12 2020/04/24 11:41:38 nia Exp $ +# $NetBSD: Makefile,v 1.13 2020/04/25 13:57:47 nia Exp $ DISTNAME= yafic-1.2.2 PKGREVISION= 2 @@ -10,8 +10,6 @@ HOMEPAGE= https://www.saddi.com/software COMMENT= File integrity checker LICENSE= modified-bsd -BROKEN= "Fails to build with OpenSSL 1.1" - GNU_CONFIGURE= YES .include "../../security/openssl/buildlink3.mk" Index: pkgsrc/security/yafic/distinfo diff -u pkgsrc/security/yafic/distinfo:1.3 pkgsrc/security/yafic/distinfo:1.4 --- pkgsrc/security/yafic/distinfo:1.3 Wed Nov 4 01:18:12 2015 +++ pkgsrc/security/yafic/distinfo Sat Apr 25 13:57:47 2020 @@ -1,7 +1,8 @@ -$NetBSD: distinfo,v 1.3 2015/11/04 01:18:12 agc Exp $ +$NetBSD: distinfo,v 1.4 2020/04/25 13:57:47 nia Exp $ SHA1 (yafic-1.2.2.tar.gz) = 0592df76f87a6b5b972c1e8c1c08c771e3ffdf7f RMD160 (yafic-1.2.2.tar.gz) = 976cb8a75bb9cdf75961a60929c5e778049a97b4 SHA512 (yafic-1.2.2.tar.gz) = 8e05a0838fc2063f1c6bb69d660e9ff5c9fbdc4199e1396232327498c04d037b35307c348d64d928e561875f5cf0ad40c24fd097680cd814b2308608cf738957 Size (yafic-1.2.2.tar.gz) = 96893 bytes SHA1 (patch-aa) = 288f5793947fbd844e0cdf7706cabd9b9f37abcc +SHA1 (patch-crypto.c) = 91912dcdfcabc285deea64914bdf9e81e47de359 Added files: Index: pkgsrc/security/yafic/patches/patch-crypto.c diff -u /dev/null pkgsrc/security/yafic/patches/patch-crypto.c:1.1 --- /dev/null Sat Apr 25 13:57:48 2020 +++ pkgsrc/security/yafic/patches/patch-crypto.c Sat Apr 25 13:57:48 2020 @@ -0,0 +1,194 @@ +$NetBSD: patch-crypto.c,v 1.1 2020/04/25 13:57:48 nia Exp $ + +Fix build with OpenSSL >=1.1. + +From FreeBSD Ports. + +--- crypto.c.orig 2004-03-21 12:02:32.000000000 +0000 ++++ crypto.c +@@ -56,6 +56,30 @@ static const char rcsid[] = + + static EVP_PKEY *pkey; + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ ++static void *OPENSSL_zalloc (size_t num) ++{ ++ void *ret = OPENSSL_malloc (num); ++ ++ if (ret != NULL) ++ memset (ret, 0, num); ++ return ret; ++} ++ ++EVP_MD_CTX *EVP_MD_CTX_new (void) ++{ ++ return OPENSSL_zalloc (sizeof (EVP_MD_CTX)); ++} ++ ++void EVP_MD_CTX_free (EVP_MD_CTX *ctx) ++{ ++ EVP_MD_CTX_cleanup (ctx); ++ OPENSSL_free (ctx); ++} ++ ++#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ ++ + static void + opensslError (const char *what) + { +@@ -100,7 +124,7 @@ void + SignFile (int fd, const char *filename, const char *sigfile) + { + const EVP_MD *mdType; +- EVP_MD_CTX ctx; ++ EVP_MD_CTX *ctx; + ssize_t len; + unsigned char *sig = NULL; + unsigned int sigLen; +@@ -111,8 +135,12 @@ SignFile (int fd, const char *filename, + if (!pkey) + return; + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + mdType = EVP_PKEY_type (pkey->type) == EVP_PKEY_DSA ? EVP_dss1 () : + EVP_sha1 (); ++#else ++ mdType = EVP_sha1 (); ++#endif + + if (!sigfile) { + int tlen = strlen (filename) + 4 + 1; +@@ -122,21 +150,23 @@ SignFile (int fd, const char *filename, + sigfile = tsigfile; + } + ++ if ((ctx = EVP_MD_CTX_new ()) == NULL) ++ opensslError ("EVP_MD_CTX_new"); + #ifdef HAVE_EVP_MD_CTX_INIT +- EVP_MD_CTX_init (&ctx); ++ EVP_MD_CTX_init (ctx); + #endif + #ifdef EVP_DIGESTINIT_VOID +- EVP_SignInit (&ctx, mdType); ++ EVP_SignInit (ctx, mdType); + #else +- if (!EVP_SignInit (&ctx, mdType)) ++ if (!EVP_SignInit (ctx, mdType)) + opensslError ("EVP_SignInit"); + #endif + + while ((len = read (fd, HashBuffer, HASH_BUFFER_SIZE)) > 0) { + #ifdef EVP_DIGESTINIT_VOID +- EVP_SignUpdate (&ctx, HashBuffer, len); ++ EVP_SignUpdate (ctx, HashBuffer, len); + #else +- if (!EVP_SignUpdate (&ctx, HashBuffer, len)) ++ if (!EVP_SignUpdate (ctx, HashBuffer, len)) + opensslError ("EVP_SignUpdate"); + #endif + } +@@ -146,7 +176,7 @@ SignFile (int fd, const char *filename, + + sig = mymalloc (EVP_PKEY_size (pkey)); + +- if (EVP_SignFinal (&ctx, sig, &sigLen, pkey)) { ++ if (EVP_SignFinal (ctx, sig, &sigLen, pkey)) { + if ((f = open (sigfile, O_CREAT|O_WRONLY|O_TRUNC, 0600)) != -1) { + if (write (f, sig, sigLen) != sigLen) + yaficError (sigfile); +@@ -162,15 +192,16 @@ SignFile (int fd, const char *filename, + if (sig) free (sig); + if (tsigfile) free (tsigfile); + #ifdef HAVE_EVP_MD_CTX_CLEANUP +- EVP_MD_CTX_cleanup (&ctx); ++ EVP_MD_CTX_cleanup (ctx); + #endif ++ EVP_MD_CTX_free (ctx); + } + + void + VerifyFile (int fd, const char *filename, const char *sigfile) + { + const EVP_MD *mdType; +- EVP_MD_CTX ctx; ++ EVP_MD_CTX *ctx; + ssize_t len; + unsigned char *sig = NULL; + int f; +@@ -181,8 +212,12 @@ VerifyFile (int fd, const char *filename + if (!pkey) + return; + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + mdType = EVP_PKEY_type (pkey->type) == EVP_PKEY_DSA ? EVP_dss1 () : + EVP_sha1 (); ++#else ++ mdType = EVP_sha1 (); ++#endif + + if (!sigfile) { + int tlen = strlen (filename) + 4 + 1; +@@ -195,13 +230,15 @@ VerifyFile (int fd, const char *filename + fprintf (stderr, "Verifying %s: ", filename); + fflush (stderr); + ++ if ((ctx = EVP_MD_CTX_new ()) == NULL) ++ opensslError ("EVP_MD_CTX_new"); + #ifdef HAVE_EVP_MD_CTX_INIT +- EVP_MD_CTX_init (&ctx); ++ EVP_MD_CTX_init (ctx); + #endif + #ifdef EVP_DIGESTINIT_VOID +- EVP_VerifyInit (&ctx, mdType); ++ EVP_VerifyInit (ctx, mdType); + #else +- if (!EVP_VerifyInit (&ctx, mdType)) { ++ if (!EVP_VerifyInit (ctx, mdType)) { + fprintf (stderr, "Error\n"); + opensslError ("EVP_VerifyInit"); + } +@@ -209,9 +246,9 @@ VerifyFile (int fd, const char *filename + + while ((len = read (fd, HashBuffer, HASH_BUFFER_SIZE)) > 0) { + #ifdef EVP_DIGESTINIT_VOID +- EVP_VerifyUpdate (&ctx, HashBuffer, len); ++ EVP_VerifyUpdate (ctx, HashBuffer, len); + #else +- if (!EVP_VerifyUpdate (&ctx, HashBuffer, len)) { ++ if (!EVP_VerifyUpdate (ctx, HashBuffer, len)) { + fprintf (stderr, "Error\n"); + opensslError ("EVP_SignUpdate"); + } +@@ -233,7 +270,7 @@ VerifyFile (int fd, const char *filename + + close (f); + +- ret = EVP_VerifyFinal (&ctx, sig, len, pkey); ++ ret = EVP_VerifyFinal (ctx, sig, len, pkey); + if (ret < 0) { + fprintf (stderr, "Error\n"); + opensslError ("EVP_VerifyFinal"); +@@ -254,8 +291,9 @@ VerifyFile (int fd, const char *filename + if (sig) free (sig); + if (tsigfile) free (tsigfile); + #ifdef HAVE_EVP_MD_CTX_CLEANUP +- EVP_MD_CTX_cleanup (&ctx); ++ EVP_MD_CTX_cleanup (ctx); + #endif ++ EVP_MD_CTX_free (ctx); + } + + const char * +@@ -265,7 +303,11 @@ KeyTypeStr (void) + + if (pkey) { + int bits = EVP_PKEY_bits (pkey); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + int type = EVP_PKEY_type (pkey->type); ++#else ++ int type = EVP_PKEY_base_id (pkey); ++#endif + + switch (type) { + case EVP_PKEY_RSA: --_----------=_1587823068157410--