summaryrefslogtreecommitdiff
path: root/multiarchanalyze.sql
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2022-01-16 19:19:41 +0100
committerHelmut Grohne <helmut@subdivi.de>2022-01-16 19:19:41 +0100
commit7fd673e4ba4a301b8a53f7b3fecf3b0208f237e6 (patch)
treec11763153a565f572d37a0d6931b2ed46eb68468 /multiarchanalyze.sql
parent1f99cb38848e22aeb7aec55560a9c559472c63fe (diff)
downloaddebian-dedup-7fd673e4ba4a301b8a53f7b3fecf3b0208f237e6.tar.gz
multiarchanalyze: disable transitive m-a:same hints
It is a long-standing disagreement with lintian. Until now, the hinter emitted hints when some package could plausibly be marked M-A:same even when dependencies couldn't. lintian complains about that when such a dependency comes from the same source package. We now follow lintian. This deletes around 2000 hints and will cause people to have to apply hints multiple times. For instance your libfoo-dev package will only be flagged after your libfooN was flagged. So be it.
Diffstat (limited to 'multiarchanalyze.sql')
-rw-r--r--multiarchanalyze.sql13
1 files changed, 10 insertions, 3 deletions
diff --git a/multiarchanalyze.sql b/multiarchanalyze.sql
index 48e95c9..57f5f9b 100644
--- a/multiarchanalyze.sql
+++ b/multiarchanalyze.sql
@@ -35,7 +35,8 @@ CREATE VIEW contentconflict AS
* provides. */
DROP VIEW IF EXISTS archdepcandidate;
CREATE VIEW archdepcandidate AS
- SELECT p1.id AS dependerid, p2.id AS dependeeid
+ SELECT p1.id AS dependerid, p2.id AS dependeeid,
+ p2.multiarch IS 'same' AS ismasame
FROM package AS p1, depends AS d, package AS p2
WHERE p1.id = d.pid
AND d.dependee = p2.name
@@ -46,7 +47,8 @@ CREATE VIEW archdepcandidate AS
OR p2.architecture = 'all'
OR p2.architecture = d.archqual)
UNION ALL
- SELECT p1.id AS dependerid, p2.id AS dependeeid
+ SELECT p1.id AS dependerid, p2.id AS dependeeid,
+ p2.multiarch IS 'same' AS ismasame
FROM package AS p1, depends AS d, provides AS r, package AS p2
WHERE p1.id = d.pid
AND d.dependee = r.provided
@@ -87,7 +89,11 @@ CREATE VIEW archpackage AS
exists(
SELECT 1 FROM package AS p2, archdepcandidate AS c
WHERE p2.name = p1.name AND c.dependerid = p2.id)
- AS hasarchdeps
+ AS hasarchdeps,
+ exists(
+ SELECT 1 FROM package AS p2, archdepcandidate AS c
+ WHERE p2.name = p1.name AND c.dependerid = p2.id
+ AND NOT c.ismasame) AS hasnoncoinstdeps
FROM packageapi AS p1
WHERE p1.instances >= 3 AND p1.hasindep = 0;
@@ -165,6 +171,7 @@ CREATE VIEW masame_candidate AS
SELECT p1.name FROM archpackage AS p1
WHERE p1.multiarch = 'no'
AND p1.hasscripts = 0
+ AND NOT p1.hasnoncoinstdeps
AND NOT EXISTS (
SELECT 1 FROM contentconflict
WHERE name1 = p1.name AND name2 = p1.name);