staging.inyokaproject.org

Depra - Debian Package Relationship Analyzer

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Hi,

stellst Du die Neuerungen auch als Paket bereit? Das wäre nett ☺

Zoom mit Maus funktioniert schon prima.

Wäre cool, wenn man die Optionen von debtree im Menü einstellen könnte und das Bild sich darauf hin automatisch aktualisiert ☺

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: Zähle...

Ja, es gibt ein PPA mit Daily Builds. Einfach das PPA mit den freigegebenen Versionen entfernen und das neue hinzufügen:

sudo add-apt-repository ppa:mysteryx/depra-daily 

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Ah, danke. Hab das ppa gesucht aber nicht gefunden ...

Ansonsten: Weiter so 👍

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: 282

Huch, hier ist es doch:

Adresszeile zum Hinzufügen des PPAs:

  • ppa:mysteryx/depra-daily

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der

Ungültiges Makro

Dieses Makro ist nicht verfügbar

PPA-Beschreibung des Eigentümers/Teams mysteryx zu entnehmen.

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Wenn debtree einen Fehler schmeißt, rennt depra ins endlose. In der Stauszeile steht nur: "running graphviz"

debtree:

$ debtree skype
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig
digraph "skype" {
        rankdir=LR;
        node [shape=box];
        "skype" -> "skype-bin" [color=blue];
Can't use string ("") as a HASH ref while "strict refs" in use at /usr/bin/debtree line 323.

Andere Pakete gehen ohne Probleme.

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: 282

Ups, danke für die Meldung?

Anscheinend fängt debtree an, was zu berechnen, bricht das dann aber ab und dem unvollständigen Dokument kann graphviz nichts anfangen...

Damit sollte sich fertigwerden lassen...

Wär nett, wenn du einen Bug-Report auf Launchpad schreiben könntest, andernfalls mach ich das...

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

bubi97 schrieb:

Wär nett, wenn du einen Bug-Report auf Launchpad schreiben könntest, andernfalls mach ich das...

Wie Du vllt schon gesehen hast, habe ich einen Bug-Report erstellt.

Mit welcher Entwicklungsumgebung arbeitest Du?

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: 282

kaputtnik schrieb:

bubi97 schrieb:

Wär nett, wenn du einen Bug-Report auf Launchpad schreiben könntest, andernfalls mach ich das...

Wie Du vllt schon gesehen hast, habe ich einen Bug-Report erstellt.

Oh, danke, da hab ich noch gar nicht nachgesehen.

Mit welcher Entwicklungsumgebung arbeitest Du?

Eclipse mit den Qt-Plugins.

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: 282

Totgeglaubte leben länger: Version 0.3 wurde veröffentlicht!

Nach längerer Zeit ohne jegliche Entwicklungsaktivität habe ich in den letzten Wochen des alten Jahres wieder Zeit gefunden, ein paar Zeilen Programmquelltext zu schreiben. Diese Neuerungen und auch alle sonstigen seit 0.2 sind in dieses aktuelle Release eingeflossen.

Im einzelnen sind das hauptsächlich das neue Einstellungs-Modul mit grafischem Dialog, eine Erklärung der generierten Grafiken und einige Veränderungen in der GUI. Eine vollständige Liste ist im Changelog zu finden.

Die von kaputtnik schon recht zeitig gewünschte Funktion, sich Informationen zu den einzelnen Paketen anzeigen zu lassen, ist in Grundzügen vorhanden. Eine erweiterte Fassung ist im Branch "pkginfo" zu finden, die auch bald in den trunk einfließen wird.

Die Pakete werden sicher noch im Laufe des Abends ins PPA hochgeladen (die Build-Server von Launchpad scheinen ganz schön zu rackern 😉).

Für das nächste Release plane ich, die Paket-Info-Funktion auszubauen und Graphviz nativ via Bibliothek und nicht bie bisher als Kind-Prozess laufen zu lassen. Davon ist zu erwarten, dass sich die Performance verbessert und es weniger Potential für Bugs gibt. Außerdem werde ich mal schauen, wie ich eine optionale Lokalisierung realisieren kann. Dieses Release wird aber sicher nicht mehr in diesem Jahr kommen. 😉

Allen ein frohes neues Jahr!

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Coole Sache, danke ☺

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: 282

So, mal wieder habe ich ein wenig Zeit gefunden, mich mit Depra zu beschäftigen.

Gleichzeitig habe ich mich dmit beschäftigt, welche wege es neben Kind-Prozessen gibt, auf die Paketverwaltung zuzugreifen und habe dabei LibQApt gefunden. Dies scheint eine gute Möglichkeit zu sein, den Zugriff auf Paketinformationen direkt in Depra zu implementieren und auf lästige Subprozesse zu verzichten.

Ebenfalls denke ich, Graphviz als Bibliothek und nicht als Kind-Prozess laufen zu lassen.

Damit sieht der Entwicklungsplan folgendermaßen aus:

  1. Erstellung des dot-Codes mittels LibQApt

  2. Abrufen von zusätzlichen Paketinformationen (z. B. Beschreibung) mittels LibQApt

  3. Parsen des dot-Codes mittels libgraphviz

  4. Direkte Erstellung des Graphen mittels libgraphviz, ohne Umweg über dot-Code

Zwischendrin sollte sich auch eine Übersetzung realisieren lassen.

Was meint ihr zu diesen Plänen? Sollte ich das so durchführen oder etwas anderes eine höhere Priorität?

Nachteil der Sache ist der Aufwand. Der eigentliche Kern der Anwendung wird komplett umgestaltet, debtree wird quasi neuimplementiert und zu guter letzt entstehen neue Abhängigkeiten. Die Umsetzung dieser Pläne kann also einige Zeit in Anspruch nehmen, vor allem, da ich nicht weiß, mit welcher Regelmäßigkeit ich in der nächsten Zeit zum Programmieren komme.

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi bubi97,

ich finde den Plan ausgezeichnet. Ob sich Punkt 3 als Zwischenschritt lohnt kann ich allerdings nicht beurteilen, bevor du das verändest und dann nochmal verändest, solltest du dir ziemlich klar über den (zusätzlichen) Aufwand sein. Vor allen Dingen Punkt 1 (und 2) werden einen ziemlichen Performance-Boost bringen 👍 .

Gruss Lasall

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: 282

Mal sehen. Im Grunde stimmt es schon, ich könnte auch beides auf einmal machen.

bubi97

(Themenstarter)
Avatar von bubi97

Anmeldungsdatum:
17. Oktober 2011

Beiträge: 282

Puh, nun ist es vollbracht. Depra nutzt nicht mehr Debtree, sondern LibQApt. Noch ist nicht alles umgestellt, aber im Großen und ganzen lässt es sich benutzen.

Perspektivisch kann man sagen, dass durch den direkten Zugriff auf die Datenbank die Ausgabe viel flexibler konfiguriert werden kann, als es mit Debtree möglich war.

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi bubi97,

super Sache! Momentan habe ich mit manchen Paketen das Problem, dass der Graph nicht dargestellt wird (obwohl auf der Konsole der Code sichtbar ist), z.B.:

digraph libapt-pkg-dev {
rankdir=LR;
node [shape=box];
"libapt-pkg-dev" [style="setlinewidth(2)"];
"libapt-pkg-dev" -> "libapt-pkg4.12" [color=blue,label="(= 0.9.11.3)"];
"libapt-pkg4.12" [shape=diamond];
"libapt-pkg-dev" -> "libapt-inst1.5" [color=blue,label="(= 0.9.11.3)"];
"libapt-inst1.5" [shape=diamond];
"libapt-pkg-dev" -> "zlib1g-dev" [color=blue];
"zlib1g-dev" [shape=diamond];
}

oder ein nur lokal verfügbares Paket

digraph apt-build {
rankdir=LR;
node [shape=box];
"apt-build" [style="setlinewidth(2)"];
"apt-build" -> "debconf" [color=blue,label="(>= 0.5)"];
"debconf" [shape=diamond];
"apt-build" -> "python3" [color=blue,label="(>= 3.2.3-3~)"];
"python3" [shape=diamond];
"apt-build" -> "apt" [color=blue,label="(>= 0.5)"];
"apt" [shape=diamond];
"apt-build" -> "gcc" [color=blue];
"gcc" [shape=diamond];
"apt-build" -> "g++" [color=blue];
"g++" [shape=diamond];
"apt-build" -> "dpkg-dev" [color=blue,label="(>= 1.9)"];
"dpkg-dev" [shape=diamond];
"apt-build" -> "devscripts" [color=blue];
"devscripts" [shape=diamond];
"apt-build" -> "apt-utils" [color=blue];
"apt-utils" [shape=diamond];
"apt-build" -> "python3-apt" [color=blue];
"python3-apt" [shape=diamond];
"apt-build" -> "reprepro" [color=blue];
"reprepro" [shape=diamond];
"apt-build" -> "dpkg" [color=purple, style=bold,label="(>= 1.15.7.2~)"];
"dpkg" [shape=diamond];
"apt-build" -> "build-essential" [color=black];
"build-essential" [shape=diamond];
}

Anstatt die Paketinformationen unabhängig eingeben zu können, fände ich es sinnvoll, wenn das einfach immer diejenige des gerade dargestellten Paketes ist und dass bei einer Suche dort auch umgekehrt der Graph aktualisiert wird.

Gruss Lasall