FS#40693 - [hexchat] perl plugin not being build after perl upgrade to 5.20

Attached to Project: Community Packages
Opened by Nathan Eikermann (The_Nut) - Wednesday, 04 June 2014, 22:33 GMT
Last edited by Maxime Gauduin (Alucryd) - Tuesday, 10 June 2014, 13:11 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Maxime Gauduin (Alucryd)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

After upgrading perl to 5.20 and rebuilding hexchat (perl plugin is enabled by default during configure) the perl plugin is not being
included due to a fail. Please see the attached config.log excerpt for further information.

Additional info:
* Versions: hexchat 2.10.0 (https://paste.xinu.at/PZm/) (relevant lines 701-756)
* Log file: config.log from build


Steps to reproduce:
1. Get the PKGBUILD & hexchat.install file.
2. Create the package with makepkg.
3. Check the config.log for linking the perl plugin (lines 701-756 usually).
4. perl is not being included during the build.

Excerpt from config.log:

configure:15380: checking for perl >= 5.8.0
configure:15400: gcc -o conftest -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib/perl5/core_perl/CORE -D_FORTIFY_SOURCE=2 -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -L/usr/local/lib -L/usr/lib/perl5/core_perl/CORE -lperl -ldl -lm -lcrypt -lutil -lpthread -lc conftest.c >&5
In file included from /usr/include/sys/types.h:25:0,
from /usr/lib/perl5/core_perl/CORE/perl.h:643,
from conftest.c:35:
/usr/include/features.h:341:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
^
/tmp/cccdWEyD.o: In function `S_croak_memory_wrap':
conftest.c:(.text+0x5): undefined reference to `PL_memory_wrap'
conftest.c:(.text+0x14): undefined reference to `Perl_croak_nocontext'
collect2: error: ld returned 1 exit status
configure:15400: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "HexChat"
| #define PACKAGE_TARNAME "hexchat"
| #define PACKAGE_VERSION "2.10.0"
| #define PACKAGE_STRING "HexChat 2.10.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define GETTEXT_PACKAGE "hexchat"
| #define HAVE_LOCALE_H 1
| #define HAVE_LC_MESSAGES 1
| #define HAVE_BIND_TEXTDOMAIN_CODESET 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| #define ENABLE_NLS 1
| #define USING_LINUX 1
| /* end confdefs.h. */
| #include <EXTERN.h>
| #include <perl.h>
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:15410: result: no
This task depends upon

Closed by  Maxime Gauduin (Alucryd)
Tuesday, 10 June 2014, 13:11 GMT
Reason for closing:  Fixed
Additional comments about closing:  2.10.0-2
Comment by Kyle Terrien (KlipperKyle) - Thursday, 05 June 2014, 04:47 GMT
I successfully built hexchat 2.9.6.1-3 with Perl 5.20 using this PKGBUILD:

<https://projects.archlinux.org/svntogit/community.git/commit/?h=packages/hexchat&id=750a690670d0fa579025568dffaa897ef8d346e4>
Comment by Doug Newgard (Scimmia) - Thursday, 05 June 2014, 04:52 GMT
I built it from trunk in a clean chroot, it does say "checking for perl >= 5.8.0 ... no". Strange that a previous version would work.
Comment by Florian Pritz (bluewind) - Thursday, 05 June 2014, 07:33 GMT
Running the configtest (the gcc command) with -fuse-ld=gold makes it work, but configure doesn't seem to pass CFLAGS/LDFLAGS to this particular test. Other tests will get them.

Putting the libs after conftest.c also work so this is typical --as-needed breakage. Not sure why it only kicks in now though. Assuming the old package really had the perl plugin built, could someone verify that?
Comment by Doug Newgard (Scimmia) - Thursday, 05 June 2014, 07:37 GMT
Yes, the old package had it.

% pacman -Qlp /var/cache/pacman/pkg/hexchat-2.9.6.1-2-x86_64.pkg.tar.xz | grep perl
hexchat /usr/lib/hexchat/plugins/perl.so
% pacman -Qlp /var/cache/pacman/pkg/hexchat-2.10.0-1-x86_64.pkg.tar.xz | grep perl
1
Comment by Maxime Gauduin (Alucryd) - Thursday, 05 June 2014, 09:25 GMT
Just pushed 2.10.0-2 which contains the perl module. Thx Florian for finding a workaround.

Loading...