diff --git a/patches-qsdk11/0002-scripts-update-feed-script.patch b/patches-qsdk11/0002-scripts-update-feed-script.patch deleted file mode 100644 index a396405..0000000 --- a/patches-qsdk11/0002-scripts-update-feed-script.patch +++ /dev/null @@ -1,206 +0,0 @@ -From 371c8358cd38f6e5f7dd4b784614d39f54ae6460 Mon Sep 17 00:00:00 2001 -From: Lancer -Date: Fri, 9 Apr 2021 16:01:50 +0800 -Subject: [PATCH] gen_config.py requires the latest version of the feeds - script. - ---- - scripts/feeds | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 119 insertions(+), 18 deletions(-) - -diff --git a/scripts/feeds b/scripts/feeds -index f8f29cd..45cb47b 100755 ---- a/scripts/feeds -+++ b/scripts/feeds -@@ -35,33 +35,57 @@ my $feed_package = {}; - my $feed_src = {}; - my $feed_target = {}; - --sub parse_config() { -+ -+sub parse_file($$); -+ -+sub parse_file($$) { -+ my ($fname, $existing) = @_; - my $line = 0; -- my %name; -+ my $fh; - -- open FEEDS, "feeds.conf" or -- open FEEDS, "feeds.conf.default" or -- die "Unable to open feeds configuration"; -- while () { -+ open $fh, $fname or return undef; -+ while (<$fh>) { - chomp; - s/#.+$//; -- next unless /\S/; -- my @line = split /\s+/, $_, 3; -- my @src; - $line++; -+ next unless /\S/; - -- my $valid = 1; -- $line[0] =~ /^src-[\w-]+$/ or $valid = 0; -- $line[1] =~ /^\w+$/ or $valid = 0; -- @src = split /\s+/, $line[2]; -- $valid or die "Syntax error in feeds.conf, line: $line\n"; -+ my ($type, $flags, $name, $urls) = m!^src-([\w\-]+)((?:\s+--\w+(?:=\S+)?)*)\s+(\w+)(?:\s+(\S.*))?$!; -+ unless ($type && $name) { -+ die "Syntax error in $fname, line $line\n"; -+ } - -- $name{$line[1]} and die "Duplicate feed name '$line[1]', line: $line\n"; -- $name{$line[1]} = 1; -+ if ($existing->{$name}++) { -+ die "Duplicate feed name '$name' in '$fname' line: $line\n"; -+ } - -- push @feeds, [$line[0], $line[1], \@src]; -+ my @src = defined($urls) ? split /\s+/, $urls : (); -+ push @src, '' if @src == 0; -+ -+ my %flags; -+ if (defined $flags) { -+ while ($flags =~ m!\s+--(\w+)(?:=(\S+))?!g) { -+ $flags{$1} = defined($2) ? $2 : 1; -+ } -+ } -+ -+ if ($type eq "include") { -+ parse_file($urls, $existing) or -+ die "Unable to open included file '$urls'"; -+ next; -+ } -+ -+ push @feeds, ["src-$type", $name, \@src, \%flags]; - } -- close FEEDS; -+ close $fh; -+ return 1; -+} -+ -+sub parse_config() { -+ my %name; -+ parse_file("feeds.conf", \%name) or -+ parse_file("feeds.conf.default", \%name) or -+ die "Unable to open feeds configuration"; - } - - sub update_location($$) -@@ -534,6 +558,36 @@ sub refresh_config { - } - } - -+sub install_profiles { -+ my $feed = shift; -+ my $dir = sprintf('feeds/%s/', $feed->[1]); -+ -+ -d "./feeds/profiles" or mkdir "./feeds/profiles" or return 1; -+ -+ opendir (DIR, $dir) or return 0; -+ while (my $file = readdir(DIR)) { -+ next unless (-f "$dir/$file"); -+ next unless ($file =~ m/\.profile$/); -+ -e "./feeds/profiles/$file" or system("ln -s ../$feed->[1]/$file ./feeds/profiles/"); -+ } -+ closedir(DIR); -+} -+ -+sub install_dl { -+ my $feed = shift; -+ my $dir = sprintf('feeds/%s/dl/', $feed->[1]); -+ -+ -d "./dl" or mkdir "./dl" or return 1; -+ -+ opendir (DIR, $dir) or return 0; -+ while (my $file = readdir(DIR)) { -+ next unless (-f "$dir/$file"); -+ -e "./dl/$file" or system("ln -s ../feeds/$feed->[1]/dl/$file ./dl/"); -+ } -+ closedir(DIR); -+} -+ -+ - sub install { - my $name; - my %opts; -@@ -569,6 +623,8 @@ sub install { - install_package($feed, $p->{name}, exists($opts{f})) == 0 or $ret = 1; - get_feed($f->[1]); - } -+ install_profiles($f); -+ install_dl($f); - } - } - } -@@ -731,6 +787,48 @@ sub update { - return 0; - } - -+sub setup { -+ my %opts; -+ -+ getopts('bh', \%opts); -+ -+ if ($opts{h}) { -+ usage(); -+ return 0; -+ } -+ -+ if (-e "feeds.conf") { -+ warn "The file feeds.conf already exists.\n"; -+ return 1; -+ } -+ -+ open(my $fd, ">>feeds.conf"); -+ -+ if ($opts{b}) { -+ printf $fd "src-include defaults feeds.conf.default\n"; -+ } -+ -+ while (my $entry = shift @ARGV) { -+ my ($type, $name, $src) = split /,/, $entry; -+ -+ $update_method{$type} or do { -+ warn "Unknown type '$type' in parameter $entry\n"; -+ unlink "feeds.conf"; -+ return 1; -+ }; -+ -+ if ($name =~ /[\s-]/) { -+ warn "Feed names or sources may not contain whitespace or - characters in parameter $entry\n"; -+ unlink "feeds.conf"; -+ return 1; -+ } -+ printf $fd "%s %s %s\n", $type, $name, $src; -+ } -+ -+ return 0; -+} -+ -+ - sub feed_config() { - foreach my $feed (@feeds) { - my $installed = (-f "feeds/$feed->[1].index"); -@@ -775,7 +873,9 @@ Commands: - -a : Uninstalls all packages. - - update -a|: Update packages and lists of feeds in feeds.conf . -+ setup [options] ...: generate feeds.conf - Options: -+ -b : Use feeds.conf.default as base for new feeds.conf. - -a : Update all feeds listed within feeds.conf. Otherwise the specified feeds will be updated. - -i : Recreate the index only. No feed update from repository is performed. - -@@ -792,6 +892,7 @@ my %commands = ( - 'search' => \&search, - 'uninstall' => \&uninstall, - 'feed_config' => \&feed_config, -+ 'setup' => \&setup, - 'clean' => sub { - system("rm -rf ./feeds ./package/feeds"); - } --- -2.7.4 -