[Buildroot] [PATCH v8 07/11] cpanminus: new package

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Thu Oct 4 20:46:41 UTC 2012


François,

On Tue, 25 Sep 2012 19:18:23 +0200, Francois Perrad wrote:
> diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk
> new file mode 100644
> index 0000000..1b2857a
> --- /dev/null
> +++ b/package/cpanminus/cpanminus.mk
> @@ -0,0 +1,44 @@
> +#############################################################
> +#
> +# cpanminus
> +#
> +#############################################################
> +
> +CPANMINUS_VERSION = 1.5018
> +CPANMINUS_SOURCE = miyagawa-cpanminus-$(CPANMINUS_VERSION)-0-gee6cd30.tar.gz
> +CPANMINUS_SITE = https://github.com/miyagawa/cpanminus/tarball/$(CPANMINUS_VERSION)
> +CPANMINUS_DEPENDENCIES = perl $(call qstrip,$(BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES))
> +
> +CPANMINUS_ARCH=$(ARCH)
> +ifeq ($(CPANMINUS_ARCH),i686)
> +    CPANMINUS_ARCH=i386
> +endif

Same comment: not complete, and please share all those Qemu definitions
in the host-qemu package. It should probably define TARGET_QEMU_USER to
$(HOST_DIR)/usr/bin/qemu-$(QEMU_ARCH). Unless of course they are not
related to Qemu.

> +CPANMINUS_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(CPANMINUS_ARCH)
> +CPANMINUS_RUN_PERL=$(CPANMINUS_QEMU_USER_MODE) $(STAGING_DIR)/usr/bin/perl
> +CPANMINUS_ARCHNAME=$(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}")
> +CPANMINUS_PERL_LIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)
> +CPANMINUS_PERL_ARCHLIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)

CPANMINUS_PERL_ARCHLIB = $(CPANMINUS_PERL_LIB)/$(CPANMINUS_ARCHNAME)

> +CPANMINUS_PERL_SITELIB=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)
> +CPANMINUS_PERL_SITEARCH=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)

CPANMINUS_PERL_SITEARCH = $(CPANMINUS_PERL_SITELIB)/$(CPANMINUS_ARCHNAME) 

> +CPANMINUS_PERL5LIB=$(CPANMINUS_PERL_SITEARCH):$(CPANMINUS_PERL_SITELIB):$(CPANMINUS_PERL_ARCHLIB):$(CPANMINUS_PERL_LIB)


> +ifneq ($(BR2_PACKAGE_CPANMINUS_MIRROR),"")
> +    CPANMINUS_MIRROR=--mirror $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MIRROR)) --mirror-only
> +endif

CPANMINUS_MIRROR = $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MIRROR)
ifneq ($(CPANMINUS_MIRROR),y)
	CPANMINUS_CONF_OPT += --mirror $(CPANMINUS_MIRROR) --mirror-only
endif

And also, put space before and after equal sign when defining make variables.

> +define CPANMINUS_INSTALL_TARGET_CMDS
> +	echo "#!/bin/sh"                                                        > $(@D)/run_perl
> +	echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\""    >>$(@D)/run_perl
> +	chmod +x $(@D)/run_perl
> +	PERL5LIB=$(CPANMINUS_PERL5LIB) \
> +	PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
> +	PERL_MB_OPT="--destdir $(TARGET_DIR)" \
> +	RUN_PERL="$(@D)/run_perl" \
> +	$(CPANMINUS_RUN_PERL) $(@D)/cpanm \
> +		--perl=$(@D)/run_perl \
> +		--notest \
> +		--no-man-pages \
> +		$(CPANMINUS_MIRROR) \
> +		$(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
> +endef
> +
> +$(eval $(generic-package))
> diff --git a/package/perl/perl-fix-Module-Build.patch b/package/perl/perl-fix-Module-Build.patch
> new file mode 100644
> index 0000000..26b15e4
> --- /dev/null
> +++ b/package/perl/perl-fix-Module-Build.patch
> @@ -0,0 +1,16 @@
> +
> +Signed-off-by: Francois Perrad <francois.perrad at gadz.org>

Patch description please.

> +
> +Index: b/cpan/Module-Build/lib/Module/Build/Base.pm
> +===================================================================
> +--- a/cpan/Module-Build/lib/Module/Build/Base.pm
> ++++ b/cpan/Module-Build/lib/Module/Build/Base.pm
> +@@ -456,7 +456,7 @@
> +   my $proto = shift;
> +   my $c     = ref($proto) ? $proto->{config} : 'Module::Build::Config';
> + 
> +-  my $perl  = $^X;
> ++  my $perl  = $ENV{RUN_PERL} || $^X;
> +   my $perl_basename = File::Basename::basename($perl);
> + 
> +   my @potential_perls;

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com


More information about the buildroot mailing list