From patchwork Wed Oct 10 15:06:30 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francois Perrad X-Patchwork-Id: 190674 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ozlabs.org (Postfix) with ESMTP id B56F12C008A for ; Thu, 11 Oct 2012 02:07:23 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 40B63818B0; Wed, 10 Oct 2012 15:07:21 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b9lu1N-E0oAW; Wed, 10 Oct 2012 15:07:18 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id BB04587BD8; Wed, 10 Oct 2012 15:07:17 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 956508F74A for ; Wed, 10 Oct 2012 15:07:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id E8F7F80057 for ; Wed, 10 Oct 2012 15:07:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XQKH-V5hQHq9 for ; Wed, 10 Oct 2012 15:07:07 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-we0-f171.google.com (mail-we0-f171.google.com [74.125.82.171]) by whitealder.osuosl.org (Postfix) with ESMTPS id 6238A8081E for ; Wed, 10 Oct 2012 15:07:07 +0000 (UTC) Received: by mail-we0-f171.google.com with SMTP id s43so456710wey.16 for ; Wed, 10 Oct 2012 08:07:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=Sb9LI9DHpggwYku86TL+plbySPcgP0qlTPp2CnDrBjQ=; b=MWqpyNiXBW69o/bPsDr7h32P32fuBHMU9s7tkqvgZxesnHQ8BEH01WCbHwi0RH31+4 XUgqV3i8EeC346mQXnpBOJ6SRN+JwKefIs36cSLPmVjfSWTjVJGgNzKLfPJ3VBGwOoEB 5a2ZN/qgkTLy8sSZ5fMwTa+KufZv0ZQEJQxRUxNsp/nl0w4F998g0kvFnAKK8shSzatn zLc1QN2/ycxI679HiAKfhOdKcHgcNqB4Uj/JU5JOPtMLOIuZ9RuSh22PoV2XveQbh6ah VQ285e+W2R9qUvHPBQvDilfUXGPNA9AqdZYqujsb8S82oTi7DO6zfoYx08RbTCFfbob6 RsXA== Received: by 10.180.94.73 with SMTP id da9mr13591538wib.19.1349881625593; Wed, 10 Oct 2012 08:07:05 -0700 (PDT) Received: from xubuntu-12.04 (123.179.87.79.rev.sfr.net. [79.87.179.123]) by mx.google.com with ESMTPS id q7sm3227246wiy.11.2012.10.10.08.07.04 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 10 Oct 2012 08:07:04 -0700 (PDT) From: Francois Perrad To: buildroot@busybox.net Date: Wed, 10 Oct 2012 17:06:30 +0200 Message-Id: <1349881591-7062-9-git-send-email-francois.perrad@gadz.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1349881591-7062-1-git-send-email-francois.perrad@gadz.org> References: <1349881591-7062-1-git-send-email-francois.perrad@gadz.org> Subject: [Buildroot] [PATCH v10 09/10] cpanminus: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Signed-off-by: Francois Perrad --- package/Config.in | 5 ++++ package/cpanminus/Config.in | 36 +++++++++++++++++++++++ package/cpanminus/cpanminus.mk | 47 ++++++++++++++++++++++++++++++ package/perl/perl-fix-Module-Build.patch | 16 ++++++++++ 4 files changed, 104 insertions(+) create mode 100644 package/cpanminus/Config.in create mode 100644 package/cpanminus/cpanminus.mk create mode 100644 package/perl/perl-fix-Module-Build.patch diff --git a/package/Config.in b/package/Config.in index d9cadf9..06050f2 100644 --- a/package/Config.in +++ b/package/Config.in @@ -263,6 +263,11 @@ source "package/xavante/Config.in" endmenu endif source "package/perl/Config.in" +if BR2_PACKAGE_PERL +menu "Perl libraries/modules" +source "package/cpanminus/Config.in" +endmenu +endif source "package/microperl/Config.in" source "package/php/Config.in" source "package/python/Config.in" diff --git a/package/cpanminus/Config.in b/package/cpanminus/Config.in new file mode 100644 index 0000000..b8b39dc --- /dev/null +++ b/package/cpanminus/Config.in @@ -0,0 +1,36 @@ +config BR2_PACKAGE_CPANMINUS + bool "cpanminus" + help + cpanminus is a script to get, unpack, build and install Perl modules + from CPAN. + + Why? It's dependency free, requires zero configuration, and stands + alone. When running, it requires only 10MB of RAM. + + http://github.com/miyagawa/cpanminus + +if BR2_PACKAGE_CPANMINUS + +config BR2_PACKAGE_CPANMINUS_MIRROR + string "mirror" + help + Specifies the base URL for the CPAN mirror to use, + such as http://cpan.cpantesters.org/. + +config BR2_PACKAGE_CPANMINUS_MODULES + string "Perl modules from CPAN" + default "Curses::UI" + help + List of space-separated Perl modules to install from CPAN. + + Examples: Try::Tiny Dancer YAML Moo + + Install the listed modules and their dependencies. + +config BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES + string "native dependencies" + default "ncurses" + help + Some XS modules require native libraries. + +endif diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk new file mode 100644 index 0000000..d3a338b --- /dev/null +++ b/package/cpanminus/cpanminus.mk @@ -0,0 +1,47 @@ +############################################################# +# +# 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_RUN_PERL = $(QEMU_USER) $(STAGING_DIR)/usr/bin/perl +CPANMINUS_ARCHNAME = $(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}") +CPANMINUS_PERL_LIB = $(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION) +CPANMINUS_PERL_SITELIB = $(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION) +CPANMINUS_PERL_ARCHLIB = $(CPANMINUS_PERL_LIB)/$(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_MODULES = $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES)) + +ifneq ($(CPANMINUS_MODULES),) +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)) + find $(CPANMINUS_PERL_SITEARCH) -type f -name *.bs -exec rm -f {} \; +endef +else +define CPANMINUS_INSTALL_TARGET_CMDS + @echo "No modules to install" +endef +endif + +$(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 + +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;