After recent upgrade rxvt-unicode fails to start: $ urxvt Assertion failed: (!argv[argc]), function perl_parse, file perl.c, line 1677. zsh: abort urxvt $ pkg version is rxvt-unicode-9.22. Options : 256_COLOR : on BACKSPACE_KEY : on COMBINING : on DELETE_KEY : on DOCS : off GDK_PIXBUF : on IMLOCALE_FIX : on ISO14755 : on MOUSEWHEEL : on NEXT_SCROLLBAR : on NOTIFY : off PERL : on RXVT_SCROLLBAR : on SMART_RESIZE : on UNICODE3 : on XIM : on XTERM_SCROLLBAR: on Shared Libs required: libintl.so.8 libglib-2.0.so.0 libgobject-2.0.so.0 libXrender.so.1 libfreetype.so.6 libperl.so.5.28 libfontconfig.so.1 libgdk_pixbuf-2.0.so.0 libXft.so.2 libX11.so.6 $ uname -rsm FreeBSD 13.0-CURRENT amd64 rxvt-unicode package (and all others on the system) were built using poudriere from a portstree updated on 2018-12-22.
Created attachment 200389 [details] fix perl_parse usage Apparently, rxvt-unicode doesn't property format argv/argc that it passes to perl. From https://perldoc.perl.org/perlembed.html: "Mind that argv[argc] must be NULL, same as those passed to a main function in C." And rxvt-unicode doesn't do that. Also, it looks like starting perl 5.27 there are asserts that check that: https://github.com/Perl/perl5/commit/cc85e83f9e22c43fcb37b072c8d9d20a3e8d9a64 Hence, now it fails with 5.28. Attached patch fixes the problem for me.
Reported to upstream as well: http://lists.schmorp.de/pipermail/rxvt-unicode/2018q4/002488.html
Approved, thanks!
(In reply to Thierry Thomas from comment #3) Thanks! Do you want me to commit this or you'll commit it yourself? Also, I think it'd be good to bump PORTREVISION, even though it should only affect users with DEBUG enabled. Also, the patch was committed upstream: http://cvs.schmorp.de/rxvt-unicode/src/rxvtperl.xs?r1=1.242&r2=1.243. I notice the only difference is that NULL was changed to 0.
Do not hesitate to commit it yourself! Thanks.
A commit references this bug: Author: novel Date: Thu Dec 27 08:51:37 UTC 2018 New revision: 488515 URL: https://svnweb.freebsd.org/changeset/ports/488515 Log: x11/rxvt-unicode: fix perl_parse() usage Perl 5.28 added asserts to perl_parse() to check passed arguments, so rxvt with perl support fails to start with assertion error when DEBUG is enabled. Fix by constructing arguments passed to perl_parse() properly, and bump PORTREVISION. PR: 234294 Approved by: thierry (maintainer) Changes: head/x11/rxvt-unicode/Makefile head/x11/rxvt-unicode/files/patch-src_rxvtperl.xs
Thanks, committed!