Bug 274269 - security/p5-CryptX: update to 0.080 with fix build with AES-NI
Summary: security/p5-CryptX: update to 0.080 with fix build with AES-NI
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Some People
Assignee: Vanilla I. Shu
URL: https://github.com/DCIT/perl-CryptX/i...
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-04 18:43 UTC by Vladimir Druzenko
Modified: 2023-10-06 21:10 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (vanilla)
vvd: merge-quarterly?


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Druzenko freebsd_committer freebsd_triage 2023-10-04 18:43:24 UTC
Details are at upstream bug tracker: https://github.com/DCIT/perl-CryptX/issues/97

Patch is trivial:
diff -ur security/p5-CryptX.orig/Makefile security/p5-CryptX/Makefile
--- security/p5-CryptX.orig/Makefile
+++ security/p5-CryptX/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=      CryptX
-PORTVERSION=   0.079
+PORTVERSION=   0.080
 CATEGORIES=    security perl5
 MASTER_SITES=  CPAN/Crypt
 PKGNAMEPREFIX= p5-
diff -ur security/p5-CryptX.orig/distinfo security/p5-CryptX/distinfo
--- security/p5-CryptX.orig/distinfo
+++ security/p5-CryptX/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1696383549
-SHA256 (CryptX-0.079.tar.gz) = 3e88d3190933298105fa092a336f801765da19c42f9440f6b881a7aead144e95
-SIZE (CryptX-0.079.tar.gz) = 1653453
+TIMESTAMP = 1696427216
+SHA256 (CryptX-0.080.tar.gz) = b457b792194a6c9c13f06fe0a0b5ea158965c3282f385ca93e1f00a2b33e7e89
+SIZE (CryptX-0.080.tar.gz) = 1651772

Thanks!
Comment 1 Tatsuki Makino 2023-10-05 00:00:29 UTC
Isn't it a bit technical to reproduce this problem? :)

In my environment, first, CPUTYPE=core2 been set in /etc/make.conf.
Build and install lang/perl5.34 with that CPUTYPE.
-march=haswell is written to /usr/local/lib/perl5/5.34/mach/Config_heavy.pl
That Config_heavy.pl is used to build p5-CryptX-0.079.
The build stops in the middle of the process.

If CPUTYPE is not set, the build is terminated without any problems.
Comment 2 Vanilla I. Shu freebsd_committer freebsd_triage 2023-10-05 02:20:09 UTC
Committed, thanks.
Comment 3 commit-hook freebsd_committer freebsd_triage 2023-10-05 02:20:40 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5a27df5f16c343c70cdda07766614d36853c5dc1

commit 5a27df5f16c343c70cdda07766614d36853c5dc1
Author:     Vanilla I. Shu <vanilla@FreeBSD.org>
AuthorDate: 2023-10-05 02:18:30 +0000
Commit:     Vanilla I. Shu <vanilla@FreeBSD.org>
CommitDate: 2023-10-05 02:18:30 +0000

    security/p5-CryptX: update to 0.080 with fix build with AES-NI.

    PR:             274269

 security/p5-CryptX/Makefile | 2 +-
 security/p5-CryptX/distinfo | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2023-10-06 14:11:39 UTC
(In reply to Tatsuki Makino from comment #1)
> Isn't it a bit technical to reproduce this problem? :)
With -march=core2 build fine on any CPU.

Fails only if CPU support SSE4.1 and doesn't support AES-NI: -march=nehalem (Bloomfiled, Lynnfield and Xeon with same cores) and probably -march=penryn (Wolfdale, Yorkfield and Xeon with same cores).
But -march=core2 (Conroe/Allendale, Kentsfield and Xeon with same cores) doesn't support SSE4.1.
Comment 5 Tatsuki Makino 2023-10-06 21:10:33 UTC
(In reply to Vladimir Druzenko from comment #4)

I am (still :) ) 12.x, so the CPUTYPE=core2 set is -
march=haswell.
My CPU is i3-6300T.

The build failed in p5-CryptX-0.079 due to some assembler problem.
I did not write down the error/warning message :)
After looking for the cause of the difference per cpu, I discovered that there is a -march= in /usr...mach/Config_heavy.pl, by grep.
It was perl5 itself that had installed it, so reinstalling perl5 with no CPUTYPE set solved the problem.

With 0.080, the build and installation is successful.
In case you are interested, here is a transcription of the compilation options.

--- ltm/bn_s_mp_sub.o ---                                                       
cc -Iltm -Iltc/headers -DLTC_SOURCE -DLTC_NO_TEST -DLTC_NO_PROTOTYPES -DLTM_DESC
 -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DUSE_THREAD_SAFE_LOCALE -fno-strict-alia
sing -pipe -fstack-protector-strong -I/usr/local/include -DPIC -fPIC -O2 -pipe -
march=haswell -fstack-protector-strong -fno-strict-aliasing   -msse4.1 -maes -DA
RGTYPE=4 -c ltm/bn_s_mp_sub.c -o ltm/bn_s_mp_sub.o

I am not sure if the actual operation of it is correct, but this is what it looks like anyway :)