Merge lp:~sylvain-pineau/checkbox/html_legacy_jinja_template into lp:checkbox

Proposed by Sylvain Pineau
Status: Merged
Approved by: Sylvain Pineau
Approved revision: 3677
Merged at revision: 3673
Proposed branch: lp:~sylvain-pineau/checkbox/html_legacy_jinja_template
Merge into: lp:checkbox
Diff against target: 13875 lines (+2219/-11449)
15 files modified
plainbox/plainbox/data/report/checkbox.css (+11/-8)
plainbox/plainbox/data/report/checkbox.html (+144/-0)
plainbox/plainbox/data/report/checkbox.js (+2/-2)
plainbox/plainbox/data/report/checkbox.xsl (+0/-219)
plainbox/plainbox/impl/exporter/html.py (+44/-130)
plainbox/plainbox/impl/exporter/jinja2.py (+2/-4)
plainbox/plainbox/impl/exporter/test_html.py (+252/-108)
plainbox/plainbox/impl/session/state.py (+35/-0)
plainbox/plainbox/impl/session/test_state.py (+43/-0)
plainbox/plainbox/test-data/html-exporter/example-data.html (+0/-10959)
plainbox/plainbox/test-data/html-exporter/html-inliner.html (+0/-19)
plainbox/plainbox/test-data/html-exporter/with_both_certification_status.html (+446/-0)
plainbox/plainbox/test-data/html-exporter/with_certification_blocker.html (+420/-0)
plainbox/plainbox/test-data/html-exporter/with_certification_non_blocker.html (+420/-0)
plainbox/plainbox/test-data/html-exporter/without_certification_status.html (+400/-0)
To merge this branch: bzr merge lp:~sylvain-pineau/checkbox/html_legacy_jinja_template
Reviewer Review Type Date Requested Status
Sylvain Pineau (community) Approve
Zygmunt Krynicki (community) Approve
Review via email: mp+255256@code.launchpad.net

Description of the change

This MR replaces the html report (converted from xml) to a pure Jinja2 template thus satisfying the need of decoupling both to enhance it without corrupting the submission.xml.

Nothing is inlined except CSS and JS (I replaced the triangle images with unicode chars).

The tests are focused and testing the dynamic sections (blockers and non-blockers cert status).

Per-commit tests passed.

To post a comment you must log in.
Revision history for this message
Zygmunt Krynicki (zyga) wrote :

This is too large to post meaningful comments:

Please split this so that html bits can be reviewed separately.

some (random) comments:
 - the two methods on the state class should become a single method with an argument
 - html templates lack doctype

review: Needs Fixing
Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

The HTML template is a direct transcription of the XSL template.

The html bits are just this file: http://bazaar.launchpad.net/~sylvain-pineau/checkbox/html_legacy_jinja_template/revision/3653/plainbox/plainbox/data/report/checkbox.html

The tests and the removal of several files makes this MR diff too long but IMHO quite easy to review.
I'd prefer to keep it as is (no split). I'll add the missing DOCTYPE and make a new method for the two properties though.

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

Ok. let's review this on IRC.

On Wed, Apr 8, 2015 at 11:35 PM, Sylvain Pineau
<email address hidden> wrote:
> The HTML template is a direct transcription of the XSL template.
>
> The html bits are just this file: http://bazaar.launchpad.net/~sylvain-pineau/checkbox/html_legacy_jinja_template/revision/3653/plainbox/plainbox/data/report/checkbox.html
>
> The tests and the removal of several files makes this MR diff too long but IMHO quite easy to review.
> I'd prefer to keep it as is (no split). I'll add the missing DOCTYPE and make a new method for the two properties though.
> --
> https://code.launchpad.net/~sylvain-pineau/checkbox/html_legacy_jinja_template/+merge/255256
> You are reviewing the proposed merge of lp:~sylvain-pineau/checkbox/html_legacy_jinja_template into lp:checkbox.

Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

Added DOCTYPE and a new method to replace the two SessionState properties to get the cert blockers.

review: Needs Resubmitting
Revision history for this message
Zygmunt Krynicki (zyga) wrote :

Woot, let's land it! Thanks a lot :-)

review: Approve
Revision history for this message
Daniel Manrique (roadmr) wrote :

Attempt to merge into lp:checkbox failed due to conflicts:

text conflict in plainbox/plainbox/impl/session/state.py
text conflict in plainbox/plainbox/impl/session/test_state.py

3673. By Sylvain Pineau

plainbox:session:state: Added an helper methods to get the cert (non)-blockers

To work with Jinja2 templates and avoid too complex loops creation, the
session state now offers a new method to get a mapping of only containing
JobState with given certification statuses AND outcomes.

3674. By Sylvain Pineau

plainbox:exporter:jinja2: Make supported_option_list a class property.

3675. By Sylvain Pineau

plainbox:exporter:html: Conversion to a Jinja2 template

The Jinja2 template creates two additional sections for blocker and
non-blockers test failures (and only if there are such results).

All the report related files are now prefixed by checkbox:
- checkbox.html (Jinja2 template)
- checkbox.css (CSS)
- checkbox.js (Javascript)

All the inliner code required to convert the XML report to HTML are removed
along with their corresponding tests.

All useless images are also removed, replaced by unicode chars (▶ and ▼) in
both template and javascript files.

3676. By Sylvain Pineau

plainbox:data:report: Remove obsolete files (and test-data)

Images, XSL and test results samples.

3677. By Sylvain Pineau

plainbox:session:state: Add a new get_outcome_stats() method

By default ignoring the local,resource and attachment plugins.
It returns a dict where keys are all the outcomes seen during the testrun.

Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

rebased on trunk

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== renamed file 'plainbox/plainbox/data/report/styles.css' => 'plainbox/plainbox/data/report/checkbox.css'
2--- plainbox/plainbox/data/report/styles.css 2013-09-03 15:16:51 +0000
3+++ plainbox/plainbox/data/report/checkbox.css 2015-04-09 16:59:26 +0000
4@@ -1,7 +1,7 @@
5 body {
6 font-family: "Ubuntu Beta", "Bitstream Vera Sans", DejaVu Sans, Tahoma, sans-serif;
7 color: #333;
8- background: white url(report/images/body_bg.png);
9+ background: white;
10 font-size: 12px;
11 line-height: 14px;
12 margin: 0px;
13@@ -24,7 +24,7 @@
14 -webkit-box-shadow: #bbb 0px 0px 5px;
15 }
16 #header {
17- background: #dd4814 url(report/images/header_bg.png) top left repeat-x;
18+ background: #dd4814 top left repeat-x;
19 height: 64px;
20 margin: 0px;
21 padding: 0px;
22@@ -42,9 +42,9 @@
23
24 #content {
25 /*padding: 32px 80px 32px 80px;*/
26- padding: 32px 240px 32px 160px;
27+ padding: 32px 240px 32px 60px;
28 margin: 0 16px 16px;
29- width: 544px;
30+ width: 644px;
31 background-color: #fff;
32 -moz-border-radius: 4px;
33 -webkit-border-radius: 4px;
34@@ -182,7 +182,6 @@
35
36 ul {
37 margin-bottom: 16px;
38- list-style-image: url(report/images/bullet.png);
39 }
40 ul li {
41 margin-bottom: 8px;
42@@ -235,6 +234,10 @@
43 -webkit-box-shadow: #bbb 0px 0px 5px;
44 display: inline-block;
45 } /* for IE/Mac */
46+th
47+{
48+ text-align: left;
49+}
50 td
51 {
52 margin: 0;
53@@ -249,10 +252,10 @@
54 }
55 .disclosureimg
56 {
57- height: .75em;
58- vertical-align: middle;
59+ height: .75em;
60+ vertical-align: middle;
61 }
62 .data
63 {
64- display: none;
65+ display: none;
66 }
67
68=== added file 'plainbox/plainbox/data/report/checkbox.html'
69--- plainbox/plainbox/data/report/checkbox.html 1970-01-01 00:00:00 +0000
70+++ plainbox/plainbox/data/report/checkbox.html 2015-04-09 16:59:26 +0000
71@@ -0,0 +1,144 @@
72+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
73+<html>
74+<head>
75+ <title>System Testing Report</title>
76+ <style type="text/css">
77+ {% include "checkbox.css" %}
78+ </style>
79+ <script type="text/javascript">
80+ {% include "checkbox.js" %}
81+ </script>
82+</head>
83+<body>
84+ <div id="container">
85+ <div id="container-inner">
86+
87+ <div id="title">
88+ <h1>System Testing<span class="grey"> Report</span></h1>
89+ </div>
90+ <div id="content" class="clearfix">
91+ This report was created using {{ client_name }} {{ client_version }} on {{ timestamp }}
92+ </div>
93+ {% if "2013.com.canonical.certification::lsb" in manager.state.resource_map %}
94+ <div id="content" class="clearfix">
95+ <h2>Software Information</h2>
96+ <p>{{ manager.state.resource_map["2013.com.canonical.certification::lsb"][0]["description"] }}</p>
97+ </div>
98+ {% endif %}
99+
100+ {% if manager.state.failed_blockers_map %}
101+ <div id="content" class="clearfix">
102+ <h2 id="questions">Certification Status - Blockers</h2>
103+ <table style="width: 700px">
104+ <thead>
105+ <tr>
106+ <th>Test ID</th>
107+ <th>Result</th>
108+ </tr>
109+ </thead>
110+ <tbody>
111+ {% for job_id, job_state in manager.state.get_certification_status_map()|dictsort %}
112+ <tr>
113+ <td>{{ job_state.job.tr_summary() }}</td>
114+ <td style='font-weight: bold; color: {{ OMM[job_state.result.outcome].color_hex }}'>{{ OMM[job_state.result.outcome].tr_outcome|replace("job ", "") }}</td>
115+ </tr>
116+ {% endfor %}
117+ </tbody>
118+ </table>
119+ </div>
120+ {% endif %}
121+
122+ {% if manager.state.failed_non_blockers_map %}
123+ <div id="content" class="clearfix">
124+ <h2 id="questions">Certification Status - Non Blockers</h2>
125+ <table style="width: 700px">
126+ <thead>
127+ <tr>
128+ <th>Test ID</th>
129+ <th>Result</th>
130+ </tr>
131+ </thead>
132+ <tbody>
133+ {% for job_id, job_state in manager.state.get_certification_status_map(certification_status_filter=('non-blocker',))|dictsort %}
134+ <tr>
135+ <td>{{ job_state.job.tr_summary() }}</td>
136+ <td style='font-weight: bold; color: {{ OMM[job_state.result.outcome].color_hex }}'>{{ OMM[job_state.result.outcome].tr_outcome|replace("job ", "") }}</td>
137+ </tr>
138+ {% endfor %}
139+ </tbody>
140+ </table>
141+ </div>
142+ {% endif %}
143+
144+ <div id="content" class="clearfix">
145+ <h2 id="questions">Tests Performed</h2>
146+ <table style="width: 824px">
147+ <thead>
148+ <tr>
149+ <th>Test ID</th>
150+ <th>Result</th>
151+ <th>Certification status</th>
152+ <th>Comment</th>
153+ </tr>
154+ </thead>
155+ <tbody>
156+ {% for job_id, job_state in manager.state.job_state_map|dictsort if job_state.result.outcome != None and job_state.job.plugin not in ("resource", "local", "attachment") %}
157+ <tr>
158+ <td>{{ job_state.job.tr_summary() }}</td>
159+ <td style='font-weight: bold; color: {{ OMM[job_state.result.outcome].color_hex }}'>{{ OMM[job_state.result.outcome].tr_outcome|replace("job ", "") }}</td>
160+ <td>{{ job_state.effective_certification_status }}</td>
161+ {% if job_state.result.comments != None %}
162+ <td>{{ job_state.result.comments }}</td>
163+ {% else %}
164+ {% if job_state.result.io_log_as_flat_text != "" %}
165+ <td><div style="vertical-align: middle; width: 420px; overflow: auto;">
166+ <pre>{{ job_state.result.io_log_as_flat_text }}</pre>
167+ </div>
168+ </td>
169+ {% else %}
170+ <td>&nbsp;</td>
171+ {% endif %}
172+ {% endif %}
173+ </tr>
174+ {% endfor %}
175+ </tbody>
176+ </table>
177+ </div>
178+ <div id="content" class="clearfix">
179+ <h2>Log Files and Environment Information</h2>
180+ <div id="packages-contents">
181+ {% if "2013.com.canonical.certification::package" in manager.state.resource_map %}
182+ <span onClick="showHide('package');"><h3><span id="package" style="color: #dd4814;">&#9654;</span>
183+ packages installed</h3></span>
184+ <div class="data" id="package-contents" style="overflow: auto;">
185+ <table>
186+ <thead>
187+ <tr>
188+ <th>Name</th>
189+ <th>Version</th>
190+ </tr>
191+ </thead>
192+ <tbody>
193+ {% for package in manager.state.resource_map["2013.com.canonical.certification::package"] %}
194+ <tr>
195+ <td>{{ package["name"] }}</td>
196+ <td>{{ package["version"] }}</td>
197+ </tr>
198+ {% endfor %}
199+ </tbody>
200+ </table>
201+ </div>
202+ {% endif %}
203+ {% for job_id, job_state in manager.state.job_state_map|dictsort if job_state.result.outcome != None and job_state.job.plugin == "attachment" %}
204+ <span onClick="showHide('att{{ loop.index }}');"><h3><span id="att{{ loop.index }}" style="color: #dd4814;">&#9654;</span>
205+ {{ job_state.job.partial_id|replace("_attachment", "") }}</h3></span>
206+ <div class="data" id="att{{ loop.index }}-contents" style="overflow: auto;">
207+ <pre>{{ job_state.result.io_log_as_text_attachment }}</pre>
208+ </div>
209+ {% endfor %}
210+ </div>
211+ </div>
212+ </div>
213+ </div>
214+</body>
215+</html>
216
217=== modified file 'plainbox/plainbox/data/report/checkbox.js'
218--- plainbox/plainbox/data/report/checkbox.js 2013-09-03 15:16:51 +0000
219+++ plainbox/plainbox/data/report/checkbox.js 2015-04-09 16:59:26 +0000
220@@ -5,10 +5,10 @@
221 var newcontents;
222
223 if (contents.style.display != "block") {
224- newcontents = headingcontents.replace("closed", "open");
225+ newcontents = headingcontents.replace(/[^\x00-\x80]/g, "&#9660;");
226 contents.style.display = "block";
227 } else {
228- newcontents = headingcontents.replace("open", "closed");
229+ newcontents = headingcontents.replace(/[^\x00-\x80]/g, "&#9654;");
230 contents.style.display = "none";
231 }
232
233
234=== removed file 'plainbox/plainbox/data/report/checkbox.xsl'
235--- plainbox/plainbox/data/report/checkbox.xsl 2015-02-18 12:34:47 +0000
236+++ plainbox/plainbox/data/report/checkbox.xsl 1970-01-01 00:00:00 +0000
237@@ -1,219 +0,0 @@
238-<?xml version="1.0"?>
239-
240-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
241-<xsl:template match="/">
242- <html>
243- <head>
244- <title>System Testing Report</title>
245- <link rel="stylesheet" type="text/css" href="${PLAINBOX_ASSETS}/report/styles.css" />
246- <script type="text/javascript" src="${PLAINBOX_ASSETS}/report/checkbox.js">
247- </script>
248- </head>
249- <body>
250- <!-- Quick and dirty preload to have disclosure triangle images cached -->
251- <img src="${PLAINBOX_ASSETS}/report/images/open.png" style="display: none;" /><img src="${PLAINBOX_ASSETS}/report/images/closed.png" style="display: none;" />
252- <div id="container">
253- <div id="container-inner">
254-
255- <div id="title">
256- <h1>System Testing<span class="grey"> Report</span></h1>
257- </div>
258- <div id="content" class="clearfix">
259- <xsl:apply-templates select=".//summary" />
260- </div>
261- <div id="content" class="clearfix">
262- <h2>Hardware Information</h2>
263- <xsl:apply-templates select=".//hardware/dmi" />
264- <xsl:apply-templates select=".//hardware/sysfs-attributes" />
265- <xsl:apply-templates select=".//hardware/processors" />
266- <xsl:apply-templates select=".//hardware/lspci" />
267- </div>
268- <div id="content" class="clearfix">
269- <h2>Software Information</h2>
270- <xsl:apply-templates select=".//software/packages" />
271- <xsl:apply-templates select=".//software/lsbrelease" />
272- <xsl:apply-templates select=".//software/requirements"/>
273- </div>
274- <xsl:apply-templates select=".//questions" />
275- <div id="content" class="clearfix">
276- <h2>Log Files and Environment Information</h2>
277- <xsl:apply-templates select=".//context" />
278- </div>
279- </div>
280- </div>
281- </body>
282- </html>
283-</xsl:template>
284-
285-<xsl:template match="summary">
286- <p>
287- This report was created using <xsl:value-of select="client/@name" /> <xsl:text> </xsl:text><xsl:value-of select="client/@version" /> on
288- <xsl:value-of select="date_created/@value" />
289- </p>
290-</xsl:template>
291-
292-<xsl:template match="hardware/udev">
293- <div onClick="showHide('udev');">
294- <h3 id="udev"><img class="disclosureimg" src="${PLAINBOX_ASSETS}/report/images/closed.png" />Devices detected in the system (udev)</h3>
295- </div>
296- <div class="data" id="udev-contents">
297- <pre><xsl:value-of select="." /></pre>
298- </div>
299-</xsl:template>
300-
301-<xsl:template match="hardware/dmi">
302- <span onClick="showHide('dmi');"><h3 id="dmi"><img class="disclosureimg" src="${PLAINBOX_ASSETS}/report/images/closed.png" />Desktop Management Interface information</h3></span>
303- <div class="data" id="dmi-contents" style="overflow: auto;">
304- <pre><xsl:value-of select="." /></pre>
305- </div>
306-</xsl:template>
307-
308-<xsl:template match="hardware/sysfs-attributes">
309- <span onClick="showHide('sysfs-attributes');"><h3 id="sysfs-attributes"><img class="disclosureimg" src="${PLAINBOX_ASSETS}/report/images/closed.png" />sysfs-attributes</h3></span>
310- <div class="data" id="sysfs-attributes-contents">
311- <pre><xsl:value-of select="." /></pre>
312- </div>
313-</xsl:template>
314-
315-<xsl:template match="hardware/processors">
316- <span onClick="showHide('processors');"><h3 id="processors"><img class="disclosureimg" src="${PLAINBOX_ASSETS}/report/images/closed.png" />Processors</h3></span>
317- <div class="data" id="processors-contents">
318- <xsl:for-each select="processor">
319- <h3><u>Processor <xsl:value-of select='@name' /></u></h3>
320- <table>
321- <tr>
322- <th>Property</th>
323- <th>Value</th>
324- </tr>
325- <xsl:for-each select="property">
326- <tr>
327- <td class="label"><xsl:value-of select="@name" /></td>
328- <td class="property"><xsl:value-of select="." /></td>
329- </tr>
330- </xsl:for-each>
331- </table>
332- <br />
333- </xsl:for-each>
334- </div>
335-</xsl:template>
336-
337-<xsl:template match="software/lsbrelease">
338- <h3 id="lsbrelease">Installed version of Ubuntu</h3>
339- <table>
340- <xsl:for-each select="property">
341- <tr>
342- <td class="label"><xsl:value-of select="@name" /></td>
343- <td><xsl:value-of select="." /></td>
344- </tr>
345- </xsl:for-each>
346- </table>
347-</xsl:template>
348-<xsl:template match="software/packages">
349- <span onClick="showHide('packages');"><h3 id="packages"><img class="disclosureimg" src="${PLAINBOX_ASSETS}/report/images/closed.png" />Packages Installed</h3></span>
350- <div class="data" id="packages-contents">
351- <table>
352- <tr>
353- <th>Name</th>
354- <th>Description</th>
355- </tr>
356- <xsl:for-each select="package">
357- <tr>
358- <td class="label"><xsl:value-of select="@name" /></td>
359- <td><xsl:value-of select="property" /></td>
360- </tr>
361- </xsl:for-each>
362- </table>
363- </div>
364-</xsl:template>
365-<xsl:template match="software/requirements">
366- <span onClick="showHide('requirements');"><h3 id="requirements"><img class="disclosureimg" src="${PLAINBOX_ASSETS}/report/images/closed.png" />Requirements</h3></span>
367- <div class="data" id="requirements-contents">
368- <table>
369- <xsl:for-each select="requirement">
370- <tr>
371- <td>
372- <a href="{.}"><xsl:value-of select="@name" /></a>
373- </td>
374- </tr>
375- </xsl:for-each>
376- </table>
377- </div>
378-</xsl:template>
379-
380-<xsl:template match="questions">
381- <div id="content" class="clearfix">
382- <h2 id="questions">Tests Performed</h2>
383- <table style="width: 700px">
384- <tr>
385- <th> </th>
386- <th>Name</th>
387- <th style="width: 15em;">Result</th>
388- <th>Comment</th>
389- <th>Certification Status</th>
390- </tr>
391- <xsl:for-each select="question">
392- <tr>
393- <xsl:choose>
394- <xsl:when test="normalize-space(answer) = 'fail'">
395- <td><img class='resultimg' src='${PLAINBOX_ASSETS}/report/images/fail.png' /></td>
396- <td class="label"><xsl:value-of select="@name" /></td>
397- <td style='background-color: #DC3912'>FAILED</td>
398- <td><xsl:value-of select="comment" /></td>
399- </xsl:when>
400- <xsl:when test="normalize-space(answer) = 'pass'">
401- <td><img class='resultimg' src='${PLAINBOX_ASSETS}/report/images/pass.png' /></td>
402- <td class="label"><xsl:value-of select="@name" /></td>
403- <td style='background-color: #6AA84F'>PASSED</td>
404- <td><xsl:value-of select="comment" /></td>
405- </xsl:when>
406- <xsl:when test="normalize-space(answer) = 'unsupported'">
407- <td></td>
408- <td class="label"><xsl:value-of select="@name" /></td>
409- <td style='background-color: #FF9900'>not required on this system</td>
410- <td><xsl:value-of select="comment" /></td>
411- </xsl:when>
412- <xsl:when test="normalize-space(answer) = 'skip'">
413- <td><img class='resultimg' src='${PLAINBOX_ASSETS}/report/images/skip.png' /></td>
414- <td class="label"><xsl:value-of select="@name" /></td>
415- <td style='background-color: #FF9900'>SKIPPED</td>
416- <td><xsl:value-of select="comment" /></td>
417- </xsl:when>
418- <xsl:otherwise>
419- <td></td>
420- <td class="label"><xsl:value-of select="@name" /></td>
421- <td><xsl:value-of select="answer" /></td>
422- <td><xsl:value-of select="comment" /></td>
423- </xsl:otherwise>
424- </xsl:choose>
425- <td><xsl:value-of select="@certification_status"/></td>
426- </tr>
427- </xsl:for-each>
428- </table>
429- </div>
430- <div id="content" class="clearfix">
431- <h2 id="certification-status">Certification Blockers</h2>
432- <ul>
433- <xsl:for-each select="question">
434- <xsl:choose>
435- <xsl:when test="@certification_status = 'blocker' and not(normalize-space(answer) = 'pass')">
436- <li><xsl:value-of select="@name"/></li>
437- </xsl:when>
438- </xsl:choose>
439- </xsl:for-each>
440- </ul>
441- </div>
442-</xsl:template>
443-
444-<xsl:template match="context">
445- <div id="packages-contents">
446- <xsl:for-each select="info">
447- <span onClick="showHide('{generate-id(.)}');"><h3 id="{generate-id(.)}"><img class="disclosureimg" src="${PLAINBOX_ASSETS}/report/images/closed.png" />
448- <xsl:value-of select="@command" /></h3></span>
449- <div class="data" id="{generate-id(.)}-contents" style="overflow: auto;">
450- <pre><xsl:value-of select="." /></pre>
451- </div>
452- </xsl:for-each>
453- </div>
454-</xsl:template>
455-
456-</xsl:stylesheet>
457
458=== removed directory 'plainbox/plainbox/data/report/images'
459=== removed file 'plainbox/plainbox/data/report/images/body_bg.png'
460Binary files plainbox/plainbox/data/report/images/body_bg.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/body_bg.png 1970-01-01 00:00:00 +0000 differ
461=== removed file 'plainbox/plainbox/data/report/images/bullet.png'
462Binary files plainbox/plainbox/data/report/images/bullet.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/bullet.png 1970-01-01 00:00:00 +0000 differ
463=== removed file 'plainbox/plainbox/data/report/images/closed.png'
464Binary files plainbox/plainbox/data/report/images/closed.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/closed.png 1970-01-01 00:00:00 +0000 differ
465=== removed file 'plainbox/plainbox/data/report/images/fail.png'
466Binary files plainbox/plainbox/data/report/images/fail.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/fail.png 1970-01-01 00:00:00 +0000 differ
467=== removed file 'plainbox/plainbox/data/report/images/header_bg.png'
468Binary files plainbox/plainbox/data/report/images/header_bg.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/header_bg.png 1970-01-01 00:00:00 +0000 differ
469=== removed file 'plainbox/plainbox/data/report/images/open.png'
470Binary files plainbox/plainbox/data/report/images/open.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/open.png 1970-01-01 00:00:00 +0000 differ
471=== removed file 'plainbox/plainbox/data/report/images/pass.png'
472Binary files plainbox/plainbox/data/report/images/pass.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/pass.png 1970-01-01 00:00:00 +0000 differ
473=== removed file 'plainbox/plainbox/data/report/images/skip.png'
474Binary files plainbox/plainbox/data/report/images/skip.png 2013-09-03 15:16:51 +0000 and plainbox/plainbox/data/report/images/skip.png 1970-01-01 00:00:00 +0000 differ
475=== modified file 'plainbox/plainbox/impl/exporter/html.py'
476--- plainbox/plainbox/impl/exporter/html.py 2014-09-13 11:37:17 +0000
477+++ plainbox/plainbox/impl/exporter/html.py 2015-04-09 16:59:26 +0000
478@@ -29,96 +29,15 @@
479 THIS MODULE DOES NOT HAVE A STABLE PUBLIC API
480 """
481
482-from string import Template
483-import base64
484-import logging
485-import mimetypes
486-
487-from lxml import etree as ET
488-from pkg_resources import resource_filename
489-
490-from plainbox.i18n import gettext as _
491+from datetime import datetime
492+
493+from plainbox import __version__ as version
494+from plainbox.impl.exporter.jinja2 import Jinja2SessionStateExporter
495 from plainbox.impl.exporter.xml import XMLSessionStateExporter
496-
497-
498-logger = logging.getLogger("plainbox.exporter.html")
499-
500-
501-class HTMLResourceInliner(object):
502- """ A helper class to inline resources referenced in an lxml tree.
503- """
504- def _resource_content(self, url):
505- try:
506- with open(url, 'rb') as f:
507- file_contents = f.read()
508- except (IOError, OSError):
509- logger.warning(
510- _("Unable to load resource %s, not inlining"), url)
511- return ""
512- type, encoding = mimetypes.guess_type(url)
513- if not encoding:
514- encoding = "utf-8"
515- if type in("text/css", "application/javascript"):
516- return file_contents.decode(encoding)
517- elif type in("image/png", "image/jpg"):
518- b64_data = base64.b64encode(file_contents)
519- b64_data = b64_data.decode("ascii")
520- return_string = "data:{};base64,{}".format(type, b64_data)
521- return return_string
522- else:
523- logger.warning(_("Resource of type %s unknown"), type)
524- # Strip it out, better not to have it.
525- return ""
526-
527- def inline_resources(self, document_tree):
528- """
529- Replace references to external resources by an in-place (inlined)
530- representation of each resource.
531-
532- Currently images, stylesheets and scripts are inlined.
533-
534- Only local (i.e. file) resources/locations are supported. If a
535- non-local resource is requested for inlining, it will be removed
536- (replaced by a blank string), with the goal that the resulting
537- lxml tree will not reference any unreachable resources.
538-
539- :param document_tree:
540- lxml tree to process.
541-
542- :returns:
543- lxml tree with some elements replaced by their inlined
544- representation.
545- """
546- # Try inlining using result_tree here.
547- for node in document_tree.xpath('//script'):
548- # These have src attribute, need to remove the
549- # attribute and add the content of the src file
550- # as the node's text
551- src = node.attrib.pop('src')
552- node.text = self._resource_content(src)
553-
554- for node in document_tree.xpath('//link[@rel="stylesheet"]'):
555- # These have a href attribute and need to be completely replaced
556- # by a new <style> node with contents of the href file
557- # as its text.
558- src = node.attrib.pop('href')
559- type = node.attrib.pop('type')
560- style_elem = ET.Element("style")
561- style_elem.attrib['type'] = type
562- style_elem.text = self._resource_content(src)
563- node.getparent().append(style_elem)
564- # Now zorch the existing node
565- node.getparent().remove(node)
566-
567- for node in document_tree.xpath('//img'):
568- # src attribute points to a file and needs to
569- # contain the base64 encoded version of that file.
570- src = node.attrib.pop('src')
571- node.attrib['src'] = self._resource_content(src)
572- return document_tree
573-
574-
575-class HTMLSessionStateExporter(XMLSessionStateExporter):
576+from plainbox.impl.result import OUTCOME_METADATA_MAP as OMM
577+
578+
579+class HTMLSessionStateExporter(Jinja2SessionStateExporter):
580 """
581 Session state exporter creating HTML documents.
582
583@@ -126,47 +45,42 @@
584 and then inlines some resources to produce a monolithic report in a
585 single file.
586 """
587- def dump(self, data, stream):
588- """
589- Public method to dump the HTML report to a stream
590- """
591- root = self.get_root_element(data)
592- self.xslt_filename = resource_filename(
593- "plainbox", "data/report/checkbox.xsl")
594- template_substitutions = {
595- 'PLAINBOX_ASSETS': resource_filename("plainbox", "data/")}
596- with open(self.xslt_filename, encoding="UTF-8") as xslt_file:
597- xslt_template = Template(xslt_file.read())
598- return self.dump_etree(root,
599- stream,
600- xslt_template,
601- template_substitutions)
602-
603- def dump_etree(self, root, stream, xslt_template, template_substitutions):
604- """
605- Dumps the given lxml root tree into the given stream, by applying the
606- provided xslt. If template_substitutions is provided, the xslt will
607- first be processed as a string.Template with those substitutions.
608-
609- :param root:
610- lxml root element of tree to process.
611-
612+ def __init__(self, option_list=None, system_id=None, timestamp=None,
613+ client_version=None, client_name='plainbox'):
614+ super().__init__("checkbox.html", option_list)
615+
616+ # Generate a dummy system hash if needed
617+ if system_id is None:
618+ system_id = ""
619+ self._system_id = system_id
620+ # Generate a timestamp if needed
621+ if timestamp is None:
622+ timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S")
623+ self._timestamp = timestamp
624+ # Use current version unless told otherwise
625+ if client_version is None:
626+ client_version = "{}.{}.{}".format(*version[:3])
627+ self._client_version = client_version
628+ # Remember client name
629+ self._client_name = client_name
630+
631+ def dump_from_session_manager(self, session_manager, stream):
632+ """
633+ Extract data from session_manager and dump it into the stream.
634+
635+ :param session_manager:
636+ SessionManager instance that manages session to be exported by
637+ this exporter
638 :param stream:
639- Byte stream into which to dump the resulting output.
640-
641- :param xslt_template:
642- String containing an xslt with which to process the lxml
643- tree to output the desired document type.
644-
645- :param template_substitutions:
646- Dictionary with substitutions for variables which may be
647- in the xslt_template.
648+ Byte stream to write to.
649
650 """
651- if template_substitutions and isinstance(template_substitutions, dict):
652- xslt_data = xslt_template.substitute(template_substitutions)
653- xslt_root = ET.XML(xslt_data)
654- transformer = ET.XSLT(xslt_root)
655- r_tree = transformer(root)
656- inlined_result_tree = HTMLResourceInliner().inline_resources(r_tree)
657- stream.write(ET.tostring(inlined_result_tree, pretty_print=True))
658+ data = {
659+ 'manager': session_manager,
660+ 'options': self.option_list,
661+ 'OMM': OMM,
662+ 'timestamp': self._timestamp,
663+ 'client_version': self._client_version,
664+ 'client_name': self._client_name
665+ }
666+ self.dump(data, stream)
667
668=== modified file 'plainbox/plainbox/impl/exporter/jinja2.py'
669--- plainbox/plainbox/impl/exporter/jinja2.py 2015-03-31 20:31:19 +0000
670+++ plainbox/plainbox/impl/exporter/jinja2.py 2015-04-09 16:59:26 +0000
671@@ -35,6 +35,8 @@
672
673 """Session state exporter that renders output using jinja2 template."""
674
675+ supported_option_list = ()
676+
677 def __init__(self, jinja2_template, option_list=None, extra_paths=()):
678 """
679 Initialize a new Jinja2SessionStateExporter with given arguments.
680@@ -97,7 +99,3 @@
681 'manager': session_manager,
682 'options': self.option_list,
683 }
684-
685- def supported_option_list(cls):
686- """ Return list of supported exporter options."""
687- return []
688
689=== modified file 'plainbox/plainbox/impl/exporter/test_html.py'
690--- plainbox/plainbox/impl/exporter/test_html.py 2015-02-18 12:34:47 +0000
691+++ plainbox/plainbox/impl/exporter/test_html.py 2015-04-09 16:59:26 +0000
692@@ -1,6 +1,6 @@
693 # This file is part of Checkbox.
694 #
695-# Copyright 2013 Canonical Ltd.
696+# Copyright 2015 Canonical Ltd.
697 # Written by:
698 # Sylvain Pineau <sylvain.pineau@canonical.com>
699 # Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
700@@ -25,119 +25,263 @@
701
702 Test definitions for plainbox.impl.exporter.html module
703 """
704-from io import StringIO
705-from string import Template
706 from unittest import TestCase
707 import io
708
709-from lxml import etree as ET
710-from pkg_resources import resource_filename
711-from pkg_resources import resource_string
712-
713-from plainbox.testing_utils import resource_json
714-from plainbox.impl.exporter.html import HTMLResourceInliner
715+from plainbox.abc import IJobResult
716+from plainbox.testing_utils import resource_string
717 from plainbox.impl.exporter.html import HTMLSessionStateExporter
718-
719-
720-class HTMLInlinerTests(TestCase):
721- def setUp(self):
722- template_substitutions = {
723- 'PLAINBOX_ASSETS': resource_filename("plainbox", "data/")}
724- test_file_location = "test-data/html-exporter/html-inliner.html"
725- test_file = resource_filename("plainbox",
726- test_file_location)
727- with open(test_file) as html_file:
728- html_template = Template(html_file.read())
729- html_content = html_template.substitute(template_substitutions)
730- self.tree = ET.parse(StringIO(html_content), ET.HTMLParser())
731- # Now self.tree contains a tree with adequately-substituted
732- # paths and resources
733- inliner = HTMLResourceInliner()
734- self.inlined_tree = inliner.inline_resources(self.tree)
735-
736- def test_script_inlining(self):
737- """Test that a <script> resource gets inlined."""
738- for node in self.inlined_tree.xpath('//script'):
739- self.assertTrue(node.text)
740-
741- def test_img_inlining(self):
742- """
743- Test that a <img> gets inlined.
744- It should be replaced by a base64 representation of the
745- referenced image's data as per RFC2397.
746- """
747- for node in self.inlined_tree.xpath('//img'):
748- # Skip image that purposefully points to a remote
749- # resource
750- if node.attrib.get('class') != "remote_resource":
751- self.assertTrue("base64" in node.attrib['src'])
752-
753- def test_css_inlining(self):
754- """Test that a <style> resource gets inlined."""
755- for node in self.inlined_tree.xpath('//style'):
756- # Skip a fake remote_resource node that's purposefully
757- # not inlined
758- if 'nonexistent_resource' not in node.attrib['type']:
759- self.assertTrue("body" in node.text)
760-
761- def test_remote_resource_inlining(self):
762- """
763- Test that a resource with a non-local (i.e. not file://
764- url) does NOT get inlined (rather it's replaced by an
765- empty string). We use <style> in this test.
766- """
767- for node in self.inlined_tree.xpath('//style'):
768- # The not-inlined remote_resource
769- if 'nonexistent_resource' in node.attrib['type']:
770- self.assertTrue(node.text == "")
771-
772- def test_unfindable_file_inlining(self):
773- """
774- Test that a resource whose file does not exist does NOT
775- get inlined, and is instead replaced by empty string.
776- We use <img> in this test.
777- """
778- for node in self.inlined_tree.xpath('//img'):
779- if node.attrib.get('class') == "remote_resource":
780- self.assertEqual("", node.attrib['src'])
781+from plainbox.impl.resource import Resource
782+from plainbox.impl.result import MemoryJobResult
783+from plainbox.impl.unit.job import JobDefinition
784+from plainbox.vendor import mock
785
786
787 class HTMLExporterTests(TestCase):
788
789 def setUp(self):
790- data = resource_json(
791- "plainbox",
792- "test-data/xml-exporter/example-data-certification-status.json",
793- exact=True)
794- exporter = HTMLSessionStateExporter(
795- system_id="",
796- timestamp="2012-12-21T12:00:00",
797- client_version="1.0")
798- stream = io.BytesIO()
799- exporter.dump(data, stream)
800- self.actual_result = stream.getvalue() # This is bytes
801- self.assertIsInstance(self.actual_result, bytes)
802-
803- def test_html_output(self):
804- """
805- Test that output from the exporter is HTML (or at least,
806- appears to be).
807- """
808- # A pretty simplistic test since we just validate the output
809- # appears to be HTML. Looking at the exporter's code, it's mostly
810- # boilerplate use of lxml and etree, so let's not fall into testing
811- # an external library.
812- self.assertIn(b"<html>",
813- self.actual_result)
814- self.assertIn(b"<title>System Testing Report</title>",
815- self.actual_result)
816-
817- def test_perfect_match(self):
818- """
819- Test that output from the exporter exactly matches known
820- good HTML output, inlining and everything included.
821- """
822- expected_result = resource_string(
823- "plainbox", "test-data/html-exporter/example-data.html"
824- ) # unintuitively, resource_string returns bytes
825- self.assertEqual(self.actual_result, expected_result)
826+ self.resource_map = {
827+ '2013.com.canonical.certification::lsb': [
828+ Resource({'description': 'Ubuntu 14.04 LTS'})],
829+ '2013.com.canonical.certification::package': [
830+ Resource({'name': 'plainbox', 'version': '1.0'}),
831+ Resource({'name': 'fwts', 'version': '0.15.2'})],
832+ }
833+ self.job1 = JobDefinition({'id': 'job_id1', '_summary': 'job 1'})
834+ self.job2 = JobDefinition({'id': 'job_id2', '_summary': 'job 2'})
835+ self.job3 = JobDefinition({'id': 'job_id3', '_summary': 'job 3'})
836+ self.result_fail = MemoryJobResult({
837+ 'outcome': IJobResult.OUTCOME_FAIL, 'return_code': 1,
838+ 'io_log': [(0, 'stderr', b'FATAL ERROR\n')],
839+ })
840+ self.result_pass = MemoryJobResult({
841+ 'outcome': IJobResult.OUTCOME_PASS, 'return_code': 0,
842+ 'io_log': [(0, 'stdout', b'foo\n')],
843+ 'comments': 'blah blah'
844+ })
845+ self.result_skip = MemoryJobResult({
846+ 'outcome': IJobResult.OUTCOME_SKIP,
847+ 'comments': 'No such device'
848+ })
849+ self.attachment = JobDefinition({
850+ 'id': 'dmesg_attachment',
851+ 'plugin': 'attachment'})
852+ self.attachment_result = MemoryJobResult({
853+ 'outcome': IJobResult.OUTCOME_PASS,
854+ 'io_log': [(0, 'stdout', b'bar\n')],
855+ 'return_code': 0
856+ })
857+
858+ def prepare_manager_without_certification_status(self):
859+ return mock.Mock(state=mock.Mock(
860+ job_state_map={
861+ self.job1.id: mock.Mock(
862+ result=self.result_fail,
863+ job=self.job1,
864+ effective_certification_status='unspecified'),
865+ self.job2.id: mock.Mock(
866+ result=self.result_pass,
867+ job=self.job2,
868+ effective_certification_status='unspecified'),
869+ self.job3.id: mock.Mock(
870+ result=self.result_skip,
871+ job=self.job3,
872+ effective_certification_status='unspecified'),
873+ self.attachment.id: mock.Mock(result=self.attachment_result,
874+ job=self.attachment)
875+ },
876+ get_certification_status_map=mock.Mock(return_value={}),
877+ resource_map=self.resource_map,
878+ failed_blockers_map={},
879+ failed_non_blockers_map={})
880+ )
881+
882+ def prepare_manager_with_certification_blocker(self):
883+ return mock.Mock(state=mock.Mock(
884+ job_state_map={
885+ self.job1.id: mock.Mock(
886+ result=self.result_fail,
887+ job=self.job1,
888+ effective_certification_status='blocker'),
889+ self.job2.id: mock.Mock(
890+ result=self.result_pass,
891+ job=self.job2,
892+ effective_certification_status='unspecified'),
893+ self.job3.id: mock.Mock(
894+ result=self.result_skip,
895+ job=self.job3,
896+ effective_certification_status='unspecified'),
897+ self.attachment.id: mock.Mock(result=self.attachment_result,
898+ job=self.attachment)
899+ },
900+ get_certification_status_map=mock.Mock(return_value={
901+ self.job1.id: mock.Mock(
902+ result=self.result_fail,
903+ job=self.job1,
904+ effective_certification_status='blocker')}),
905+ resource_map=self.resource_map,
906+ failed_blockers_map={
907+ self.job1.id: mock.Mock(
908+ result=self.result_fail,
909+ job=self.job1,
910+ effective_certification_status='blocker')
911+ },
912+ failed_non_blockers_map={})
913+ )
914+
915+ def prepare_manager_with_certification_non_blocker(self):
916+ return mock.Mock(state=mock.Mock(
917+ job_state_map={
918+ self.job1.id: mock.Mock(
919+ result=self.result_fail,
920+ job=self.job1,
921+ effective_certification_status='non-blocker'),
922+ self.job2.id: mock.Mock(
923+ result=self.result_pass,
924+ job=self.job2,
925+ effective_certification_status='unspecified'),
926+ self.job3.id: mock.Mock(
927+ result=self.result_skip,
928+ job=self.job3,
929+ effective_certification_status='unspecified'),
930+ self.attachment.id: mock.Mock(result=self.attachment_result,
931+ job=self.attachment)
932+ },
933+ get_certification_status_map=mock.Mock(return_value={
934+ self.job1.id: mock.Mock(
935+ result=self.result_fail,
936+ job=self.job1,
937+ effective_certification_status='non-blocker')}),
938+ resource_map=self.resource_map,
939+ failed_blockers_map={},
940+ failed_non_blockers_map={
941+ self.job1.id: mock.Mock(
942+ result=self.result_fail,
943+ job=self.job1,
944+ effective_certification_status='non-blocker')
945+ })
946+ )
947+
948+ def prepare_manager_with_both_certification_status(self):
949+ return mock.Mock(state=mock.Mock(
950+ job_state_map={
951+ self.job1.id: mock.Mock(
952+ result=self.result_fail,
953+ job=self.job1,
954+ effective_certification_status='blocker'),
955+ self.job2.id: mock.Mock(
956+ result=self.result_fail,
957+ job=self.job2,
958+ effective_certification_status='non-blocker'),
959+ self.job3.id: mock.Mock(
960+ result=self.result_skip,
961+ job=self.job3,
962+ effective_certification_status='unspecified'),
963+ self.attachment.id: mock.Mock(result=self.attachment_result,
964+ job=self.attachment)
965+ },
966+ get_certification_status_map=mock.Mock(side_effect=[{
967+ self.job1.id: mock.Mock(
968+ result=self.result_fail,
969+ job=self.job1,
970+ effective_certification_status='blocker')},{
971+ self.job2.id: mock.Mock(
972+ result=self.result_fail,
973+ job=self.job2,
974+ effective_certification_status='non-blocker')}]),
975+ resource_map=self.resource_map,
976+ failed_blockers_map={
977+ self.job1.id: mock.Mock(
978+ result=self.result_fail,
979+ job=self.job1,
980+ effective_certification_status='blocker')
981+ },
982+ failed_non_blockers_map={
983+ self.job2.id: mock.Mock(
984+ result=self.result_fail,
985+ job=self.job2,
986+ effective_certification_status='non-blocker')
987+ })
988+ )
989+
990+ def test_perfect_match_without_certification_status(self):
991+ """
992+ Test that output from the exporter exactly matches known
993+ good HTML output, inlining and everything included.
994+ """
995+ exporter = HTMLSessionStateExporter(
996+ system_id="",
997+ timestamp="2012-12-21T12:00:00",
998+ client_version="1.0")
999+ stream = io.BytesIO()
1000+ exporter.dump_from_session_manager(
1001+ self.prepare_manager_without_certification_status(), stream)
1002+ actual_result = stream.getvalue() # This is bytes
1003+ self.assertIsInstance(actual_result, bytes)
1004+ with open('/tmp/bozo.html', 'wb') as f:
1005+ f.write(actual_result)
1006+ expected_result = resource_string(
1007+ "plainbox",
1008+ "test-data/html-exporter/without_certification_status.html"
1009+ ) # unintuitively, resource_string returns bytes
1010+ self.assertEqual(actual_result, expected_result)
1011+
1012+ def test_perfect_match_with_certification_blocker(self):
1013+ """
1014+ Test that output from the exporter exactly matches known
1015+ good HTML output, inlining and everything included.
1016+ """
1017+ exporter = HTMLSessionStateExporter(
1018+ system_id="",
1019+ timestamp="2012-12-21T12:00:00",
1020+ client_version="1.0")
1021+ stream = io.BytesIO()
1022+ exporter.dump_from_session_manager(
1023+ self.prepare_manager_with_certification_blocker(), stream)
1024+ actual_result = stream.getvalue() # This is bytes
1025+ self.assertIsInstance(actual_result, bytes)
1026+ expected_result = resource_string(
1027+ "plainbox",
1028+ "test-data/html-exporter/with_certification_blocker.html"
1029+ ) # unintuitively, resource_string returns bytes
1030+ self.assertEqual(actual_result, expected_result)
1031+
1032+ def test_perfect_match_with_certification_non_blocker(self):
1033+ """
1034+ Test that output from the exporter exactly matches known
1035+ good HTML output, inlining and everything included.
1036+ """
1037+ exporter = HTMLSessionStateExporter(
1038+ system_id="",
1039+ timestamp="2012-12-21T12:00:00",
1040+ client_version="1.0")
1041+ stream = io.BytesIO()
1042+ exporter.dump_from_session_manager(
1043+ self.prepare_manager_with_certification_non_blocker(), stream)
1044+ actual_result = stream.getvalue() # This is bytes
1045+ self.assertIsInstance(actual_result, bytes)
1046+ expected_result = resource_string(
1047+ "plainbox",
1048+ "test-data/html-exporter/with_certification_non_blocker.html"
1049+ ) # unintuitively, resource_string returns bytes
1050+ self.assertEqual(actual_result, expected_result)
1051+
1052+ def test_perfect_match_with_both_certification_status(self):
1053+ """
1054+ Test that output from the exporter exactly matches known
1055+ good HTML output, inlining and everything included.
1056+ """
1057+ exporter = HTMLSessionStateExporter(
1058+ system_id="",
1059+ timestamp="2012-12-21T12:00:00",
1060+ client_version="1.0")
1061+ stream = io.BytesIO()
1062+ exporter.dump_from_session_manager(
1063+ self.prepare_manager_with_both_certification_status(), stream)
1064+ actual_result = stream.getvalue() # This is bytes
1065+ self.assertIsInstance(actual_result, bytes)
1066+ expected_result = resource_string(
1067+ "plainbox",
1068+ "test-data/html-exporter/with_both_certification_status.html"
1069+ ) # unintuitively, resource_string returns bytes
1070+ self.assertEqual(actual_result, expected_result)
1071
1072=== modified file 'plainbox/plainbox/impl/session/state.py'
1073--- plainbox/plainbox/impl/session/state.py 2015-04-09 15:28:18 +0000
1074+++ plainbox/plainbox/impl/session/state.py 2015-04-09 16:59:26 +0000
1075@@ -25,6 +25,7 @@
1076 import logging
1077 import re
1078
1079+from plainbox.abc import IJobResult
1080 from plainbox.i18n import gettext as _
1081 from plainbox.impl import deprecated
1082 from plainbox.impl.depmgr import DependencyDuplicateError
1083@@ -1139,6 +1140,40 @@
1084 stats[job_state.result.outcome] += 1
1085 return stats
1086
1087+ def get_certification_status_map(self,
1088+ outcome_filter=(IJobResult.OUTCOME_FAIL,),
1089+ certification_status_filter=('blocker',)):
1090+ """
1091+ Filter the Job state map to only return items with given outcomes and
1092+ certification statuses.
1093+
1094+ :param outcome_filter:
1095+ Only consider job results with those outcome values
1096+ :param certification_status_filter:
1097+ Only consider jobs with those certification status values
1098+ :returns:
1099+ a Job state map only containing job with a given outcome and
1100+ certification status value.
1101+ """
1102+ return {
1103+ job_id: job_state for job_id, job_state in
1104+ self.job_state_map.items()
1105+ if job_state.result.outcome in outcome_filter
1106+ and job_state.effective_certification_status
1107+ in certification_status_filter}
1108+
1109+ def get_outcome_stats(self, plugin_blacklist=("resource",
1110+ "local",
1111+ "attachment")):
1112+ stats = collections.defaultdict(int)
1113+ for job_id, job_state in self.job_state_map.items():
1114+ if job_state.job.plugin in plugin_blacklist:
1115+ continue
1116+ if not job_state.result.outcome:
1117+ continue
1118+ stats[job_state.result.outcome] += 1
1119+ return stats
1120+
1121 @property
1122 def metadata(self):
1123 """ meta-data object associated with this session state. """
1124
1125=== modified file 'plainbox/plainbox/impl/session/test_state.py'
1126--- plainbox/plainbox/impl/session/test_state.py 2015-04-09 15:28:18 +0000
1127+++ plainbox/plainbox/impl/session/test_state.py 2015-04-09 16:59:26 +0000
1128@@ -658,6 +658,49 @@
1129 IJobResult.OUTCOME_NOT_SUPPORTED: 1,
1130 IJobResult.OUTCOME_FAIL: 2})
1131
1132+ def test_get_certification_status_map(self):
1133+ result_A = MemoryJobResult({'outcome': IJobResult.OUTCOME_PASS})
1134+ self.session.update_job_result(self.job_A, result_A)
1135+ self.session.job_state_map[
1136+ self.job_A.id].effective_certification_status = 'foo'
1137+ self.assertEqual(self.session.get_certification_status_map(), {})
1138+ self.assertEqual(self.session.get_certification_status_map(
1139+ outcome_filter=(IJobResult.OUTCOME_PASS,),
1140+ certification_status_filter=('foo',)),
1141+ {self.job_A.id: self.session.job_state_map[self.job_A.id]})
1142+ result_Y = MemoryJobResult({'outcome': IJobResult.OUTCOME_FAIL})
1143+ self.session.job_state_map[
1144+ self.job_Y.id].effective_certification_status = 'bar'
1145+ self.assertEqual(self.session.get_certification_status_map(), {})
1146+ self.assertEqual(self.session.get_certification_status_map(
1147+ outcome_filter=(IJobResult.OUTCOME_PASS, IJobResult.OUTCOME_FAIL),
1148+ certification_status_filter=('foo', 'bar')),
1149+ {self.job_A.id: self.session.job_state_map[self.job_A.id]})
1150+ self.session.update_job_result(self.job_Y, result_Y)
1151+ self.assertEqual(self.session.get_certification_status_map(
1152+ outcome_filter=(IJobResult.OUTCOME_PASS, IJobResult.OUTCOME_FAIL),
1153+ certification_status_filter=('foo', 'bar')),
1154+ {self.job_A.id: self.session.job_state_map[self.job_A.id],
1155+ self.job_Y.id: self.session.job_state_map[self.job_Y.id]})
1156+
1157+ def test_get_outcome_stats(self):
1158+ result_A = MemoryJobResult({'outcome': IJobResult.OUTCOME_PASS})
1159+ result_L = MemoryJobResult(
1160+ {'outcome': IJobResult.OUTCOME_NOT_SUPPORTED})
1161+ result_R = MemoryJobResult({'outcome': IJobResult.OUTCOME_FAIL})
1162+ result_Y = MemoryJobResult({'outcome': IJobResult.OUTCOME_FAIL})
1163+ self.session.update_job_result(self.job_A, result_A)
1164+ self.session.update_job_result(self.job_L, result_L)
1165+ self.session.update_job_result(self.job_R, result_R)
1166+ self.session.update_job_result(self.job_Y, result_Y)
1167+ self.assertEqual(self.session.get_outcome_stats(),
1168+ {IJobResult.OUTCOME_PASS: 1,
1169+ IJobResult.OUTCOME_FAIL: 1})
1170+ self.assertEqual(self.session.get_outcome_stats(plugin_blacklist=()),
1171+ {IJobResult.OUTCOME_PASS: 1,
1172+ IJobResult.OUTCOME_NOT_SUPPORTED: 1,
1173+ IJobResult.OUTCOME_FAIL: 2})
1174+
1175
1176 class SessionMetadataTests(TestCase):
1177
1178
1179=== removed file 'plainbox/plainbox/test-data/html-exporter/example-data.html'
1180--- plainbox/plainbox/test-data/html-exporter/example-data.html 2015-02-18 12:34:47 +0000
1181+++ plainbox/plainbox/test-data/html-exporter/example-data.html 1970-01-01 00:00:00 +0000
1182@@ -1,10959 +0,0 @@
1183-<html>
1184- <head>
1185- <title>System Testing Report</title>
1186- <script type="text/javascript">function showHide(what) {
1187- var heading = document.getElementById(what);
1188- var contents = document.getElementById(what + "-contents");
1189- var headingcontents = heading.innerHTML;
1190- var newcontents;
1191-
1192- if (contents.style.display != "block") {
1193- newcontents = headingcontents.replace("closed", "open");
1194- contents.style.display = "block";
1195- } else {
1196- newcontents = headingcontents.replace("open", "closed");
1197- contents.style.display = "none";
1198- }
1199-
1200- heading.innerHTML = newcontents;
1201-}
1202-</script>
1203- <style type="text/css">body {
1204- font-family: "Ubuntu Beta", "Bitstream Vera Sans", DejaVu Sans, Tahoma, sans-serif;
1205- color: #333;
1206- background: white url(report/images/body_bg.png);
1207- font-size: 12px;
1208- line-height: 14px;
1209- margin: 0px;
1210- padding: 0px;
1211-}
1212-#container {
1213- background: #f7f6f5;
1214- margin: 0px auto 20px;
1215- padding: 0px;
1216- width: 976px;
1217-}
1218-#container-inner {
1219- background-color: #dfdcd9;
1220-}
1221-#header, #container-inner {
1222- -moz-border-radius: 0px 0px 5px 5px;
1223- -webkit-border-bottom-left-radius: 5px;
1224- -webkit-border-bottom-right-radius: 5px;
1225- -moz-box-shadow: #bbb 0px 0px 5px;
1226- -webkit-box-shadow: #bbb 0px 0px 5px;
1227-}
1228-#header {
1229- background: #dd4814 url(report/images/header_bg.png) top left repeat-x;
1230- height: 64px;
1231- margin: 0px;
1232- padding: 0px;
1233- position: relative;
1234-}
1235-
1236-#menu-search {
1237- height: 40px;
1238- margin: 0 16px;
1239-}
1240-
1241-#title {
1242- padding: 28px 24px;
1243-}
1244-
1245-#content {
1246- /*padding: 32px 80px 32px 80px;*/
1247- padding: 32px 240px 32px 160px;
1248- margin: 0 16px 16px;
1249- width: 544px;
1250- background-color: #fff;
1251- -moz-border-radius: 4px;
1252- -webkit-border-radius: 4px;
1253-}
1254-#end-content {
1255- clear: both;
1256-}
1257-
1258-#content-panel {
1259- width: 446px;
1260- margin: 0px 0px 0px 0px;
1261- padding: 8px 8px 32px 8px;
1262- background-color: #fff;
1263- -moz-border-radius: 4px;
1264- -webkit-border-radius: 4px;
1265-}
1266-
1267-#copyright {
1268- background-position: 803px 40px;
1269- background-repeat: no-repeat;
1270- text-align: center;
1271- margin: 0 16px;
1272- padding: 40px 0 0 0;
1273- height: 32px;
1274-}
1275-#copyright p {
1276- color: #aea79f;
1277- font-size: 10px;
1278- line-height: 14px;
1279- margin: 2px 0;
1280-}
1281-
1282-#footer {
1283- padding-top: 16px;
1284-}
1285-#footer * {
1286- font-size: 10px;
1287- line-height: 14px;
1288-}
1289-#footer p {
1290- margin: 0;
1291- padding-bottom: 3px;
1292- border-bottom: 1px dotted #aea79f;
1293-}
1294-#footer p.footer-title {
1295- font-weight: bold;
1296-}
1297-#footer .footer-div {
1298- width: 144px;
1299- float: left;
1300- margin-left: 16px;
1301-}
1302-#footer .last-div {
1303- margin-right: 16px;
1304-}
1305-#footer ul {
1306- list-style: none;
1307- margin: 0;
1308- padding: 0;
1309-}
1310-#footer li {
1311- margin: 0;
1312- padding: 3px 0;
1313- border-bottom: 1px dotted #aea79f;
1314-}
1315-
1316-h1, h2, h3, h4, h5 {
1317- padding: 0;
1318- margin: 0;
1319- font-weight: normal;
1320-}
1321-h1 {
1322- font-size: 36px;
1323- line-height: 40px;
1324- color: #dd4814;
1325-}
1326-h2 {
1327- font-size: 24px;
1328- line-height: 28px;
1329- margin-bottom: 8px;
1330-}
1331-h3 {
1332- font-size: 16px;
1333- line-height: 20px;
1334- margin-bottom: 8px;
1335-}
1336-h3.link-other {
1337- color: #333;
1338-}
1339-h3.link-services {
1340- color: #fff;
1341-}
1342-h4 {
1343- font-size: 12px;
1344- line-height: 14px;
1345-}
1346-h4.partners {
1347- color: #333;
1348- font-size: 16px;
1349- line-height: 20px;
1350-}
1351-h5 {
1352- color: #333;
1353- font-size: 10px;
1354- line-height: 14px;
1355-}
1356-h1 span.grey, h2 span.grey, h1 span, h2 span{
1357- color: #aea79f;
1358-}
1359-p {
1360- font-size: 12px;
1361- line-height: 14px;
1362- margin-bottom: 8px;
1363-}
1364-strong {
1365- font-weight: bold;
1366-}
1367-
1368-a {
1369- color: #333;
1370- text-decoration: none;
1371-}
1372-a:hover {
1373- color: #dd4814;
1374- text-decoration: underline;
1375-}
1376-div.footer-div:hover a, div#content:hover a {
1377- color: #dd4814;
1378- text-decoration: none;
1379-}
1380-div.footer-div:hover a:hover, div#content:hover a:hover {
1381- color: #dd4814;
1382- text-decoration: underline;
1383-}
1384-
1385-ul {
1386- margin-bottom: 16px;
1387- list-style-image: url(report/images/bullet.png);
1388-}
1389-ul li {
1390- margin-bottom: 8px;
1391- line-height: 14px;
1392-}
1393-ul li:last-child {
1394- margin-bottom: 0px;
1395-}
1396-
1397-p.call-to-action {
1398- color: #333;
1399-}
1400-p.case-study {
1401- color: #333;
1402-}
1403-p.highlight {
1404- font-size: 16px;
1405- line-height: 20px;
1406-}
1407-p.introduction {
1408- color: #333;
1409- font-size: 16px;
1410- line-height: 20px;
1411-}
1412-p.services {
1413- color: #fff;
1414-}
1415-p.small-text {
1416- color: #333;
1417- font-size: 10px;
1418-}
1419-
1420-/* Clearing floats without extra markup
1421-Based on How To Clear Floats Without Structural Markup by PiE
1422-[http://www.positioniseverything.net/easyclearing.html] */
1423-.clearfix:after {
1424- content: ".";
1425- display: block;
1426- height: 0;
1427- clear: both;
1428- visibility: hidden;
1429-}
1430-.clearfix {
1431- -moz-border-radius: 5px 5px 5px 5px;
1432- -webkit-border-bottom-top-radius: 5px;
1433- -webkit-border-bottom-left-radius: 5px;
1434- -webkit-border-bottom-bottom-radius: 5px;
1435- -webkit-border-bottom-right-radius: 5px;
1436- -moz-box-shadow: #bbb 0px 0px 5px;
1437- -webkit-box-shadow: #bbb 0px 0px 5px;
1438- display: inline-block;
1439-} /* for IE/Mac */
1440-td
1441-{
1442- margin: 0;
1443- padding-bottom: 3px;
1444- border-bottom: 1px dotted #aea79f;
1445- font-size: 10px;
1446- line-height: 14px;
1447-}
1448-.resultimg
1449-{
1450- height: 12px;
1451-}
1452-.disclosureimg
1453-{
1454- height: .75em;
1455- vertical-align: middle;
1456-}
1457-.data
1458-{
1459- display: none;
1460-}
1461-</style>
1462- </head>
1463- <body>
1464- <img style="display: none;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oHHBQqFc4HgrEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAD2ElEQVR42u3XPW4TURTF8fNmIiIUJJALKpCCIA2sJCuLG7IDdkBFE9GlS3ZAkdiyZFdBSkGTjKPxo0CJSLDx18y8e+47p3Xnv+bq9wBN0zRN0zRN0zRN0zRN0zRN07QtFi4Oex/1N3jaTgVcTQ5OUAHAThmLowi8AbCrP4d7EagKxLM69PrA9QQAdmrgSwF8BvBefxH5OQ64rFF/A65/PnzPRR1+hBLDCLwFor5i3ry3IWI4jeXw0/c/5xkAiuJubxxQHwOY6E9ivs6YINTHz4qX479/KPZPR9VNXQ4DMABCpf+K8uutAjC4mZXDg5PLRw2LAMTnd3vjWYz9gHiuyISnGfG8Ruw//XoBoACAd6ej27J6cTaLs75ONd9prjHrI7w6e/r1PgQGgP3TUTWdlQOdar7TPI3lYF7cR4HvT7XAxQ+ruYHvv2KBix9WCwMLXD5gtTCwwOUDVv8NLHDxw2ppYIGLG1ZLAwtc3LBaKbDAxQurlQILXLywWjmwwMUJq7UCC1x8sForsMDFB6u1AwtcXLBaO7DAxQWrjQILXDyw2jiwTjUHrDYOrFPNAautAutU24fV1oH1NrYNq60D621sG1aNBBa4bJ/mrQMLXLZPcyOBBS67p7mxwAKXnTdvK4EFLjtv3tYCC1y2YNV4YIHLFqxaCSxw2YFVa4EFLhuwai2wwGUDVq0GFrjSw6rVwAJXeli1HljgSgurTgILXOlg1UlggSsdrDoLLHClgVVngQWuNLDqNLDA1T2sOg+cMbiSwKrzwPmCKw2skgTOD1zpYJUkcGbgSgqrZIHzAVdaWCUNnAG4ksMqaWD/4EoPq+SB/YLLBqySB3YKLjOwMhHYH7jswMpMYEfgMgUrM4H9gMsWrEwF5geXPViZCkwOLpOwMheYF1w2YWUyMCG4zMLKZGA+cNmFldnAPOCyDSuzgUnAZR5WpgPbB5d9WJkPbBhcFLAyH9guuDhgRRHYHrh4YEUR2Bi4qGBFE9gOuLhgRRXYwKmmgxVV4PSnmg9WdIHTnWpOWFEGTvA2poUVZeDu38a8sKIN3B24+E8zZeCOwOXiNNMGbh9cPk4zdeAWwUX95nUTuD1wcb95XQVuHlx+YOUicMPgcgUrN4GbA5cvWLkK3AC43MHKVeDtweUPVu4Cbw4un7ByF3hDcLmFlcvA64PLL6zcBl4DXK5h5Tbw6uDyDSvXgZeDyz+sXAdeAq4sYOU+8GJw5QGrLALPAVc2sMoi8L/gwq9cYJVN4PuvuEY8CsDXXGD15D/wv4vDD7uhvn4dy95VTl+vpmmapmmapmmapuW237hibhwAe0qaAAAAAElFTkSuQmCC"/>
1465- <img style="display: none;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oHHBQqBz2+8/kAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAC+ElEQVR42u3bsUpbYRjG8ec7X2gMtBYCcXKRxKG9Ajs5ivfQC+klZHJKx071Hlzd2huQDjZBiFOFQzd7kJOva0FpqaUm53n/366Df55fXgUlHo/X3Zce80WXx+pLw5FU3+yfqeHHuLmvetyX7ezmkt9Jw8OLo9Hk8njS50dpteDh61SqjynpRSppodSe3K7y4ln1crl/9pVFd3/BUpL6KpoU6bCU/H6QNFP5/oY1b9br/fu3KFuSxkVpN0v9ttTTi6PRnDV3fMH3B122itJBpTwbJM2yaj6fjQL/suYyhm0roh9eM2xbLhi2IwWGbVOiYTvWgmE7UmDYNiUatmMtGLYjBYZtU6JhO9aCf882a/ZY8ANss2bHBXOEBQrMEeZLNEdYoAXDdqTAsG1KNGzHWjBsRwoM26ZEw3asBcN2pMDh2e4pzgvJdqV4LxTbEQOHYrun2M+e7Uo8a7YJbM52j6jebLNgc7YJbM42RJuzzYLN2SawOdsQbc42CzZnm8DmbEO0Odss+InYXteaWfB/Z3u9a2bB5kcYgc2PMIg2P8JYsDnbBDZnG6LN2WbB5mwT2JxtiDZnmwWbs01gc7YJ3Dm2y7ioHGTpbWrrHT6DvRo3kq6TNG9VTpWH36SawE5hk9qT2zYvBnfPl3vnfz62CNyBuEnl86qsps0qzwd328tX51dN0k3h1yST1a6KprnZ/vQ3YQncOY6vfvCHjuAcE9icYwKbc0xgc44JbM4xgc05JrA5xwQ255jA5hwT2JxjAptzTOAnW+16OCZwkNUS2OiIIrD5EUXgQBwT2JxjAptzTGBzjglszjGBzTkmsDnHBDbnmMDmHBPYnOPAgWNwHDRwHI6DBY7HcZDAcTkOEDg2x8aB4dg0MBwbB4Zj08BwbBoYjo0Dw7FpYDg2DQzHxoHh2DQwHBsH3tx/3iIwqyUwR1SowBxRpoHh2DQwHBsHhmPTwHBsGhiOjQPDsWlgOHYN3EiaJ2kBx4aBk3TdSh+qVl8SHG/s+wl92yQuUei4wAAAAABJRU5ErkJggg=="/>
1466- <div id="container">
1467- <div id="container-inner">
1468- <div id="title">
1469- <h1>System Testing<span class="grey"> Report</span></h1>
1470- </div>
1471- <div id="content" class="clearfix">
1472- <p>
1473- This report was created using plainbox 1.0 on
1474- 2012-12-21T12:00:00</p>
1475- </div>
1476- <div id="content" class="clearfix">
1477- <h2>Hardware Information</h2>
1478- <span onClick="showHide('dmi');">
1479- <h3 id="dmi"><img class="disclosureimg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oHHBQqBz2+8/kAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAC+ElEQVR42u3bsUpbYRjG8ec7X2gMtBYCcXKRxKG9Ajs5ivfQC+klZHJKx071Hlzd2huQDjZBiFOFQzd7kJOva0FpqaUm53n/366Df55fXgUlHo/X3Zce80WXx+pLw5FU3+yfqeHHuLmvetyX7ezmkt9Jw8OLo9Hk8njS50dpteDh61SqjynpRSppodSe3K7y4ln1crl/9pVFd3/BUpL6KpoU6bCU/H6QNFP5/oY1b9br/fu3KFuSxkVpN0v9ttTTi6PRnDV3fMH3B122itJBpTwbJM2yaj6fjQL/suYyhm0roh9eM2xbLhi2IwWGbVOiYTvWgmE7UmDYNiUatmMtGLYjBYZtU6JhO9aCf882a/ZY8ANss2bHBXOEBQrMEeZLNEdYoAXDdqTAsG1KNGzHWjBsRwoM26ZEw3asBcN2pMDh2e4pzgvJdqV4LxTbEQOHYrun2M+e7Uo8a7YJbM52j6jebLNgc7YJbM42RJuzzYLN2SawOdsQbc42CzZnm8DmbEO0Odss+InYXteaWfB/Z3u9a2bB5kcYgc2PMIg2P8JYsDnbBDZnG6LN2WbB5mwT2JxtiDZnmwWbs01gc7YJ3Dm2y7ioHGTpbWrrHT6DvRo3kq6TNG9VTpWH36SawE5hk9qT2zYvBnfPl3vnfz62CNyBuEnl86qsps0qzwd328tX51dN0k3h1yST1a6KprnZ/vQ3YQncOY6vfvCHjuAcE9icYwKbc0xgc44JbM4xgc05JrA5xwQ255jA5hwT2JxjAptzTOAnW+16OCZwkNUS2OiIIrD5EUXgQBwT2JxjAptzTGBzjglszjGBzTkmsDnHBDbnmMDmHBPYnOPAgWNwHDRwHI6DBY7HcZDAcTkOEDg2x8aB4dg0MBwbB4Zj08BwbBoYjo0Dw7FpYDg2DQzHxoHh2DQwHBsH3tx/3iIwqyUwR1SowBxRpoHh2DQwHBsHhmPTwHBsGhiOjQPDsWlgOHYN3EiaJ2kBx4aBk3TdSh+qVl8SHG/s+wl92yQuUei4wAAAAABJRU5ErkJggg=="/>Desktop Management Interface information</h3>
1480- </span>
1481- <div class="data" id="dmi-contents" style="overflow: auto;">
1482- <pre/>
1483- </div>
1484- <span onClick="showHide('sysfs-attributes');">
1485- <h3 id="sysfs-attributes"><img class="disclosureimg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oHHBQqBz2+8/kAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAC+ElEQVR42u3bsUpbYRjG8ec7X2gMtBYCcXKRxKG9Ajs5ivfQC+klZHJKx071Hlzd2huQDjZBiFOFQzd7kJOva0FpqaUm53n/366Df55fXgUlHo/X3Zce80WXx+pLw5FU3+yfqeHHuLmvetyX7ezmkt9Jw8OLo9Hk8njS50dpteDh61SqjynpRSppodSe3K7y4ln1crl/9pVFd3/BUpL6KpoU6bCU/H6QNFP5/oY1b9br/fu3KFuSxkVpN0v9ttTTi6PRnDV3fMH3B122itJBpTwbJM2yaj6fjQL/suYyhm0roh9eM2xbLhi2IwWGbVOiYTvWgmE7UmDYNiUatmMtGLYjBYZtU6JhO9aCf882a/ZY8ANss2bHBXOEBQrMEeZLNEdYoAXDdqTAsG1KNGzHWjBsRwoM26ZEw3asBcN2pMDh2e4pzgvJdqV4LxTbEQOHYrun2M+e7Uo8a7YJbM52j6jebLNgc7YJbM42RJuzzYLN2SawOdsQbc42CzZnm8DmbEO0Odss+InYXteaWfB/Z3u9a2bB5kcYgc2PMIg2P8JYsDnbBDZnG6LN2WbB5mwT2JxtiDZnmwWbs01gc7YJ3Dm2y7ioHGTpbWrrHT6DvRo3kq6TNG9VTpWH36SawE5hk9qT2zYvBnfPl3vnfz62CNyBuEnl86qsps0qzwd328tX51dN0k3h1yST1a6KprnZ/vQ3YQncOY6vfvCHjuAcE9icYwKbc0xgc44JbM4xgc05JrA5xwQ255jA5hwT2JxjAptzTOAnW+16OCZwkNUS2OiIIrD5EUXgQBwT2JxjAptzTGBzjglszjGBzTkmsDnHBDbnmMDmHBPYnOPAgWNwHDRwHI6DBY7HcZDAcTkOEDg2x8aB4dg0MBwbB4Zj08BwbBoYjo0Dw7FpYDg2DQzHxoHh2DQwHBsH3tx/3iIwqyUwR1SowBxRpoHh2DQwHBsHhmPTwHBsGhiOjQPDsWlgOHYN3EiaJ2kBx4aBk3TdSh+qVl8SHG/s+wl92yQuUei4wAAAAABJRU5ErkJggg=="/>sysfs-attributes</h3>
1486- </span>
1487- <div class="data" id="sysfs-attributes-contents">
1488- <pre/>
1489- </div>
1490- <span onClick="showHide('processors');">
1491- <h3 id="processors"><img class="disclosureimg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oHHBQqBz2+8/kAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAC+ElEQVR42u3bsUpbYRjG8ec7X2gMtBYCcXKRxKG9Ajs5ivfQC+klZHJKx071Hlzd2huQDjZBiFOFQzd7kJOva0FpqaUm53n/366Df55fXgUlHo/X3Zce80WXx+pLw5FU3+yfqeHHuLmvetyX7ezmkt9Jw8OLo9Hk8njS50dpteDh61SqjynpRSppodSe3K7y4ln1crl/9pVFd3/BUpL6KpoU6bCU/H6QNFP5/oY1b9br/fu3KFuSxkVpN0v9ttTTi6PRnDV3fMH3B122itJBpTwbJM2yaj6fjQL/suYyhm0roh9eM2xbLhi2IwWGbVOiYTvWgmE7UmDYNiUatmMtGLYjBYZtU6JhO9aCf882a/ZY8ANss2bHBXOEBQrMEeZLNEdYoAXDdqTAsG1KNGzHWjBsRwoM26ZEw3asBcN2pMDh2e4pzgvJdqV4LxTbEQOHYrun2M+e7Uo8a7YJbM52j6jebLNgc7YJbM42RJuzzYLN2SawOdsQbc42CzZnm8DmbEO0Odss+InYXteaWfB/Z3u9a2bB5kcYgc2PMIg2P8JYsDnbBDZnG6LN2WbB5mwT2JxtiDZnmwWbs01gc7YJ3Dm2y7ioHGTpbWrrHT6DvRo3kq6TNG9VTpWH36SawE5hk9qT2zYvBnfPl3vnfz62CNyBuEnl86qsps0qzwd328tX51dN0k3h1yST1a6KprnZ/vQ3YQncOY6vfvCHjuAcE9icYwKbc0xgc44JbM4xgc05JrA5xwQ255jA5hwT2JxjAptzTOAnW+16OCZwkNUS2OiIIrD5EUXgQBwT2JxjAptzTGBzjglszjGBzTkmsDnHBDbnmMDmHBPYnOPAgWNwHDRwHI6DBY7HcZDAcTkOEDg2x8aB4dg0MBwbB4Zj08BwbBoYjo0Dw7FpYDg2DQzHxoHh2DQwHBsH3tx/3iIwqyUwR1SowBxRpoHh2DQwHBsHhmPTwHBsGhiOjQPDsWlgOHYN3EiaJ2kBx4aBk3TdSh+qVl8SHG/s+wl92yQuUei4wAAAAABJRU5ErkJggg=="/>Processors</h3>
1492- </span>
1493- <div class="data" id="processors-contents">
1494- <h3>
1495- <u>Processor 0</u>
1496- </h3>
1497- <table>
1498- <tr>
1499- <th>Property</th>
1500- <th>Value</th>
1501- </tr>
1502- <tr>
1503- <td class="label">bogomips</td>
1504- <td class="property">5066</td>
1505- </tr>
1506- <tr>
1507- <td class="label">cache</td>
1508- <td class="property">3145728</td>
1509- </tr>
1510- <tr>
1511- <td class="label">count</td>
1512- <td class="property">2</td>
1513- </tr>
1514- <tr>
1515- <td class="label">model</td>
1516- <td class="property">Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz</td>
1517- </tr>
1518- <tr>
1519- <td class="label">model_number</td>
1520- <td class="property">6</td>
1521- </tr>
1522- <tr>
1523- <td class="label">model_revision</td>
1524- <td class="property">10</td>
1525- </tr>
1526- <tr>
1527- <td class="label">model_version</td>
1528- <td class="property">23</td>
1529- </tr>
1530- <tr>
1531- <td class="label">other</td>
1532- <td class="property">fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dtherm tpr_shadow vnmi flexpriority</td>
1533- </tr>
1534- <tr>
1535- <td class="label">platform</td>
1536- <td class="property">x86_64</td>
1537- </tr>
1538- <tr>
1539- <td class="label">speed</td>
1540- <td class="property">2534</td>
1541- </tr>
1542- <tr>
1543- <td class="label">type</td>
1544- <td class="property">GenuineIntel</td>
1545- </tr>
1546- </table>
1547- <br/>
1548- <h3>
1549- <u>Processor 1</u>
1550- </h3>
1551- <table>
1552- <tr>
1553- <th>Property</th>
1554- <th>Value</th>
1555- </tr>
1556- <tr>
1557- <td class="label">bogomips</td>
1558- <td class="property">5066</td>
1559- </tr>
1560- <tr>
1561- <td class="label">cache</td>
1562- <td class="property">3145728</td>
1563- </tr>
1564- <tr>
1565- <td class="label">count</td>
1566- <td class="property">2</td>
1567- </tr>
1568- <tr>
1569- <td class="label">model</td>
1570- <td class="property">Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz</td>
1571- </tr>
1572- <tr>
1573- <td class="label">model_number</td>
1574- <td class="property">6</td>
1575- </tr>
1576- <tr>
1577- <td class="label">model_revision</td>
1578- <td class="property">10</td>
1579- </tr>
1580- <tr>
1581- <td class="label">model_version</td>
1582- <td class="property">23</td>
1583- </tr>
1584- <tr>
1585- <td class="label">other</td>
1586- <td class="property">fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dtherm tpr_shadow vnmi flexpriority</td>
1587- </tr>
1588- <tr>
1589- <td class="label">platform</td>
1590- <td class="property">x86_64</td>
1591- </tr>
1592- <tr>
1593- <td class="label">speed</td>
1594- <td class="property">2534</td>
1595- </tr>
1596- <tr>
1597- <td class="label">type</td>
1598- <td class="property">GenuineIntel</td>
1599- </tr>
1600- </table>
1601- <br/>
1602- </div>
1603- </div>
1604- <div id="content" class="clearfix">
1605- <h2>Software Information</h2>
1606- <span onClick="showHide('packages');">
1607- <h3 id="packages"><img class="disclosureimg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oHHBQqBz2+8/kAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAC+ElEQVR42u3bsUpbYRjG8ec7X2gMtBYCcXKRxKG9Ajs5ivfQC+klZHJKx071Hlzd2huQDjZBiFOFQzd7kJOva0FpqaUm53n/366Df55fXgUlHo/X3Zce80WXx+pLw5FU3+yfqeHHuLmvetyX7ezmkt9Jw8OLo9Hk8njS50dpteDh61SqjynpRSppodSe3K7y4ln1crl/9pVFd3/BUpL6KpoU6bCU/H6QNFP5/oY1b9br/fu3KFuSxkVpN0v9ttTTi6PRnDV3fMH3B122itJBpTwbJM2yaj6fjQL/suYyhm0roh9eM2xbLhi2IwWGbVOiYTvWgmE7UmDYNiUatmMtGLYjBYZtU6JhO9aCf882a/ZY8ANss2bHBXOEBQrMEeZLNEdYoAXDdqTAsG1KNGzHWjBsRwoM26ZEw3asBcN2pMDh2e4pzgvJdqV4LxTbEQOHYrun2M+e7Uo8a7YJbM52j6jebLNgc7YJbM42RJuzzYLN2SawOdsQbc42CzZnm8DmbEO0Odss+InYXteaWfB/Z3u9a2bB5kcYgc2PMIg2P8JYsDnbBDZnG6LN2WbB5mwT2JxtiDZnmwWbs01gc7YJ3Dm2y7ioHGTpbWrrHT6DvRo3kq6TNG9VTpWH36SawE5hk9qT2zYvBnfPl3vnfz62CNyBuEnl86qsps0qzwd328tX51dN0k3h1yST1a6KprnZ/vQ3YQncOY6vfvCHjuAcE9icYwKbc0xgc44JbM4xgc05JrA5xwQ255jA5hwT2JxjAptzTOAnW+16OCZwkNUS2OiIIrD5EUXgQBwT2JxjAptzTGBzjglszjGBzTkmsDnHBDbnmMDmHBPYnOPAgWNwHDRwHI6DBY7HcZDAcTkOEDg2x8aB4dg0MBwbB4Zj08BwbBoYjo0Dw7FpYDg2DQzHxoHh2DQwHBsH3tx/3iIwqyUwR1SowBxRpoHh2DQwHBsHhmPTwHBsGhiOjQPDsWlgOHYN3EiaJ2kBx4aBk3TdSh+qVl8SHG/s+wl92yQuUei4wAAAAABJRU5ErkJggg=="/>Packages Installed</h3>
1608- </span>
1609- <div class="data" id="packages-contents">
1610- <table>
1611- <tr>
1612- <th>Name</th>
1613- <th>Description</th>
1614- </tr>
1615- <tr>
1616- <td class="label">accountsservice</td>
1617- <td>Installed</td>
1618- </tr>
1619- <tr>
1620- <td class="label">acl</td>
1621- <td>Installed</td>
1622- </tr>
1623- <tr>
1624- <td class="label">acpi</td>
1625- <td>Installed</td>
1626- </tr>
1627- <tr>
1628- <td class="label">acpi-support</td>
1629- <td>Installed</td>
1630- </tr>
1631- <tr>
1632- <td class="label">acpid</td>
1633- <td>Installed</td>
1634- </tr>
1635- <tr>
1636- <td class="label">acpidump</td>
1637- <td>Installed</td>
1638- </tr>
1639- <tr>
1640- <td class="label">acpitool</td>
1641- <td>Installed</td>
1642- </tr>
1643- <tr>
1644- <td class="label">activity-log-manager-common</td>
1645- <td>Installed</td>
1646- </tr>
1647- <tr>
1648- <td class="label">activity-log-manager-control-center</td>
1649- <td>Installed</td>
1650- </tr>
1651- <tr>
1652- <td class="label">adduser</td>
1653- <td>Installed</td>
1654- </tr>
1655- <tr>
1656- <td class="label">adium-theme-ubuntu</td>
1657- <td>Installed</td>
1658- </tr>
1659- <tr>
1660- <td class="label">aisleriot</td>
1661- <td>Installed</td>
1662- </tr>
1663- <tr>
1664- <td class="label">alacarte</td>
1665- <td>Installed</td>
1666- </tr>
1667- <tr>
1668- <td class="label">alsa-base</td>
1669- <td>Installed</td>
1670- </tr>
1671- <tr>
1672- <td class="label">alsa-utils</td>
1673- <td>Installed</td>
1674- </tr>
1675- <tr>
1676- <td class="label">anacron</td>
1677- <td>Installed</td>
1678- </tr>
1679- <tr>
1680- <td class="label">apg</td>
1681- <td>Installed</td>
1682- </tr>
1683- <tr>
1684- <td class="label">app-install-data</td>
1685- <td>Installed</td>
1686- </tr>
1687- <tr>
1688- <td class="label">app-install-data-partner</td>
1689- <td>Installed</td>
1690- </tr>
1691- <tr>
1692- <td class="label">apparmor</td>
1693- <td>Installed</td>
1694- </tr>
1695- <tr>
1696- <td class="label">appmenu-gtk</td>
1697- <td>Installed</td>
1698- </tr>
1699- <tr>
1700- <td class="label">appmenu-gtk3</td>
1701- <td>Installed</td>
1702- </tr>
1703- <tr>
1704- <td class="label">appmenu-qt</td>
1705- <td>Installed</td>
1706- </tr>
1707- <tr>
1708- <td class="label">apport</td>
1709- <td>Installed</td>
1710- </tr>
1711- <tr>
1712- <td class="label">apport-gtk</td>
1713- <td>Installed</td>
1714- </tr>
1715- <tr>
1716- <td class="label">apport-symptoms</td>
1717- <td>Installed</td>
1718- </tr>
1719- <tr>
1720- <td class="label">apt</td>
1721- <td>Installed</td>
1722- </tr>
1723- <tr>
1724- <td class="label">apt-file</td>
1725- <td>Installed</td>
1726- </tr>
1727- <tr>
1728- <td class="label">apt-transport-https</td>
1729- <td>Installed</td>
1730- </tr>
1731- <tr>
1732- <td class="label">apt-utils</td>
1733- <td>Installed</td>
1734- </tr>
1735- <tr>
1736- <td class="label">apt-xapian-index</td>
1737- <td>Installed</td>
1738- </tr>
1739- <tr>
1740- <td class="label">aptdaemon</td>
1741- <td>Installed</td>
1742- </tr>
1743- <tr>
1744- <td class="label">aptdaemon-data</td>
1745- <td>Installed</td>
1746- </tr>
1747- <tr>
1748- <td class="label">apturl</td>
1749- <td>Installed</td>
1750- </tr>
1751- <tr>
1752- <td class="label">apturl-common</td>
1753- <td>Installed</td>
1754- </tr>
1755- <tr>
1756- <td class="label">arandr</td>
1757- <td>Installed</td>
1758- </tr>
1759- <tr>
1760- <td class="label">aspell</td>
1761- <td>Installed</td>
1762- </tr>
1763- <tr>
1764- <td class="label">aspell-en</td>
1765- <td>Installed</td>
1766- </tr>
1767- <tr>
1768- <td class="label">at</td>
1769- <td>Installed</td>
1770- </tr>
1771- <tr>
1772- <td class="label">at-spi2-core</td>
1773- <td>Installed</td>
1774- </tr>
1775- <tr>
1776- <td class="label">audacity</td>
1777- <td>Installed</td>
1778- </tr>
1779- <tr>
1780- <td class="label">audacity-data</td>
1781- <td>Installed</td>
1782- </tr>
1783- <tr>
1784- <td class="label">autoconf</td>
1785- <td>Installed</td>
1786- </tr>
1787- <tr>
1788- <td class="label">automake</td>
1789- <td>Installed</td>
1790- </tr>
1791- <tr>
1792- <td class="label">autotools-dev</td>
1793- <td>Installed</td>
1794- </tr>
1795- <tr>
1796- <td class="label">avahi-autoipd</td>
1797- <td>Installed</td>
1798- </tr>
1799- <tr>
1800- <td class="label">avahi-daemon</td>
1801- <td>Installed</td>
1802- </tr>
1803- <tr>
1804- <td class="label">avahi-utils</td>
1805- <td>Installed</td>
1806- </tr>
1807- <tr>
1808- <td class="label">bamfdaemon</td>
1809- <td>Installed</td>
1810- </tr>
1811- <tr>
1812- <td class="label">baobab</td>
1813- <td>Installed</td>
1814- </tr>
1815- <tr>
1816- <td class="label">base-files</td>
1817- <td>Installed</td>
1818- </tr>
1819- <tr>
1820- <td class="label">base-passwd</td>
1821- <td>Installed</td>
1822- </tr>
1823- <tr>
1824- <td class="label">bash</td>
1825- <td>Installed</td>
1826- </tr>
1827- <tr>
1828- <td class="label">bash-completion</td>
1829- <td>Installed</td>
1830- </tr>
1831- <tr>
1832- <td class="label">bc</td>
1833- <td>Installed</td>
1834- </tr>
1835- <tr>
1836- <td class="label">bind9-host</td>
1837- <td>Installed</td>
1838- </tr>
1839- <tr>
1840- <td class="label">binutils</td>
1841- <td>Installed</td>
1842- </tr>
1843- <tr>
1844- <td class="label">blueman</td>
1845- <td>Installed</td>
1846- </tr>
1847- <tr>
1848- <td class="label">bluez</td>
1849- <td>Installed</td>
1850- </tr>
1851- <tr>
1852- <td class="label">bluez-alsa</td>
1853- <td>Installed</td>
1854- </tr>
1855- <tr>
1856- <td class="label">bluez-alsa:i386</td>
1857- <td>Installed</td>
1858- </tr>
1859- <tr>
1860- <td class="label">bluez-cups</td>
1861- <td>Installed</td>
1862- </tr>
1863- <tr>
1864- <td class="label">bluez-gstreamer</td>
1865- <td>Installed</td>
1866- </tr>
1867- <tr>
1868- <td class="label">bonnie++</td>
1869- <td>Installed</td>
1870- </tr>
1871- <tr>
1872- <td class="label">bootchart</td>
1873- <td>Installed</td>
1874- </tr>
1875- <tr>
1876- <td class="label">branding-ubuntu</td>
1877- <td>Installed</td>
1878- </tr>
1879- <tr>
1880- <td class="label">brasero</td>
1881- <td>Installed</td>
1882- </tr>
1883- <tr>
1884- <td class="label">brasero-cdrkit</td>
1885- <td>Installed</td>
1886- </tr>
1887- <tr>
1888- <td class="label">brasero-common</td>
1889- <td>Installed</td>
1890- </tr>
1891- <tr>
1892- <td class="label">bridge-utils</td>
1893- <td>Installed</td>
1894- </tr>
1895- <tr>
1896- <td class="label">brltty</td>
1897- <td>Installed</td>
1898- </tr>
1899- <tr>
1900- <td class="label">bsdmainutils</td>
1901- <td>Installed</td>
1902- </tr>
1903- <tr>
1904- <td class="label">bsdutils</td>
1905- <td>Installed</td>
1906- </tr>
1907- <tr>
1908- <td class="label">build-essential</td>
1909- <td>Installed</td>
1910- </tr>
1911- <tr>
1912- <td class="label">busybox-initramfs</td>
1913- <td>Installed</td>
1914- </tr>
1915- <tr>
1916- <td class="label">busybox-static</td>
1917- <td>Installed</td>
1918- </tr>
1919- <tr>
1920- <td class="label">byobu</td>
1921- <td>Installed</td>
1922- </tr>
1923- <tr>
1924- <td class="label">bzip2</td>
1925- <td>Installed</td>
1926- </tr>
1927- <tr>
1928- <td class="label">bzr</td>
1929- <td>Installed</td>
1930- </tr>
1931- <tr>
1932- <td class="label">bzr-builddeb</td>
1933- <td>Installed</td>
1934- </tr>
1935- <tr>
1936- <td class="label">bzr-builder</td>
1937- <td>Installed</td>
1938- </tr>
1939- <tr>
1940- <td class="label">bzr-explorer</td>
1941- <td>Installed</td>
1942- </tr>
1943- <tr>
1944- <td class="label">bzr-fastimport</td>
1945- <td>Installed</td>
1946- </tr>
1947- <tr>
1948- <td class="label">ca-certificates</td>
1949- <td>Installed</td>
1950- </tr>
1951- <tr>
1952- <td class="label">ca-certificates-java</td>
1953- <td>Installed</td>
1954- </tr>
1955- <tr>
1956- <td class="label">cdbs</td>
1957- <td>Installed</td>
1958- </tr>
1959- <tr>
1960- <td class="label">cgroup-lite</td>
1961- <td>Installed</td>
1962- </tr>
1963- <tr>
1964- <td class="label">charm-tools</td>
1965- <td>Installed</td>
1966- </tr>
1967- <tr>
1968- <td class="label">checkbox</td>
1969- <td>Installed</td>
1970- </tr>
1971- <tr>
1972- <td class="label">checkbox-certification</td>
1973- <td>Installed</td>
1974- </tr>
1975- <tr>
1976- <td class="label">checkbox-certification-client</td>
1977- <td>Installed</td>
1978- </tr>
1979- <tr>
1980- <td class="label">checkbox-certification-tools</td>
1981- <td>Installed</td>
1982- </tr>
1983- <tr>
1984- <td class="label">checkbox-cli</td>
1985- <td>Installed</td>
1986- </tr>
1987- <tr>
1988- <td class="label">checkbox-editor</td>
1989- <td>Installed</td>
1990- </tr>
1991- <tr>
1992- <td class="label">checkbox-editor-oem-template</td>
1993- <td>Installed</td>
1994- </tr>
1995- <tr>
1996- <td class="label">checkbox-gtk</td>
1997- <td>Installed</td>
1998- </tr>
1999- <tr>
2000- <td class="label">checkbox-ihv</td>
2001- <td>Installed</td>
2002- </tr>
2003- <tr>
2004- <td class="label">checkbox-ihv-cli</td>
2005- <td>Installed</td>
2006- </tr>
2007- <tr>
2008- <td class="label">checkbox-ihv-qt</td>
2009- <td>Installed</td>
2010- </tr>
2011- <tr>
2012- <td class="label">checkbox-oem</td>
2013- <td>Installed</td>
2014- </tr>
2015- <tr>
2016- <td class="label">checkbox-oem-bug</td>
2017- <td>Installed</td>
2018- </tr>
2019- <tr>
2020- <td class="label">checkbox-oem-gtk</td>
2021- <td>Installed</td>
2022- </tr>
2023- <tr>
2024- <td class="label">checkbox-oem-qt</td>
2025- <td>Installed</td>
2026- </tr>
2027- <tr>
2028- <td class="label">checkbox-oem-stella</td>
2029- <td>Installed</td>
2030- </tr>
2031- <tr>
2032- <td class="label">checkbox-oem-stella-gtk</td>
2033- <td>Installed</td>
2034- </tr>
2035- <tr>
2036- <td class="label">checkbox-qt</td>
2037- <td>Installed</td>
2038- </tr>
2039- <tr>
2040- <td class="label">cheese</td>
2041- <td>Installed</td>
2042- </tr>
2043- <tr>
2044- <td class="label">cheese-common</td>
2045- <td>Installed</td>
2046- </tr>
2047- <tr>
2048- <td class="label">cloud-utils</td>
2049- <td>Installed</td>
2050- </tr>
2051- <tr>
2052- <td class="label">cmap-adobe-japan2</td>
2053- <td>Installed</td>
2054- </tr>
2055- <tr>
2056- <td class="label">colord</td>
2057- <td>Installed</td>
2058- </tr>
2059- <tr>
2060- <td class="label">command-not-found</td>
2061- <td>Installed</td>
2062- </tr>
2063- <tr>
2064- <td class="label">command-not-found-data</td>
2065- <td>Installed</td>
2066- </tr>
2067- <tr>
2068- <td class="label">compiz</td>
2069- <td>Installed</td>
2070- </tr>
2071- <tr>
2072- <td class="label">compiz-core</td>
2073- <td>Installed</td>
2074- </tr>
2075- <tr>
2076- <td class="label">compiz-gnome</td>
2077- <td>Installed</td>
2078- </tr>
2079- <tr>
2080- <td class="label">compiz-plugins</td>
2081- <td>Installed</td>
2082- </tr>
2083- <tr>
2084- <td class="label">compiz-plugins-default</td>
2085- <td>Installed</td>
2086- </tr>
2087- <tr>
2088- <td class="label">compiz-plugins-main</td>
2089- <td>Installed</td>
2090- </tr>
2091- <tr>
2092- <td class="label">compiz-plugins-main-default</td>
2093- <td>Installed</td>
2094- </tr>
2095- <tr>
2096- <td class="label">compizconfig-backend-gconf</td>
2097- <td>Installed</td>
2098- </tr>
2099- <tr>
2100- <td class="label">compizconfig-settings-manager</td>
2101- <td>Installed</td>
2102- </tr>
2103- <tr>
2104- <td class="label">console-setup</td>
2105- <td>Installed</td>
2106- </tr>
2107- <tr>
2108- <td class="label">consolekit</td>
2109- <td>Installed</td>
2110- </tr>
2111- <tr>
2112- <td class="label">coreutils</td>
2113- <td>Installed</td>
2114- </tr>
2115- <tr>
2116- <td class="label">cpio</td>
2117- <td>Installed</td>
2118- </tr>
2119- <tr>
2120- <td class="label">cpp</td>
2121- <td>Installed</td>
2122- </tr>
2123- <tr>
2124- <td class="label">cpp-4.6</td>
2125- <td>Installed</td>
2126- </tr>
2127- <tr>
2128- <td class="label">cpu-checker</td>
2129- <td>Installed</td>
2130- </tr>
2131- <tr>
2132- <td class="label">crda</td>
2133- <td>Installed</td>
2134- </tr>
2135- <tr>
2136- <td class="label">cron</td>
2137- <td>Installed</td>
2138- </tr>
2139- <tr>
2140- <td class="label">cryptsetup-bin</td>
2141- <td>Installed</td>
2142- </tr>
2143- <tr>
2144- <td class="label">cups</td>
2145- <td>Installed</td>
2146- </tr>
2147- <tr>
2148- <td class="label">cups-bsd</td>
2149- <td>Installed</td>
2150- </tr>
2151- <tr>
2152- <td class="label">cups-client</td>
2153- <td>Installed</td>
2154- </tr>
2155- <tr>
2156- <td class="label">cups-common</td>
2157- <td>Installed</td>
2158- </tr>
2159- <tr>
2160- <td class="label">cups-filters</td>
2161- <td>Installed</td>
2162- </tr>
2163- <tr>
2164- <td class="label">cups-pk-helper</td>
2165- <td>Installed</td>
2166- </tr>
2167- <tr>
2168- <td class="label">cups-ppdc</td>
2169- <td>Installed</td>
2170- </tr>
2171- <tr>
2172- <td class="label">curl</td>
2173- <td>Installed</td>
2174- </tr>
2175- <tr>
2176- <td class="label">cvs</td>
2177- <td>Installed</td>
2178- </tr>
2179- <tr>
2180- <td class="label">cython</td>
2181- <td>Installed</td>
2182- </tr>
2183- <tr>
2184- <td class="label">dash</td>
2185- <td>Installed</td>
2186- </tr>
2187- <tr>
2188- <td class="label">dbus</td>
2189- <td>Installed</td>
2190- </tr>
2191- <tr>
2192- <td class="label">dbus-x11</td>
2193- <td>Installed</td>
2194- </tr>
2195- <tr>
2196- <td class="label">dc</td>
2197- <td>Installed</td>
2198- </tr>
2199- <tr>
2200- <td class="label">dconf-gsettings-backend</td>
2201- <td>Installed</td>
2202- </tr>
2203- <tr>
2204- <td class="label">dconf-service</td>
2205- <td>Installed</td>
2206- </tr>
2207- <tr>
2208- <td class="label">dconf-tools</td>
2209- <td>Installed</td>
2210- </tr>
2211- <tr>
2212- <td class="label">dctrl-tools</td>
2213- <td>Installed</td>
2214- </tr>
2215- <tr>
2216- <td class="label">debconf</td>
2217- <td>Installed</td>
2218- </tr>
2219- <tr>
2220- <td class="label">debconf-i18n</td>
2221- <td>Installed</td>
2222- </tr>
2223- <tr>
2224- <td class="label">debhelper</td>
2225- <td>Installed</td>
2226- </tr>
2227- <tr>
2228- <td class="label">debian-archive-keyring</td>
2229- <td>Installed</td>
2230- </tr>
2231- <tr>
2232- <td class="label">debian-keyring</td>
2233- <td>Installed</td>
2234- </tr>
2235- <tr>
2236- <td class="label">debianutils</td>
2237- <td>Installed</td>
2238- </tr>
2239- <tr>
2240- <td class="label">debootstrap</td>
2241- <td>Installed</td>
2242- </tr>
2243- <tr>
2244- <td class="label">deja-dup</td>
2245- <td>Installed</td>
2246- </tr>
2247- <tr>
2248- <td class="label">desktop-file-utils</td>
2249- <td>Installed</td>
2250- </tr>
2251- <tr>
2252- <td class="label">devhelp</td>
2253- <td>Installed</td>
2254- </tr>
2255- <tr>
2256- <td class="label">devhelp-common</td>
2257- <td>Installed</td>
2258- </tr>
2259- <tr>
2260- <td class="label">devscripts</td>
2261- <td>Installed</td>
2262- </tr>
2263- <tr>
2264- <td class="label">dh-apparmor</td>
2265- <td>Installed</td>
2266- </tr>
2267- <tr>
2268- <td class="label">dh-make</td>
2269- <td>Installed</td>
2270- </tr>
2271- <tr>
2272- <td class="label">dh-translations</td>
2273- <td>Installed</td>
2274- </tr>
2275- <tr>
2276- <td class="label">dia-common</td>
2277- <td>Installed</td>
2278- </tr>
2279- <tr>
2280- <td class="label">dia-gnome</td>
2281- <td>Installed</td>
2282- </tr>
2283- <tr>
2284- <td class="label">dia-libs</td>
2285- <td>Installed</td>
2286- </tr>
2287- <tr>
2288- <td class="label">dictionaries-common</td>
2289- <td>Installed</td>
2290- </tr>
2291- <tr>
2292- <td class="label">diffstat</td>
2293- <td>Installed</td>
2294- </tr>
2295- <tr>
2296- <td class="label">diffutils</td>
2297- <td>Installed</td>
2298- </tr>
2299- <tr>
2300- <td class="label">distro-info</td>
2301- <td>Installed</td>
2302- </tr>
2303- <tr>
2304- <td class="label">distro-info-data</td>
2305- <td>Installed</td>
2306- </tr>
2307- <tr>
2308- <td class="label">dkms</td>
2309- <td>Installed</td>
2310- </tr>
2311- <tr>
2312- <td class="label">dmidecode</td>
2313- <td>Installed</td>
2314- </tr>
2315- <tr>
2316- <td class="label">dmsetup</td>
2317- <td>Installed</td>
2318- </tr>
2319- <tr>
2320- <td class="label">dmz-cursor-theme</td>
2321- <td>Installed</td>
2322- </tr>
2323- <tr>
2324- <td class="label">dnsmasq-base</td>
2325- <td>Installed</td>
2326- </tr>
2327- <tr>
2328- <td class="label">dnsutils</td>
2329- <td>Installed</td>
2330- </tr>
2331- <tr>
2332- <td class="label">doc-base</td>
2333- <td>Installed</td>
2334- </tr>
2335- <tr>
2336- <td class="label">docbook-xml</td>
2337- <td>Installed</td>
2338- </tr>
2339- <tr>
2340- <td class="label">docbook-xsl</td>
2341- <td>Installed</td>
2342- </tr>
2343- <tr>
2344- <td class="label">doit</td>
2345- <td>Installed</td>
2346- </tr>
2347- <tr>
2348- <td class="label">dosfstools</td>
2349- <td>Installed</td>
2350- </tr>
2351- <tr>
2352- <td class="label">dpkg</td>
2353- <td>Installed</td>
2354- </tr>
2355- <tr>
2356- <td class="label">dpkg-dev</td>
2357- <td>Installed</td>
2358- </tr>
2359- <tr>
2360- <td class="label">dput</td>
2361- <td>Installed</td>
2362- </tr>
2363- <tr>
2364- <td class="label">drobo-utils</td>
2365- <td>Installed</td>
2366- </tr>
2367- <tr>
2368- <td class="label">duplicity</td>
2369- <td>Installed</td>
2370- </tr>
2371- <tr>
2372- <td class="label">dvd+rw-tools</td>
2373- <td>Installed</td>
2374- </tr>
2375- <tr>
2376- <td class="label">e2fslibs</td>
2377- <td>Installed</td>
2378- </tr>
2379- <tr>
2380- <td class="label">e2fsprogs</td>
2381- <td>Installed</td>
2382- </tr>
2383- <tr>
2384- <td class="label">ebtables</td>
2385- <td>Installed</td>
2386- </tr>
2387- <tr>
2388- <td class="label">ed</td>
2389- <td>Installed</td>
2390- </tr>
2391- <tr>
2392- <td class="label">eject</td>
2393- <td>Installed</td>
2394- </tr>
2395- <tr>
2396- <td class="label">empathy</td>
2397- <td>Installed</td>
2398- </tr>
2399- <tr>
2400- <td class="label">empathy-common</td>
2401- <td>Installed</td>
2402- </tr>
2403- <tr>
2404- <td class="label">enchant</td>
2405- <td>Installed</td>
2406- </tr>
2407- <tr>
2408- <td class="label">enigmail</td>
2409- <td>Installed</td>
2410- </tr>
2411- <tr>
2412- <td class="label">eog</td>
2413- <td>Installed</td>
2414- </tr>
2415- <tr>
2416- <td class="label">esound-common</td>
2417- <td>Installed</td>
2418- </tr>
2419- <tr>
2420- <td class="label">espeak</td>
2421- <td>Installed</td>
2422- </tr>
2423- <tr>
2424- <td class="label">espeak-data</td>
2425- <td>Installed</td>
2426- </tr>
2427- <tr>
2428- <td class="label">ethtool</td>
2429- <td>Installed</td>
2430- </tr>
2431- <tr>
2432- <td class="label">euca2ools</td>
2433- <td>Installed</td>
2434- </tr>
2435- <tr>
2436- <td class="label">evince</td>
2437- <td>Installed</td>
2438- </tr>
2439- <tr>
2440- <td class="label">evince-common</td>
2441- <td>Installed</td>
2442- </tr>
2443- <tr>
2444- <td class="label">evoluspencil</td>
2445- <td>Installed</td>
2446- </tr>
2447- <tr>
2448- <td class="label">evolution-data-server</td>
2449- <td>Installed</td>
2450- </tr>
2451- <tr>
2452- <td class="label">evolution-data-server-common</td>
2453- <td>Installed</td>
2454- </tr>
2455- <tr>
2456- <td class="label">example-content</td>
2457- <td>Installed</td>
2458- </tr>
2459- <tr>
2460- <td class="label">fabric</td>
2461- <td>Installed</td>
2462- </tr>
2463- <tr>
2464- <td class="label">fakeroot</td>
2465- <td>Installed</td>
2466- </tr>
2467- <tr>
2468- <td class="label">ffmpeg</td>
2469- <td>Installed</td>
2470- </tr>
2471- <tr>
2472- <td class="label">file</td>
2473- <td>Installed</td>
2474- </tr>
2475- <tr>
2476- <td class="label">file-roller</td>
2477- <td>Installed</td>
2478- </tr>
2479- <tr>
2480- <td class="label">findutils</td>
2481- <td>Installed</td>
2482- </tr>
2483- <tr>
2484- <td class="label">firefox</td>
2485- <td>Installed</td>
2486- </tr>
2487- <tr>
2488- <td class="label">firefox-globalmenu</td>
2489- <td>Installed</td>
2490- </tr>
2491- <tr>
2492- <td class="label">firefox-gnome-support</td>
2493- <td>Installed</td>
2494- </tr>
2495- <tr>
2496- <td class="label">firefox-launchpad-plugin</td>
2497- <td>Installed</td>
2498- </tr>
2499- <tr>
2500- <td class="label">firefox-locale-en</td>
2501- <td>Installed</td>
2502- </tr>
2503- <tr>
2504- <td class="label">flashplugin-installer</td>
2505- <td>Installed</td>
2506- </tr>
2507- <tr>
2508- <td class="label">flex</td>
2509- <td>Installed</td>
2510- </tr>
2511- <tr>
2512- <td class="label">folks-common</td>
2513- <td>Installed</td>
2514- </tr>
2515- <tr>
2516- <td class="label">fontconfig</td>
2517- <td>Installed</td>
2518- </tr>
2519- <tr>
2520- <td class="label">fontconfig-config</td>
2521- <td>Installed</td>
2522- </tr>
2523- <tr>
2524- <td class="label">fonts-kacst</td>
2525- <td>Installed</td>
2526- </tr>
2527- <tr>
2528- <td class="label">fonts-kacst-one</td>
2529- <td>Installed</td>
2530- </tr>
2531- <tr>
2532- <td class="label">fonts-khmeros-core</td>
2533- <td>Installed</td>
2534- </tr>
2535- <tr>
2536- <td class="label">fonts-lao</td>
2537- <td>Installed</td>
2538- </tr>
2539- <tr>
2540- <td class="label">fonts-liberation</td>
2541- <td>Installed</td>
2542- </tr>
2543- <tr>
2544- <td class="label">fonts-nanum</td>
2545- <td>Installed</td>
2546- </tr>
2547- <tr>
2548- <td class="label">fonts-opensymbol</td>
2549- <td>Installed</td>
2550- </tr>
2551- <tr>
2552- <td class="label">fonts-takao-pgothic</td>
2553- <td>Installed</td>
2554- </tr>
2555- <tr>
2556- <td class="label">fonts-thai-tlwg</td>
2557- <td>Installed</td>
2558- </tr>
2559- <tr>
2560- <td class="label">fonts-tlwg-garuda</td>
2561- <td>Installed</td>
2562- </tr>
2563- <tr>
2564- <td class="label">fonts-tlwg-kinnari</td>
2565- <td>Installed</td>
2566- </tr>
2567- <tr>
2568- <td class="label">fonts-tlwg-loma</td>
2569- <td>Installed</td>
2570- </tr>
2571- <tr>
2572- <td class="label">fonts-tlwg-mono</td>
2573- <td>Installed</td>
2574- </tr>
2575- <tr>
2576- <td class="label">fonts-tlwg-norasi</td>
2577- <td>Installed</td>
2578- </tr>
2579- <tr>
2580- <td class="label">fonts-tlwg-purisa</td>
2581- <td>Installed</td>
2582- </tr>
2583- <tr>
2584- <td class="label">fonts-tlwg-sawasdee</td>
2585- <td>Installed</td>
2586- </tr>
2587- <tr>
2588- <td class="label">fonts-tlwg-typewriter</td>
2589- <td>Installed</td>
2590- </tr>
2591- <tr>
2592- <td class="label">fonts-tlwg-typist</td>
2593- <td>Installed</td>
2594- </tr>
2595- <tr>
2596- <td class="label">fonts-tlwg-typo</td>
2597- <td>Installed</td>
2598- </tr>
2599- <tr>
2600- <td class="label">fonts-tlwg-umpush</td>
2601- <td>Installed</td>
2602- </tr>
2603- <tr>
2604- <td class="label">fonts-tlwg-waree</td>
2605- <td>Installed</td>
2606- </tr>
2607- <tr>
2608- <td class="label">foomatic-db-compressed-ppds</td>
2609- <td>Installed</td>
2610- </tr>
2611- <tr>
2612- <td class="label">foomatic-db-engine</td>
2613- <td>Installed</td>
2614- </tr>
2615- <tr>
2616- <td class="label">foomatic-filters</td>
2617- <td>Installed</td>
2618- </tr>
2619- <tr>
2620- <td class="label">freeglut3</td>
2621- <td>Installed</td>
2622- </tr>
2623- <tr>
2624- <td class="label">freeglut3-dev</td>
2625- <td>Installed</td>
2626- </tr>
2627- <tr>
2628- <td class="label">freepats</td>
2629- <td>Installed</td>
2630- </tr>
2631- <tr>
2632- <td class="label">friendly-recovery</td>
2633- <td>Installed</td>
2634- </tr>
2635- <tr>
2636- <td class="label">fswebcam</td>
2637- <td>Installed</td>
2638- </tr>
2639- <tr>
2640- <td class="label">ftp</td>
2641- <td>Installed</td>
2642- </tr>
2643- <tr>
2644- <td class="label">fuse</td>
2645- <td>Installed</td>
2646- </tr>
2647- <tr>
2648- <td class="label">fwts</td>
2649- <td>Installed</td>
2650- </tr>
2651- <tr>
2652- <td class="label">g++</td>
2653- <td>Installed</td>
2654- </tr>
2655- <tr>
2656- <td class="label">g++-4.6</td>
2657- <td>Installed</td>
2658- </tr>
2659- <tr>
2660- <td class="label">gawk</td>
2661- <td>Installed</td>
2662- </tr>
2663- <tr>
2664- <td class="label">gcalctool</td>
2665- <td>Installed</td>
2666- </tr>
2667- <tr>
2668- <td class="label">gcc</td>
2669- <td>Installed</td>
2670- </tr>
2671- <tr>
2672- <td class="label">gcc-4.6</td>
2673- <td>Installed</td>
2674- </tr>
2675- <tr>
2676- <td class="label">gcc-4.6-base</td>
2677- <td>Installed</td>
2678- </tr>
2679- <tr>
2680- <td class="label">gcc-4.6-base:i386</td>
2681- <td>Installed</td>
2682- </tr>
2683- <tr>
2684- <td class="label">gconf-defaults-service</td>
2685- <td>Installed</td>
2686- </tr>
2687- <tr>
2688- <td class="label">gconf-editor</td>
2689- <td>Installed</td>
2690- </tr>
2691- <tr>
2692- <td class="label">gconf-service</td>
2693- <td>Installed</td>
2694- </tr>
2695- <tr>
2696- <td class="label">gconf-service-backend</td>
2697- <td>Installed</td>
2698- </tr>
2699- <tr>
2700- <td class="label">gconf2</td>
2701- <td>Installed</td>
2702- </tr>
2703- <tr>
2704- <td class="label">gconf2-common</td>
2705- <td>Installed</td>
2706- </tr>
2707- <tr>
2708- <td class="label">gdb</td>
2709- <td>Installed</td>
2710- </tr>
2711- <tr>
2712- <td class="label">gdebi</td>
2713- <td>Installed</td>
2714- </tr>
2715- <tr>
2716- <td class="label">gdebi-core</td>
2717- <td>Installed</td>
2718- </tr>
2719- <tr>
2720- <td class="label">geany</td>
2721- <td>Installed</td>
2722- </tr>
2723- <tr>
2724- <td class="label">geany-common</td>
2725- <td>Installed</td>
2726- </tr>
2727- <tr>
2728- <td class="label">geany-plugin-treebrowser</td>
2729- <td>Installed</td>
2730- </tr>
2731- <tr>
2732- <td class="label">geany-plugins-common</td>
2733- <td>Installed</td>
2734- </tr>
2735- <tr>
2736- <td class="label">gedit</td>
2737- <td>Installed</td>
2738- </tr>
2739- <tr>
2740- <td class="label">gedit-common</td>
2741- <td>Installed</td>
2742- </tr>
2743- <tr>
2744- <td class="label">genisoimage</td>
2745- <td>Installed</td>
2746- </tr>
2747- <tr>
2748- <td class="label">geoclue</td>
2749- <td>Installed</td>
2750- </tr>
2751- <tr>
2752- <td class="label">geoclue-ubuntu-geoip</td>
2753- <td>Installed</td>
2754- </tr>
2755- <tr>
2756- <td class="label">geoip-database</td>
2757- <td>Installed</td>
2758- </tr>
2759- <tr>
2760- <td class="label">gettext</td>
2761- <td>Installed</td>
2762- </tr>
2763- <tr>
2764- <td class="label">gettext-base</td>
2765- <td>Installed</td>
2766- </tr>
2767- <tr>
2768- <td class="label">ghostscript</td>
2769- <td>Installed</td>
2770- </tr>
2771- <tr>
2772- <td class="label">ghostscript-cups</td>
2773- <td>Installed</td>
2774- </tr>
2775- <tr>
2776- <td class="label">ghostscript-x</td>
2777- <td>Installed</td>
2778- </tr>
2779- <tr>
2780- <td class="label">gimp</td>
2781- <td>Installed</td>
2782- </tr>
2783- <tr>
2784- <td class="label">gimp-data</td>
2785- <td>Installed</td>
2786- </tr>
2787- <tr>
2788- <td class="label">ginn</td>
2789- <td>Installed</td>
2790- </tr>
2791- <tr>
2792- <td class="label">gir1.2-accountsservice-1.0</td>
2793- <td>Installed</td>
2794- </tr>
2795- <tr>
2796- <td class="label">gir1.2-appindicator3-0.1</td>
2797- <td>Installed</td>
2798- </tr>
2799- <tr>
2800- <td class="label">gir1.2-atk-1.0</td>
2801- <td>Installed</td>
2802- </tr>
2803- <tr>
2804- <td class="label">gir1.2-atspi-2.0</td>
2805- <td>Installed</td>
2806- </tr>
2807- <tr>
2808- <td class="label">gir1.2-caribou-1.0</td>
2809- <td>Installed</td>
2810- </tr>
2811- <tr>
2812- <td class="label">gir1.2-clutter-1.0</td>
2813- <td>Installed</td>
2814- </tr>
2815- <tr>
2816- <td class="label">gir1.2-cogl-1.0</td>
2817- <td>Installed</td>
2818- </tr>
2819- <tr>
2820- <td class="label">gir1.2-coglpango-1.0</td>
2821- <td>Installed</td>
2822- </tr>
2823- <tr>
2824- <td class="label">gir1.2-dbusmenu-glib-0.4</td>
2825- <td>Installed</td>
2826- </tr>
2827- <tr>
2828- <td class="label">gir1.2-dbusmenu-gtk-0.4</td>
2829- <td>Installed</td>
2830- </tr>
2831- <tr>
2832- <td class="label">gir1.2-dee-1.0</td>
2833- <td>Installed</td>
2834- </tr>
2835- <tr>
2836- <td class="label">gir1.2-folks-0.6</td>
2837- <td>Installed</td>
2838- </tr>
2839- <tr>
2840- <td class="label">gir1.2-freedesktop</td>
2841- <td>Installed</td>
2842- </tr>
2843- <tr>
2844- <td class="label">gir1.2-gconf-2.0</td>
2845- <td>Installed</td>
2846- </tr>
2847- <tr>
2848- <td class="label">gir1.2-gdesktopenums-3.0</td>
2849- <td>Installed</td>
2850- </tr>
2851- <tr>
2852- <td class="label">gir1.2-gdkpixbuf-2.0</td>
2853- <td>Installed</td>
2854- </tr>
2855- <tr>
2856- <td class="label">gir1.2-gee-1.0</td>
2857- <td>Installed</td>
2858- </tr>
2859- <tr>
2860- <td class="label">gir1.2-gjsdbus-1.0</td>
2861- <td>Installed</td>
2862- </tr>
2863- <tr>
2864- <td class="label">gir1.2-gkbd-3.0</td>
2865- <td>Installed</td>
2866- </tr>
2867- <tr>
2868- <td class="label">gir1.2-glib-2.0</td>
2869- <td>Installed</td>
2870- </tr>
2871- <tr>
2872- <td class="label">gir1.2-gmenu-3.0</td>
2873- <td>Installed</td>
2874- </tr>
2875- <tr>
2876- <td class="label">gir1.2-gnomebluetooth-1.0</td>
2877- <td>Installed</td>
2878- </tr>
2879- <tr>
2880- <td class="label">gir1.2-gnomekeyring-1.0</td>
2881- <td>Installed</td>
2882- </tr>
2883- <tr>
2884- <td class="label">gir1.2-gst-plugins-base-0.10</td>
2885- <td>Installed</td>
2886- </tr>
2887- <tr>
2888- <td class="label">gir1.2-gstreamer-0.10</td>
2889- <td>Installed</td>
2890- </tr>
2891- <tr>
2892- <td class="label">gir1.2-gtk-2.0</td>
2893- <td>Installed</td>
2894- </tr>
2895- <tr>
2896- <td class="label">gir1.2-gtk-3.0</td>
2897- <td>Installed</td>
2898- </tr>
2899- <tr>
2900- <td class="label">gir1.2-gtksource-3.0</td>
2901- <td>Installed</td>
2902- </tr>
2903- <tr>
2904- <td class="label">gir1.2-gudev-1.0</td>
2905- <td>Installed</td>
2906- </tr>
2907- <tr>
2908- <td class="label">gir1.2-indicate-0.7</td>
2909- <td>Installed</td>
2910- </tr>
2911- <tr>
2912- <td class="label">gir1.2-javascriptcoregtk-1.0</td>
2913- <td>Installed</td>
2914- </tr>
2915- <tr>
2916- <td class="label">gir1.2-javascriptcoregtk-3.0</td>
2917- <td>Installed</td>
2918- </tr>
2919- <tr>
2920- <td class="label">gir1.2-json-1.0</td>
2921- <td>Installed</td>
2922- </tr>
2923- <tr>
2924- <td class="label">gir1.2-launchpad-integration-3.0</td>
2925- <td>Installed</td>
2926- </tr>
2927- <tr>
2928- <td class="label">gir1.2-mutter-3.0</td>
2929- <td>Installed</td>
2930- </tr>
2931- <tr>
2932- <td class="label">gir1.2-networkmanager-1.0</td>
2933- <td>Installed</td>
2934- </tr>
2935- <tr>
2936- <td class="label">gir1.2-notify-0.7</td>
2937- <td>Installed</td>
2938- </tr>
2939- <tr>
2940- <td class="label">gir1.2-panelapplet-4.0</td>
2941- <td>Installed</td>
2942- </tr>
2943- <tr>
2944- <td class="label">gir1.2-pango-1.0</td>
2945- <td>Installed</td>
2946- </tr>
2947- <tr>
2948- <td class="label">gir1.2-peas-1.0</td>
2949- <td>Installed</td>
2950- </tr>
2951- <tr>
2952- <td class="label">gir1.2-polkit-1.0</td>
2953- <td>Installed</td>
2954- </tr>
2955- <tr>
2956- <td class="label">gir1.2-rb-3.0</td>
2957- <td>Installed</td>
2958- </tr>
2959- <tr>
2960- <td class="label">gir1.2-soup-2.4</td>
2961- <td>Installed</td>
2962- </tr>
2963- <tr>
2964- <td class="label">gir1.2-telepathyglib-0.12</td>
2965- <td>Installed</td>
2966- </tr>
2967- <tr>
2968- <td class="label">gir1.2-telepathylogger-0.2</td>
2969- <td>Installed</td>
2970- </tr>
2971- <tr>
2972- <td class="label">gir1.2-totem-1.0</td>
2973- <td>Installed</td>
2974- </tr>
2975- <tr>
2976- <td class="label">gir1.2-totem-plparser-1.0</td>
2977- <td>Installed</td>
2978- </tr>
2979- <tr>
2980- <td class="label">gir1.2-ubuntuoneui-3.0</td>
2981- <td>Installed</td>
2982- </tr>
2983- <tr>
2984- <td class="label">gir1.2-unique-3.0</td>
2985- <td>Installed</td>
2986- </tr>
2987- <tr>
2988- <td class="label">gir1.2-unity-5.0</td>
2989- <td>Installed</td>
2990- </tr>
2991- <tr>
2992- <td class="label">gir1.2-upowerglib-1.0</td>
2993- <td>Installed</td>
2994- </tr>
2995- <tr>
2996- <td class="label">gir1.2-vte-2.90</td>
2997- <td>Installed</td>
2998- </tr>
2999- <tr>
3000- <td class="label">gir1.2-webkit-1.0</td>
3001- <td>Installed</td>
3002- </tr>
3003- <tr>
3004- <td class="label">gir1.2-webkit-3.0</td>
3005- <td>Installed</td>
3006- </tr>
3007- <tr>
3008- <td class="label">gir1.2-wnck-3.0</td>
3009- <td>Installed</td>
3010- </tr>
3011- <tr>
3012- <td class="label">gir1.2-xkl-1.0</td>
3013- <td>Installed</td>
3014- </tr>
3015- <tr>
3016- <td class="label">git</td>
3017- <td>Installed</td>
3018- </tr>
3019- <tr>
3020- <td class="label">git-core</td>
3021- <td>Installed</td>
3022- </tr>
3023- <tr>
3024- <td class="label">git-email</td>
3025- <td>Installed</td>
3026- </tr>
3027- <tr>
3028- <td class="label">git-gui</td>
3029- <td>Installed</td>
3030- </tr>
3031- <tr>
3032- <td class="label">git-man</td>
3033- <td>Installed</td>
3034- </tr>
3035- <tr>
3036- <td class="label">gitk</td>
3037- <td>Installed</td>
3038- </tr>
3039- <tr>
3040- <td class="label">gjs</td>
3041- <td>Installed</td>
3042- </tr>
3043- <tr>
3044- <td class="label">gksu</td>
3045- <td>Installed</td>
3046- </tr>
3047- <tr>
3048- <td class="label">glade</td>
3049- <td>Installed</td>
3050- </tr>
3051- <tr>
3052- <td class="label">glade-gtk2</td>
3053- <td>Installed</td>
3054- </tr>
3055- <tr>
3056- <td class="label">glib-networking</td>
3057- <td>Installed</td>
3058- </tr>
3059- <tr>
3060- <td class="label">glib-networking:i386</td>
3061- <td>Installed</td>
3062- </tr>
3063- <tr>
3064- <td class="label">glib-networking-common</td>
3065- <td>Installed</td>
3066- </tr>
3067- <tr>
3068- <td class="label">glib-networking-services</td>
3069- <td>Installed</td>
3070- </tr>
3071- <tr>
3072- <td class="label">glmark2</td>
3073- <td>Installed</td>
3074- </tr>
3075- <tr>
3076- <td class="label">glmark2-data</td>
3077- <td>Installed</td>
3078- </tr>
3079- <tr>
3080- <td class="label">glmark2-es2</td>
3081- <td>Installed</td>
3082- </tr>
3083- <tr>
3084- <td class="label">gnome-accessibility-themes</td>
3085- <td>Installed</td>
3086- </tr>
3087- <tr>
3088- <td class="label">gnome-applets</td>
3089- <td>Installed</td>
3090- </tr>
3091- <tr>
3092- <td class="label">gnome-applets-data</td>
3093- <td>Installed</td>
3094- </tr>
3095- <tr>
3096- <td class="label">gnome-bluetooth</td>
3097- <td>Installed</td>
3098- </tr>
3099- <tr>
3100- <td class="label">gnome-contacts</td>
3101- <td>Installed</td>
3102- </tr>
3103- <tr>
3104- <td class="label">gnome-control-center</td>
3105- <td>Installed</td>
3106- </tr>
3107- <tr>
3108- <td class="label">gnome-control-center-data</td>
3109- <td>Installed</td>
3110- </tr>
3111- <tr>
3112- <td class="label">gnome-desktop3-data</td>
3113- <td>Installed</td>
3114- </tr>
3115- <tr>
3116- <td class="label">gnome-disk-utility</td>
3117- <td>Installed</td>
3118- </tr>
3119- <tr>
3120- <td class="label">gnome-font-viewer</td>
3121- <td>Installed</td>
3122- </tr>
3123- <tr>
3124- <td class="label">gnome-games-data</td>
3125- <td>Installed</td>
3126- </tr>
3127- <tr>
3128- <td class="label">gnome-icon-theme</td>
3129- <td>Installed</td>
3130- </tr>
3131- <tr>
3132- <td class="label">gnome-icon-theme-full</td>
3133- <td>Installed</td>
3134- </tr>
3135- <tr>
3136- <td class="label">gnome-icon-theme-symbolic</td>
3137- <td>Installed</td>
3138- </tr>
3139- <tr>
3140- <td class="label">gnome-keyring</td>
3141- <td>Installed</td>
3142- </tr>
3143- <tr>
3144- <td class="label">gnome-media</td>
3145- <td>Installed</td>
3146- </tr>
3147- <tr>
3148- <td class="label">gnome-menus</td>
3149- <td>Installed</td>
3150- </tr>
3151- <tr>
3152- <td class="label">gnome-mplayer</td>
3153- <td>Installed</td>
3154- </tr>
3155- <tr>
3156- <td class="label">gnome-nettool</td>
3157- <td>Installed</td>
3158- </tr>
3159- <tr>
3160- <td class="label">gnome-online-accounts</td>
3161- <td>Installed</td>
3162- </tr>
3163- <tr>
3164- <td class="label">gnome-orca</td>
3165- <td>Installed</td>
3166- </tr>
3167- <tr>
3168- <td class="label">gnome-panel</td>
3169- <td>Installed</td>
3170- </tr>
3171- <tr>
3172- <td class="label">gnome-panel-data</td>
3173- <td>Installed</td>
3174- </tr>
3175- <tr>
3176- <td class="label">gnome-power-manager</td>
3177- <td>Installed</td>
3178- </tr>
3179- <tr>
3180- <td class="label">gnome-screensaver</td>
3181- <td>Installed</td>
3182- </tr>
3183- <tr>
3184- <td class="label">gnome-screenshot</td>
3185- <td>Installed</td>
3186- </tr>
3187- <tr>
3188- <td class="label">gnome-session</td>
3189- <td>Installed</td>
3190- </tr>
3191- <tr>
3192- <td class="label">gnome-session-bin</td>
3193- <td>Installed</td>
3194- </tr>
3195- <tr>
3196- <td class="label">gnome-session-canberra</td>
3197- <td>Installed</td>
3198- </tr>
3199- <tr>
3200- <td class="label">gnome-session-common</td>
3201- <td>Installed</td>
3202- </tr>
3203- <tr>
3204- <td class="label">gnome-session-fallback</td>
3205- <td>Installed</td>
3206- </tr>
3207- <tr>
3208- <td class="label">gnome-settings-daemon</td>
3209- <td>Installed</td>
3210- </tr>
3211- <tr>
3212- <td class="label">gnome-shell</td>
3213- <td>Installed</td>
3214- </tr>
3215- <tr>
3216- <td class="label">gnome-shell-common</td>
3217- <td>Installed</td>
3218- </tr>
3219- <tr>
3220- <td class="label">gnome-sudoku</td>
3221- <td>Installed</td>
3222- </tr>
3223- <tr>
3224- <td class="label">gnome-system-log</td>
3225- <td>Installed</td>
3226- </tr>
3227- <tr>
3228- <td class="label">gnome-system-monitor</td>
3229- <td>Installed</td>
3230- </tr>
3231- <tr>
3232- <td class="label">gnome-system-tools</td>
3233- <td>Installed</td>
3234- </tr>
3235- <tr>
3236- <td class="label">gnome-terminal</td>
3237- <td>Installed</td>
3238- </tr>
3239- <tr>
3240- <td class="label">gnome-terminal-data</td>
3241- <td>Installed</td>
3242- </tr>
3243- <tr>
3244- <td class="label">gnome-themes-standard</td>
3245- <td>Installed</td>
3246- </tr>
3247- <tr>
3248- <td class="label">gnome-tweak-tool</td>
3249- <td>Installed</td>
3250- </tr>
3251- <tr>
3252- <td class="label">gnome-user-guide</td>
3253- <td>Installed</td>
3254- </tr>
3255- <tr>
3256- <td class="label">gnome-user-share</td>
3257- <td>Installed</td>
3258- </tr>
3259- <tr>
3260- <td class="label">gnome-video-effects</td>
3261- <td>Installed</td>
3262- </tr>
3263- <tr>
3264- <td class="label">gnomine</td>
3265- <td>Installed</td>
3266- </tr>
3267- <tr>
3268- <td class="label">gnupg</td>
3269- <td>Installed</td>
3270- </tr>
3271- <tr>
3272- <td class="label">gnupg-agent</td>
3273- <td>Installed</td>
3274- </tr>
3275- <tr>
3276- <td class="label">google-talkplugin</td>
3277- <td>Installed</td>
3278- </tr>
3279- <tr>
3280- <td class="label">gpgv</td>
3281- <td>Installed</td>
3282- </tr>
3283- <tr>
3284- <td class="label">gpodder</td>
3285- <td>Installed</td>
3286- </tr>
3287- <tr>
3288- <td class="label">graphviz</td>
3289- <td>Installed</td>
3290- </tr>
3291- <tr>
3292- <td class="label">grep</td>
3293- <td>Installed</td>
3294- </tr>
3295- <tr>
3296- <td class="label">groff-base</td>
3297- <td>Installed</td>
3298- </tr>
3299- <tr>
3300- <td class="label">growisofs</td>
3301- <td>Installed</td>
3302- </tr>
3303- <tr>
3304- <td class="label">grub-common</td>
3305- <td>Installed</td>
3306- </tr>
3307- <tr>
3308- <td class="label">grub-gfxpayload-lists</td>
3309- <td>Installed</td>
3310- </tr>
3311- <tr>
3312- <td class="label">grub-pc</td>
3313- <td>Installed</td>
3314- </tr>
3315- <tr>
3316- <td class="label">grub-pc-bin</td>
3317- <td>Installed</td>
3318- </tr>
3319- <tr>
3320- <td class="label">grub2-common</td>
3321- <td>Installed</td>
3322- </tr>
3323- <tr>
3324- <td class="label">gs-cjk-resource</td>
3325- <td>Installed</td>
3326- </tr>
3327- <tr>
3328- <td class="label">gsettings-desktop-schemas</td>
3329- <td>Installed</td>
3330- </tr>
3331- <tr>
3332- <td class="label">gsfonts</td>
3333- <td>Installed</td>
3334- </tr>
3335- <tr>
3336- <td class="label">gsfonts-x11</td>
3337- <td>Installed</td>
3338- </tr>
3339- <tr>
3340- <td class="label">gstreamer-tools</td>
3341- <td>Installed</td>
3342- </tr>
3343- <tr>
3344- <td class="label">gstreamer0.10-alsa</td>
3345- <td>Installed</td>
3346- </tr>
3347- <tr>
3348- <td class="label">gstreamer0.10-ffmpeg</td>
3349- <td>Installed</td>
3350- </tr>
3351- <tr>
3352- <td class="label">gstreamer0.10-gconf</td>
3353- <td>Installed</td>
3354- </tr>
3355- <tr>
3356- <td class="label">gstreamer0.10-gnonlin</td>
3357- <td>Installed</td>
3358- </tr>
3359- <tr>
3360- <td class="label">gstreamer0.10-nice</td>
3361- <td>Installed</td>
3362- </tr>
3363- <tr>
3364- <td class="label">gstreamer0.10-plugins-bad</td>
3365- <td>Installed</td>
3366- </tr>
3367- <tr>
3368- <td class="label">gstreamer0.10-plugins-base</td>
3369- <td>Installed</td>
3370- </tr>
3371- <tr>
3372- <td class="label">gstreamer0.10-plugins-base:i386</td>
3373- <td>Installed</td>
3374- </tr>
3375- <tr>
3376- <td class="label">gstreamer0.10-plugins-base-apps</td>
3377- <td>Installed</td>
3378- </tr>
3379- <tr>
3380- <td class="label">gstreamer0.10-plugins-good</td>
3381- <td>Installed</td>
3382- </tr>
3383- <tr>
3384- <td class="label">gstreamer0.10-plugins-good:i386</td>
3385- <td>Installed</td>
3386- </tr>
3387- <tr>
3388- <td class="label">gstreamer0.10-plugins-ugly</td>
3389- <td>Installed</td>
3390- </tr>
3391- <tr>
3392- <td class="label">gstreamer0.10-pulseaudio</td>
3393- <td>Installed</td>
3394- </tr>
3395- <tr>
3396- <td class="label">gstreamer0.10-tools</td>
3397- <td>Installed</td>
3398- </tr>
3399- <tr>
3400- <td class="label">gstreamer0.10-x</td>
3401- <td>Installed</td>
3402- </tr>
3403- <tr>
3404- <td class="label">gstreamer0.10-x:i386</td>
3405- <td>Installed</td>
3406- </tr>
3407- <tr>
3408- <td class="label">gtk-recordmydesktop</td>
3409- <td>Installed</td>
3410- </tr>
3411- <tr>
3412- <td class="label">gtk2-engines</td>
3413- <td>Installed</td>
3414- </tr>
3415- <tr>
3416- <td class="label">gtk2-engines:i386</td>
3417- <td>Installed</td>
3418- </tr>
3419- <tr>
3420- <td class="label">gtk2-engines-murrine</td>
3421- <td>Installed</td>
3422- </tr>
3423- <tr>
3424- <td class="label">gtk2-engines-murrine:i386</td>
3425- <td>Installed</td>
3426- </tr>
3427- <tr>
3428- <td class="label">gtk2-engines-oxygen:i386</td>
3429- <td>Installed</td>
3430- </tr>
3431- <tr>
3432- <td class="label">gtk2-engines-pixbuf:i386</td>
3433- <td>Installed</td>
3434- </tr>
3435- <tr>
3436- <td class="label">gtk3-engines-unico</td>
3437- <td>Installed</td>
3438- </tr>
3439- <tr>
3440- <td class="label">gtkperf</td>
3441- <td>Installed</td>
3442- </tr>
3443- <tr>
3444- <td class="label">gucharmap</td>
3445- <td>Installed</td>
3446- </tr>
3447- <tr>
3448- <td class="label">guile-1.8-libs</td>
3449- <td>Installed</td>
3450- </tr>
3451- <tr>
3452- <td class="label">gvfs</td>
3453- <td>Installed</td>
3454- </tr>
3455- <tr>
3456- <td class="label">gvfs:i386</td>
3457- <td>Installed</td>
3458- </tr>
3459- <tr>
3460- <td class="label">gvfs-backends</td>
3461- <td>Installed</td>
3462- </tr>
3463- <tr>
3464- <td class="label">gvfs-bin</td>
3465- <td>Installed</td>
3466- </tr>
3467- <tr>
3468- <td class="label">gvfs-common</td>
3469- <td>Installed</td>
3470- </tr>
3471- <tr>
3472- <td class="label">gvfs-daemons</td>
3473- <td>Installed</td>
3474- </tr>
3475- <tr>
3476- <td class="label">gvfs-fuse</td>
3477- <td>Installed</td>
3478- </tr>
3479- <tr>
3480- <td class="label">gvfs-libs</td>
3481- <td>Installed</td>
3482- </tr>
3483- <tr>
3484- <td class="label">gvfs-libs:i386</td>
3485- <td>Installed</td>
3486- </tr>
3487- <tr>
3488- <td class="label">gwibber</td>
3489- <td>Installed</td>
3490- </tr>
3491- <tr>
3492- <td class="label">gwibber-service</td>
3493- <td>Installed</td>
3494- </tr>
3495- <tr>
3496- <td class="label">gwibber-service-facebook</td>
3497- <td>Installed</td>
3498- </tr>
3499- <tr>
3500- <td class="label">gwibber-service-identica</td>
3501- <td>Installed</td>
3502- </tr>
3503- <tr>
3504- <td class="label">gwibber-service-twitter</td>
3505- <td>Installed</td>
3506- </tr>
3507- <tr>
3508- <td class="label">gzip</td>
3509- <td>Installed</td>
3510- </tr>
3511- <tr>
3512- <td class="label">handbrake-gtk</td>
3513- <td>Installed</td>
3514- </tr>
3515- <tr>
3516- <td class="label">hddtemp</td>
3517- <td>Installed</td>
3518- </tr>
3519- <tr>
3520- <td class="label">hdparm</td>
3521- <td>Installed</td>
3522- </tr>
3523- <tr>
3524- <td class="label">heirloom-mailx</td>
3525- <td>Installed</td>
3526- </tr>
3527- <tr>
3528- <td class="label">help2man</td>
3529- <td>Installed</td>
3530- </tr>
3531- <tr>
3532- <td class="label">hexedit</td>
3533- <td>Installed</td>
3534- </tr>
3535- <tr>
3536- <td class="label">hicolor-icon-theme</td>
3537- <td>Installed</td>
3538- </tr>
3539- <tr>
3540- <td class="label">hostname</td>
3541- <td>Installed</td>
3542- </tr>
3543- <tr>
3544- <td class="label">hplip</td>
3545- <td>Installed</td>
3546- </tr>
3547- <tr>
3548- <td class="label">hplip-data</td>
3549- <td>Installed</td>
3550- </tr>
3551- <tr>
3552- <td class="label">html2text</td>
3553- <td>Installed</td>
3554- </tr>
3555- <tr>
3556- <td class="label">htop</td>
3557- <td>Installed</td>
3558- </tr>
3559- <tr>
3560- <td class="label">humanity-icon-theme</td>
3561- <td>Installed</td>
3562- </tr>
3563- <tr>
3564- <td class="label">hunspell-en-us</td>
3565- <td>Installed</td>
3566- </tr>
3567- <tr>
3568- <td class="label">hwdata</td>
3569- <td>Installed</td>
3570- </tr>
3571- <tr>
3572- <td class="label">hyphen-en-us</td>
3573- <td>Installed</td>
3574- </tr>
3575- <tr>
3576- <td class="label">ia32-libs</td>
3577- <td>Installed</td>
3578- </tr>
3579- <tr>
3580- <td class="label">ia32-libs-multiarch:i386</td>
3581- <td>Installed</td>
3582- </tr>
3583- <tr>
3584- <td class="label">ibus</td>
3585- <td>Installed</td>
3586- </tr>
3587- <tr>
3588- <td class="label">ibus-gtk</td>
3589- <td>Installed</td>
3590- </tr>
3591- <tr>
3592- <td class="label">ibus-gtk:i386</td>
3593- <td>Installed</td>
3594- </tr>
3595- <tr>
3596- <td class="label">ibus-gtk3</td>
3597- <td>Installed</td>
3598- </tr>
3599- <tr>
3600- <td class="label">ibus-pinyin</td>
3601- <td>Installed</td>
3602- </tr>
3603- <tr>
3604- <td class="label">ibus-pinyin-db-android</td>
3605- <td>Installed</td>
3606- </tr>
3607- <tr>
3608- <td class="label">ibus-table</td>
3609- <td>Installed</td>
3610- </tr>
3611- <tr>
3612- <td class="label">icecream</td>
3613- <td>Installed</td>
3614- </tr>
3615- <tr>
3616- <td class="label">icedtea-7-jre-jamvm</td>
3617- <td>Installed</td>
3618- </tr>
3619- <tr>
3620- <td class="label">icedtea-7-plugin</td>
3621- <td>Installed</td>
3622- </tr>
3623- <tr>
3624- <td class="label">icedtea-netx</td>
3625- <td>Installed</td>
3626- </tr>
3627- <tr>
3628- <td class="label">icedtea-netx-common</td>
3629- <td>Installed</td>
3630- </tr>
3631- <tr>
3632- <td class="label">ifupdown</td>
3633- <td>Installed</td>
3634- </tr>
3635- <tr>
3636- <td class="label">im-switch</td>
3637- <td>Installed</td>
3638- </tr>
3639- <tr>
3640- <td class="label">imagemagick</td>
3641- <td>Installed</td>
3642- </tr>
3643- <tr>
3644- <td class="label">imagemagick-common</td>
3645- <td>Installed</td>
3646- </tr>
3647- <tr>
3648- <td class="label">indent</td>
3649- <td>Installed</td>
3650- </tr>
3651- <tr>
3652- <td class="label">indicator-applet-complete</td>
3653- <td>Installed</td>
3654- </tr>
3655- <tr>
3656- <td class="label">indicator-application</td>
3657- <td>Installed</td>
3658- </tr>
3659- <tr>
3660- <td class="label">indicator-appmenu</td>
3661- <td>Installed</td>
3662- </tr>
3663- <tr>
3664- <td class="label">indicator-datetime</td>
3665- <td>Installed</td>
3666- </tr>
3667- <tr>
3668- <td class="label">indicator-messages</td>
3669- <td>Installed</td>
3670- </tr>
3671- <tr>
3672- <td class="label">indicator-power</td>
3673- <td>Installed</td>
3674- </tr>
3675- <tr>
3676- <td class="label">indicator-printers</td>
3677- <td>Installed</td>
3678- </tr>
3679- <tr>
3680- <td class="label">indicator-session</td>
3681- <td>Installed</td>
3682- </tr>
3683- <tr>
3684- <td class="label">indicator-sound</td>
3685- <td>Installed</td>
3686- </tr>
3687- <tr>
3688- <td class="label">indicator-status-provider-mc5</td>
3689- <td>Installed</td>
3690- </tr>
3691- <tr>
3692- <td class="label">indicator-status-provider-pidgin</td>
3693- <td>Installed</td>
3694- </tr>
3695- <tr>
3696- <td class="label">indicator-weather</td>
3697- <td>Installed</td>
3698- </tr>
3699- <tr>
3700- <td class="label">info</td>
3701- <td>Installed</td>
3702- </tr>
3703- <tr>
3704- <td class="label">initramfs-tools</td>
3705- <td>Installed</td>
3706- </tr>
3707- <tr>
3708- <td class="label">initramfs-tools-bin</td>
3709- <td>Installed</td>
3710- </tr>
3711- <tr>
3712- <td class="label">initscripts</td>
3713- <td>Installed</td>
3714- </tr>
3715- <tr>
3716- <td class="label">inkscape</td>
3717- <td>Installed</td>
3718- </tr>
3719- <tr>
3720- <td class="label">input-utils</td>
3721- <td>Installed</td>
3722- </tr>
3723- <tr>
3724- <td class="label">inputattach</td>
3725- <td>Installed</td>
3726- </tr>
3727- <tr>
3728- <td class="label">insserv</td>
3729- <td>Installed</td>
3730- </tr>
3731- <tr>
3732- <td class="label">install-info</td>
3733- <td>Installed</td>
3734- </tr>
3735- <tr>
3736- <td class="label">intel-gpu-tools</td>
3737- <td>Installed</td>
3738- </tr>
3739- <tr>
3740- <td class="label">intltool</td>
3741- <td>Installed</td>
3742- </tr>
3743- <tr>
3744- <td class="label">intltool-debian</td>
3745- <td>Installed</td>
3746- </tr>
3747- <tr>
3748- <td class="label">iozone3</td>
3749- <td>Installed</td>
3750- </tr>
3751- <tr>
3752- <td class="label">iperf</td>
3753- <td>Installed</td>
3754- </tr>
3755- <tr>
3756- <td class="label">iproute</td>
3757- <td>Installed</td>
3758- </tr>
3759- <tr>
3760- <td class="label">iptables</td>
3761- <td>Installed</td>
3762- </tr>
3763- <tr>
3764- <td class="label">iputils-arping</td>
3765- <td>Installed</td>
3766- </tr>
3767- <tr>
3768- <td class="label">iputils-ping</td>
3769- <td>Installed</td>
3770- </tr>
3771- <tr>
3772- <td class="label">iputils-tracepath</td>
3773- <td>Installed</td>
3774- </tr>
3775- <tr>
3776- <td class="label">ipython</td>
3777- <td>Installed</td>
3778- </tr>
3779- <tr>
3780- <td class="label">irqbalance</td>
3781- <td>Installed</td>
3782- </tr>
3783- <tr>
3784- <td class="label">isc-dhcp-client</td>
3785- <td>Installed</td>
3786- </tr>
3787- <tr>
3788- <td class="label">isc-dhcp-common</td>
3789- <td>Installed</td>
3790- </tr>
3791- <tr>
3792- <td class="label">iso-codes</td>
3793- <td>Installed</td>
3794- </tr>
3795- <tr>
3796- <td class="label">iw</td>
3797- <td>Installed</td>
3798- </tr>
3799- <tr>
3800- <td class="label">java-common</td>
3801- <td>Installed</td>
3802- </tr>
3803- <tr>
3804- <td class="label">jockey-common</td>
3805- <td>Installed</td>
3806- </tr>
3807- <tr>
3808- <td class="label">jockey-gtk</td>
3809- <td>Installed</td>
3810- </tr>
3811- <tr>
3812- <td class="label">jpegpixi</td>
3813- <td>Installed</td>
3814- </tr>
3815- <tr>
3816- <td class="label">juju</td>
3817- <td>Installed</td>
3818- </tr>
3819- <tr>
3820- <td class="label">kbd</td>
3821- <td>Installed</td>
3822- </tr>
3823- <tr>
3824- <td class="label">kerneloops-daemon</td>
3825- <td>Installed</td>
3826- </tr>
3827- <tr>
3828- <td class="label">keyboard-configuration</td>
3829- <td>Installed</td>
3830- </tr>
3831- <tr>
3832- <td class="label">klibc-utils</td>
3833- <td>Installed</td>
3834- </tr>
3835- <tr>
3836- <td class="label">krb5-locales</td>
3837- <td>Installed</td>
3838- </tr>
3839- <tr>
3840- <td class="label">kvm-ipxe</td>
3841- <td>Installed</td>
3842- </tr>
3843- <tr>
3844- <td class="label">landscape-client-ui-install</td>
3845- <td>Installed</td>
3846- </tr>
3847- <tr>
3848- <td class="label">language-pack-en</td>
3849- <td>Installed</td>
3850- </tr>
3851- <tr>
3852- <td class="label">language-pack-en-base</td>
3853- <td>Installed</td>
3854- </tr>
3855- <tr>
3856- <td class="label">language-pack-gnome-en</td>
3857- <td>Installed</td>
3858- </tr>
3859- <tr>
3860- <td class="label">language-pack-gnome-en-base</td>
3861- <td>Installed</td>
3862- </tr>
3863- <tr>
3864- <td class="label">language-selector-common</td>
3865- <td>Installed</td>
3866- </tr>
3867- <tr>
3868- <td class="label">language-selector-gnome</td>
3869- <td>Installed</td>
3870- </tr>
3871- <tr>
3872- <td class="label">laptop-detect</td>
3873- <td>Installed</td>
3874- </tr>
3875- <tr>
3876- <td class="label">launchpad-integration</td>
3877- <td>Installed</td>
3878- </tr>
3879- <tr>
3880- <td class="label">ldtp</td>
3881- <td>Installed</td>
3882- </tr>
3883- <tr>
3884- <td class="label">less</td>
3885- <td>Installed</td>
3886- </tr>
3887- <tr>
3888- <td class="label">lesstif2</td>
3889- <td>Installed</td>
3890- </tr>
3891- <tr>
3892- <td class="label">liba52-0.7.4</td>
3893- <td>Installed</td>
3894- </tr>
3895- <tr>
3896- <td class="label">libaa1</td>
3897- <td>Installed</td>
3898- </tr>
3899- <tr>
3900- <td class="label">libaa1:i386</td>
3901- <td>Installed</td>
3902- </tr>
3903- <tr>
3904- <td class="label">libaacs0</td>
3905- <td>Installed</td>
3906- </tr>
3907- <tr>
3908- <td class="label">libaccountsservice0</td>
3909- <td>Installed</td>
3910- </tr>
3911- <tr>
3912- <td class="label">libacl1</td>
3913- <td>Installed</td>
3914- </tr>
3915- <tr>
3916- <td class="label">libacl1:i386</td>
3917- <td>Installed</td>
3918- </tr>
3919- <tr>
3920- <td class="label">libaio1</td>
3921- <td>Installed</td>
3922- </tr>
3923- <tr>
3924- <td class="label">libaio1:i386</td>
3925- <td>Installed</td>
3926- </tr>
3927- <tr>
3928- <td class="label">libalgorithm-diff-perl</td>
3929- <td>Installed</td>
3930- </tr>
3931- <tr>
3932- <td class="label">libalgorithm-diff-xs-perl</td>
3933- <td>Installed</td>
3934- </tr>
3935- <tr>
3936- <td class="label">libalgorithm-merge-perl</td>
3937- <td>Installed</td>
3938- </tr>
3939- <tr>
3940- <td class="label">libamd2.2.0</td>
3941- <td>Installed</td>
3942- </tr>
3943- <tr>
3944- <td class="label">libao-common</td>
3945- <td>Installed</td>
3946- </tr>
3947- <tr>
3948- <td class="label">libao4:i386</td>
3949- <td>Installed</td>
3950- </tr>
3951- <tr>
3952- <td class="label">libapparmor1</td>
3953- <td>Installed</td>
3954- </tr>
3955- <tr>
3956- <td class="label">libappindicator1</td>
3957- <td>Installed</td>
3958- </tr>
3959- <tr>
3960- <td class="label">libappindicator3-1</td>
3961- <td>Installed</td>
3962- </tr>
3963- <tr>
3964- <td class="label">libapt-inst1.4</td>
3965- <td>Installed</td>
3966- </tr>
3967- <tr>
3968- <td class="label">libapt-pkg-perl</td>
3969- <td>Installed</td>
3970- </tr>
3971- <tr>
3972- <td class="label">libapt-pkg4.12</td>
3973- <td>Installed</td>
3974- </tr>
3975- <tr>
3976- <td class="label">libarchive12</td>
3977- <td>Installed</td>
3978- </tr>
3979- <tr>
3980- <td class="label">libart-2.0-2</td>
3981- <td>Installed</td>
3982- </tr>
3983- <tr>
3984- <td class="label">libasn1-8-heimdal</td>
3985- <td>Installed</td>
3986- </tr>
3987- <tr>
3988- <td class="label">libasn1-8-heimdal:i386</td>
3989- <td>Installed</td>
3990- </tr>
3991- <tr>
3992- <td class="label">libasound2</td>
3993- <td>Installed</td>
3994- </tr>
3995- <tr>
3996- <td class="label">libasound2:i386</td>
3997- <td>Installed</td>
3998- </tr>
3999- <tr>
4000- <td class="label">libasound2-plugins</td>
4001- <td>Installed</td>
4002- </tr>
4003- <tr>
4004- <td class="label">libasound2-plugins:i386</td>
4005- <td>Installed</td>
4006- </tr>
4007- <tr>
4008- <td class="label">libaspell15</td>
4009- <td>Installed</td>
4010- </tr>
4011- <tr>
4012- <td class="label">libass4</td>
4013- <td>Installed</td>
4014- </tr>
4015- <tr>
4016- <td class="label">libassuan0</td>
4017- <td>Installed</td>
4018- </tr>
4019- <tr>
4020- <td class="label">libasyncns0</td>
4021- <td>Installed</td>
4022- </tr>
4023- <tr>
4024- <td class="label">libasyncns0:i386</td>
4025- <td>Installed</td>
4026- </tr>
4027- <tr>
4028- <td class="label">libatasmart4</td>
4029- <td>Installed</td>
4030- </tr>
4031- <tr>
4032- <td class="label">libatk-adaptor</td>
4033- <td>Installed</td>
4034- </tr>
4035- <tr>
4036- <td class="label">libatk-adaptor-schemas</td>
4037- <td>Installed</td>
4038- </tr>
4039- <tr>
4040- <td class="label">libatk-wrapper-java</td>
4041- <td>Installed</td>
4042- </tr>
4043- <tr>
4044- <td class="label">libatk-wrapper-java-jni</td>
4045- <td>Installed</td>
4046- </tr>
4047- <tr>
4048- <td class="label">libatk1.0-0</td>
4049- <td>Installed</td>
4050- </tr>
4051- <tr>
4052- <td class="label">libatk1.0-0:i386</td>
4053- <td>Installed</td>
4054- </tr>
4055- <tr>
4056- <td class="label">libatk1.0-data</td>
4057- <td>Installed</td>
4058- </tr>
4059- <tr>
4060- <td class="label">libatk1.0-dev</td>
4061- <td>Installed</td>
4062- </tr>
4063- <tr>
4064- <td class="label">libatk1.0-doc</td>
4065- <td>Installed</td>
4066- </tr>
4067- <tr>
4068- <td class="label">libatkmm-1.6-1</td>
4069- <td>Installed</td>
4070- </tr>
4071- <tr>
4072- <td class="label">libatspi2.0-0</td>
4073- <td>Installed</td>
4074- </tr>
4075- <tr>
4076- <td class="label">libattr1</td>
4077- <td>Installed</td>
4078- </tr>
4079- <tr>
4080- <td class="label">libattr1:i386</td>
4081- <td>Installed</td>
4082- </tr>
4083- <tr>
4084- <td class="label">libaudio2</td>
4085- <td>Installed</td>
4086- </tr>
4087- <tr>
4088- <td class="label">libaudio2:i386</td>
4089- <td>Installed</td>
4090- </tr>
4091- <tr>
4092- <td class="label">libaudiofile1</td>
4093- <td>Installed</td>
4094- </tr>
4095- <tr>
4096- <td class="label">libaudiofile1:i386</td>
4097- <td>Installed</td>
4098- </tr>
4099- <tr>
4100- <td class="label">libauthen-sasl-perl</td>
4101- <td>Installed</td>
4102- </tr>
4103- <tr>
4104- <td class="label">libav-tools</td>
4105- <td>Installed</td>
4106- </tr>
4107- <tr>
4108- <td class="label">libavahi-client3</td>
4109- <td>Installed</td>
4110- </tr>
4111- <tr>
4112- <td class="label">libavahi-client3:i386</td>
4113- <td>Installed</td>
4114- </tr>
4115- <tr>
4116- <td class="label">libavahi-common-data</td>
4117- <td>Installed</td>
4118- </tr>
4119- <tr>
4120- <td class="label">libavahi-common-data:i386</td>
4121- <td>Installed</td>
4122- </tr>
4123- <tr>
4124- <td class="label">libavahi-common3</td>
4125- <td>Installed</td>
4126- </tr>
4127- <tr>
4128- <td class="label">libavahi-common3:i386</td>
4129- <td>Installed</td>
4130- </tr>
4131- <tr>
4132- <td class="label">libavahi-core7</td>
4133- <td>Installed</td>
4134- </tr>
4135- <tr>
4136- <td class="label">libavahi-glib1</td>
4137- <td>Installed</td>
4138- </tr>
4139- <tr>
4140- <td class="label">libavahi-gobject0</td>
4141- <td>Installed</td>
4142- </tr>
4143- <tr>
4144- <td class="label">libavahi-ui-gtk3-0</td>
4145- <td>Installed</td>
4146- </tr>
4147- <tr>
4148- <td class="label">libavc1394-0</td>
4149- <td>Installed</td>
4150- </tr>
4151- <tr>
4152- <td class="label">libavc1394-0:i386</td>
4153- <td>Installed</td>
4154- </tr>
4155- <tr>
4156- <td class="label">libavcodec53</td>
4157- <td>Installed</td>
4158- </tr>
4159- <tr>
4160- <td class="label">libavdevice53</td>
4161- <td>Installed</td>
4162- </tr>
4163- <tr>
4164- <td class="label">libavfilter2</td>
4165- <td>Installed</td>
4166- </tr>
4167- <tr>
4168- <td class="label">libavformat53</td>
4169- <td>Installed</td>
4170- </tr>
4171- <tr>
4172- <td class="label">libavutil51</td>
4173- <td>Installed</td>
4174- </tr>
4175- <tr>
4176- <td class="label">libbabl-0.0-0</td>
4177- <td>Installed</td>
4178- </tr>
4179- <tr>
4180- <td class="label">libbamf0</td>
4181- <td>Installed</td>
4182- </tr>
4183- <tr>
4184- <td class="label">libbamf3-0</td>
4185- <td>Installed</td>
4186- </tr>
4187- <tr>
4188- <td class="label">libbfb0</td>
4189- <td>Installed</td>
4190- </tr>
4191- <tr>
4192- <td class="label">libbind9-80</td>
4193- <td>Installed</td>
4194- </tr>
4195- <tr>
4196- <td class="label">libbit-vector-perl</td>
4197- <td>Installed</td>
4198- </tr>
4199- <tr>
4200- <td class="label">libblas3gf</td>
4201- <td>Installed</td>
4202- </tr>
4203- <tr>
4204- <td class="label">libblkid1</td>
4205- <td>Installed</td>
4206- </tr>
4207- <tr>
4208- <td class="label">libbluetooth3</td>
4209- <td>Installed</td>
4210- </tr>
4211- <tr>
4212- <td class="label">libbluray1</td>
4213- <td>Installed</td>
4214- </tr>
4215- <tr>
4216- <td class="label">libbonobo2-0</td>
4217- <td>Installed</td>
4218- </tr>
4219- <tr>
4220- <td class="label">libbonobo2-common</td>
4221- <td>Installed</td>
4222- </tr>
4223- <tr>
4224- <td class="label">libbonoboui2-0</td>
4225- <td>Installed</td>
4226- </tr>
4227- <tr>
4228- <td class="label">libbonoboui2-common</td>
4229- <td>Installed</td>
4230- </tr>
4231- <tr>
4232- <td class="label">libboost-serialization1.46.1</td>
4233- <td>Installed</td>
4234- </tr>
4235- <tr>
4236- <td class="label">libbrasero-media3-1</td>
4237- <td>Installed</td>
4238- </tr>
4239- <tr>
4240- <td class="label">libbrlapi0.5</td>
4241- <td>Installed</td>
4242- </tr>
4243- <tr>
4244- <td class="label">libbsd0</td>
4245- <td>Installed</td>
4246- </tr>
4247- <tr>
4248- <td class="label">libburn4</td>
4249- <td>Installed</td>
4250- </tr>
4251- <tr>
4252- <td class="label">libbz2-1.0</td>
4253- <td>Installed</td>
4254- </tr>
4255- <tr>
4256- <td class="label">libbz2-1.0:i386</td>
4257- <td>Installed</td>
4258- </tr>
4259- <tr>
4260- <td class="label">libc-bin</td>
4261- <td>Installed</td>
4262- </tr>
4263- <tr>
4264- <td class="label">libc-dev-bin</td>
4265- <td>Installed</td>
4266- </tr>
4267- <tr>
4268- <td class="label">libc6</td>
4269- <td>Installed</td>
4270- </tr>
4271- <tr>
4272- <td class="label">libc6:i386</td>
4273- <td>Installed</td>
4274- </tr>
4275- <tr>
4276- <td class="label">libc6-dev</td>
4277- <td>Installed</td>
4278- </tr>
4279- <tr>
4280- <td class="label">libcaca0</td>
4281- <td>Installed</td>
4282- </tr>
4283- <tr>
4284- <td class="label">libcaca0:i386</td>
4285- <td>Installed</td>
4286- </tr>
4287- <tr>
4288- <td class="label">libcairo-gobject2</td>
4289- <td>Installed</td>
4290- </tr>
4291- <tr>
4292- <td class="label">libcairo-gobject2:i386</td>
4293- <td>Installed</td>
4294- </tr>
4295- <tr>
4296- <td class="label">libcairo-perl</td>
4297- <td>Installed</td>
4298- </tr>
4299- <tr>
4300- <td class="label">libcairo-script-interpreter2</td>
4301- <td>Installed</td>
4302- </tr>
4303- <tr>
4304- <td class="label">libcairo2</td>
4305- <td>Installed</td>
4306- </tr>
4307- <tr>
4308- <td class="label">libcairo2:i386</td>
4309- <td>Installed</td>
4310- </tr>
4311- <tr>
4312- <td class="label">libcairo2-dev</td>
4313- <td>Installed</td>
4314- </tr>
4315- <tr>
4316- <td class="label">libcairomm-1.0-1</td>
4317- <td>Installed</td>
4318- </tr>
4319- <tr>
4320- <td class="label">libcamel-1.2-29</td>
4321- <td>Installed</td>
4322- </tr>
4323- <tr>
4324- <td class="label">libcanberra-gtk-module</td>
4325- <td>Installed</td>
4326- </tr>
4327- <tr>
4328- <td class="label">libcanberra-gtk-module:i386</td>
4329- <td>Installed</td>
4330- </tr>
4331- <tr>
4332- <td class="label">libcanberra-gtk0</td>
4333- <td>Installed</td>
4334- </tr>
4335- <tr>
4336- <td class="label">libcanberra-gtk0:i386</td>
4337- <td>Installed</td>
4338- </tr>
4339- <tr>
4340- <td class="label">libcanberra-gtk3-0</td>
4341- <td>Installed</td>
4342- </tr>
4343- <tr>
4344- <td class="label">libcanberra-gtk3-module</td>
4345- <td>Installed</td>
4346- </tr>
4347- <tr>
4348- <td class="label">libcanberra-pulse</td>
4349- <td>Installed</td>
4350- </tr>
4351- <tr>
4352- <td class="label">libcanberra0</td>
4353- <td>Installed</td>
4354- </tr>
4355- <tr>
4356- <td class="label">libcanberra0:i386</td>
4357- <td>Installed</td>
4358- </tr>
4359- <tr>
4360- <td class="label">libcap-ng0</td>
4361- <td>Installed</td>
4362- </tr>
4363- <tr>
4364- <td class="label">libcap2</td>
4365- <td>Installed</td>
4366- </tr>
4367- <tr>
4368- <td class="label">libcap2:i386</td>
4369- <td>Installed</td>
4370- </tr>
4371- <tr>
4372- <td class="label">libcap2-bin</td>
4373- <td>Installed</td>
4374- </tr>
4375- <tr>
4376- <td class="label">libcapi20-3:i386</td>
4377- <td>Installed</td>
4378- </tr>
4379- <tr>
4380- <td class="label">libcaribou-common</td>
4381- <td>Installed</td>
4382- </tr>
4383- <tr>
4384- <td class="label">libcaribou0</td>
4385- <td>Installed</td>
4386- </tr>
4387- <tr>
4388- <td class="label">libcarp-clan-perl</td>
4389- <td>Installed</td>
4390- </tr>
4391- <tr>
4392- <td class="label">libcdaudio1</td>
4393- <td>Installed</td>
4394- </tr>
4395- <tr>
4396- <td class="label">libcddb2</td>
4397- <td>Installed</td>
4398- </tr>
4399- <tr>
4400- <td class="label">libcdio-cdda1</td>
4401- <td>Installed</td>
4402- </tr>
4403- <tr>
4404- <td class="label">libcdio-paranoia1</td>
4405- <td>Installed</td>
4406- </tr>
4407- <tr>
4408- <td class="label">libcdio13</td>
4409- <td>Installed</td>
4410- </tr>
4411- <tr>
4412- <td class="label">libcdparanoia0</td>
4413- <td>Installed</td>
4414- </tr>
4415- <tr>
4416- <td class="label">libcdparanoia0:i386</td>
4417- <td>Installed</td>
4418- </tr>
4419- <tr>
4420- <td class="label">libcdt4</td>
4421- <td>Installed</td>
4422- </tr>
4423- <tr>
4424- <td class="label">libcelt0-0</td>
4425- <td>Installed</td>
4426- </tr>
4427- <tr>
4428- <td class="label">libcgraph5</td>
4429- <td>Installed</td>
4430- </tr>
4431- <tr>
4432- <td class="label">libcheese-gtk21</td>
4433- <td>Installed</td>
4434- </tr>
4435- <tr>
4436- <td class="label">libcheese3</td>
4437- <td>Installed</td>
4438- </tr>
4439- <tr>
4440- <td class="label">libck-connector0</td>
4441- <td>Installed</td>
4442- </tr>
4443- <tr>
4444- <td class="label">libclass-accessor-perl</td>
4445- <td>Installed</td>
4446- </tr>
4447- <tr>
4448- <td class="label">libclass-isa-perl</td>
4449- <td>Installed</td>
4450- </tr>
4451- <tr>
4452- <td class="label">libclone-perl</td>
4453- <td>Installed</td>
4454- </tr>
4455- <tr>
4456- <td class="label">libclutter-1.0-0</td>
4457- <td>Installed</td>
4458- </tr>
4459- <tr>
4460- <td class="label">libclutter-1.0-common</td>
4461- <td>Installed</td>
4462- </tr>
4463- <tr>
4464- <td class="label">libclutter-gst-1.0-0</td>
4465- <td>Installed</td>
4466- </tr>
4467- <tr>
4468- <td class="label">libclutter-gtk-1.0-0</td>
4469- <td>Installed</td>
4470- </tr>
4471- <tr>
4472- <td class="label">libclutter-imcontext-0.1-0</td>
4473- <td>Installed</td>
4474- </tr>
4475- <tr>
4476- <td class="label">libcluttergesture-0.0.2-0</td>
4477- <td>Installed</td>
4478- </tr>
4479- <tr>
4480- <td class="label">libcmis-0.2-0</td>
4481- <td>Installed</td>
4482- </tr>
4483- <tr>
4484- <td class="label">libcogl-common</td>
4485- <td>Installed</td>
4486- </tr>
4487- <tr>
4488- <td class="label">libcogl-pango0</td>
4489- <td>Installed</td>
4490- </tr>
4491- <tr>
4492- <td class="label">libcogl9</td>
4493- <td>Installed</td>
4494- </tr>
4495- <tr>
4496- <td class="label">libcolord1</td>
4497- <td>Installed</td>
4498- </tr>
4499- <tr>
4500- <td class="label">libcomerr2</td>
4501- <td>Installed</td>
4502- </tr>
4503- <tr>
4504- <td class="label">libcomerr2:i386</td>
4505- <td>Installed</td>
4506- </tr>
4507- <tr>
4508- <td class="label">libcommon-sense-perl</td>
4509- <td>Installed</td>
4510- </tr>
4511- <tr>
4512- <td class="label">libcompizconfig0</td>
4513- <td>Installed</td>
4514- </tr>
4515- <tr>
4516- <td class="label">libconfig-file-perl</td>
4517- <td>Installed</td>
4518- </tr>
4519- <tr>
4520- <td class="label">libcroco3</td>
4521- <td>Installed</td>
4522- </tr>
4523- <tr>
4524- <td class="label">libcroco3:i386</td>
4525- <td>Installed</td>
4526- </tr>
4527- <tr>
4528- <td class="label">libcrypt-passwdmd5-perl</td>
4529- <td>Installed</td>
4530- </tr>
4531- <tr>
4532- <td class="label">libcrypt-ssleay-perl</td>
4533- <td>Installed</td>
4534- </tr>
4535- <tr>
4536- <td class="label">libcryptsetup4</td>
4537- <td>Installed</td>
4538- </tr>
4539- <tr>
4540- <td class="label">libcrystalhd3</td>
4541- <td>Installed</td>
4542- </tr>
4543- <tr>
4544- <td class="label">libcups2</td>
4545- <td>Installed</td>
4546- </tr>
4547- <tr>
4548- <td class="label">libcups2:i386</td>
4549- <td>Installed</td>
4550- </tr>
4551- <tr>
4552- <td class="label">libcupscgi1</td>
4553- <td>Installed</td>
4554- </tr>
4555- <tr>
4556- <td class="label">libcupsdriver1</td>
4557- <td>Installed</td>
4558- </tr>
4559- <tr>
4560- <td class="label">libcupsfilters1</td>
4561- <td>Installed</td>
4562- </tr>
4563- <tr>
4564- <td class="label">libcupsimage2</td>
4565- <td>Installed</td>
4566- </tr>
4567- <tr>
4568- <td class="label">libcupsimage2:i386</td>
4569- <td>Installed</td>
4570- </tr>
4571- <tr>
4572- <td class="label">libcupsmime1</td>
4573- <td>Installed</td>
4574- </tr>
4575- <tr>
4576- <td class="label">libcupsppdc1</td>
4577- <td>Installed</td>
4578- </tr>
4579- <tr>
4580- <td class="label">libcurl3</td>
4581- <td>Installed</td>
4582- </tr>
4583- <tr>
4584- <td class="label">libcurl3:i386</td>
4585- <td>Installed</td>
4586- </tr>
4587- <tr>
4588- <td class="label">libcurl3-gnutls</td>
4589- <td>Installed</td>
4590- </tr>
4591- <tr>
4592- <td class="label">libcurl3-nss</td>
4593- <td>Installed</td>
4594- </tr>
4595- <tr>
4596- <td class="label">libdaemon0</td>
4597- <td>Installed</td>
4598- </tr>
4599- <tr>
4600- <td class="label">libdate-calc-perl</td>
4601- <td>Installed</td>
4602- </tr>
4603- <tr>
4604- <td class="label">libdate-calc-xs-perl</td>
4605- <td>Installed</td>
4606- </tr>
4607- <tr>
4608- <td class="label">libdate-manip-perl</td>
4609- <td>Installed</td>
4610- </tr>
4611- <tr>
4612- <td class="label">libdatrie1</td>
4613- <td>Installed</td>
4614- </tr>
4615- <tr>
4616- <td class="label">libdatrie1:i386</td>
4617- <td>Installed</td>
4618- </tr>
4619- <tr>
4620- <td class="label">libdb5.1</td>
4621- <td>Installed</td>
4622- </tr>
4623- <tr>
4624- <td class="label">libdb5.1:i386</td>
4625- <td>Installed</td>
4626- </tr>
4627- <tr>
4628- <td class="label">libdbus-1-3</td>
4629- <td>Installed</td>
4630- </tr>
4631- <tr>
4632- <td class="label">libdbus-1-3:i386</td>
4633- <td>Installed</td>
4634- </tr>
4635- <tr>
4636- <td class="label">libdbus-glib-1-2</td>
4637- <td>Installed</td>
4638- </tr>
4639- <tr>
4640- <td class="label">libdbus-glib-1-2:i386</td>
4641- <td>Installed</td>
4642- </tr>
4643- <tr>
4644- <td class="label">libdbusmenu-glib4</td>
4645- <td>Installed</td>
4646- </tr>
4647- <tr>
4648- <td class="label">libdbusmenu-gtk3-4</td>
4649- <td>Installed</td>
4650- </tr>
4651- <tr>
4652- <td class="label">libdbusmenu-gtk4</td>
4653- <td>Installed</td>
4654- </tr>
4655- <tr>
4656- <td class="label">libdbusmenu-qt2</td>
4657- <td>Installed</td>
4658- </tr>
4659- <tr>
4660- <td class="label">libdc1394-22</td>
4661- <td>Installed</td>
4662- </tr>
4663- <tr>
4664- <td class="label">libdca0</td>
4665- <td>Installed</td>
4666- </tr>
4667- <tr>
4668- <td class="label">libdconf-dbus-1-0</td>
4669- <td>Installed</td>
4670- </tr>
4671- <tr>
4672- <td class="label">libdconf-qt0</td>
4673- <td>Installed</td>
4674- </tr>
4675- <tr>
4676- <td class="label">libdconf0</td>
4677- <td>Installed</td>
4678- </tr>
4679- <tr>
4680- <td class="label">libdecoration0</td>
4681- <td>Installed</td>
4682- </tr>
4683- <tr>
4684- <td class="label">libdee-1.0-4</td>
4685- <td>Installed</td>
4686- </tr>
4687- <tr>
4688- <td class="label">libdevhelp-3-0</td>
4689- <td>Installed</td>
4690- </tr>
4691- <tr>
4692- <td class="label">libdevmapper-event1.02.1</td>
4693- <td>Installed</td>
4694- </tr>
4695- <tr>
4696- <td class="label">libdevmapper1.02.1</td>
4697- <td>Installed</td>
4698- </tr>
4699- <tr>
4700- <td class="label">libdigest-hmac-perl</td>
4701- <td>Installed</td>
4702- </tr>
4703- <tr>
4704- <td class="label">libdirac-encoder0</td>
4705- <td>Installed</td>
4706- </tr>
4707- <tr>
4708- <td class="label">libdirectfb-1.2-9</td>
4709- <td>Installed</td>
4710- </tr>
4711- <tr>
4712- <td class="label">libdiscid0</td>
4713- <td>Installed</td>
4714- </tr>
4715- <tr>
4716- <td class="label">libdjvulibre-text</td>
4717- <td>Installed</td>
4718- </tr>
4719- <tr>
4720- <td class="label">libdjvulibre21</td>
4721- <td>Installed</td>
4722- </tr>
4723- <tr>
4724- <td class="label">libdmapsharing-3.0-2</td>
4725- <td>Installed</td>
4726- </tr>
4727- <tr>
4728- <td class="label">libdns81</td>
4729- <td>Installed</td>
4730- </tr>
4731- <tr>
4732- <td class="label">libdotconf1.0</td>
4733- <td>Installed</td>
4734- </tr>
4735- <tr>
4736- <td class="label">libdpkg-perl</td>
4737- <td>Installed</td>
4738- </tr>
4739- <tr>
4740- <td class="label">libdrm-dev</td>
4741- <td>Installed</td>
4742- </tr>
4743- <tr>
4744- <td class="label">libdrm-intel1</td>
4745- <td>Installed</td>
4746- </tr>
4747- <tr>
4748- <td class="label">libdrm-intel1:i386</td>
4749- <td>Installed</td>
4750- </tr>
4751- <tr>
4752- <td class="label">libdrm-nouveau1a</td>
4753- <td>Installed</td>
4754- </tr>
4755- <tr>
4756- <td class="label">libdrm-nouveau1a:i386</td>
4757- <td>Installed</td>
4758- </tr>
4759- <tr>
4760- <td class="label">libdrm-radeon1</td>
4761- <td>Installed</td>
4762- </tr>
4763- <tr>
4764- <td class="label">libdrm-radeon1:i386</td>
4765- <td>Installed</td>
4766- </tr>
4767- <tr>
4768- <td class="label">libdrm2</td>
4769- <td>Installed</td>
4770- </tr>
4771- <tr>
4772- <td class="label">libdrm2:i386</td>
4773- <td>Installed</td>
4774- </tr>
4775- <tr>
4776- <td class="label">libdv4</td>
4777- <td>Installed</td>
4778- </tr>
4779- <tr>
4780- <td class="label">libdv4:i386</td>
4781- <td>Installed</td>
4782- </tr>
4783- <tr>
4784- <td class="label">libdvbpsi7</td>
4785- <td>Installed</td>
4786- </tr>
4787- <tr>
4788- <td class="label">libdvdcss2</td>
4789- <td>Installed</td>
4790- </tr>
4791- <tr>
4792- <td class="label">libdvdnav4</td>
4793- <td>Installed</td>
4794- </tr>
4795- <tr>
4796- <td class="label">libdvdread4</td>
4797- <td>Installed</td>
4798- </tr>
4799- <tr>
4800- <td class="label">libebackend-1.2-1</td>
4801- <td>Installed</td>
4802- </tr>
4803- <tr>
4804- <td class="label">libebml3</td>
4805- <td>Installed</td>
4806- </tr>
4807- <tr>
4808- <td class="label">libebook-1.2-12</td>
4809- <td>Installed</td>
4810- </tr>
4811- <tr>
4812- <td class="label">libecal-1.2-10</td>
4813- <td>Installed</td>
4814- </tr>
4815- <tr>
4816- <td class="label">libedata-book-1.2-11</td>
4817- <td>Installed</td>
4818- </tr>
4819- <tr>
4820- <td class="label">libedata-cal-1.2-13</td>
4821- <td>Installed</td>
4822- </tr>
4823- <tr>
4824- <td class="label">libedataserver-1.2-15</td>
4825- <td>Installed</td>
4826- </tr>
4827- <tr>
4828- <td class="label">libedataserverui-3.0-1</td>
4829- <td>Installed</td>
4830- </tr>
4831- <tr>
4832- <td class="label">libedit2</td>
4833- <td>Installed</td>
4834- </tr>
4835- <tr>
4836- <td class="label">libegl1-mesa</td>
4837- <td>Installed</td>
4838- </tr>
4839- <tr>
4840- <td class="label">libegl1-mesa-dev</td>
4841- <td>Installed</td>
4842- </tr>
4843- <tr>
4844- <td class="label">libegl1-mesa-drivers</td>
4845- <td>Installed</td>
4846- </tr>
4847- <tr>
4848- <td class="label">libelf1</td>
4849- <td>Installed</td>
4850- </tr>
4851- <tr>
4852- <td class="label">libelf1:i386</td>
4853- <td>Installed</td>
4854- </tr>
4855- <tr>
4856- <td class="label">libemail-valid-perl</td>
4857- <td>Installed</td>
4858- </tr>
4859- <tr>
4860- <td class="label">libenca0</td>
4861- <td>Installed</td>
4862- </tr>
4863- <tr>
4864- <td class="label">libenchant1c2a</td>
4865- <td>Installed</td>
4866- </tr>
4867- <tr>
4868- <td class="label">libencode-locale-perl</td>
4869- <td>Installed</td>
4870- </tr>
4871- <tr>
4872- <td class="label">libept1.4.12</td>
4873- <td>Installed</td>
4874- </tr>
4875- <tr>
4876- <td class="label">liberror-perl</td>
4877- <td>Installed</td>
4878- </tr>
4879- <tr>
4880- <td class="label">libesd0</td>
4881- <td>Installed</td>
4882- </tr>
4883- <tr>
4884- <td class="label">libesd0:i386</td>
4885- <td>Installed</td>
4886- </tr>
4887- <tr>
4888- <td class="label">libespeak1</td>
4889- <td>Installed</td>
4890- </tr>
4891- <tr>
4892- <td class="label">libevent-2.0-5</td>
4893- <td>Installed</td>
4894- </tr>
4895- <tr>
4896- <td class="label">libevince3-3</td>
4897- <td>Installed</td>
4898- </tr>
4899- <tr>
4900- <td class="label">libexempi3</td>
4901- <td>Installed</td>
4902- </tr>
4903- <tr>
4904- <td class="label">libexif12</td>
4905- <td>Installed</td>
4906- </tr>
4907- <tr>
4908- <td class="label">libexif12:i386</td>
4909- <td>Installed</td>
4910- </tr>
4911- <tr>
4912- <td class="label">libexiv2-11</td>
4913- <td>Installed</td>
4914- </tr>
4915- <tr>
4916- <td class="label">libexpat1</td>
4917- <td>Installed</td>
4918- </tr>
4919- <tr>
4920- <td class="label">libexpat1:i386</td>
4921- <td>Installed</td>
4922- </tr>
4923- <tr>
4924- <td class="label">libexpat1-dev</td>
4925- <td>Installed</td>
4926- </tr>
4927- <tr>
4928- <td class="label">libexplain30</td>
4929- <td>Installed</td>
4930- </tr>
4931- <tr>
4932- <td class="label">libexporter-lite-perl</td>
4933- <td>Installed</td>
4934- </tr>
4935- <tr>
4936- <td class="label">libexttextcat-data</td>
4937- <td>Installed</td>
4938- </tr>
4939- <tr>
4940- <td class="label">libexttextcat0</td>
4941- <td>Installed</td>
4942- </tr>
4943- <tr>
4944- <td class="label">libextutils-depends-perl</td>
4945- <td>Installed</td>
4946- </tr>
4947- <tr>
4948- <td class="label">libextutils-pkgconfig-perl</td>
4949- <td>Installed</td>
4950- </tr>
4951- <tr>
4952- <td class="label">libfaad2</td>
4953- <td>Installed</td>
4954- </tr>
4955- <tr>
4956- <td class="label">libfarstream-0.1-0</td>
4957- <td>Installed</td>
4958- </tr>
4959- <tr>
4960- <td class="label">libffi-dev</td>
4961- <td>Installed</td>
4962- </tr>
4963- <tr>
4964- <td class="label">libffi6</td>
4965- <td>Installed</td>
4966- </tr>
4967- <tr>
4968- <td class="label">libffi6:i386</td>
4969- <td>Installed</td>
4970- </tr>
4971- <tr>
4972- <td class="label">libfftw3-3</td>
4973- <td>Installed</td>
4974- </tr>
4975- <tr>
4976- <td class="label">libfile-basedir-perl</td>
4977- <td>Installed</td>
4978- </tr>
4979- <tr>
4980- <td class="label">libfile-copy-recursive-perl</td>
4981- <td>Installed</td>
4982- </tr>
4983- <tr>
4984- <td class="label">libfile-desktopentry-perl</td>
4985- <td>Installed</td>
4986- </tr>
4987- <tr>
4988- <td class="label">libfile-listing-perl</td>
4989- <td>Installed</td>
4990- </tr>
4991- <tr>
4992- <td class="label">libfile-mimeinfo-perl</td>
4993- <td>Installed</td>
4994- </tr>
4995- <tr>
4996- <td class="label">libfile-which-perl</td>
4997- <td>Installed</td>
4998- </tr>
4999- <tr>
5000- <td class="label">libfl-dev</td>
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches