From patchwork Tue Feb 3 03:20:28 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Olivari X-Patchwork-Id: 435692 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 281FA1401B1 for ; Tue, 3 Feb 2015 14:22:23 +1100 (AEDT) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 4EE1E28C010; Tue, 3 Feb 2015 04:18:57 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,T_DKIM_INVALID, T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id AE89128BFF2 for ; Tue, 3 Feb 2015 04:18:46 +0100 (CET) X-policyd-weight: using cached result; rate:hard: -8.5 Received: from sabertooth02.qualcomm.com (sabertooth02.qualcomm.com [65.197.215.38]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Tue, 3 Feb 2015 04:18:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qca.qualcomm.com; i=@qca.qualcomm.com; q=dns/txt; s=qcdkim; t=1422933678; x=1454469678; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=T0dCvnVBAw31UAg6LUvfy8n3BqvzMDPksgd1ATC3CvA=; b=yFP1HXabWZOgc21FEueJVyQasLYDaTppDXnmj1+n7on3IjzTPym4QtN/ Xsh/GPHCxStzBHxuIJSncfWDiskKkMxa7Nn2Ng6cRmg787Qz5a4k+mA2Y 3dT21yGFhhahyx1MNTghDBiBPq5rgB4rmIaeeL3xUHSMBLls+wixaUJnC U=; X-IronPort-AV: E=McAfee;i="5600,1067,7700"; a="83382005" Received: from ironmsg01-lv.qualcomm.com ([10.47.202.180]) by sabertooth02.qualcomm.com with ESMTP; 02 Feb 2015 19:20:58 -0800 X-IronPort-AV: E=Sophos;i="5.09,510,1418112000"; d="scan'208";a="32284692" Received: from nalasexr01g.na.qualcomm.com ([10.49.56.53]) by ironmsg01-lv.qualcomm.com with ESMTP/TLS/RC4-SHA; 02 Feb 2015 19:20:57 -0800 Received: from mathieu-linux.qualcomm.com (10.80.80.8) by NALASEXR01G.na.qualcomm.com (10.49.56.53) with Microsoft SMTP Server (TLS) id 15.0.995.29; Mon, 2 Feb 2015 19:20:56 -0800 From: Mathieu Olivari To: Date: Mon, 2 Feb 2015 19:20:28 -0800 Message-ID: <1422933629-25793-3-git-send-email-mathieu@qca.qualcomm.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1422933629-25793-1-git-send-email-mathieu@qca.qualcomm.com> References: <1422933629-25793-1-git-send-email-mathieu@qca.qualcomm.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: NASANEXM01H.na.qualcomm.com (10.85.0.34) To NALASEXR01G.na.qualcomm.com (10.49.56.53) Cc: openwrt-devel@lists.openwrt.org Subject: [OpenWrt-Devel] [Patch v3 3/4] build: propagate override information to .config file X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" With this change, override information is now parsed from the metadata and put in the %packages hash. A new hash - %overrides - is created and exported, to be used during the .config-package.in generation. If an override is detected, a new option CONFIG_OVERRIDE_PKGS will be created in the .config, and will contain a space-separated list of all the overridden packages. Signed-off-by: Mathieu Olivari --- scripts/metadata.pl | 8 ++++++++ scripts/metadata.pm | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/scripts/metadata.pl b/scripts/metadata.pl index ea437f5..abf8248 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -679,6 +679,13 @@ EOF print "endmenu\n\n"; } +sub print_package_overrides() { + keys %overrides > 0 or return; + print "\tconfig OVERRIDE_PKGS\n"; + print "\t\tstring\n"; + print "\t\tdefault \"".join(" ", keys %overrides)."\"\n\n"; +} + sub gen_package_config() { parse_package_metadata($ARGV[0]) or exit 1; print "menuconfig IMAGEOPT\n\tbool \"Image configuration\"\n\tdefault n\n"; @@ -704,6 +711,7 @@ EOF foreach my $cat (sort {uc($a) cmp uc($b)} keys %category) { print_package_config_category $cat; } + print_package_overrides(); } sub get_conditional_dep($$) { diff --git a/scripts/metadata.pm b/scripts/metadata.pm index fc86573..4bf70bb 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -2,7 +2,7 @@ package metadata; use base 'Exporter'; use strict; use warnings; -our @EXPORT = qw(%package %srcpackage %category %subdir %preconfig %features clear_packages parse_package_metadata get_multiline); +our @EXPORT = qw(%package %srcpackage %category %subdir %preconfig %features %overrides clear_packages parse_package_metadata get_multiline); our %package; our %preconfig; @@ -10,6 +10,7 @@ our %srcpackage; our %category; our %subdir; our %features; +our %overrides; sub get_multiline { my $fh = shift; @@ -30,6 +31,7 @@ sub clear_packages() { %srcpackage = (); %category = (); %features = (); + %overrides = (); } sub parse_package_metadata($) { @@ -40,6 +42,7 @@ sub parse_package_metadata($) { my $preconfig; my $subdir; my $src; + my $override; open FILE, "<$file" or do { warn "Cannot open '$file': $!\n"; @@ -54,8 +57,13 @@ sub parse_package_metadata($) { $subdir =~ s/^package\///; $subdir{$src} = $subdir; $srcpackage{$src} = []; + $override = ""; undef $pkg; }; + /^Override: \s*(.+?)\s*$/ and do { + $override = $1; + $overrides{$src} = 1; + }; next unless $src; /^Package:\s*(.+?)\s*$/ and do { undef $feature; @@ -70,6 +78,7 @@ sub parse_package_metadata($) { $pkg->{buildtypes} = []; $pkg->{subdir} = $subdir; $pkg->{tristate} = 1; + $pkg->{override} = $override; $package{$1} = $pkg; push @{$srcpackage{$src}}, $pkg; };