summaryrefslogtreecommitdiff
path: root/multiarchanalyze.sql
diff options
context:
space:
mode:
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);