From patchwork Sat Sep 1 07:25:21 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francois Perrad X-Patchwork-Id: 181108 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id 4D3672C0079 for ; Sat, 1 Sep 2012 17:26:01 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id A23CA10B883; Sat, 1 Sep 2012 07:25:59 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U1gpI9LyeAPY; Sat, 1 Sep 2012 07:25:55 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id A07E910B872; Sat, 1 Sep 2012 07:25:55 +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 641BB8F75E for ; Sat, 1 Sep 2012 07:25:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id D1CB68ACE6 for ; Sat, 1 Sep 2012 07:25:54 +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 obpjG2d2izKV for ; Sat, 1 Sep 2012 07:25:53 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wg0-f53.google.com (mail-wg0-f53.google.com [74.125.82.53]) by whitealder.osuosl.org (Postfix) with ESMTPS id 6EEA88ABF2 for ; Sat, 1 Sep 2012 07:25:53 +0000 (UTC) Received: by mail-wg0-f53.google.com with SMTP id fm10so2218675wgb.10 for ; Sat, 01 Sep 2012 00:25:53 -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=46SnPttzz1GJ/KvtFOX/SIoxzETllLkmK3trYDcexhY=; b=oLG12CIKG2kWRBzr3MQH4rskMfpBr7OF/IGxAF+/enDLW8SwKRuM2FuXpbv013GEjb L2G7WKtT1YEyE2iFGADReSmJnnIcC3gn0QjoEGCVpyqP2aLK4/EhX7Pw3bNbIkgF5T8C Smb/3dXGgLKZvtbFKuBAzqH/F48QlQlsz+77729cu/CutlZXxBdQdk6FhgcI/xS3MT3P Eakw3v5ahdAuY5SLMzNRTVMEfq6k7QD+ZXtKBRMhGBcwGzzRTcy4+D/4NELl8BeXdFR4 eU6OAlsbOww1hGNXpIXx3UA+WBCUlhikOCTXzKzatQ9rDzU5qWcJhuo2IXaQwYyzqnJ9 t9gA== Received: by 10.216.233.208 with SMTP id p58mr5718015weq.56.1346484353103; Sat, 01 Sep 2012 00:25:53 -0700 (PDT) Received: from xubuntu-12.04 (135.135.193.77.rev.sfr.net. [77.193.135.135]) by mx.google.com with ESMTPS id o2sm7878598wiz.11.2012.09.01.00.25.51 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 01 Sep 2012 00:25:52 -0700 (PDT) From: Francois Perrad To: buildroot@busybox.net Date: Sat, 1 Sep 2012 09:25:21 +0200 Message-Id: <1346484332-31433-3-git-send-email-francois.perrad@gadz.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1346484332-31433-1-git-send-email-francois.perrad@gadz.org> References: <1346484332-31433-1-git-send-email-francois.perrad@gadz.org> Subject: [Buildroot] [PATCH 03/14] cpanminus: new package v2 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 --- package/Config.in | 5 +++++ package/cpanminus/Config.in | 23 +++++++++++++++++++ package/cpanminus/cpanminus-destdir.patch | 24 ++++++++++++++++++++ package/cpanminus/cpanminus.mk | 34 +++++++++++++++++++++++++++++ package/perl/perl-EUMM.patch | 19 +++++++++++++++- 5 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 package/cpanminus/Config.in create mode 100644 package/cpanminus/cpanminus-destdir.patch create mode 100644 package/cpanminus/cpanminus.mk diff --git a/package/Config.in b/package/Config.in index 00a79ab..48d25fc 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..7c41c4d --- /dev/null +++ b/package/cpanminus/Config.in @@ -0,0 +1,23 @@ +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_MODULES + string "Perl modules from CPAN" + help + List of space-separated Perl modules to install from CPAN. + + Examples: Try::Tiny Dancer YAML Moo + + Install the listed modules and their dependencies. + +endif diff --git a/package/cpanminus/cpanminus-destdir.patch b/package/cpanminus/cpanminus-destdir.patch new file mode 100644 index 0000000..c1c61ad --- /dev/null +++ b/package/cpanminus/cpanminus-destdir.patch @@ -0,0 +1,24 @@ + +Signed-off-by: Francois Perrad + +Index: b/cpanm +=================================================================== +--- a/cpanm ++++ b/cpanm +@@ -399,6 +399,7 @@ + 'h|help' => sub { $self->{action} = 'show_help' }, + 'V|version' => sub { $self->{action} = 'show_version' }, + 'perl=s' => \$self->{perl}, ++ 'destdir=s' => \$self->{destdir}, + 'l|local-lib=s' => sub { $self->{local_lib} = $self->maybe_abs($_[1]) }, + 'L|local-lib-contained=s' => sub { + $self->{local_lib} = $self->maybe_abs($_[1]); +@@ -1636,7 +1637,7 @@ + $self->diag_progress("Building " . ($self->{notest} ? "" : "and testing ") . $distname); + $self->build([ $self->{make} ], $distname) && + $self->test([ $self->{make}, "test" ], $distname) && +- $self->install([ $self->{make}, "install" ], [ "UNINST=1" ], $depth) && ++ $self->install([ $self->{make}, "install", "DESTDIR=$self->{destdir}" ], [ "UNINST=1" ], $depth) && + $installed++; + } else { + my $why; diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk new file mode 100644 index 0000000..ce2a09b --- /dev/null +++ b/package/cpanminus/cpanminus.mk @@ -0,0 +1,34 @@ +############################################################# +# +# cpanminus +# +############################################################# + +CPANMINUS_VERSION = 1.5017 +CPANMINUS_SOURCE = miyagawa-cpanminus-$(CPANMINUS_VERSION)-0-g917a607.tar.gz +CPANMINUS_SITE = https://github.com/miyagawa/cpanminus/tarball/$(CPANMINUS_VERSION) +CPANMINUS_DEPENDENCIES = perl + +CPANMINUS_ARCH=$(call qstrip,$(BR2_ARCH)) +ifeq ($(CPANMINUS_ARCH),i686) + CPANMINUS_ARCH=i386 +endif +CPANMINUS_QEMU_USER_MODE=qemu-$(CPANMINUS_ARCH) -L $(STAGING_DIR) +CPANMINUS_RUN_PERL=$(CPANMINUS_QEMU_USER_MODE) $(STAGING_DIR)/usr/bin/perl +CPANMINUS_ARCHNAME=$(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}") +CPANMINUS_PERL5LIB=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME):$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION):$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME):$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION) + +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) \ + $(CPANMINUS_RUN_PERL) $(@D)/cpanm \ + --perl=$(@D)/run_perl \ + --destdir="$(TARGET_DIR)" \ + --notest \ + --no-man-pages \ + $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES)) +endef + +$(eval $(generic-package)) diff --git a/package/perl/perl-EUMM.patch b/package/perl/perl-EUMM.patch index 4134f8a..689c2c9 100644 --- a/package/perl/perl-EUMM.patch +++ b/package/perl/perl-EUMM.patch @@ -6,7 +6,24 @@ Index: b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm =================================================================== --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -@@ -1924,7 +1925,7 @@ +@@ -1659,8 +1659,14 @@ + } else { + # we should also consider $ENV{PERL5LIB} here + my $old = $self->{PERL_LIB} || $self->{PERL_ARCHLIB} || $self->{PERL_INC}; +- $self->{PERL_LIB} ||= $Config{privlibexp}; +- $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; ++ if ($Config{run}) { ++ $self->{PERL_LIB} ||= $inc_carp_dir; ++ $self->{PERL_ARCHLIB} ||= $inc_config_dir; ++ } ++ else { ++ $self->{PERL_LIB} ||= $Config{privlibexp}; ++ $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; ++ } + $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now + my $perl_h; + +@@ -1924,7 +1930,7 @@ foreach my $perl (qw(PERL FULLPERL ABSPERL)) { my $run = $perl.'RUN';