[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Package priority issues on qa.debian.org/debcheck.php



On Tue, May 10, 2016 at 4:29 AM, Iustin Pop wrote:

> Let me know if I should be reporting these as bugs against some package,
> or if they are not problems.

These are known problems. If anyone would like to help finish up the
attached patch to make debcheck use libdpkg-perl for parsing, that
would be great.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise
From 924a6960a95fae1d7e585731c89a0e5b0ca747be Mon Sep 17 00:00:00 2001
From: Paul Wise <pabs@debian.org>
Date: Fri, 23 May 2014 12:52:07 +0800
Subject: [PATCH] wip

---
 data/debcheck/debcheck | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/data/debcheck/debcheck b/data/debcheck/debcheck
index acc55cb..807e4a8 100755
--- a/data/debcheck/debcheck
+++ b/data/debcheck/debcheck
@@ -7,6 +7,7 @@ use strict;
 
 use Dpkg::ErrorHandling;
 use Dpkg::Version;
+use Dpkg::Deps;
 report_options (quiet_warnings => 1);
 
 my $VERBOSE = -t 1; # output is a terminal
@@ -333,8 +334,10 @@ sub checkRelationships($$$$$) {
 	
 		  	if (defined $Rpackages->{$packagename} &&
 			    defined $Rpackages->{$packagename}->{$tocheck}) {
+				my $dependencies = deps_parse($Rpackages->{$packagename}->{$tocheck});
 				my $checknr=0;
-				for my $dependency ( split /\s*,\s*/, $Rpackages->{$packagename}->{$tocheck} ) {
+				die ("Could not parse '($Rpackages->{$packagename}->{$tocheck}'") if !defined $dependencies;
+				for my $dependency ($dependencies->get_deps()) {
 					$checknr++;
 					my %relationship_problems = ();
 					my $at_least_one_ok_alternatives = 0;
@@ -347,11 +350,12 @@ sub checkRelationships($$$$$) {
 					if ($check_priority) {
 					  	$this_priority = get_priority( $Rpackages->{$packagename} );
 					};
-					for my $partdependency ( split /\s*\|\s*/, $dependency ) {
+					for my $partdependency ($dependency->get_deps()) {
 						$partdependency =~ /^\s*([a-zA-Z0-9.+_-]+(?::[^\s]+)?)\s*(?:\((.*)\))?\s*$/x ||
 							die ("Could not parse '$partdependency'");
 						my $depends_name = $1;
 						my $depends_version = $2;
+						my $depends_architecture = $3;
 						if (defined $depends_version && ! ($depends_version =~ /^\s*(<=|<<|<|=|>|>=|>>)\s*([^=<>]*?)\s*$/)) {
 							$Rproblems->
 								{ $Rpackages->{$packagename}->{'Source'} }->
-- 
2.8.1


Reply to: