Opened 2 years ago
Closed 2 years ago
#65466 closed defect (fixed)
irssi needs perl build fixes
Reported by: | dgilman (David Gilman) | Owned by: | l2dy (Zero King) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ||
Port: | irssi |
Description
First, the port may need a revbump. The current binary is linked against perl5.28 but the perl5 port is installing perl5.34 now.
Next, in my own experimentation, I tried to move it to the Perl port group and link it against perl 5.32 and perl 5.34 to test it out. I tried a few things but the configure script is consistently finding the perl 5.34 installation and linking against that, even if perl 5.32 is explicitly requested in the portgroup.
Change History (10)
comment:1 Changed 2 years ago by jmroot (Joshua Root)
Owner: | set to l2dy |
---|---|
Status: | new → assigned |
comment:2 Changed 2 years ago by l2dy (Zero King)
comment:3 Changed 2 years ago by l2dy (Zero King)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:4 Changed 2 years ago by jmroot (Joshua Root)
Resolution: | fixed |
---|---|
Status: | closed → reopened |
That didn't work:
% otool -L irssi-1.4.1_1+perl.darwin_20.x86_64/opt/local/bin/irssi irssi-1.4.1_1+perl.darwin_20.x86_64/opt/local/bin/irssi: /opt/local/lib/perl5/5.34/darwin-thread-multi-2level/CORE/libperl.dylib (compatibility version 5.34.0, current version 5.34.0)
comment:5 follow-up: 6 Changed 2 years ago by jmroot (Joshua Root)
I would suggest something like this:
-
irc/irssi/Portfile
diff --git a/irc/irssi/Portfile b/irc/irssi/Portfile index 911e0b721cc..0187519366a 100644
a b configure.args --without-socks \ 36 36 --with-perl=no 37 37 38 38 variant perl description {Add Perl support} { 39 depends_lib-append port:perl5 port:perl5.28 39 set perl5.major 5.34 40 depends_lib-append port:perl${perl5.major} 40 41 configure.args-replace --with-perl=no --with-perl=yes 41 configure.args-append --with-perl-lib=${prefix}/lib/perl5/5.28 42 configure.args-append --with-perl-lib=${prefix}/lib/perl5/${perl5.major} 43 configure.env-append perlpath=${prefix}/bin/perl${perl5.major} 42 44 } 43 45 44 46 default_variants +perl
A couple of other points: I'm not sure it's even desirable to use a custom path with --with-perl-lib
, it may be better to set it to vendor
? Also, perllocal.pod
should not be installed.
comment:6 Changed 2 years ago by l2dy (Zero King)
Replying to jmroot:
A couple of other points: I'm not sure it's even desirable to use a custom path with
--with-perl-lib
, it may be better to set it tovendor
? Also,perllocal.pod
should not be installed.
Could you explain what vendor
is?
comment:7 Changed 2 years ago by jmroot (Joshua Root)
It's a perl thing, which the irssi configure script can use. The short version is that there are a few different places that perl looks for modules, which are intended to be used by different parties: perl
for modules that ship with perl, vendor
for the distro or package manager, and site
for sysadmins.
- https://metacpan.org/pod/ExtUtils::MakeMaker#make-install
- https://github.com/irssi/irssi/blob/1.4.1/configure.ac#L104
% perl5.34 '-V:install.*' installarchlib='/opt/local/lib/perl5/5.34/darwin-thread-multi-2level'; installbin='/opt/local/bin'; installhtml1dir=''; installhtml3dir=''; installman1dir='/opt/local/share/man/man1p'; installman3dir='/opt/local/share/man/man3p'; installprefix='/opt/local'; installprefixexp='/opt/local'; installprivlib='/opt/local/lib/perl5/5.34'; installscript='/opt/local/bin'; installsitearch='/opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level'; installsitebin='/opt/local/libexec/perl5.34/sitebin'; installsitehtml1dir=''; installsitehtml3dir=''; installsitelib='/opt/local/lib/perl5/site_perl/5.34'; installsiteman1dir='/opt/local/share/perl5.34/siteman/man1'; installsiteman3dir='/opt/local/share/perl5.34/siteman/man3'; installsitescript='/opt/local/libexec/perl5.34/sitebin'; installstyle='lib/perl5'; installusrbinperl='undef'; installvendorarch='/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level'; installvendorbin='/opt/local/libexec/perl5.34'; installvendorhtml1dir=''; installvendorhtml3dir=''; installvendorlib='/opt/local/lib/perl5/vendor_perl/5.34'; installvendorman1dir='/opt/local/share/perl5.34/man/man1'; installvendorman3dir='/opt/local/share/perl5.34/man/man3'; installvendorscript='/opt/local/libexec/perl5.34'; % perl5.34 -le 'print join $/, @INC' /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34
comment:8 Changed 2 years ago by kickingvegas (Charles Choi)
Just updated perl5 and seeing this issue as well.
Encode.c: loadable library and perl binaries are mismatched (got handshake key 0xc500080, needed 0xf880080)
comment:9 Changed 2 years ago by l2dy (Zero King)
I have perl5 @5.28.3_0+perl5_28 installed and that's why it was linking to perl5.28 on my Mac. I will incorporate the patch Joshua suggested. Thanks!
comment:10 Changed 2 years ago by l2dy (Zero King)
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Irssi is switching to the meson build system, but version 1.4.1 does not build on macOS 12, see https://github.com/irssi/irssi/issues/1397.
Back to the perl linking issue, I think we can add a dependency on perl5.28 for now and wait for a fix of the meson build.