From 1e0db9ba80fe0bd43c2312cf16dc1e2dd3a3e6b1 Mon Sep 17 00:00:00 2001 From: Philip Prindeville Date: Thu, 25 Jan 2018 18:34:32 -0700 Subject: [PATCH] perlmod: avoid 'do' semantics and just concatenate In Perl the 'do' construct has some odd side-effects regarding $@, $!, and return values (i.e. 'do'ing a file which evaluates to undef can be a little ambiguous). Instead, generate a preamble to the Makefile.PL and execute it as stdin. Signed-off-by: Philip Prindeville --- lang/perl/Makefile | 2 +- lang/perl/perlmod.mk | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lang/perl/Makefile b/lang/perl/Makefile index 5e20f6cb36..b6111aad4e 100644 --- a/lang/perl/Makefile +++ b/lang/perl/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=perl PKG_VERSION:=5.26.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE_URL:=\ https://cpan.metacpan.org/src/5.0 \ diff --git a/lang/perl/perlmod.mk b/lang/perl/perlmod.mk index 7adf16b1b3..551d4532b1 100644 --- a/lang/perl/perlmod.mk +++ b/lang/perl/perlmod.mk @@ -55,9 +55,10 @@ endef define perlmod/Configure (cd $(if $(3),$(3),$(PKG_BUILD_DIR)); \ - PERL_MM_USE_DEFAULT=1 \ - $(2) \ - $(PERL_CMD) -MConfig -e '$$$${tied %Config::Config}{cpprun}="$(GNU_TARGET_NAME)-cpp -E"; do "./Makefile.PL"' \ + (echo -e 'use Config;\n\n$$$${tied %Config::Config}{cpprun}="$(GNU_TARGET_NAME)-cpp -E";\n' ; cat Makefile.PL) | \ + PERL_MM_USE_DEFAULT=1 \ + $(2) \ + $(PERL_CMD) -I. -- - \ $(1) \ AR=ar \ CC=$(GNU_TARGET_NAME)-gcc \ @@ -103,8 +104,8 @@ define perlmod/Configure INSTALLVENDORMAN3DIR=" " \ LINKTYPE=dynamic \ DESTDIR=$(PKG_INSTALL_DIR) \ - ); - sed 's!^PERL_INC = .*!PERL_INC = $(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION)/CORE/!' -i $(if $(3),$(3),$(PKG_BUILD_DIR))/Makefile + ) + sed -i -e 's!^PERL_INC = .*!PERL_INC = $(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION)/CORE/!' $(if $(3),$(3),$(PKG_BUILD_DIR))/Makefile endef define perlmod/Compile -- 2.30.2