Index | Thread | Search

From:
giovanni@paclan.it
Subject:
Re: UPDATE: mail/p5-Mail-DMARC
To:
ports@openbsd.org
Cc:
bluhm@openbsd.org
Date:
Tue, 21 May 2024 18:44:09 +0200

Download raw body.

Thread
On 5/21/24 9:44 AM, Giovanni Bechis wrote:
> Update to latest version.
> Most regression tests have warnings like:
> t/01.Policy.t ................................ ok
> perl:/usr/local/libdata/perl5/site_perl/amd64-openbsd/auto/Net/IDN/Punycode/Punycode.so: undefined symbol 'uvuni_to_utf8_flags'
> 
warning happens in Net::IDN::Encode and is present at build time as well:

===>  Building for p5-Net-IDN-Encode-2.500p1
Building Net-IDN-Encode
cc -I/usr/libdata/perl5/amd64-openbsd/CORE '-DVERSION="2.500"' '-DXS_VERSION="2.500"' -DPIC -fpic -c -DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -fno-strict-aliasing -fno-delete-null-pointer-checks -pipe -fstack-protector-strong -I/usr/local/include -O2 -pipe -O2 -o lib/Net/IDN/Punycode.o lib/Net/IDN/Punycode.c
lib/Net/IDN/Punycode.xs:256:5: warning: call to undeclared function 'uvuni_to_utf8_flags'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
                   uvuni_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
                   ^
1 warning generated.
ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/Net/IDN/Punycode/Punycode.bs')
cc -shared -fpic -fstack-protector-strong -L/usr/local/lib -o blib/arch/auto/Net/IDN/Punycode/Punycode.so lib/Net/IDN/Punycode.o

Attached diff fixes the issue.
  ok ?

  Cheers
    Giovanni
Index: Makefile
===================================================================
RCS file: /cvs/ports/converters/p5-Net-IDN-Encode/Makefile,v
diff -u -p -r1.26 Makefile
--- Makefile	11 Mar 2022 18:27:15 -0000	1.26
+++ Makefile	21 May 2024 16:42:45 -0000
@@ -1,7 +1,7 @@
 COMMENT =	Internationalizing Domain Names in Applications
 
 DISTNAME =	Net-IDN-Encode-2.500
-REVISION =	1
+REVISION =	2
 
 CATEGORIES =	net converters
 
Index: patches/patch-lib_Net_IDN_Punycode_xs
===================================================================
RCS file: patches/patch-lib_Net_IDN_Punycode_xs
diff -N patches/patch-lib_Net_IDN_Punycode_xs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_Net_IDN_Punycode_xs	21 May 2024 16:42:45 -0000
@@ -0,0 +1,25 @@
+use uvchr_to_utf8_flags instead of uvuni_to_utf8_flags which is removed in Perl 5.38
+https://github.com/cfaerber/Net-IDN-Encode/pull/11
+Index: lib/Net/IDN/Punycode.xs
+--- lib/Net/IDN/Punycode.xs.orig
++++ lib/Net/IDN/Punycode.xs
+@@ -24,6 +24,10 @@
+ #define utf8_to_uvchr_buf(in_p,in_e,u8) utf8_to_uvchr(in_p,u8);
+ #endif
+ 
++#ifndef uvchr_to_utf8_flags
++#define uvchr_to_utf8_flags(d, uv, flags) uvuni_to_utf8_flags(d, uv, flags);
++#endif
++
+ static char enc_digit[BASE] = {
+   'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+   'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+@@ -253,7 +257,7 @@ decode_punycode(input)
+ 		  if(skip_p < re_p)				/* move succeeding chars */
+ 		    Move(skip_p, skip_p + u8, re_p - skip_p, char);
+ 		  re_p += u8;
+-		  uvuni_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
++		  uvchr_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
+ 		}
+ 
+ 		if(!first) SvUTF8_on(RETVAL);			/* UTF-8 chars have been inserted */