[SCM] pkg-kde.alioth.debian.org website branch, master, updated. c4aa068d24014d81b1d28325026ff42f43b510b1

Sandro Knauß hefee at moszumanska.debian.org
Sat Dec 16 21:37:22 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/www.git;a=commitdiff;h=f7e3d93

The following commit has been merged in the master branch:
commit f7e3d93748a4171a6dded32a1912f636f243fff8
Author: Sandro Knauß <hefee at debian.org>
Date:   Sat Dec 16 22:07:59 2017 +0100

    Add pim-build-graph
---
 files/pim-build-deps.dot | 104 +++++++++++++++++++++++++++++++++++++++++++++++
 files/pim-build-graph.py |  99 ++++++++++++++++++++++++++++++++++++++++++++
 genweb.sh                |   3 ++
 3 files changed, 206 insertions(+)

diff --git a/files/pim-build-deps.dot b/files/pim-build-deps.dot
new file mode 100644
index 0000000..27ec4b4
--- /dev/null
+++ b/files/pim-build-deps.dot
@@ -0,0 +1,104 @@
+digraph pim {
+  "ktnef" [fillcolor="lightblue", style="filled"] ;
+  "akonadi" [fillcolor="darkgreen", style="filled"] ;
+  "knotes" [fillcolor="lightblue", style="filled"] ;
+  "kontactinterface" [fillcolor="darkgreen", style="filled"] ;
+  "libkf5grantleetheme" [fillcolor="darkgreen", style="filled"] ;
+  "akonadiconsole" [fillcolor="lightblue", style="filled"] ;
+  "kmime" [fillcolor="darkgreen", style="filled"] ;
+  "blogilo" [fillcolor="lightblue", style="filled"] ;
+  "kdepim-runtime" [fillcolor="lightblue", style="filled"] ;
+  "grantlee-editor" [fillcolor="lightblue", style="filled"] ;
+  "kleopatra" [fillcolor="lightblue", style="filled"] ;
+  "kcontacts" [fillcolor="darkgreen", style="filled"] ;
+  "kholidays" [fillcolor="darkgreen", style="filled"] ;
+  "libkf5ksieve" [fillcolor="lightblue", style="filled"] ;
+  "kpimtextedit" [fillcolor="darkgreen", style="filled"] ;
+  "kcalcore" [fillcolor="darkgreen", style="filled"] ;
+  "kldap" [fillcolor="darkgreen", style="filled"] ;
+  "syndication" [fillcolor="darkgreen", style="filled"] ;
+  "libkf5mailcommon" [fillcolor="lightblue", style="filled"] ;
+  "akregator" [fillcolor="lightblue", style="filled"] ;
+  "kgpg" [fillcolor="lightblue", style="filled"] ;
+  "libkf5eventviews" [fillcolor="lightblue", style="filled"] ;
+  "kcalutils" -> "ktnef" ;
+  "kcontacts" -> "ktnef" ;
+  "libkf5libkdepim" -> "libkf5mailimporter" ;
+  "akonadi-mime" -> "libkf5mailimporter" ;
+  "kontactinterface" -> "knotes" ;
+  "kcalutils" -> "knotes" ;
+  "akonadi-notes" -> "knotes" ;
+  "libkf5pimcommon" -> "knotes" ;
+  "libkf5calendarsupport" -> "akonadiconsole" ;
+  "kf5-messagelib" -> "akonadiconsole" ;
+  "kcalcore" -> "kalarmcal" ;
+  "akonadi" -> "kalarmcal" ;
+  "kholidays" -> "kalarmcal" ;
+  "kidentitymanagement" -> "kalarmcal" ;
+  "kf5-kdepim-apps-libs" -> "kf5-messagelib" ;
+  "kmailtransport" -> "kf5-messagelib" ;
+  "libkf5gravatar" -> "kf5-messagelib" ;
+  "kmbox" -> "kf5-messagelib" ;
+  "kidentitymanagement" -> "kf5-messagelib" ;
+  "libkf5pimcommon" -> "libkf5gravatar" ;
+  "kcalutils" -> "libkolab" ;
+  "akonadi-notes" -> "libkolab" ;
+  "kcontacts" -> "libkolab" ;
+  "akonadi-mime" -> "akonadi-contacts" ;
+  "kcontacts" -> "akonadi-contacts" ;
+  "kblog" -> "blogilo" ;
+  "kf5-messagelib" -> "blogilo" ;
+  "akonadi-calendar" -> "kdepim-runtime" ;
+  "libkgapi" -> "kdepim-runtime" ;
+  "kalarmcal" -> "kdepim-runtime" ;
+  "libkf5pimcommon" -> "kdepim-runtime" ;
+  "libkolab" -> "kdepim-runtime" ;
+  "kmbox" -> "kdepim-runtime" ;
+  "akonadi" -> "akonadi-mime" ;
+  "kmime" -> "akonadi-mime" ;
+  "kimap" -> "libkf5pimcommon" ;
+  "libkf5libkdepim" -> "libkf5pimcommon" ;
+  "kpimtextedit" -> "libkf5pimcommon" ;
+  "akonadi" -> "akonadi-notes" ;
+  "kmime" -> "akonadi-notes" ;
+  "kf5-messagelib" -> "grantlee-editor" ;
+  "libkf5libkleo" -> "kleopatra" ;
+  "kmime" -> "kleopatra" ;
+  "libkf5grantleetheme" -> "kf5-kdepim-apps-libs" ;
+  "libkf5libkleo" -> "kf5-kdepim-apps-libs" ;
+  "libkf5pimcommon" -> "kf5-kdepim-apps-libs" ;
+  "akonadi-contacts" -> "akonadi-calendar" ;
+  "kmailtransport" -> "akonadi-calendar" ;
+  "kcalutils" -> "akonadi-calendar" ;
+  "kpimtextedit" -> "libkf5libkleo" ;
+  "kcalcore" -> "libkgapi" ;
+  "kcontacts" -> "libkgapi" ;
+  "akonadi-contacts" -> "libkf5libkdepim" ;
+  "akonadi-search" -> "libkf5libkdepim" ;
+  "kldap" -> "libkf5libkdepim" ;
+  "kf5-kdepim-apps-libs" -> "libkf5calendarsupport" ;
+  "akonadi-calendar" -> "libkf5calendarsupport" ;
+  "kholidays" -> "libkf5calendarsupport" ;
+  "kidentitymanagement" -> "libkf5ksieve" ;
+  "kmailtransport" -> "libkf5ksieve" ;
+  "libkf5pimcommon" -> "libkf5ksieve" ;
+  "kcalcore" -> "kblog" ;
+  "syndication" -> "kblog" ;
+  "akonadi-mime" -> "kmailtransport" ;
+  "kpimtextedit" -> "kidentitymanagement" ;
+  "kmime" -> "kmbox" ;
+  "kmime" -> "kimap" ;
+  "libkf5mailimporter" -> "libkf5mailcommon" ;
+  "kf5-messagelib" -> "libkf5mailcommon" ;
+  "kontactinterface" -> "akregator" ;
+  "syndication" -> "akregator" ;
+  "kf5-messagelib" -> "akregator" ;
+  "kcalcore" -> "kcalutils" ;
+  "kidentitymanagement" -> "kcalutils" ;
+  "akonadi-contacts" -> "kgpg" ;
+  "akonadi-mime" -> "akonadi-search" ;
+  "kcalcore" -> "akonadi-search" ;
+  "kcontacts" -> "akonadi-search" ;
+  "libkf5libkdepim" -> "libkf5eventviews" ;
+  "libkf5calendarsupport" -> "libkf5eventviews" ;
+}
diff --git a/files/pim-build-graph.py b/files/pim-build-graph.py
new file mode 100755
index 0000000..02579dc
--- /dev/null
+++ b/files/pim-build-graph.py
@@ -0,0 +1,99 @@
+#!/usr/bin/python
+
+# depgraph
+# Copyright (C) 2008 Stefano Zacchiroli <zack at debian.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+"""Graph the dependencies of all packages contained in a given Packages
+file.
+
+Only consider Depends fields. Versioned dependencies are considered as they
+were not versioned. The graph is retourned in output as a (non normalized)
+graphviz graph suitable to be processed by dot (for an unstable/main Packages
+file, generating the final graph will take a while ...)."""
+
+from __future__ import print_function
+
+import sys
+import copy
+from debian import deb822
+
+__fresh_id = 0
+
+def main():
+    def get_id():
+        global __fresh_id
+        __fresh_id += 1
+        return ("NODE_%d" % __fresh_id)
+
+    def emit_arc(node1, node2):
+        print('  "%s" -> "%s" ;' % (node1, node2))
+    def emit_node(node, dsc):
+        print('  "%s" [label="%s"] ;' % (node, dsc))
+    def emit_nodecolor(node, color):
+        print('  "%s" [fillcolor="%s", style="filled"] ;' % (node, color))
+
+    sources={pkg['package']:[] for pkg in deb822.Sources.iter_paragraphs(open('Sources'))}
+    p2s = {}
+
+    for pkg in deb822.Sources.iter_paragraphs(open('Packages')):
+       if 'Source' in pkg and pkg['Source'] in sources:
+           sources[pkg['Source']].append(pkg['Package'])
+           p2s[pkg['Package']] = pkg['Source']
+       elif pkg['Package'] in sources:
+           p2s[pkg['Package']] = pkg['Package']
+       #else:
+       #    print("Package will not processed", pkg['Package'])
+
+
+    graph = {}
+
+    for pkg in deb822.Sources.iter_paragraphs(open('Sources')):
+        name = pkg['package']
+        rels = pkg.relations
+        sDeps = set()
+        for deps in rels['build-depends']:
+            if len(deps) == 1:
+                if deps[0]['name'] not in p2s:
+                    continue
+                sDeps.add(p2s[deps[0]['name']])
+
+        graph[name] = sDeps
+
+    sgraph = {}
+    for pkg in graph:
+        deps = copy.copy(graph[pkg])
+        for dep in graph[pkg]:
+            deps -= graph[dep]
+        sgraph[pkg] = deps
+
+
+    print("digraph pim {")
+    for pkg in graph:
+        name = pkg
+        sDeps = graph[pkg]
+        if sDeps == set():
+            emit_nodecolor(name, 'darkgreen')
+        else:
+            for p in sgraph:
+                if p == pkg:
+                    continue
+                if pkg in sgraph[p]:
+                    break
+            else:
+                emit_nodecolor(name, 'lightblue')
+
+    for pkg in graph:
+        name = pkg
+        sDeps = graph[pkg]
+        for dep in sDeps:
+            emit_arc(dep, name)
+    print("}")
+
+if __name__ == '__main__':
+    main()
+
diff --git a/genweb.sh b/genweb.sh
index d788959..374ca0d 100755
--- a/genweb.sh
+++ b/genweb.sh
@@ -24,5 +24,8 @@ bash genrss.sh > $OUTPUT/rss.xml
 # Generate Qt5 build dependencies graph. Needs dot.
 dot -T png -o $OUTPUT/images/qt5_build_deps.png files/qt5-build-deps.dot
 
+# Generate Pim5 build dependencies graph. Needs dot.
+dot -T png -o $OUTPUT/images/pim-build-deps.png files/pim-build-deps.dot
+
 # find $OUTPUT/ -name ".svn" -exec rm -rf {} \; || true
 chmod -R g+w $OUTPUT/*

-- 
pkg-kde.alioth.debian.org website



More information about the pkg-kde-commits mailing list