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: newassigned

comment:2 Changed 2 years ago by l2dy (Zero King)

Irssi 1.4 will be the last series to support Autotools ./configure for building.

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.

comment:3 Changed 2 years ago by l2dy (Zero King)

Resolution: fixed
Status: assignedclosed

In 50de07cd8512f866ab9c8ded6edec58deb593c7a/macports-ports (master):

irssi: link to perl5.28

Closes: #65466

comment:4 Changed 2 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: closedreopened

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 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 \ 
    3636                    --with-perl=no
    3737
    3838variant 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}
    4041    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}
    4244}
    4345
    4446default_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 in reply to:  5 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 to vendor? 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.

% 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
Last edited 2 years ago by jmroot (Joshua Root) (previous) (diff)

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: reopenedclosed

In 5ca810c3b5c86b3eae11c9762da3ebb699284dcc/macports-ports (master):

irssi: use fixed perl version and install to vendor

Closes: #65466
Co-authored-by: Joshua Root <jmr@…>

Note: See TracTickets for help on using tickets.