Skip to contentSkip to conversation

scancpan: remove optional dependency

PATCH New Francois Perrad 2 participants 5 messages Oct 16, 2018 – Oct 20, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/3 scancpan: remove optional dependency

there are also runtime dependency

---
 utils/scancpan | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)
utils/scancpan +1 -12
index 01f3abdc8..6b810fdb6 100755
@@ -521,7 +521,6 @@ my %need_host;          # name -> 1 if host package is needed
 my %need_dlopen;        # name -> 1 if requires dynamic library
 my %deps_build;         # name -> list of host dependencies
 my %deps_runtime;       # name -> list of target dependencies
-my %deps_optional;      # name -> list of optional target dependencies
 my %license_files;      # name -> hash of license files
 my %checksum;           # author -> list of checksum
 my $mirror = 'http://cpan.metacpan.org';        # a CPAN mirror
@@ -626,7 +625,6 @@ sub fetch {
         }
         $deps_build{$name} = [keys %build];
         $deps_runtime{$name} = [keys %runtime];
-        $deps_optional{$name} = [keys %optional];
         foreach my $distname (@{$deps_build{$name}}) {
             fetch( $distname, 0, 1 );
         }
@@ -634,7 +632,7 @@ sub fetch {
             fetch( $distname, $need_target, $need_host );
             $need_dlopen{$name} ||= $need_dlopen{$distname};
         }
-        foreach my $distname (@{$deps_optional{$name}}) {
+        foreach my $distname (keys %optional) {
             fetch( $distname, $need_target, $need_host );
         }
     }
@@ -748,15 +746,6 @@ while (my ($distname, $dist) = each %dist) {
         say {$fh} qq{${brname}_LICENSE = ${license}} if $license;
         say {$fh} qq{${brname}_LICENSE_FILES = ${license_files}} if $license_files;
         say {$fh} qq{};
-        foreach (sort @{$deps_optional{$distname}}) {
-            next if grep { $_ eq $distname; } @{$deps_runtime{$_}};     # avoid cyclic dependencies
-            my $opt_brname = brname( $_ );
-            my $opt_fsname = fsname( $_ );
-            say {$fh} qq{ifeq (\$(BR2_PACKAGE_PERL_${opt_brname}),y)};
-            say {$fh} qq{${brname}_DEPENDENCIES += ${opt_fsname}};
-            say {$fh} qq{endif};
-            say {$fh} qq{};
-        }
         say {$fh} qq{\$(eval \$(perl-package))} if $need_target{$distname};
         say {$fh} qq{\$(eval \$(host-perl-package))} if $need_host{$distname};
         close $fh;
Signature · 1 line
2.17.1
#1 lore raw

PATCH 2/3 perl: fix the generated subdirectory Makefiles

---
 ...the-generated-subdirectory-Makefiles.patch | 30 +++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 package/perl/0001-fix-the-generated-subdirectory-Makefiles.patch
package/perl/0001-fix-the-generated-subdirectory-Makefiles.patch new file +30 -0
new file mode 100644
index 000000000..71560c5e0
@@ -0,0 +1,30 @@
+From 30ae4c9e2ac6cd27138ebf124cbda9232c56bdf7 Mon Sep 17 00:00:00 2001
+From: Francois Perrad <[email protected]>
+Date: Tue, 16 Oct 2018 21:20:12 +0200
+Subject: [PATCH] fix the generated subdirectory Makefiles
+
+all variables used by BR must be propagated
+
+similar to https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/98e8532fffe5afa8186329acc44fb957427f1823
+
+Signed-off-by: Francois Perrad <[email protected]>
+---
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+index d579256e86..48642e98fa 100644
+--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+@@ -703,7 +703,7 @@ END
+         }
+         if ($self->{PARENT}) {
+             $self->{PARENT}->{CHILDREN}->{$newclass} = $self;
+-            foreach my $opt (qw(POLLUTE PERL_CORE LINKTYPE LD OPTIMIZE)) {
++            foreach my $opt (qw(POLLUTE PERL_CORE LINKTYPE AR FULL_AR CC CCFLAGS OPTIMIZE LD LDDLFLAGS LDFLAGS PERL_ARCHLIB DESTDIR )) {
+                 if (exists $self->{PARENT}->{$opt}
+                     and not exists $self->{$opt})
+                     {
+-- 
+2.17.1
+
Signature · 1 line
2.17.1
#2 lore raw

PATCH 2/3 perl: fix the generated subdirectory Makefiles

Hello Fran?ois,

Quoted 12 lines · Francois Perrad
---
 ...the-generated-subdirectory-Makefiles.patch | 30 +++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 package/perl/0001-fix-the-generated-subdirectory-Makefiles.patch
package/perl/0001-fix-the-generated-subdirectory-Makefiles.patch new file +0 -0
new file mode 100644
index 000000000..71560c5e0

package/perl/0001-fix-the-generated-subdirectory-Makefiles.patch line 10

Quoted 10 lines
package/perl/0001-fix-the-generated-subdirectory-Makefiles.patch new file +10 -0
@@ -0,0 +1,30 @@
+From 30ae4c9e2ac6cd27138ebf124cbda9232c56bdf7 Mon Sep 17 00:00:00 2001
+From: Francois Perrad <[email protected]>
+Date: Tue, 16 Oct 2018 21:20:12 +0200
+Subject: [PATCH] fix the generated subdirectory Makefiles
+
+all variables used by BR must be propagated
+
+similar to https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/98e8532fffe5afa8186329acc44fb957427f1823
+
+Signed-off-by: Francois Perrad <[email protected]>

Aaah, excellent! This is so much better than having to SED the Makefiles.

Thanks a lot for having researched a better solution to this problem, much appreciated!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#3 lore raw

PATCH 3/3 perl-netaddr-ip: build the XS version

In reply to Francois Perrad

the generated subdirectory Makefiles are now fixed

now, the Pure Perl version is only useful when BR2_STATIC_LIBS

---
 package/perl-netaddr-ip/perl-netaddr-ip.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/perl-netaddr-ip/perl-netaddr-ip.mk +2 -2
index a1f02c691..e96e42a85 100644
@@ -10,8 +10,8 @@ PERL_NETADDR_IP_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MI/MIKER
 PERL_NETADDR_IP_LICENSE = Artistic or GPL-1.0+
 PERL_NETADDR_IP_LICENSE_FILES = Artistic Copying
 
-# we always build the Pure Perl version.
-# the build of the native part of NetAddr::IP::Util is buggy.
+ifeq ($(BR2_STATIC_LIBS),y)
 PERL_NETADDR_IP_CONF_OPTS = -noxs
+endif
 
 $(eval $(perl-package))
Signature · 1 line
2.17.1
#4 lore raw

PATCH 1/3 scancpan: remove optional dependency

In reply to Francois Perrad

Hello,

Quoted 6 lines · Francois Perrad

there are also runtime dependency

---
 utils/scancpan | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

Series applied. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com