aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2007-02-12 23:50:40 +0000
committerFelix Fietkau <nbd@openwrt.org>2007-02-12 23:50:40 +0000
commit218aad6e2fb604ec79deff99d1aebc87189f005a (patch)
tree176be51fecdbc75b42e373d8cf95d0a994b0b565
parent59accbecf56ea856c0428dcf85d693134eda8320 (diff)
downloadupstream-218aad6e2fb604ec79deff99d1aebc87189f005a.tar.gz
upstream-218aad6e2fb604ec79deff99d1aebc87189f005a.tar.bz2
upstream-218aad6e2fb604ec79deff99d1aebc87189f005a.zip
Menuconfig will not treat 'select FOO' as a real dependency thus if BAR depends on FOO and FOO depends on other config options, these dependencies will not be checked. To fix this, we simply emit all of FOO's depends (only real dependencies, no select) for BAR as well.
SVN-Revision: 6293
-rw-r--r--package/ntfs-3g/Makefile2
-rwxr-xr-xscripts/metadata.pl48
2 files changed, 35 insertions, 15 deletions
diff --git a/package/ntfs-3g/Makefile b/package/ntfs-3g/Makefile
index d48ef3695f..314a52c0ff 100644
--- a/package/ntfs-3g/Makefile
+++ b/package/ntfs-3g/Makefile
@@ -27,7 +27,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/ntfs-3g
TITLE:=NTFS-3G
- DEPENDS:=+libfuse +fuse-utils @LINUX_2_6
+ DEPENDS:=+libfuse +fuse-utils
SECTION:=utils
CATEGORY:=Utilities
DESCRIPTION:=\
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index 963be3f382..7514a17135 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -341,6 +341,39 @@ sub package_depends($$) {
return $ret;
}
+sub mconf_depends($$) {
+ my $depends = shift;
+ my $only_dep = shift;
+ my $res;
+
+ $depends or return;
+ my @depends = @$depends;
+ foreach my $depend (@depends) {
+ my $m = "depends";
+ $depend =~ s/^([@\+]+)//;
+ my $flags = $1;
+ my $vdep;
+
+ if ($vdep = $package{$depend}->{vdepends}) {
+ $depend = join("||", map { "PACKAGE_".$_ } @$vdep);
+ } else {
+ $flags =~ /\+/ and do {
+ next if $only_dep;
+ $m = "select";
+
+ # Menuconfig will not treat 'select FOO' as a real dependency
+ # thus if FOO depends on other config options, these dependencies
+ # will not be checked. To fix this, we simply emit all of FOO's
+ # depends here as well.
+ $package{$depend} and $res .= mconf_depends($package{$depend}->{depends}, 1);
+ };
+ $flags =~ /@/ or $depend = "PACKAGE_$depend";
+ }
+ $res .= "\t\t$m $depend\n";
+ }
+ return $res;
+}
+
sub print_package_config_category($) {
my $cat = shift;
my %menus;
@@ -394,20 +427,7 @@ sub print_package_config_category($) {
foreach my $default (split /\s*,\s*/, $pkg->{default}) {
print "\t\tdefault $default\n";
}
- foreach my $depend (@{$pkg->{depends}}) {
- my $m = "depends";
- $depend =~ s/^([@\+]+)//;
- my $flags = $1;
- my $vdep;
-
- if ($vdep = $package{$depend}->{vdepends}) {
- $depend = join("||", map { "PACKAGE_".$_ } @$vdep);
- } else {
- $flags =~ /@/ or $depend = "PACKAGE_$depend";
- $flags =~ /\+/ and $m = "select";
- }
- print "\t\t$m $depend\n";
- }
+ print mconf_depends($pkg->{depends}, 0);
print "\t\thelp\n";
print $pkg->{description};
print "\n";