Merge lp:~cpug-devs/cpug/devel-0.11 into lp:cpug

Proposed by schmoemi
Status: Merged
Merged at revision: 8
Proposed branch: lp:~cpug-devs/cpug/devel-0.11
Merge into: lp:cpug
Diff against target: 2581 lines (+2377/-0) (has conflicts)
10 files modified
.bzrignore (+1/-0)
LICENSE (+620/-0)
README (+6/-0)
TODO (+18/-0)
cpu-g.desktop (+13/-0)
cpu-g.glade (+1194/-0)
cpu-g.py (+475/-0)
doc/cpu-g.1 (+19/-0)
setup.cfg (+7/-0)
setup.py (+24/-0)
Conflict adding file README.  Moved existing file to README.moved.
Conflict adding file TODO.  Moved existing file to TODO.moved.
Conflict adding file cpu-g.glade.  Moved existing file to cpu-g.glade.moved.
Conflict adding file cpu-g.py.  Moved existing file to cpu-g.py.moved.
To merge this branch: bzr merge lp:~cpug-devs/cpug/devel-0.11
Reviewer Review Type Date Requested Status
eloaders (community) Approve
MichaƂ Olber Pending
Review via email: mp+73477@code.launchpad.net
To post a comment you must log in.
Revision history for this message
eloaders (eloaders) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.bzrignore'
2--- .bzrignore 1970-01-01 00:00:00 +0000
3+++ .bzrignore 2011-08-31 01:58:22 +0000
4@@ -0,0 +1,1 @@
5+cpu-g
6
7=== added file 'LICENSE'
8--- LICENSE 1970-01-01 00:00:00 +0000
9+++ LICENSE 2011-08-31 01:58:22 +0000
10@@ -0,0 +1,620 @@
11+
12+ GNU GENERAL PUBLIC LICENSE
13+ Version 3, 29 June 2007
14+
15+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
16+ Everyone is permitted to copy and distribute verbatim copies
17+ of this license document, but changing it is not allowed.
18+
19+ Preamble
20+
21+ The GNU General Public License is a free, copyleft license for
22+software and other kinds of works.
23+
24+ The licenses for most software and other practical works are designed
25+to take away your freedom to share and change the works. By contrast,
26+the GNU General Public License is intended to guarantee your freedom to
27+share and change all versions of a program--to make sure it remains free
28+software for all its users. We, the Free Software Foundation, use the
29+GNU General Public License for most of our software; it applies also to
30+any other work released this way by its authors. You can apply it to
31+your programs, too.
32+
33+ When we speak of free software, we are referring to freedom, not
34+price. Our General Public Licenses are designed to make sure that you
35+have the freedom to distribute copies of free software (and charge for
36+them if you wish), that you receive source code or can get it if you
37+want it, that you can change the software or use pieces of it in new
38+free programs, and that you know you can do these things.
39+
40+ To protect your rights, we need to prevent others from denying you
41+these rights or asking you to surrender the rights. Therefore, you have
42+certain responsibilities if you distribute copies of the software, or if
43+you modify it: responsibilities to respect the freedom of others.
44+
45+ For example, if you distribute copies of such a program, whether
46+gratis or for a fee, you must pass on to the recipients the same
47+freedoms that you received. You must make sure that they, too, receive
48+or can get the source code. And you must show them these terms so they
49+know their rights.
50+
51+ Developers that use the GNU GPL protect your rights with two steps:
52+(1) assert copyright on the software, and (2) offer you this License
53+giving you legal permission to copy, distribute and/or modify it.
54+
55+ For the developers' and authors' protection, the GPL clearly explains
56+that there is no warranty for this free software. For both users' and
57+authors' sake, the GPL requires that modified versions be marked as
58+changed, so that their problems will not be attributed erroneously to
59+authors of previous versions.
60+
61+ Some devices are designed to deny users access to install or run
62+modified versions of the software inside them, although the manufacturer
63+can do so. This is fundamentally incompatible with the aim of
64+protecting users' freedom to change the software. The systematic
65+pattern of such abuse occurs in the area of products for individuals to
66+use, which is precisely where it is most unacceptable. Therefore, we
67+have designed this version of the GPL to prohibit the practice for those
68+products. If such problems arise substantially in other domains, we
69+stand ready to extend this provision to those domains in future versions
70+of the GPL, as needed to protect the freedom of users.
71+
72+ Finally, every program is threatened constantly by software patents.
73+States should not allow patents to restrict development and use of
74+software on general-purpose computers, but in those that do, we wish to
75+avoid the special danger that patents applied to a free program could
76+make it effectively proprietary. To prevent this, the GPL assures that
77+patents cannot be used to render the program non-free.
78+
79+ The precise terms and conditions for copying, distribution and
80+modification follow.
81+
82+ TERMS AND CONDITIONS
83+
84+ 0. Definitions.
85+
86+ "This License" refers to version 3 of the GNU General Public License.
87+
88+ "Copyright" also means copyright-like laws that apply to other kinds of
89+works, such as semiconductor masks.
90+
91+ "The Program" refers to any copyrightable work licensed under this
92+License. Each licensee is addressed as "you". "Licensees" and
93+"recipients" may be individuals or organizations.
94+
95+ To "modify" a work means to copy from or adapt all or part of the work
96+in a fashion requiring copyright permission, other than the making of an
97+exact copy. The resulting work is called a "modified version" of the
98+earlier work or a work "based on" the earlier work.
99+
100+ A "covered work" means either the unmodified Program or a work based
101+on the Program.
102+
103+ To "propagate" a work means to do anything with it that, without
104+permission, would make you directly or secondarily liable for
105+infringement under applicable copyright law, except executing it on a
106+computer or modifying a private copy. Propagation includes copying,
107+distribution (with or without modification), making available to the
108+public, and in some countries other activities as well.
109+
110+ To "convey" a work means any kind of propagation that enables other
111+parties to make or receive copies. Mere interaction with a user through
112+a computer network, with no transfer of a copy, is not conveying.
113+
114+ An interactive user interface displays "Appropriate Legal Notices"
115+to the extent that it includes a convenient and prominently visible
116+feature that (1) displays an appropriate copyright notice, and (2)
117+tells the user that there is no warranty for the work (except to the
118+extent that warranties are provided), that licensees may convey the
119+work under this License, and how to view a copy of this License. If
120+the interface presents a list of user commands or options, such as a
121+menu, a prominent item in the list meets this criterion.
122+
123+ 1. Source Code.
124+
125+ The "source code" for a work means the preferred form of the work
126+for making modifications to it. "Object code" means any non-source
127+form of a work.
128+
129+ A "Standard Interface" means an interface that either is an official
130+standard defined by a recognized standards body, or, in the case of
131+interfaces specified for a particular programming language, one that
132+is widely used among developers working in that language.
133+
134+ The "System Libraries" of an executable work include anything, other
135+than the work as a whole, that (a) is included in the normal form of
136+packaging a Major Component, but which is not part of that Major
137+Component, and (b) serves only to enable use of the work with that
138+Major Component, or to implement a Standard Interface for which an
139+implementation is available to the public in source code form. A
140+"Major Component", in this context, means a major essential component
141+(kernel, window system, and so on) of the specific operating system
142+(if any) on which the executable work runs, or a compiler used to
143+produce the work, or an object code interpreter used to run it.
144+
145+ The "Corresponding Source" for a work in object code form means all
146+the source code needed to generate, install, and (for an executable
147+work) run the object code and to modify the work, including scripts to
148+control those activities. However, it does not include the work's
149+System Libraries, or general-purpose tools or generally available free
150+programs which are used unmodified in performing those activities but
151+which are not part of the work. For example, Corresponding Source
152+includes interface definition files associated with source files for
153+the work, and the source code for shared libraries and dynamically
154+linked subprograms that the work is specifically designed to require,
155+such as by intimate data communication or control flow between those
156+subprograms and other parts of the work.
157+
158+ The Corresponding Source need not include anything that users
159+can regenerate automatically from other parts of the Corresponding
160+Source.
161+
162+ The Corresponding Source for a work in source code form is that
163+same work.
164+
165+ 2. Basic Permissions.
166+
167+ All rights granted under this License are granted for the term of
168+copyright on the Program, and are irrevocable provided the stated
169+conditions are met. This License explicitly affirms your unlimited
170+permission to run the unmodified Program. The output from running a
171+covered work is covered by this License only if the output, given its
172+content, constitutes a covered work. This License acknowledges your
173+rights of fair use or other equivalent, as provided by copyright law.
174+
175+ You may make, run and propagate covered works that you do not
176+convey, without conditions so long as your license otherwise remains
177+in force. You may convey covered works to others for the sole purpose
178+of having them make modifications exclusively for you, or provide you
179+with facilities for running those works, provided that you comply with
180+the terms of this License in conveying all material for which you do
181+not control copyright. Those thus making or running the covered works
182+for you must do so exclusively on your behalf, under your direction
183+and control, on terms that prohibit them from making any copies of
184+your copyrighted material outside their relationship with you.
185+
186+ Conveying under any other circumstances is permitted solely under
187+the conditions stated below. Sublicensing is not allowed; section 10
188+makes it unnecessary.
189+
190+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
191+
192+ No covered work shall be deemed part of an effective technological
193+measure under any applicable law fulfilling obligations under article
194+11 of the WIPO copyright treaty adopted on 20 December 1996, or
195+similar laws prohibiting or restricting circumvention of such
196+measures.
197+
198+ When you convey a covered work, you waive any legal power to forbid
199+circumvention of technological measures to the extent such circumvention
200+is effected by exercising rights under this License with respect to
201+the covered work, and you disclaim any intention to limit operation or
202+modification of the work as a means of enforcing, against the work's
203+users, your or third parties' legal rights to forbid circumvention of
204+technological measures.
205+
206+ 4. Conveying Verbatim Copies.
207+
208+ You may convey verbatim copies of the Program's source code as you
209+receive it, in any medium, provided that you conspicuously and
210+appropriately publish on each copy an appropriate copyright notice;
211+keep intact all notices stating that this License and any
212+non-permissive terms added in accord with section 7 apply to the code;
213+keep intact all notices of the absence of any warranty; and give all
214+recipients a copy of this License along with the Program.
215+
216+ You may charge any price or no price for each copy that you convey,
217+and you may offer support or warranty protection for a fee.
218+
219+ 5. Conveying Modified Source Versions.
220+
221+ You may convey a work based on the Program, or the modifications to
222+produce it from the Program, in the form of source code under the
223+terms of section 4, provided that you also meet all of these conditions:
224+
225+ a) The work must carry prominent notices stating that you modified
226+ it, and giving a relevant date.
227+
228+ b) The work must carry prominent notices stating that it is
229+ released under this License and any conditions added under section
230+ 7. This requirement modifies the requirement in section 4 to
231+ "keep intact all notices".
232+
233+ c) You must license the entire work, as a whole, under this
234+ License to anyone who comes into possession of a copy. This
235+ License will therefore apply, along with any applicable section 7
236+ additional terms, to the whole of the work, and all its parts,
237+ regardless of how they are packaged. This License gives no
238+ permission to license the work in any other way, but it does not
239+ invalidate such permission if you have separately received it.
240+
241+ d) If the work has interactive user interfaces, each must display
242+ Appropriate Legal Notices; however, if the Program has interactive
243+ interfaces that do not display Appropriate Legal Notices, your
244+ work need not make them do so.
245+
246+ A compilation of a covered work with other separate and independent
247+works, which are not by their nature extensions of the covered work,
248+and which are not combined with it such as to form a larger program,
249+in or on a volume of a storage or distribution medium, is called an
250+"aggregate" if the compilation and its resulting copyright are not
251+used to limit the access or legal rights of the compilation's users
252+beyond what the individual works permit. Inclusion of a covered work
253+in an aggregate does not cause this License to apply to the other
254+parts of the aggregate.
255+
256+ 6. Conveying Non-Source Forms.
257+
258+ You may convey a covered work in object code form under the terms
259+of sections 4 and 5, provided that you also convey the
260+machine-readable Corresponding Source under the terms of this License,
261+in one of these ways:
262+
263+ a) Convey the object code in, or embodied in, a physical product
264+ (including a physical distribution medium), accompanied by the
265+ Corresponding Source fixed on a durable physical medium
266+ customarily used for software interchange.
267+
268+ b) Convey the object code in, or embodied in, a physical product
269+ (including a physical distribution medium), accompanied by a
270+ written offer, valid for at least three years and valid for as
271+ long as you offer spare parts or customer support for that product
272+ model, to give anyone who possesses the object code either (1) a
273+ copy of the Corresponding Source for all the software in the
274+ product that is covered by this License, on a durable physical
275+ medium customarily used for software interchange, for a price no
276+ more than your reasonable cost of physically performing this
277+ conveying of source, or (2) access to copy the
278+ Corresponding Source from a network server at no charge.
279+
280+ c) Convey individual copies of the object code with a copy of the
281+ written offer to provide the Corresponding Source. This
282+ alternative is allowed only occasionally and noncommercially, and
283+ only if you received the object code with such an offer, in accord
284+ with subsection 6b.
285+
286+ d) Convey the object code by offering access from a designated
287+ place (gratis or for a charge), and offer equivalent access to the
288+ Corresponding Source in the same way through the same place at no
289+ further charge. You need not require recipients to copy the
290+ Corresponding Source along with the object code. If the place to
291+ copy the object code is a network server, the Corresponding Source
292+ may be on a different server (operated by you or a third party)
293+ that supports equivalent copying facilities, provided you maintain
294+ clear directions next to the object code saying where to find the
295+ Corresponding Source. Regardless of what server hosts the
296+ Corresponding Source, you remain obligated to ensure that it is
297+ available for as long as needed to satisfy these requirements.
298+
299+ e) Convey the object code using peer-to-peer transmission, provided
300+ you inform other peers where the object code and Corresponding
301+ Source of the work are being offered to the general public at no
302+ charge under subsection 6d.
303+
304+ A separable portion of the object code, whose source code is excluded
305+from the Corresponding Source as a System Library, need not be
306+included in conveying the object code work.
307+
308+ A "User Product" is either (1) a "consumer product", which means any
309+tangible personal property which is normally used for personal, family,
310+or household purposes, or (2) anything designed or sold for incorporation
311+into a dwelling. In determining whether a product is a consumer product,
312+doubtful cases shall be resolved in favor of coverage. For a particular
313+product received by a particular user, "normally used" refers to a
314+typical or common use of that class of product, regardless of the status
315+of the particular user or of the way in which the particular user
316+actually uses, or expects or is expected to use, the product. A product
317+is a consumer product regardless of whether the product has substantial
318+commercial, industrial or non-consumer uses, unless such uses represent
319+the only significant mode of use of the product.
320+
321+ "Installation Information" for a User Product means any methods,
322+procedures, authorization keys, or other information required to install
323+and execute modified versions of a covered work in that User Product from
324+a modified version of its Corresponding Source. The information must
325+suffice to ensure that the continued functioning of the modified object
326+code is in no case prevented or interfered with solely because
327+modification has been made.
328+
329+ If you convey an object code work under this section in, or with, or
330+specifically for use in, a User Product, and the conveying occurs as
331+part of a transaction in which the right of possession and use of the
332+User Product is transferred to the recipient in perpetuity or for a
333+fixed term (regardless of how the transaction is characterized), the
334+Corresponding Source conveyed under this section must be accompanied
335+by the Installation Information. But this requirement does not apply
336+if neither you nor any third party retains the ability to install
337+modified object code on the User Product (for example, the work has
338+been installed in ROM).
339+
340+ The requirement to provide Installation Information does not include a
341+requirement to continue to provide support service, warranty, or updates
342+for a work that has been modified or installed by the recipient, or for
343+the User Product in which it has been modified or installed. Access to a
344+network may be denied when the modification itself materially and
345+adversely affects the operation of the network or violates the rules and
346+protocols for communication across the network.
347+
348+ Corresponding Source conveyed, and Installation Information provided,
349+in accord with this section must be in a format that is publicly
350+documented (and with an implementation available to the public in
351+source code form), and must require no special password or key for
352+unpacking, reading or copying.
353+
354+ 7. Additional Terms.
355+
356+ "Additional permissions" are terms that supplement the terms of this
357+License by making exceptions from one or more of its conditions.
358+Additional permissions that are applicable to the entire Program shall
359+be treated as though they were included in this License, to the extent
360+that they are valid under applicable law. If additional permissions
361+apply only to part of the Program, that part may be used separately
362+under those permissions, but the entire Program remains governed by
363+this License without regard to the additional permissions.
364+
365+ When you convey a copy of a covered work, you may at your option
366+remove any additional permissions from that copy, or from any part of
367+it. (Additional permissions may be written to require their own
368+removal in certain cases when you modify the work.) You may place
369+additional permissions on material, added by you to a covered work,
370+for which you have or can give appropriate copyright permission.
371+
372+ Notwithstanding any other provision of this License, for material you
373+add to a covered work, you may (if authorized by the copyright holders of
374+that material) supplement the terms of this License with terms:
375+
376+ a) Disclaiming warranty or limiting liability differently from the
377+ terms of sections 15 and 16 of this License; or
378+
379+ b) Requiring preservation of specified reasonable legal notices or
380+ author attributions in that material or in the Appropriate Legal
381+ Notices displayed by works containing it; or
382+
383+ c) Prohibiting misrepresentation of the origin of that material, or
384+ requiring that modified versions of such material be marked in
385+ reasonable ways as different from the original version; or
386+
387+ d) Limiting the use for publicity purposes of names of licensors or
388+ authors of the material; or
389+
390+ e) Declining to grant rights under trademark law for use of some
391+ trade names, trademarks, or service marks; or
392+
393+ f) Requiring indemnification of licensors and authors of that
394+ material by anyone who conveys the material (or modified versions of
395+ it) with contractual assumptions of liability to the recipient, for
396+ any liability that these contractual assumptions directly impose on
397+ those licensors and authors.
398+
399+ All other non-permissive additional terms are considered "further
400+restrictions" within the meaning of section 10. If the Program as you
401+received it, or any part of it, contains a notice stating that it is
402+governed by this License along with a term that is a further
403+restriction, you may remove that term. If a license document contains
404+a further restriction but permits relicensing or conveying under this
405+License, you may add to a covered work material governed by the terms
406+of that license document, provided that the further restriction does
407+not survive such relicensing or conveying.
408+
409+ If you add terms to a covered work in accord with this section, you
410+must place, in the relevant source files, a statement of the
411+additional terms that apply to those files, or a notice indicating
412+where to find the applicable terms.
413+
414+ Additional terms, permissive or non-permissive, may be stated in the
415+form of a separately written license, or stated as exceptions;
416+the above requirements apply either way.
417+
418+ 8. Termination.
419+
420+ You may not propagate or modify a covered work except as expressly
421+provided under this License. Any attempt otherwise to propagate or
422+modify it is void, and will automatically terminate your rights under
423+this License (including any patent licenses granted under the third
424+paragraph of section 11).
425+
426+ However, if you cease all violation of this License, then your
427+license from a particular copyright holder is reinstated (a)
428+provisionally, unless and until the copyright holder explicitly and
429+finally terminates your license, and (b) permanently, if the copyright
430+holder fails to notify you of the violation by some reasonable means
431+prior to 60 days after the cessation.
432+
433+ Moreover, your license from a particular copyright holder is
434+reinstated permanently if the copyright holder notifies you of the
435+violation by some reasonable means, this is the first time you have
436+received notice of violation of this License (for any work) from that
437+copyright holder, and you cure the violation prior to 30 days after
438+your receipt of the notice.
439+
440+ Termination of your rights under this section does not terminate the
441+licenses of parties who have received copies or rights from you under
442+this License. If your rights have been terminated and not permanently
443+reinstated, you do not qualify to receive new licenses for the same
444+material under section 10.
445+
446+ 9. Acceptance Not Required for Having Copies.
447+
448+ You are not required to accept this License in order to receive or
449+run a copy of the Program. Ancillary propagation of a covered work
450+occurring solely as a consequence of using peer-to-peer transmission
451+to receive a copy likewise does not require acceptance. However,
452+nothing other than this License grants you permission to propagate or
453+modify any covered work. These actions infringe copyright if you do
454+not accept this License. Therefore, by modifying or propagating a
455+covered work, you indicate your acceptance of this License to do so.
456+
457+ 10. Automatic Licensing of Downstream Recipients.
458+
459+ Each time you convey a covered work, the recipient automatically
460+receives a license from the original licensors, to run, modify and
461+propagate that work, subject to this License. You are not responsible
462+for enforcing compliance by third parties with this License.
463+
464+ An "entity transaction" is a transaction transferring control of an
465+organization, or substantially all assets of one, or subdividing an
466+organization, or merging organizations. If propagation of a covered
467+work results from an entity transaction, each party to that
468+transaction who receives a copy of the work also receives whatever
469+licenses to the work the party's predecessor in interest had or could
470+give under the previous paragraph, plus a right to possession of the
471+Corresponding Source of the work from the predecessor in interest, if
472+the predecessor has it or can get it with reasonable efforts.
473+
474+ You may not impose any further restrictions on the exercise of the
475+rights granted or affirmed under this License. For example, you may
476+not impose a license fee, royalty, or other charge for exercise of
477+rights granted under this License, and you may not initiate litigation
478+(including a cross-claim or counterclaim in a lawsuit) alleging that
479+any patent claim is infringed by making, using, selling, offering for
480+sale, or importing the Program or any portion of it.
481+
482+ 11. Patents.
483+
484+ A "contributor" is a copyright holder who authorizes use under this
485+License of the Program or a work on which the Program is based. The
486+work thus licensed is called the contributor's "contributor version".
487+
488+ A contributor's "essential patent claims" are all patent claims
489+owned or controlled by the contributor, whether already acquired or
490+hereafter acquired, that would be infringed by some manner, permitted
491+by this License, of making, using, or selling its contributor version,
492+but do not include claims that would be infringed only as a
493+consequence of further modification of the contributor version. For
494+purposes of this definition, "control" includes the right to grant
495+patent sublicenses in a manner consistent with the requirements of
496+this License.
497+
498+ Each contributor grants you a non-exclusive, worldwide, royalty-free
499+patent license under the contributor's essential patent claims, to
500+make, use, sell, offer for sale, import and otherwise run, modify and
501+propagate the contents of its contributor version.
502+
503+ In the following three paragraphs, a "patent license" is any express
504+agreement or commitment, however denominated, not to enforce a patent
505+(such as an express permission to practice a patent or covenant not to
506+sue for patent infringement). To "grant" such a patent license to a
507+party means to make such an agreement or commitment not to enforce a
508+patent against the party.
509+
510+ If you convey a covered work, knowingly relying on a patent license,
511+and the Corresponding Source of the work is not available for anyone
512+to copy, free of charge and under the terms of this License, through a
513+publicly available network server or other readily accessible means,
514+then you must either (1) cause the Corresponding Source to be so
515+available, or (2) arrange to deprive yourself of the benefit of the
516+patent license for this particular work, or (3) arrange, in a manner
517+consistent with the requirements of this License, to extend the patent
518+license to downstream recipients. "Knowingly relying" means you have
519+actual knowledge that, but for the patent license, your conveying the
520+covered work in a country, or your recipient's use of the covered work
521+in a country, would infringe one or more identifiable patents in that
522+country that you have reason to believe are valid.
523+
524+ If, pursuant to or in connection with a single transaction or
525+arrangement, you convey, or propagate by procuring conveyance of, a
526+covered work, and grant a patent license to some of the parties
527+receiving the covered work authorizing them to use, propagate, modify
528+or convey a specific copy of the covered work, then the patent license
529+you grant is automatically extended to all recipients of the covered
530+work and works based on it.
531+
532+ A patent license is "discriminatory" if it does not include within
533+the scope of its coverage, prohibits the exercise of, or is
534+conditioned on the non-exercise of one or more of the rights that are
535+specifically granted under this License. You may not convey a covered
536+work if you are a party to an arrangement with a third party that is
537+in the business of distributing software, under which you make payment
538+to the third party based on the extent of your activity of conveying
539+the work, and under which the third party grants, to any of the
540+parties who would receive the covered work from you, a discriminatory
541+patent license (a) in connection with copies of the covered work
542+conveyed by you (or copies made from those copies), or (b) primarily
543+for and in connection with specific products or compilations that
544+contain the covered work, unless you entered into that arrangement,
545+or that patent license was granted, prior to 28 March 2007.
546+
547+ Nothing in this License shall be construed as excluding or limiting
548+any implied license or other defenses to infringement that may
549+otherwise be available to you under applicable patent law.
550+
551+ 12. No Surrender of Others' Freedom.
552+
553+ If conditions are imposed on you (whether by court order, agreement or
554+otherwise) that contradict the conditions of this License, they do not
555+excuse you from the conditions of this License. If you cannot convey a
556+covered work so as to satisfy simultaneously your obligations under this
557+License and any other pertinent obligations, then as a consequence you may
558+not convey it at all. For example, if you agree to terms that obligate you
559+to collect a royalty for further conveying from those to whom you convey
560+the Program, the only way you could satisfy both those terms and this
561+License would be to refrain entirely from conveying the Program.
562+
563+ 13. Use with the GNU Affero General Public License.
564+
565+ Notwithstanding any other provision of this License, you have
566+permission to link or combine any covered work with a work licensed
567+under version 3 of the GNU Affero General Public License into a single
568+combined work, and to convey the resulting work. The terms of this
569+License will continue to apply to the part which is the covered work,
570+but the special requirements of the GNU Affero General Public License,
571+section 13, concerning interaction through a network will apply to the
572+combination as such.
573+
574+ 14. Revised Versions of this License.
575+
576+ The Free Software Foundation may publish revised and/or new versions of
577+the GNU General Public License from time to time. Such new versions will
578+be similar in spirit to the present version, but may differ in detail to
579+address new problems or concerns.
580+
581+ Each version is given a distinguishing version number. If the
582+Program specifies that a certain numbered version of the GNU General
583+Public License "or any later version" applies to it, you have the
584+option of following the terms and conditions either of that numbered
585+version or of any later version published by the Free Software
586+Foundation. If the Program does not specify a version number of the
587+GNU General Public License, you may choose any version ever published
588+by the Free Software Foundation.
589+
590+ If the Program specifies that a proxy can decide which future
591+versions of the GNU General Public License can be used, that proxy's
592+public statement of acceptance of a version permanently authorizes you
593+to choose that version for the Program.
594+
595+ Later license versions may give you additional or different
596+permissions. However, no additional obligations are imposed on any
597+author or copyright holder as a result of your choosing to follow a
598+later version.
599+
600+ 15. Disclaimer of Warranty.
601+
602+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
603+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
604+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
605+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
606+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
607+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
608+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
609+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
610+
611+ 16. Limitation of Liability.
612+
613+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
614+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
615+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
616+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
617+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
618+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
619+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
620+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
621+SUCH DAMAGES.
622+
623+ 17. Interpretation of Sections 15 and 16.
624+
625+ If the disclaimer of warranty and limitation of liability provided
626+above cannot be given local legal effect according to their terms,
627+reviewing courts shall apply local law that most closely approximates
628+an absolute waiver of all civil liability in connection with the
629+Program, unless a warranty or assumption of liability accompanies a
630+copy of the Program in return for a fee.
631
632=== added file 'README'
633--- README 1970-01-01 00:00:00 +0000
634+++ README 2011-08-31 01:58:22 +0000
635@@ -0,0 +1,6 @@
636+CPU-G 0.11.0
637+by Fotis Tsamis <ftsamis@gmail.com>, Michael Schmöller <schmoemi@users.sourceforge.net>
638+
639+CPU-G is a python and gtk+ application that shows some useful information about your hardware. It collects and displays information about your CPU, Motherboard, some general information about your system and more.
640+
641+Site: http://cpug.sourceforge.net/
642
643=== renamed file 'README' => 'README.moved'
644=== added file 'TODO'
645--- TODO 1970-01-01 00:00:00 +0000
646+++ TODO 2011-08-31 01:58:22 +0000
647@@ -0,0 +1,18 @@
648+* Set Xeon CPU logo
649+* CPU cache
650+ - cache per core <-> shared cache
651+ - no readings from Pentium II/III, Pentium 4
652+* more CPU info
653+ - socket, codename, technology...
654+
655+
656+* Localization
657+* Add support for Multi-CPU systems (currently only single CPU systems supported)
658+* GPU info
659+* more M/B & chipset info
660+* Info on RAM size, clock & timings
661+* Installer
662+...
663+....
664+.....
665+* everything CPU-Z has but CPU-G has not
666
667=== renamed file 'TODO' => 'TODO.moved'
668=== added file 'cpu-g.desktop'
669--- cpu-g.desktop 1970-01-01 00:00:00 +0000
670+++ cpu-g.desktop 2011-08-31 01:58:22 +0000
671@@ -0,0 +1,13 @@
672+#!/usr/bin/env xdg-open
673+
674+[Desktop Entry]
675+Encoding=UTF-8
676+Name=CPU-G
677+TryExec=/usr/bin/cpu-g
678+Exec=/usr/bin/cpu-g
679+Icon=cpu-g
680+StartupNotify=true
681+Terminal=false
682+Type=Application
683+Categories=System;
684+X-KDE-SubstituteUID=true
685
686=== added file 'cpu-g.glade'
687--- cpu-g.glade 1970-01-01 00:00:00 +0000
688+++ cpu-g.glade 2011-08-31 01:58:22 +0000
689@@ -0,0 +1,1194 @@
690+<?xml version="1.0"?>
691+<interface>
692+ <requires lib="gtk+" version="2.16"/>
693+ <!-- interface-naming-policy project-wide -->
694+ <object class="GtkWindow" id="main_window">
695+ <property name="visible">True</property>
696+ <property name="title" translatable="yes" comments="Window title">CPU-G</property>
697+ <property name="window_position">center</property>
698+ <property name="default_width">500</property>
699+ <property name="default_height">500</property>
700+ <property name="icon">gfx/cpu-g_48.png</property>
701+ <signal name="destroy" handler="on_mainwindow_destroy"/>
702+ <child>
703+ <object class="GtkVBox" id="vbox1">
704+ <property name="visible">True</property>
705+ <property name="orientation">vertical</property>
706+ <child>
707+ <object class="GtkNotebook" id="notebook1">
708+ <property name="visible">True</property>
709+ <property name="can_focus">True</property>
710+ <child>
711+ <object class="GtkVBox" id="vbox2">
712+ <property name="visible">True</property>
713+ <property name="orientation">vertical</property>
714+ <property name="spacing">10</property>
715+ <child>
716+ <object class="GtkFrame" id="frame1">
717+ <property name="visible">True</property>
718+ <property name="label_xalign">0</property>
719+ <child>
720+ <object class="GtkAlignment" id="alignment1">
721+ <property name="visible">True</property>
722+ <property name="left_padding">12</property>
723+ <child>
724+ <object class="GtkHBox" id="hbox1">
725+ <property name="visible">True</property>
726+ <child>
727+ <object class="GtkVBox" id="vbox8">
728+ <property name="visible">True</property>
729+ <property name="orientation">vertical</property>
730+ <child>
731+ <object class="GtkTable" id="table2">
732+ <property name="visible">True</property>
733+ <property name="n_rows">4</property>
734+ <property name="n_columns">2</property>
735+ <property name="column_spacing">2</property>
736+ <property name="row_spacing">1</property>
737+ <child>
738+ <object class="GtkLabel" id="label10">
739+ <property name="visible">True</property>
740+ <property name="yalign">0.52999997138977051</property>
741+ <property name="xpad">1</property>
742+ <property name="label" translatable="yes">Vendor</property>
743+ </object>
744+ <packing>
745+ <property name="x_options"></property>
746+ </packing>
747+ </child>
748+ <child>
749+ <object class="GtkLabel" id="label11">
750+ <property name="visible">True</property>
751+ <property name="label" translatable="yes">Name</property>
752+ </object>
753+ <packing>
754+ <property name="top_attach">1</property>
755+ <property name="bottom_attach">2</property>
756+ <property name="x_options"></property>
757+ </packing>
758+ </child>
759+ <child>
760+ <object class="GtkEntry" id="vendor">
761+ <property name="visible">True</property>
762+ <property name="can_focus">True</property>
763+ <property name="editable">False</property>
764+ <property name="invisible_char">&#x2022;</property>
765+ </object>
766+ <packing>
767+ <property name="left_attach">1</property>
768+ <property name="right_attach">2</property>
769+ <property name="y_options"></property>
770+ </packing>
771+ </child>
772+ <child>
773+ <object class="GtkEntry" id="model">
774+ <property name="visible">True</property>
775+ <property name="can_focus">True</property>
776+ <property name="editable">False</property>
777+ <property name="invisible_char">&#x2022;</property>
778+ </object>
779+ <packing>
780+ <property name="left_attach">1</property>
781+ <property name="right_attach">2</property>
782+ <property name="top_attach">1</property>
783+ <property name="bottom_attach">2</property>
784+ <property name="y_options"></property>
785+ </packing>
786+ </child>
787+ <child>
788+ <object class="GtkLabel" id="label22">
789+ <property name="visible">True</property>
790+ <property name="label" translatable="yes">Core clock</property>
791+ </object>
792+ <packing>
793+ <property name="top_attach">2</property>
794+ <property name="bottom_attach">3</property>
795+ <property name="x_options"></property>
796+ </packing>
797+ </child>
798+ <child>
799+ <object class="GtkEntry" id="corespeed">
800+ <property name="visible">True</property>
801+ <property name="can_focus">True</property>
802+ <property name="editable">False</property>
803+ <property name="invisible_char">&#x2022;</property>
804+ </object>
805+ <packing>
806+ <property name="left_attach">1</property>
807+ <property name="right_attach">2</property>
808+ <property name="top_attach">2</property>
809+ <property name="bottom_attach">3</property>
810+ </packing>
811+ </child>
812+ <child>
813+ <object class="GtkLabel" id="label52">
814+ <property name="visible">True</property>
815+ <property name="label" translatable="yes">BogoMIPS</property>
816+ </object>
817+ <packing>
818+ <property name="top_attach">3</property>
819+ <property name="bottom_attach">4</property>
820+ <property name="x_options"></property>
821+ </packing>
822+ </child>
823+ <child>
824+ <object class="GtkEntry" id="bogomips">
825+ <property name="visible">True</property>
826+ <property name="can_focus">True</property>
827+ <property name="invisible_char">&#x2022;</property>
828+ </object>
829+ <packing>
830+ <property name="left_attach">1</property>
831+ <property name="right_attach">2</property>
832+ <property name="top_attach">3</property>
833+ <property name="bottom_attach">4</property>
834+ </packing>
835+ </child>
836+ </object>
837+ <packing>
838+ <property name="position">0</property>
839+ </packing>
840+ </child>
841+ <child>
842+ <object class="GtkHBox" id="hbox6">
843+ <property name="visible">True</property>
844+ <child>
845+ <object class="GtkLabel" id="label12">
846+ <property name="visible">True</property>
847+ <property name="label" translatable="yes">Family</property>
848+ </object>
849+ <packing>
850+ <property name="position">0</property>
851+ </packing>
852+ </child>
853+ <child>
854+ <object class="GtkEntry" id="family">
855+ <property name="width_request">10</property>
856+ <property name="visible">True</property>
857+ <property name="can_focus">True</property>
858+ <property name="editable">False</property>
859+ <property name="invisible_char">&#x2022;</property>
860+ </object>
861+ <packing>
862+ <property name="position">1</property>
863+ </packing>
864+ </child>
865+ <child>
866+ <object class="GtkLabel" id="label50">
867+ <property name="visible">True</property>
868+ <property name="label" translatable="yes">Model</property>
869+ </object>
870+ <packing>
871+ <property name="position">2</property>
872+ </packing>
873+ </child>
874+ <child>
875+ <object class="GtkEntry" id="modelnumber">
876+ <property name="width_request">10</property>
877+ <property name="visible">True</property>
878+ <property name="can_focus">True</property>
879+ <property name="editable">False</property>
880+ <property name="invisible_char">&#x2022;</property>
881+ </object>
882+ <packing>
883+ <property name="position">3</property>
884+ </packing>
885+ </child>
886+ <child>
887+ <object class="GtkLabel" id="label51">
888+ <property name="visible">True</property>
889+ <property name="label" translatable="yes">Stepping</property>
890+ </object>
891+ <packing>
892+ <property name="position">4</property>
893+ </packing>
894+ </child>
895+ <child>
896+ <object class="GtkEntry" id="stepping">
897+ <property name="width_request">10</property>
898+ <property name="visible">True</property>
899+ <property name="can_focus">True</property>
900+ <property name="editable">False</property>
901+ <property name="invisible_char">&#x2022;</property>
902+ </object>
903+ <packing>
904+ <property name="position">5</property>
905+ </packing>
906+ </child>
907+ </object>
908+ <packing>
909+ <property name="position">1</property>
910+ </packing>
911+ </child>
912+ </object>
913+ <packing>
914+ <property name="position">0</property>
915+ </packing>
916+ </child>
917+ <child>
918+ <object class="GtkImage" id="proclogo">
919+ <property name="visible">True</property>
920+ <property name="xpad">5</property>
921+ <property name="stock">gtk-missing-image</property>
922+ </object>
923+ <packing>
924+ <property name="expand">False</property>
925+ <property name="position">1</property>
926+ </packing>
927+ </child>
928+ </object>
929+ </child>
930+ </object>
931+ </child>
932+ <child type="label">
933+ <object class="GtkLabel" id="label6">
934+ <property name="visible">True</property>
935+ <property name="label" translatable="yes">&lt;b&gt;General&lt;/b&gt;</property>
936+ <property name="use_markup">True</property>
937+ </object>
938+ </child>
939+ </object>
940+ <packing>
941+ <property name="expand">False</property>
942+ <property name="position">0</property>
943+ </packing>
944+ </child>
945+ <child>
946+ <object class="GtkFrame" id="frame2">
947+ <property name="visible">True</property>
948+ <property name="label_xalign">0</property>
949+ <child>
950+ <object class="GtkAlignment" id="alignment2">
951+ <property name="visible">True</property>
952+ <property name="left_padding">12</property>
953+ <child>
954+ <object class="GtkVBox" id="vbox3">
955+ <property name="visible">True</property>
956+ <property name="orientation">vertical</property>
957+ <child>
958+ <object class="GtkEntry" id="extensions">
959+ <property name="visible">True</property>
960+ <property name="can_focus">True</property>
961+ <property name="invisible_char">&#x2022;</property>
962+ </object>
963+ <packing>
964+ <property name="padding">5</property>
965+ <property name="position">0</property>
966+ </packing>
967+ </child>
968+ <child>
969+ <object class="GtkHBox" id="hbox4">
970+ <property name="visible">True</property>
971+ <child>
972+ <object class="GtkImage" id="check_64">
973+ <property name="visible">True</property>
974+ <property name="xalign">1</property>
975+ <property name="xpad">2</property>
976+ <property name="stock">gtk-missing-image</property>
977+ </object>
978+ <packing>
979+ <property name="position">0</property>
980+ </packing>
981+ </child>
982+ <child>
983+ <object class="GtkLabel" id="label18">
984+ <property name="visible">True</property>
985+ <property name="xalign">0</property>
986+ <property name="xpad">2</property>
987+ <property name="label" translatable="yes">x86 64-Bit Extensions</property>
988+ </object>
989+ <packing>
990+ <property name="position">1</property>
991+ </packing>
992+ </child>
993+ <child>
994+ <object class="GtkImage" id="check_hwv">
995+ <property name="visible">True</property>
996+ <property name="xalign">1</property>
997+ <property name="xpad">2</property>
998+ <property name="stock">gtk-missing-image</property>
999+ </object>
1000+ <packing>
1001+ <property name="position">2</property>
1002+ </packing>
1003+ </child>
1004+ <child>
1005+ <object class="GtkLabel" id="label19">
1006+ <property name="visible">True</property>
1007+ <property name="xalign">0</property>
1008+ <property name="xpad">2</property>
1009+ <property name="label" translatable="yes">Hardware Virtualization</property>
1010+ </object>
1011+ <packing>
1012+ <property name="position">3</property>
1013+ </packing>
1014+ </child>
1015+ </object>
1016+ <packing>
1017+ <property name="padding">5</property>
1018+ <property name="position">1</property>
1019+ </packing>
1020+ </child>
1021+ </object>
1022+ </child>
1023+ </object>
1024+ </child>
1025+ <child type="label">
1026+ <object class="GtkLabel" id="label7">
1027+ <property name="visible">True</property>
1028+ <property name="label" translatable="yes">&lt;b&gt;Extensions&lt;/b&gt;</property>
1029+ <property name="use_markup">True</property>
1030+ </object>
1031+ </child>
1032+ </object>
1033+ <packing>
1034+ <property name="expand">False</property>
1035+ <property name="position">1</property>
1036+ </packing>
1037+ </child>
1038+ <child>
1039+ <object class="GtkFrame" id="frame3">
1040+ <property name="visible">True</property>
1041+ <property name="label_xalign">0</property>
1042+ <child>
1043+ <object class="GtkAlignment" id="alignment3">
1044+ <property name="visible">True</property>
1045+ <property name="left_padding">12</property>
1046+ <child>
1047+ <object class="GtkTable" id="table3">
1048+ <property name="visible">True</property>
1049+ <property name="n_rows">4</property>
1050+ <property name="n_columns">2</property>
1051+ <property name="column_spacing">5</property>
1052+ <property name="row_spacing">2</property>
1053+ <child>
1054+ <object class="GtkLabel" id="label13">
1055+ <property name="visible">True</property>
1056+ <property name="label" translatable="yes">L1 Data</property>
1057+ </object>
1058+ <packing>
1059+ <property name="x_options">GTK_FILL</property>
1060+ <property name="y_options"></property>
1061+ </packing>
1062+ </child>
1063+ <child>
1064+ <object class="GtkLabel" id="label14">
1065+ <property name="visible">True</property>
1066+ <property name="label" translatable="yes">L1 Instr</property>
1067+ </object>
1068+ <packing>
1069+ <property name="top_attach">1</property>
1070+ <property name="bottom_attach">2</property>
1071+ <property name="x_options">GTK_FILL</property>
1072+ <property name="y_options"></property>
1073+ </packing>
1074+ </child>
1075+ <child>
1076+ <object class="GtkLabel" id="label15">
1077+ <property name="visible">True</property>
1078+ <property name="label" translatable="yes">Level 2</property>
1079+ </object>
1080+ <packing>
1081+ <property name="top_attach">2</property>
1082+ <property name="bottom_attach">3</property>
1083+ <property name="x_options">GTK_FILL</property>
1084+ <property name="y_options"></property>
1085+ </packing>
1086+ </child>
1087+ <child>
1088+ <object class="GtkLabel" id="label16">
1089+ <property name="visible">True</property>
1090+ <property name="label" translatable="yes">Level 3</property>
1091+ </object>
1092+ <packing>
1093+ <property name="top_attach">3</property>
1094+ <property name="bottom_attach">4</property>
1095+ <property name="x_options">GTK_FILL</property>
1096+ <property name="y_options"></property>
1097+ </packing>
1098+ </child>
1099+ <child>
1100+ <object class="GtkEntry" id="l1data">
1101+ <property name="visible">True</property>
1102+ <property name="can_focus">True</property>
1103+ <property name="editable">False</property>
1104+ <property name="invisible_char">&#x25CF;</property>
1105+ </object>
1106+ <packing>
1107+ <property name="left_attach">1</property>
1108+ <property name="right_attach">2</property>
1109+ <property name="y_options"></property>
1110+ </packing>
1111+ </child>
1112+ <child>
1113+ <object class="GtkEntry" id="l1inst">
1114+ <property name="visible">True</property>
1115+ <property name="can_focus">True</property>
1116+ <property name="editable">False</property>
1117+ <property name="invisible_char">&#x25CF;</property>
1118+ </object>
1119+ <packing>
1120+ <property name="left_attach">1</property>
1121+ <property name="right_attach">2</property>
1122+ <property name="top_attach">1</property>
1123+ <property name="bottom_attach">2</property>
1124+ <property name="y_options"></property>
1125+ </packing>
1126+ </child>
1127+ <child>
1128+ <object class="GtkEntry" id="l2">
1129+ <property name="visible">True</property>
1130+ <property name="can_focus">True</property>
1131+ <property name="editable">False</property>
1132+ <property name="invisible_char">&#x25CF;</property>
1133+ </object>
1134+ <packing>
1135+ <property name="left_attach">1</property>
1136+ <property name="right_attach">2</property>
1137+ <property name="top_attach">2</property>
1138+ <property name="bottom_attach">3</property>
1139+ <property name="y_options"></property>
1140+ </packing>
1141+ </child>
1142+ <child>
1143+ <object class="GtkEntry" id="l3">
1144+ <property name="visible">True</property>
1145+ <property name="can_focus">True</property>
1146+ <property name="editable">False</property>
1147+ <property name="invisible_char">&#x25CF;</property>
1148+ </object>
1149+ <packing>
1150+ <property name="left_attach">1</property>
1151+ <property name="right_attach">2</property>
1152+ <property name="top_attach">3</property>
1153+ <property name="bottom_attach">4</property>
1154+ <property name="y_options"></property>
1155+ </packing>
1156+ </child>
1157+ </object>
1158+ </child>
1159+ </object>
1160+ </child>
1161+ <child type="label">
1162+ <object class="GtkLabel" id="label8">
1163+ <property name="visible">True</property>
1164+ <property name="label" translatable="yes">&lt;b&gt;Cache&lt;/b&gt;</property>
1165+ <property name="use_markup">True</property>
1166+ </object>
1167+ </child>
1168+ </object>
1169+ <packing>
1170+ <property name="position">2</property>
1171+ </packing>
1172+ </child>
1173+ <child>
1174+ <object class="GtkFrame" id="frame4">
1175+ <property name="visible">True</property>
1176+ <property name="label_xalign">0</property>
1177+ <property name="shadow_type">none</property>
1178+ <child>
1179+ <object class="GtkAlignment" id="alignment4">
1180+ <property name="visible">True</property>
1181+ <property name="left_padding">12</property>
1182+ <child>
1183+ <object class="GtkHBox" id="hbox2">
1184+ <property name="visible">True</property>
1185+ <child>
1186+ <object class="GtkComboBox" id="coreselection">
1187+ <property name="visible">True</property>
1188+ <signal name="changed" handler="on_core_move_active"/>
1189+ </object>
1190+ <packing>
1191+ <property name="expand">False</property>
1192+ <property name="fill">False</property>
1193+ <property name="position">0</property>
1194+ </packing>
1195+ </child>
1196+ <child>
1197+ <object class="GtkHBox" id="hbox3">
1198+ <property name="visible">True</property>
1199+ <property name="spacing">5</property>
1200+ <child>
1201+ <object class="GtkLabel" id="label17">
1202+ <property name="visible">True</property>
1203+ <property name="label" translatable="yes">Cores</property>
1204+ </object>
1205+ <packing>
1206+ <property name="expand">False</property>
1207+ <property name="position">0</property>
1208+ </packing>
1209+ </child>
1210+ <child>
1211+ <object class="GtkEntry" id="coresnum">
1212+ <property name="visible">True</property>
1213+ <property name="can_focus">True</property>
1214+ <property name="editable">False</property>
1215+ <property name="invisible_char">&#x25CF;</property>
1216+ <property name="width_chars">3</property>
1217+ </object>
1218+ <packing>
1219+ <property name="expand">False</property>
1220+ <property name="position">1</property>
1221+ </packing>
1222+ </child>
1223+ <child>
1224+ <object class="GtkLabel" id="label48">
1225+ <property name="visible">True</property>
1226+ <property name="label" translatable="yes">Threads</property>
1227+ </object>
1228+ <packing>
1229+ <property name="expand">False</property>
1230+ <property name="position">2</property>
1231+ </packing>
1232+ </child>
1233+ <child>
1234+ <object class="GtkEntry" id="threads">
1235+ <property name="visible">True</property>
1236+ <property name="can_focus">True</property>
1237+ <property name="invisible_char">&#x2022;</property>
1238+ <property name="width_chars">3</property>
1239+ </object>
1240+ <packing>
1241+ <property name="expand">False</property>
1242+ <property name="position">3</property>
1243+ </packing>
1244+ </child>
1245+ </object>
1246+ <packing>
1247+ <property name="padding">5</property>
1248+ <property name="pack_type">end</property>
1249+ <property name="position">1</property>
1250+ </packing>
1251+ </child>
1252+ </object>
1253+ </child>
1254+ </object>
1255+ </child>
1256+ <child type="label">
1257+ <object class="GtkLabel" id="label9">
1258+ <property name="visible">True</property>
1259+ <property name="label" translatable="yes">&lt;b&gt;Core selection&lt;/b&gt;</property>
1260+ <property name="use_markup">True</property>
1261+ </object>
1262+ </child>
1263+ </object>
1264+ <packing>
1265+ <property name="expand">False</property>
1266+ <property name="position">3</property>
1267+ </packing>
1268+ </child>
1269+ </object>
1270+ </child>
1271+ <child type="tab">
1272+ <object class="GtkLabel" id="label1">
1273+ <property name="visible">True</property>
1274+ <property name="label" translatable="yes">Processor</property>
1275+ </object>
1276+ <packing>
1277+ <property name="tab_fill">False</property>
1278+ </packing>
1279+ </child>
1280+ <child>
1281+ <object class="GtkVBox" id="vbox4">
1282+ <property name="visible">True</property>
1283+ <property name="orientation">vertical</property>
1284+ <property name="spacing">10</property>
1285+ <child>
1286+ <object class="GtkFrame" id="frame5">
1287+ <property name="visible">True</property>
1288+ <property name="label_xalign">0</property>
1289+ <child>
1290+ <object class="GtkAlignment" id="alignment5">
1291+ <property name="visible">True</property>
1292+ <property name="left_padding">12</property>
1293+ <child>
1294+ <object class="GtkVBox" id="vbox9">
1295+ <property name="visible">True</property>
1296+ <property name="orientation">vertical</property>
1297+ <child>
1298+ <object class="GtkImage" id="chipset">
1299+ <property name="height_request">50</property>
1300+ <property name="visible">True</property>
1301+ <property name="stock">gtk-missing-image</property>
1302+ </object>
1303+ <packing>
1304+ <property name="position">0</property>
1305+ </packing>
1306+ </child>
1307+ <child>
1308+ <object class="GtkTable" id="table4">
1309+ <property name="visible">True</property>
1310+ <property name="n_rows">3</property>
1311+ <property name="n_columns">2</property>
1312+ <property name="column_spacing">5</property>
1313+ <property name="row_spacing">3</property>
1314+ <child>
1315+ <object class="GtkLabel" id="label27">
1316+ <property name="visible">True</property>
1317+ <property name="label" translatable="yes">Chipset</property>
1318+ </object>
1319+ <packing>
1320+ <property name="x_options">GTK_FILL</property>
1321+ <property name="y_options"></property>
1322+ </packing>
1323+ </child>
1324+ <child>
1325+ <object class="GtkLabel" id="label28">
1326+ <property name="visible">True</property>
1327+ <property name="label" translatable="yes">Vendor</property>
1328+ </object>
1329+ <packing>
1330+ <property name="top_attach">1</property>
1331+ <property name="bottom_attach">2</property>
1332+ <property name="x_options">GTK_FILL</property>
1333+ <property name="y_options"></property>
1334+ </packing>
1335+ </child>
1336+ <child>
1337+ <object class="GtkEntry" id="mobochipset">
1338+ <property name="visible">True</property>
1339+ <property name="can_focus">True</property>
1340+ <property name="editable">False</property>
1341+ <property name="invisible_char">&#x2022;</property>
1342+ </object>
1343+ <packing>
1344+ <property name="left_attach">1</property>
1345+ <property name="right_attach">2</property>
1346+ <property name="y_options"></property>
1347+ </packing>
1348+ </child>
1349+ <child>
1350+ <object class="GtkEntry" id="mobovendor">
1351+ <property name="visible">True</property>
1352+ <property name="can_focus">True</property>
1353+ <property name="editable">False</property>
1354+ <property name="invisible_char">&#x2022;</property>
1355+ </object>
1356+ <packing>
1357+ <property name="left_attach">1</property>
1358+ <property name="right_attach">2</property>
1359+ <property name="top_attach">1</property>
1360+ <property name="bottom_attach">2</property>
1361+ <property name="y_options"></property>
1362+ </packing>
1363+ </child>
1364+ <child>
1365+ <object class="GtkLabel" id="label49">
1366+ <property name="visible">True</property>
1367+ <property name="label" translatable="yes">Name</property>
1368+ </object>
1369+ <packing>
1370+ <property name="top_attach">2</property>
1371+ <property name="bottom_attach">3</property>
1372+ <property name="x_options">GTK_FILL</property>
1373+ <property name="y_options"></property>
1374+ </packing>
1375+ </child>
1376+ <child>
1377+ <object class="GtkEntry" id="moboname">
1378+ <property name="visible">True</property>
1379+ <property name="can_focus">True</property>
1380+ <property name="invisible_char">&#x2022;</property>
1381+ </object>
1382+ <packing>
1383+ <property name="left_attach">1</property>
1384+ <property name="right_attach">2</property>
1385+ <property name="top_attach">2</property>
1386+ <property name="bottom_attach">3</property>
1387+ <property name="y_options"></property>
1388+ </packing>
1389+ </child>
1390+ </object>
1391+ <packing>
1392+ <property name="position">1</property>
1393+ </packing>
1394+ </child>
1395+ </object>
1396+ </child>
1397+ </object>
1398+ </child>
1399+ <child type="label">
1400+ <object class="GtkLabel" id="label25">
1401+ <property name="visible">True</property>
1402+ <property name="label" translatable="yes">&lt;b&gt;Motherboard / Chipset&lt;/b&gt;</property>
1403+ <property name="use_markup">True</property>
1404+ </object>
1405+ </child>
1406+ </object>
1407+ <packing>
1408+ <property name="position">0</property>
1409+ </packing>
1410+ </child>
1411+ <child>
1412+ <object class="GtkFrame" id="frame6">
1413+ <property name="visible">True</property>
1414+ <property name="label_xalign">0</property>
1415+ <child>
1416+ <object class="GtkAlignment" id="alignment6">
1417+ <property name="visible">True</property>
1418+ <property name="left_padding">12</property>
1419+ <child>
1420+ <object class="GtkTable" id="table5">
1421+ <property name="visible">True</property>
1422+ <property name="n_rows">3</property>
1423+ <property name="n_columns">2</property>
1424+ <property name="column_spacing">5</property>
1425+ <property name="row_spacing">3</property>
1426+ <child>
1427+ <object class="GtkLabel" id="label29">
1428+ <property name="visible">True</property>
1429+ <property name="label" translatable="yes">Vendor</property>
1430+ </object>
1431+ <packing>
1432+ <property name="x_options">GTK_FILL</property>
1433+ <property name="y_options"></property>
1434+ </packing>
1435+ </child>
1436+ <child>
1437+ <object class="GtkLabel" id="label30">
1438+ <property name="visible">True</property>
1439+ <property name="label" translatable="yes">Version</property>
1440+ </object>
1441+ <packing>
1442+ <property name="top_attach">1</property>
1443+ <property name="bottom_attach">2</property>
1444+ <property name="x_options">GTK_FILL</property>
1445+ <property name="y_options"></property>
1446+ </packing>
1447+ </child>
1448+ <child>
1449+ <object class="GtkLabel" id="label31">
1450+ <property name="visible">True</property>
1451+ <property name="label" translatable="yes">Date</property>
1452+ </object>
1453+ <packing>
1454+ <property name="top_attach">2</property>
1455+ <property name="bottom_attach">3</property>
1456+ <property name="x_options">GTK_FILL</property>
1457+ <property name="y_options"></property>
1458+ </packing>
1459+ </child>
1460+ <child>
1461+ <object class="GtkEntry" id="biosvendor">
1462+ <property name="visible">True</property>
1463+ <property name="can_focus">True</property>
1464+ <property name="editable">False</property>
1465+ <property name="invisible_char">&#x25CF;</property>
1466+ </object>
1467+ <packing>
1468+ <property name="left_attach">1</property>
1469+ <property name="right_attach">2</property>
1470+ <property name="y_options"></property>
1471+ </packing>
1472+ </child>
1473+ <child>
1474+ <object class="GtkEntry" id="biosversion">
1475+ <property name="visible">True</property>
1476+ <property name="can_focus">True</property>
1477+ <property name="editable">False</property>
1478+ <property name="invisible_char">&#x25CF;</property>
1479+ </object>
1480+ <packing>
1481+ <property name="left_attach">1</property>
1482+ <property name="right_attach">2</property>
1483+ <property name="top_attach">1</property>
1484+ <property name="bottom_attach">2</property>
1485+ <property name="y_options"></property>
1486+ </packing>
1487+ </child>
1488+ <child>
1489+ <object class="GtkEntry" id="biosdate">
1490+ <property name="visible">True</property>
1491+ <property name="can_focus">True</property>
1492+ <property name="editable">False</property>
1493+ <property name="invisible_char">&#x25CF;</property>
1494+ </object>
1495+ <packing>
1496+ <property name="left_attach">1</property>
1497+ <property name="right_attach">2</property>
1498+ <property name="top_attach">2</property>
1499+ <property name="bottom_attach">3</property>
1500+ <property name="y_options"></property>
1501+ </packing>
1502+ </child>
1503+ </object>
1504+ </child>
1505+ </object>
1506+ </child>
1507+ <child type="label">
1508+ <object class="GtkLabel" id="label26">
1509+ <property name="visible">True</property>
1510+ <property name="label" translatable="yes">&lt;b&gt;BIOS&lt;/b&gt;</property>
1511+ <property name="use_markup">True</property>
1512+ </object>
1513+ </child>
1514+ </object>
1515+ <packing>
1516+ <property name="position">1</property>
1517+ </packing>
1518+ </child>
1519+ </object>
1520+ <packing>
1521+ <property name="position">1</property>
1522+ </packing>
1523+ </child>
1524+ <child type="tab">
1525+ <object class="GtkLabel" id="label2">
1526+ <property name="visible">True</property>
1527+ <property name="label" translatable="yes">Motherboard</property>
1528+ </object>
1529+ <packing>
1530+ <property name="position">1</property>
1531+ <property name="tab_fill">False</property>
1532+ </packing>
1533+ </child>
1534+ <child>
1535+ <object class="GtkTable" id="table6">
1536+ <property name="visible">True</property>
1537+ <property name="n_rows">7</property>
1538+ <property name="n_columns">2</property>
1539+ <property name="column_spacing">5</property>
1540+ <property name="row_spacing">3</property>
1541+ <child>
1542+ <object class="GtkLabel" id="label32">
1543+ <property name="visible">True</property>
1544+ <property name="label" translatable="yes">Hostname</property>
1545+ </object>
1546+ <packing>
1547+ <property name="x_options">GTK_FILL</property>
1548+ <property name="y_options"></property>
1549+ </packing>
1550+ </child>
1551+ <child>
1552+ <object class="GtkLabel" id="label33">
1553+ <property name="visible">True</property>
1554+ <property name="label" translatable="yes">Architecture</property>
1555+ </object>
1556+ <packing>
1557+ <property name="top_attach">1</property>
1558+ <property name="bottom_attach">2</property>
1559+ <property name="x_options"></property>
1560+ <property name="y_options"></property>
1561+ </packing>
1562+ </child>
1563+ <child>
1564+ <object class="GtkLabel" id="label34">
1565+ <property name="visible">True</property>
1566+ <property name="label" translatable="yes">Kernel</property>
1567+ </object>
1568+ <packing>
1569+ <property name="top_attach">2</property>
1570+ <property name="bottom_attach">3</property>
1571+ <property name="x_options"></property>
1572+ <property name="y_options"></property>
1573+ </packing>
1574+ </child>
1575+ <child>
1576+ <object class="GtkLabel" id="label35">
1577+ <property name="visible">True</property>
1578+ <property name="label" translatable="yes">Distribution</property>
1579+ </object>
1580+ <packing>
1581+ <property name="top_attach">3</property>
1582+ <property name="bottom_attach">4</property>
1583+ <property name="x_options"></property>
1584+ <property name="y_options"></property>
1585+ </packing>
1586+ </child>
1587+ <child>
1588+ <object class="GtkLabel" id="label36">
1589+ <property name="visible">True</property>
1590+ <property name="label" translatable="yes">GCC Version</property>
1591+ </object>
1592+ <packing>
1593+ <property name="top_attach">4</property>
1594+ <property name="bottom_attach">5</property>
1595+ <property name="x_options"></property>
1596+ <property name="y_options"></property>
1597+ </packing>
1598+ </child>
1599+ <child>
1600+ <object class="GtkEntry" id="hostname">
1601+ <property name="visible">True</property>
1602+ <property name="can_focus">True</property>
1603+ <property name="editable">False</property>
1604+ <property name="invisible_char">&#x25CF;</property>
1605+ </object>
1606+ <packing>
1607+ <property name="left_attach">1</property>
1608+ <property name="right_attach">2</property>
1609+ <property name="y_options"></property>
1610+ </packing>
1611+ </child>
1612+ <child>
1613+ <object class="GtkEntry" id="arch">
1614+ <property name="visible">True</property>
1615+ <property name="can_focus">True</property>
1616+ <property name="editable">False</property>
1617+ <property name="invisible_char">&#x25CF;</property>
1618+ </object>
1619+ <packing>
1620+ <property name="left_attach">1</property>
1621+ <property name="right_attach">2</property>
1622+ <property name="top_attach">1</property>
1623+ <property name="bottom_attach">2</property>
1624+ <property name="y_options"></property>
1625+ </packing>
1626+ </child>
1627+ <child>
1628+ <object class="GtkEntry" id="kernel">
1629+ <property name="visible">True</property>
1630+ <property name="can_focus">True</property>
1631+ <property name="editable">False</property>
1632+ <property name="invisible_char">&#x25CF;</property>
1633+ </object>
1634+ <packing>
1635+ <property name="left_attach">1</property>
1636+ <property name="right_attach">2</property>
1637+ <property name="top_attach">2</property>
1638+ <property name="bottom_attach">3</property>
1639+ <property name="y_options"></property>
1640+ </packing>
1641+ </child>
1642+ <child>
1643+ <object class="GtkEntry" id="gcc">
1644+ <property name="visible">True</property>
1645+ <property name="can_focus">True</property>
1646+ <property name="editable">False</property>
1647+ <property name="invisible_char">&#x25CF;</property>
1648+ </object>
1649+ <packing>
1650+ <property name="left_attach">1</property>
1651+ <property name="right_attach">2</property>
1652+ <property name="top_attach">4</property>
1653+ <property name="bottom_attach">5</property>
1654+ <property name="y_options"></property>
1655+ </packing>
1656+ </child>
1657+ <child>
1658+ <object class="GtkLabel" id="label46">
1659+ <property name="visible">True</property>
1660+ <property name="label" translatable="yes">Uptime</property>
1661+ </object>
1662+ <packing>
1663+ <property name="top_attach">5</property>
1664+ <property name="bottom_attach">6</property>
1665+ <property name="x_options"></property>
1666+ <property name="y_options"></property>
1667+ </packing>
1668+ </child>
1669+ <child>
1670+ <object class="GtkEntry" id="uptime">
1671+ <property name="visible">True</property>
1672+ <property name="can_focus">True</property>
1673+ <property name="editable">False</property>
1674+ <property name="invisible_char">&#x25CF;</property>
1675+ </object>
1676+ <packing>
1677+ <property name="left_attach">1</property>
1678+ <property name="right_attach">2</property>
1679+ <property name="top_attach">5</property>
1680+ <property name="bottom_attach">6</property>
1681+ <property name="y_options"></property>
1682+ </packing>
1683+ </child>
1684+ <child>
1685+ <object class="GtkEntry" id="distro">
1686+ <property name="visible">True</property>
1687+ <property name="can_focus">True</property>
1688+ <property name="editable">False</property>
1689+ <property name="invisible_char">&#x25CF;</property>
1690+ </object>
1691+ <packing>
1692+ <property name="left_attach">1</property>
1693+ <property name="right_attach">2</property>
1694+ <property name="top_attach">3</property>
1695+ <property name="bottom_attach">4</property>
1696+ <property name="y_options"></property>
1697+ </packing>
1698+ </child>
1699+ <child>
1700+ <object class="GtkLabel" id="label47">
1701+ <property name="visible">True</property>
1702+ <property name="label" translatable="yes">Xorg version</property>
1703+ </object>
1704+ <packing>
1705+ <property name="top_attach">6</property>
1706+ <property name="bottom_attach">7</property>
1707+ <property name="x_options"></property>
1708+ <property name="y_options"></property>
1709+ </packing>
1710+ </child>
1711+ <child>
1712+ <object class="GtkEntry" id="xorg">
1713+ <property name="visible">True</property>
1714+ <property name="can_focus">True</property>
1715+ <property name="invisible_char">&#x25CF;</property>
1716+ </object>
1717+ <packing>
1718+ <property name="left_attach">1</property>
1719+ <property name="right_attach">2</property>
1720+ <property name="top_attach">6</property>
1721+ <property name="bottom_attach">7</property>
1722+ <property name="y_options"></property>
1723+ </packing>
1724+ </child>
1725+ </object>
1726+ <packing>
1727+ <property name="position">2</property>
1728+ </packing>
1729+ </child>
1730+ <child type="tab">
1731+ <object class="GtkLabel" id="label4">
1732+ <property name="visible">True</property>
1733+ <property name="label" translatable="yes">System</property>
1734+ </object>
1735+ <packing>
1736+ <property name="position">2</property>
1737+ <property name="tab_fill">False</property>
1738+ </packing>
1739+ </child>
1740+ <child>
1741+ <object class="GtkVBox" id="vbox5">
1742+ <property name="visible">True</property>
1743+ <property name="orientation">vertical</property>
1744+ <child>
1745+ <object class="GtkImage" id="abouticon">
1746+ <property name="visible">True</property>
1747+ <property name="ypad">10</property>
1748+ <property name="pixbuf">gfx/cpu-g_128.png</property>
1749+ </object>
1750+ <packing>
1751+ <property name="expand">False</property>
1752+ <property name="position">0</property>
1753+ </packing>
1754+ </child>
1755+ <child>
1756+ <object class="GtkLabel" id="label37">
1757+ <property name="visible">True</property>
1758+ <property name="label" translatable="yes">CPU-G 0.11.0</property>
1759+ <property name="justify">center</property>
1760+ <attributes>
1761+ <attribute name="weight" value="bold"/>
1762+ <attribute name="scale" value="2,000000"/>
1763+ </attributes>
1764+ </object>
1765+ <packing>
1766+ <property name="expand">False</property>
1767+ <property name="fill">False</property>
1768+ <property name="position">1</property>
1769+ </packing>
1770+ </child>
1771+ <child>
1772+ <object class="GtkLabel" id="label38">
1773+ <property name="visible">True</property>
1774+ <property name="label" translatable="yes">CPU-G is an application that shows useful information about your CPU, Motherboard and some general information about your system.</property>
1775+ <property name="justify">center</property>
1776+ <property name="wrap">True</property>
1777+ </object>
1778+ <packing>
1779+ <property name="fill">False</property>
1780+ <property name="position">2</property>
1781+ </packing>
1782+ </child>
1783+ <child>
1784+ <object class="GtkLabel" id="label40">
1785+ <property name="visible">True</property>
1786+ <property name="label" translatable="yes">Copyright &#xA9; 2009-2010 Fotis Tsamis &lt;ftsamis@gmail.com&gt;
1787+Michael Schm&#xF6;ller &lt;schmoemi@users.sourceforge.net&gt;</property>
1788+ <property name="justify">center</property>
1789+ </object>
1790+ <packing>
1791+ <property name="fill">False</property>
1792+ <property name="position">3</property>
1793+ </packing>
1794+ </child>
1795+ <child>
1796+ <object class="GtkLinkButton" id="linkbutton1">
1797+ <property name="label" translatable="yes">http://cpug.sourceforge.net/</property>
1798+ <property name="visible">True</property>
1799+ <property name="can_focus">False</property>
1800+ <property name="receives_default">True</property>
1801+ <property name="has_tooltip">True</property>
1802+ <property name="relief">none</property>
1803+ <property name="uri">http://cpug.sourceforge.net/</property>
1804+ </object>
1805+ <packing>
1806+ <property name="expand">False</property>
1807+ <property name="fill">False</property>
1808+ <property name="position">4</property>
1809+ </packing>
1810+ </child>
1811+ </object>
1812+ <packing>
1813+ <property name="position">3</property>
1814+ </packing>
1815+ </child>
1816+ <child type="tab">
1817+ <object class="GtkLabel" id="label5">
1818+ <property name="visible">True</property>
1819+ <property name="label" translatable="yes">About</property>
1820+ </object>
1821+ <packing>
1822+ <property name="position">3</property>
1823+ <property name="tab_fill">False</property>
1824+ </packing>
1825+ </child>
1826+ </object>
1827+ <packing>
1828+ <property name="position">0</property>
1829+ </packing>
1830+ </child>
1831+ <child>
1832+ <object class="GtkHBox" id="hbox12">
1833+ <property name="visible">True</property>
1834+ <child>
1835+ <object class="GtkLabel" id="label24">
1836+ <property name="visible">True</property>
1837+ <property name="sensitive">False</property>
1838+ <property name="xalign">0.10000000149011612</property>
1839+ <property name="label" translatable="yes">CPU-G</property>
1840+ <attributes>
1841+ <attribute name="weight" value="bold"/>
1842+ </attributes>
1843+ </object>
1844+ <packing>
1845+ <property name="position">0</property>
1846+ </packing>
1847+ </child>
1848+ <child>
1849+ <object class="GtkLabel" id="label21">
1850+ <property name="visible">True</property>
1851+ <property name="xpad">2</property>
1852+ </object>
1853+ <packing>
1854+ <property name="position">1</property>
1855+ </packing>
1856+ </child>
1857+ <child>
1858+ <object class="GtkButton" id="button1">
1859+ <property name="label">gtk-close</property>
1860+ <property name="visible">True</property>
1861+ <property name="can_focus">True</property>
1862+ <property name="receives_default">True</property>
1863+ <property name="use_stock">True</property>
1864+ <signal name="clicked" handler="on_close_clicked"/>
1865+ </object>
1866+ <packing>
1867+ <property name="expand">False</property>
1868+ <property name="fill">False</property>
1869+ <property name="position">2</property>
1870+ </packing>
1871+ </child>
1872+ </object>
1873+ <packing>
1874+ <property name="expand">False</property>
1875+ <property name="fill">False</property>
1876+ <property name="position">1</property>
1877+ </packing>
1878+ </child>
1879+ </object>
1880+ </child>
1881+ </object>
1882+ <object class="GtkListStore" id="liststore1"/>
1883+</interface>
1884
1885=== renamed file 'cpu-g.glade' => 'cpu-g.glade.moved'
1886=== added file 'cpu-g.py'
1887--- cpu-g.py 1970-01-01 00:00:00 +0000
1888+++ cpu-g.py 2011-08-31 01:58:22 +0000
1889@@ -0,0 +1,475 @@
1890+#!/usr/bin/python
1891+#-*- coding: utf-8 -*-
1892+#
1893+# --BETA--
1894+#################################################################
1895+# CPU-G version 0.11.0 beta, Fotis Tsamis, October 2009. #
1896+# modified by M. Schmoeller, December 2010. #
1897+#################################################################
1898+# CPU-G is a program that displays information about your CPU,
1899+# RAM, Motherboard and some general information about your System.
1900+# Copyright © 2009 Fotis Tsamis <ftsamis at gmail dot com>.
1901+#
1902+# This program is free software: you can redistribute it and/or
1903+# modify it under the terms of the GNU General Public License
1904+# as published by the Free Software Foundation, either version 3
1905+# of the License, or any later version.
1906+#
1907+# This program is distributed in the hope that it will be useful,
1908+# but WITHOUT ANY WARRANTY; without even the implied
1909+# warranty of MERCHANTABILITY or FITNESS FOR A
1910+# PARTICULAR PURPOSE.
1911+# See the GNU General Public License for more details.
1912+#
1913+# You should have received a copy of the GNU General Public
1914+# License along with this program.
1915+# If not, see <http://www.gnu.org/licenses/>.
1916+
1917+import os, re, sys, platform, subprocess
1918+try:
1919+ import pygtk, gtk, gtk.glade, gobject
1920+except:
1921+ print 'You need to have PyGTK 2.10.0, GTK.Glade and GTK+ 2.10.0 or higher installed in your system in order to run CPU-G.'
1922+ sys.exit(1)
1923+
1924+
1925+class main:
1926+
1927+ global lm, ht
1928+ ht = False
1929+ lm = False
1930+
1931+ def readfile(self, name):
1932+ try:
1933+ f = file(name, 'r')
1934+ data = f.read()
1935+ f.close()
1936+ return data
1937+ except:
1938+ return 'N/A'
1939+
1940+ def amd64(self):
1941+ global lm
1942+ info = self.readfile("/proc/cpuinfo")
1943+
1944+ if re.findall(" lm ", re.findall("flags\s*:(.*)",info)[0]):
1945+ label = 'gfx/check_true.png'
1946+ lm = True
1947+ else:
1948+ label = 'gfx/check_false.png'
1949+
1950+ return label
1951+
1952+ def hwv(self):
1953+ info = self.readfile("/proc/cpuinfo")
1954+
1955+ if re.findall(" svm ", re.findall("flags\s*:(.*)",info)[0]) or re.findall(" vmx ", re.findall("flags\s*:(.*)",info)[0]):
1956+ label = 'gfx/check_true.png'
1957+ else:
1958+ label = 'gfx/check_false.png'
1959+
1960+ return label
1961+
1962+ def cpulogo(self):
1963+ global ht
1964+ model = self.cpuinfo("model")
1965+
1966+ path = 'gfx/logos/processors/'
1967+
1968+ #AMDs
1969+ ##Athlon(64)/Athlon II
1970+ if re.match("AMD Athlon\(tm\) 64 X2.*",model):
1971+ label = 'AMD-Athlon64-X2.png'
1972+ elif re.match("AMD Athlon\(tm\) X2.*",model):
1973+ label = 'AMD-AthlonX2.png'
1974+ elif re.match("AMD Athlon\(tm\) II X4.*",model):
1975+ label = 'AMD-AthlonII-X4.png'
1976+ elif re.match("AMD Athlon\(tm\) II X3.*",model):
1977+ label = 'AMD-AthlonII-X3.png'
1978+ elif re.match("AMD Athlon\(tm\) II X2.*",model):
1979+ label = 'AMD-AthlonII-X2.png'
1980+ elif re.match("AMD Athlon\(tm\) 64.*",model):
1981+ label = 'AMD-Athlon64.png'
1982+ elif re.match("AMD Athlon\(tm\) XP.*",model):
1983+ label = 'AMD-AthlonXP.png'
1984+ elif re.match("AMD Athlon\(tm\).*",model):
1985+ label = 'AMD-Athlon.png'
1986+
1987+ ##Sempron/Duron
1988+ elif re.match("Mobile AMD Sempron\(tm\).*",model):
1989+ label = 'AMD-Sempron-Mobile.png'
1990+ elif re.match("AMD Sempron\(tm\).*",model):
1991+ if lm == True:
1992+ label = 'AMD-Sempron_K8.png'
1993+ else:
1994+ label = 'AMD-Sempron_K7.png'
1995+ elif re.match("AMD Duron\(tm\).*",model):
1996+ label = 'AMD-Duron.png'
1997+
1998+ ##Opteron
1999+ elif re.match("Quad-Core AMD Opteron\(tm\).*",model) or re.match("Six-Core AMD Opteron\(tm\).*",model):
2000+ label = 'AMD-Opteron_K10.png'
2001+ elif re.match("Dual-Core AMD Opteron\(tm\).*",model) or re.match("AMD Opteron\(tm\).*",model):
2002+ label = 'AMD-Opteron_K8.png'
2003+
2004+ ##Turion
2005+ elif re.match("AMD Turion\(tm\) 64 X2.*",model):
2006+ label = 'AMD-Turion64-X2.png'
2007+ elif re.match("AMD Turion\(tm\) 64.*",model):
2008+ label = 'AMD-Turion64.png'
2009+ elif re.match("AMD Turion\(tm\). X2 Ultra.*",model):
2010+ label = 'AMD-Turion-X2Ultra.png'
2011+ elif re.match("AMD Turion\(tm\) X2.*",model):
2012+ label = 'AMD-Turion-X2.png'
2013+
2014+ ##Phenom/Phenom II
2015+ elif re.match("AMD Phenom\(tm\) II X4.*",model):
2016+ label = 'AMD-PhenomII-X4.png'
2017+ elif re.match("AMD Phenom\(tm\) II X3.*",model):
2018+ label = 'AMD-PhenomII-X3.png'
2019+ elif re.match("AMD Phenom\(tm\) II X2.*",model):
2020+ label = 'AMD-PhenomII-X2.png'
2021+ elif re.match("AMD Phenom\(tm\) II.*",model):
2022+ label = 'AMD-PhenomII.png'
2023+ elif re.match("AMD Phenom\(tm\) X4.*",model):
2024+ label = 'AMD-Phenom-X4.png'
2025+ elif re.match("AMD Phenom\(tm\) X3.*",model):
2026+ label = 'AMD-Phenom-X3.png'
2027+
2028+ #Intels
2029+ ##Core
2030+ elif re.match("Intel\(R\) Core\(TM\) i7 Extreme.*",model):
2031+ label = 'Intel-Core-i7Extreme.png'
2032+ elif re.match("Intel\(R\) Core\(TM\) i7.*",model):
2033+ label = 'Intel-Core-i7.png'
2034+ elif re.match("Intel\(R\) Core\(TM\) i5.*",model):
2035+ label = 'Intel-Core-i5.png'
2036+ elif re.match("Intel\(R\) Core\(TM\) i3.*",model):
2037+ label = 'Intel-Core-i3.png'
2038+ elif re.match("Intel\(R\) Core\(TM\)2 Extreme.*",model):
2039+ label = 'Intel-Core2Extreme.png'
2040+ elif re.match("Intel\(R\) Core\(TM\)2 Duo.*",model):
2041+ label = 'Intel-Core2Duo.png'
2042+ elif re.match("Intel\(R\) Core\(TM\)2 Quad.*",model):
2043+ label = 'Intel-Core2Quad.png'
2044+ elif re.match("Intel\(R\) Core\(TM\)2.*",model):
2045+ label = 'Intel-Core2Duo.png'
2046+ elif re.match("Intel\(R\) Core\(TM\) Duo.*",model):
2047+ label = 'Intel-CoreDuo.png'
2048+ elif re.match("Intel\(R\) Core\(TM\) Solo.*",model):
2049+ label = 'Intel-CoreSolo.png'
2050+
2051+ ##Atom
2052+ elif re.match("Intel\(R\) Atom\(TM\).*",model):
2053+ label = 'Intel-Atom.png'
2054+
2055+ ##Xeon
2056+ elif re.match("Intel\(R\) Xeon\(TM\).*",model):
2057+ label = 'Intel-Xeon.png'
2058+
2059+ ##Pentium
2060+ elif re.match("Intel\(R\) Pentium\(R\) Dual CPU.*",model):
2061+ label = 'Intel-PentiumDual.png'
2062+ elif re.match("Intel\(R\) Pentium\(R\) Extreme.*",model):
2063+ label = 'Intel-PentiumXE.png'
2064+ elif re.match("Intel\(R\) Pentium\(R\) 4 Extreme.*",model):
2065+ label = 'Intel-Pentium4XE.png'
2066+ elif re.match("Intel\(R\) Pentium\(R\) 4.*",model):
2067+ if ht == True:
2068+ label = 'Intel-Pentium4HT.png'
2069+ else:
2070+ label = 'Intel-Pentium4.png'
2071+ elif re.match("Intel\(R\) Pentium\(R\) M.*",model):
2072+ label = 'Intel-PentiumM.png'
2073+ elif re.match("Intel\(R\) Pentium\(R\) D.*",model):
2074+ label = 'Intel-PentiumD.png'
2075+ elif re.match("Pentium III.*",model):
2076+ label = 'Intel-Pentium3.png'
2077+ elif re.match("Pentium II.*",model):
2078+ label = 'Intel-Pentium2.png'
2079+
2080+ ##Celeron
2081+ elif re.match("Intel\(R\) Celeron\(R\) D.*",model):
2082+ label = 'Intel-CeleronD.png'
2083+ elif re.match("Intel\(R\) Celeron\(R\) M.*",model):
2084+ label = 'Intel-CeleronM.png'
2085+ elif re.match("Intel\(R\) Celeron\(R\).*",model):
2086+ if lm == True:
2087+ label = 'Intel-Celeron_Core.png'
2088+ else:
2089+ label = 'Intel-Celeron.png'
2090+ elif re.match("Celeron.*",model):
2091+ label = 'Intel-Celeron_old.png'
2092+
2093+ #VIA
2094+ elif re.match("VIA Ezra.*",model) or re.match("VIA Nehemiah.*",model):
2095+ label = 'VIA-C3.png'
2096+ elif re.match("VIA C7-M.*",model):
2097+ label = 'VIA-C7-M.png'
2098+ elif re.match("VIA Esther.*",model):
2099+ label = 'VIA-C7.png'
2100+ elif re.match("VIA Nano.*",model):
2101+ label = 'VIA-Nano.png'
2102+
2103+ else:
2104+ label = 'noimage.png'
2105+
2106+ return path + label
2107+
2108+ def cpuclock(self, core):
2109+ info = self.readfile("/proc/cpuinfo")
2110+
2111+ return re.findall("cpu MHz\s*:\s*(.*)",info)[core] + ' MHz'
2112+
2113+ def cpuinfo(self, var):
2114+ global ht
2115+ info = self.readfile("/proc/cpuinfo")
2116+ vendor = re.findall("vendor_id\s*:\s*(.*)",info)[0]
2117+
2118+ if var == 'vendor':
2119+ if vendor == 'AuthenticAMD':
2120+ vendor='Advanced Micro Devices, Inc.'
2121+ elif vendor == 'GenuineIntel':
2122+ vendor='Intel Corporation'
2123+ elif vendor == 'CentaurHauls':
2124+ vendor='VIA/Centaur Technology'
2125+ return vendor
2126+ elif var == 'model':
2127+ return re.findall("model name\s*:\s*(.*)",info)[0]
2128+ elif var == 'bogomips':
2129+ return re.findall("bogomips\s*:\s*(.*)",info)[0]
2130+ elif var == 'modelnumber':
2131+ return re.findall("model\s*:\s*(.*)",info)[0]
2132+ elif var == 'familynum':
2133+ return re.findall("cpu family\s*:\s*(.*)",info)[0]
2134+ elif var == 'stepping':
2135+ return re.findall("stepping\s*:\s*(.*)",info)[0]
2136+ elif var == 'coresnum':
2137+ try:
2138+ cores = re.findall("cpu cores\s*:\s*(.*)",info)[0]
2139+ except:
2140+ cores = '1'
2141+ return cores
2142+ elif var == 'threads':
2143+ threads = str(len(re.findall("processor\s*:\s*(.*)",info)))
2144+ if self.cpuinfo("coresnum") == 2*int(threads):
2145+ ht = True
2146+ return threads
2147+ elif var == 'extensions':
2148+ if re.findall(' mmxext ', re.findall("flags\s*:(.*)",info)[0]):
2149+ extensions = 'MMX(+)'
2150+ elif re.findall(' mmx ', re.findall("flags\s*:(.*)",info)[0]):
2151+ extensions = 'MMX'
2152+ if re.findall(' 3dnowext ', re.findall("flags\s*:(.*)",info)[0]):
2153+ extensions = extensions + ', 3DNow!(+)'
2154+ elif re.findall(' 3dnow ', re.findall("flags\s*:(.*)",info)[0]):
2155+ extensions = extensions + ', 3DNow!'
2156+ if re.findall(' sse ', re.findall("flags\s*:(.*)",info)[0]):
2157+ extensions = extensions + ', SSE'
2158+ if re.findall(' sse2 ', re.findall("flags\s*:(.*)",info)[0]):
2159+ extensions = extensions + ', SSE2'
2160+ if re.findall(' pni ', re.findall("flags\s*:(.*)",info)[0]):
2161+ extensions = extensions + ', SSE3'
2162+ if re.findall(' ssse3 ', re.findall("flags\s*:(.*)",info)[0]):
2163+ extensions = extensions + ', SSSE3'
2164+ if re.findall(' sse4_2 ', re.findall("flags\s*:(.*)",info)[0]):
2165+ extensions = extensions + ', SSE4.2'
2166+ elif re.findall(' sse4_1 ', re.findall("flags\s*:(.*)",info)[0]):
2167+ extensions = extensions + ', SSE4.1'
2168+ if re.findall(' sse4a ', re.findall("flags\s*:(.*)",info)[0]):
2169+ extensions = extensions + ', SSE4a'
2170+ if re.findall(' nx ', re.findall("flags\s*:(.*)",info)[0]) and vendor == 'GenuineIntel':
2171+ extensions = extensions + ', XD-Bit'
2172+ elif re.findall(' nx ', re.findall("flags\s*:(.*)",info)[0]):
2173+ extensions = extensions + ', NX-Bit'
2174+ return extensions
2175+
2176+
2177+ def sysdevcpu(self, core, level, kind):
2178+ coresinsysdev = str(len(re.findall("'cpu[0-9]'", str(os.listdir("/sys/devices/system/cpu/")))))
2179+ if coresinsysdev == self.cpuinfo('coresnum'):
2180+ cores_matching = True
2181+ else:
2182+ print "Error: Cannot decide if the cores are %s or %s.\nUsing the lowest value as the real cores number." %(cpuinfo('coresnum'), coresinsysdev) #FIXME: Wrong text. (?)
2183+
2184+
2185+
2186+ path = '/sys/devices/system/cpu/cpu%i/cache/' %(core)
2187+ indexes = len(re.findall("'index[0-9]*'",str(os.listdir(path))))
2188+
2189+
2190+ for index in range(indexes):
2191+ levelpath = path+'index%i/level' %(index)
2192+ typepath = path+'index%i/type' %(index)
2193+ size = path+'index%i/size' %(index)
2194+ #os.chdir(newpath)
2195+ if self.readfile(levelpath).strip() == str(level) and self.readfile(typepath).strip() == kind:
2196+ return self.readfile(size).strip()
2197+ elif index == range(indexes)[-1]:
2198+ return 'N/A'
2199+
2200+
2201+
2202+ def distro(self):
2203+ try:
2204+ values = platform.linux_distribution()
2205+ except AttributeError:
2206+ values = platform.dist()
2207+
2208+ if len(values) !=0:
2209+ return "%s %s %s" %(values[0], values[1], values[2])
2210+ else:
2211+ return self.readfile('/etc/issue').strip()
2212+
2213+ def gccver(self):
2214+ gcc_version = os.popen('gcc -dumpversion').read().strip()
2215+ if gcc_version != '':
2216+ return gcc_version
2217+ else:
2218+ return 'N/A'
2219+
2220+ def xver(self):
2221+ command = subprocess.Popen(['Xorg', '-version'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
2222+ stdout, stderr = command.communicate()
2223+ return re.findall("X\.Org X Server (.*)", stderr)[0]
2224+
2225+
2226+ def mobo(self, var):
2227+ # var can be: board_vendor, board_name, bios_vendor,
2228+ # bios_version, bios_date, or chassis_type
2229+ string = self.readfile('/sys/devices/virtual/dmi/id/'+var).strip()
2230+ if string != '':
2231+ return string
2232+ else:
2233+ return 'N/A'
2234+
2235+ def mobochipset(self):
2236+
2237+ chipset = os.popen('lspci | grep \'PCI bridge\'').read()
2238+
2239+ return re.findall("PCI bridge: (.*)",chipset)[0]
2240+
2241+ def chipsetlogo(self):
2242+
2243+ path = 'gfx/logos/chipsets/'
2244+ chipset = os.popen('lspci | grep \'PCI bridge\'').read()
2245+
2246+ if re.findall("nVidia Corporation\s*",chipset):
2247+ label = 'nVidia.png'
2248+ elif re.findall("VIA Technologies\s*",chipset):
2249+ label = 'VIA.png'
2250+ elif re.findall("Intel Corporation\s*",chipset):
2251+ label = 'intel.png'
2252+ elif re.findall("ATI\s*",chipset):
2253+ label = 'ATI.png'
2254+ elif re.findall("AMD\s*",chipset):
2255+ label = 'AMD.png'
2256+ elif re.findall("SiS\s*",chipset):
2257+ label = 'SiS.png'
2258+
2259+ return path + label
2260+
2261+
2262+ def uptime(self):
2263+ total = int(self.readfile('/proc/uptime').split('.')[0])
2264+ days = int(total / 86400)
2265+ hours = int((total / 3600) - (days * 24))
2266+ minutes = int( (total / 60) - ((days * 1440) + (hours * 60)) )
2267+
2268+ return "%i days, %i hours, %i minutes" %(days, hours, minutes)
2269+
2270+
2271+
2272+
2273+class CPUG:
2274+ """Description"""
2275+
2276+ def __init__(self):
2277+ self.gladefile = "cpu-g.glade"
2278+ self.wTree = gtk.Builder()
2279+ self.wTree.add_from_file(self.gladefile)
2280+
2281+ dic = {
2282+ "on_close_clicked" : self.kill,
2283+ "on_mainwindow_destroy" : self.kill,
2284+ "on_core_move_active" : self.core_change
2285+ }
2286+ self.wTree.connect_signals(dic)
2287+
2288+
2289+ # Processor core selection combobox
2290+ self.box = self.wTree.get_object("coreselection")
2291+ add = gtk.ListStore(str)
2292+
2293+ for i in range(int(main().cpuinfo("coresnum"))):
2294+ add.append(["Core #" + str(i)])
2295+
2296+
2297+ self.box.set_model(add)
2298+ cell = gtk.CellRendererText()
2299+ self.box.pack_start(cell)
2300+ self.box.add_attribute(cell,'text',0)
2301+ self.box.set_active(0)
2302+
2303+ # Motherboard tab
2304+ # board_vendor, board_name, bios_vendor, bios_version, bios_date, chassis_type
2305+ self.wTree.get_object("chipset").set_from_file(main().chipsetlogo())
2306+ self.wTree.get_object("mobovendor").set_text(main().mobo('board_vendor'))
2307+ self.wTree.get_object("moboname").set_text(main().mobo('board_name'))
2308+ self.wTree.get_object("mobochipset").set_text(main().mobochipset())
2309+ self.wTree.get_object("biosvendor").set_text(main().mobo('bios_vendor'))
2310+ self.wTree.get_object("biosversion").set_text(main().mobo('bios_version'))
2311+ self.wTree.get_object("biosdate").set_text(main().mobo('bios_date'))
2312+
2313+ # System tab
2314+ # os.uname()[0]=OS(Linux) [1]=hostname [2]=kernel version [4]=architecture
2315+ self.wTree.get_object("gcc").set_text(main().gccver())
2316+ self.uptime_update()
2317+ gobject.timeout_add(1000 * 60, self.uptime_update)
2318+ self.wTree.get_object("hostname").set_text(os.uname()[1])
2319+ self.wTree.get_object("arch").set_text(os.uname()[4])
2320+ self.wTree.get_object("kernel").set_text(os.uname()[0]+" "+os.uname()[2])
2321+ self.wTree.get_object("distro").set_text(main().distro())
2322+ self.wTree.get_object("xorg").set_text(main().xver())
2323+
2324+ def uptime_update(self):
2325+ self.wTree.get_object("uptime").set_text(main().uptime())
2326+ return True
2327+
2328+
2329+ def core_change(self, widget):
2330+ index = self.wTree.get_object("coreselection").get_active()
2331+ print "core set to #" + str(index)
2332+
2333+ # Processor tab
2334+ self.wTree.get_object("vendor").set_text(main().cpuinfo("vendor"))
2335+ self.wTree.get_object("extensions").set_text(main().cpuinfo("extensions"))
2336+ self.wTree.get_object("coresnum").set_text(main().cpuinfo("coresnum"))
2337+ self.wTree.get_object("threads").set_text(main().cpuinfo("threads"))
2338+ self.wTree.get_object("model").set_text(main().cpuinfo("model"))
2339+ self.wTree.get_object("bogomips").set_text(main().cpuinfo("bogomips"))
2340+ self.wTree.get_object("modelnumber").set_text(main().cpuinfo("modelnumber"))
2341+ self.wTree.get_object("family").set_text(main().cpuinfo("familynum"))
2342+ self.wTree.get_object("stepping").set_text(main().cpuinfo("stepping"))
2343+ self.wTree.get_object("corespeed").set_text(main().cpuclock(index))
2344+ self.wTree.get_object("proclogo").set_from_file(main().cpulogo())
2345+ self.wTree.get_object("check_64").set_from_file(main().amd64())
2346+ self.wTree.get_object("check_hwv").set_from_file(main().hwv())
2347+ self.wTree.get_object("l1data").set_text(main().sysdevcpu(index, 1, 'Data'))
2348+ self.wTree.get_object("l1inst").set_text(main().sysdevcpu(index, 1, 'Instruction'))
2349+ self.wTree.get_object("l2").set_text(main().sysdevcpu(index, 2, 'Unified'))
2350+ self.wTree.get_object("l3").set_text(main().sysdevcpu(index, 3, 'Unified'))
2351+
2352+
2353+
2354+ def kill(self, widget):
2355+ print "Quit"
2356+ sys.exit(0)
2357+
2358+
2359+if __name__ == '__main__':
2360+ CPUG()
2361+ gtk.main()
2362+
2363+
2364+
2365
2366=== renamed file 'cpu-g.py' => 'cpu-g.py.moved'
2367=== added directory 'doc'
2368=== added file 'doc/cpu-g.1'
2369--- doc/cpu-g.1 1970-01-01 00:00:00 +0000
2370+++ doc/cpu-g.1 2011-08-31 01:58:22 +0000
2371@@ -0,0 +1,19 @@
2372+.IX Title "CPU-G 1"
2373+.TH CPU-G 1 "2009-10-11" CPU-G CPU-G
2374+
2375+.SH "NAME"
2376+CPU\-G \- A program that shows useful information about your hardware.
2377+
2378+.SH "DESCRIPTION"
2379+.IX Header "DESCRIPTION"
2380+\fBCPU\-G\fP is a program that shows useful information about your hardware. It collects and displays information about your CPU, RAM, Motherboard, some general information about your system and more.
2381+
2382+.SH "AUTHOR"
2383+.IX Header "AUTHOR"
2384+Fotis Tsamis <ftsamis@gmail.com>
2385+
2386+.SH "LICENSE"
2387+.IX Header "LICENSE"
2388+This manpage and the \fBCPU-G\fP utility was written by Fotis Tsamis <ftsamis@gmail.com> for GNU/Linux systems. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 or any later version published by the Free Software Foundation.
2389+
2390+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL-3.
2391
2392=== added directory 'gfx'
2393=== added file 'gfx/check_false.png'
2394Binary files gfx/check_false.png 1970-01-01 00:00:00 +0000 and gfx/check_false.png 2011-08-31 01:58:22 +0000 differ
2395=== added file 'gfx/check_true.png'
2396Binary files gfx/check_true.png 1970-01-01 00:00:00 +0000 and gfx/check_true.png 2011-08-31 01:58:22 +0000 differ
2397=== added file 'gfx/cpu-g_128.png'
2398Binary files gfx/cpu-g_128.png 1970-01-01 00:00:00 +0000 and gfx/cpu-g_128.png 2011-08-31 01:58:22 +0000 differ
2399=== added file 'gfx/cpu-g_48.png'
2400Binary files gfx/cpu-g_48.png 1970-01-01 00:00:00 +0000 and gfx/cpu-g_48.png 2011-08-31 01:58:22 +0000 differ
2401=== added directory 'gfx/logos'
2402=== added directory 'gfx/logos/chipsets'
2403=== added file 'gfx/logos/chipsets/AMD.png'
2404Binary files gfx/logos/chipsets/AMD.png 1970-01-01 00:00:00 +0000 and gfx/logos/chipsets/AMD.png 2011-08-31 01:58:22 +0000 differ
2405=== added file 'gfx/logos/chipsets/ATI.png'
2406Binary files gfx/logos/chipsets/ATI.png 1970-01-01 00:00:00 +0000 and gfx/logos/chipsets/ATI.png 2011-08-31 01:58:22 +0000 differ
2407=== added file 'gfx/logos/chipsets/SiS.png'
2408Binary files gfx/logos/chipsets/SiS.png 1970-01-01 00:00:00 +0000 and gfx/logos/chipsets/SiS.png 2011-08-31 01:58:22 +0000 differ
2409=== added file 'gfx/logos/chipsets/VIA.png'
2410Binary files gfx/logos/chipsets/VIA.png 1970-01-01 00:00:00 +0000 and gfx/logos/chipsets/VIA.png 2011-08-31 01:58:22 +0000 differ
2411=== added file 'gfx/logos/chipsets/intel.png'
2412Binary files gfx/logos/chipsets/intel.png 1970-01-01 00:00:00 +0000 and gfx/logos/chipsets/intel.png 2011-08-31 01:58:22 +0000 differ
2413=== added file 'gfx/logos/chipsets/nVidia.png'
2414Binary files gfx/logos/chipsets/nVidia.png 1970-01-01 00:00:00 +0000 and gfx/logos/chipsets/nVidia.png 2011-08-31 01:58:22 +0000 differ
2415=== added directory 'gfx/logos/processors'
2416=== added file 'gfx/logos/processors/AMD-Athlon-X2.png'
2417Binary files gfx/logos/processors/AMD-Athlon-X2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Athlon-X2.png 2011-08-31 01:58:22 +0000 differ
2418=== added file 'gfx/logos/processors/AMD-Athlon.png'
2419Binary files gfx/logos/processors/AMD-Athlon.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Athlon.png 2011-08-31 01:58:22 +0000 differ
2420=== added file 'gfx/logos/processors/AMD-Athlon64-X2.png'
2421Binary files gfx/logos/processors/AMD-Athlon64-X2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Athlon64-X2.png 2011-08-31 01:58:22 +0000 differ
2422=== added file 'gfx/logos/processors/AMD-Athlon64.png'
2423Binary files gfx/logos/processors/AMD-Athlon64.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Athlon64.png 2011-08-31 01:58:22 +0000 differ
2424=== added file 'gfx/logos/processors/AMD-AthlonII-X2.png'
2425Binary files gfx/logos/processors/AMD-AthlonII-X2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-AthlonII-X2.png 2011-08-31 01:58:22 +0000 differ
2426=== added file 'gfx/logos/processors/AMD-AthlonII-X3.png'
2427Binary files gfx/logos/processors/AMD-AthlonII-X3.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-AthlonII-X3.png 2011-08-31 01:58:22 +0000 differ
2428=== added file 'gfx/logos/processors/AMD-AthlonII-X4.png'
2429Binary files gfx/logos/processors/AMD-AthlonII-X4.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-AthlonII-X4.png 2011-08-31 01:58:22 +0000 differ
2430=== added file 'gfx/logos/processors/AMD-AthlonXP.png'
2431Binary files gfx/logos/processors/AMD-AthlonXP.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-AthlonXP.png 2011-08-31 01:58:22 +0000 differ
2432=== added file 'gfx/logos/processors/AMD-Duron.png'
2433Binary files gfx/logos/processors/AMD-Duron.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Duron.png 2011-08-31 01:58:22 +0000 differ
2434=== added file 'gfx/logos/processors/AMD-Geode.png'
2435Binary files gfx/logos/processors/AMD-Geode.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Geode.png 2011-08-31 01:58:22 +0000 differ
2436=== added file 'gfx/logos/processors/AMD-K6-2.png'
2437Binary files gfx/logos/processors/AMD-K6-2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-K6-2.png 2011-08-31 01:58:22 +0000 differ
2438=== added file 'gfx/logos/processors/AMD-K6-3.png'
2439Binary files gfx/logos/processors/AMD-K6-3.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-K6-3.png 2011-08-31 01:58:22 +0000 differ
2440=== added file 'gfx/logos/processors/AMD-K6.png'
2441Binary files gfx/logos/processors/AMD-K6.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-K6.png 2011-08-31 01:58:22 +0000 differ
2442=== added file 'gfx/logos/processors/AMD-Opteron_K10.png'
2443Binary files gfx/logos/processors/AMD-Opteron_K10.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Opteron_K10.png 2011-08-31 01:58:22 +0000 differ
2444=== added file 'gfx/logos/processors/AMD-Opteron_K8.png'
2445Binary files gfx/logos/processors/AMD-Opteron_K8.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Opteron_K8.png 2011-08-31 01:58:22 +0000 differ
2446=== added file 'gfx/logos/processors/AMD-Phenom-X3.png'
2447Binary files gfx/logos/processors/AMD-Phenom-X3.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Phenom-X3.png 2011-08-31 01:58:22 +0000 differ
2448=== added file 'gfx/logos/processors/AMD-Phenom-X4.png'
2449Binary files gfx/logos/processors/AMD-Phenom-X4.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Phenom-X4.png 2011-08-31 01:58:22 +0000 differ
2450=== added file 'gfx/logos/processors/AMD-PhenomII-X2.png'
2451Binary files gfx/logos/processors/AMD-PhenomII-X2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-PhenomII-X2.png 2011-08-31 01:58:22 +0000 differ
2452=== added file 'gfx/logos/processors/AMD-PhenomII-X3.png'
2453Binary files gfx/logos/processors/AMD-PhenomII-X3.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-PhenomII-X3.png 2011-08-31 01:58:22 +0000 differ
2454=== added file 'gfx/logos/processors/AMD-PhenomII-X4.png'
2455Binary files gfx/logos/processors/AMD-PhenomII-X4.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-PhenomII-X4.png 2011-08-31 01:58:22 +0000 differ
2456=== added file 'gfx/logos/processors/AMD-PhenomII.png'
2457Binary files gfx/logos/processors/AMD-PhenomII.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-PhenomII.png 2011-08-31 01:58:22 +0000 differ
2458=== added file 'gfx/logos/processors/AMD-Sempron-Mobile.png'
2459Binary files gfx/logos/processors/AMD-Sempron-Mobile.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Sempron-Mobile.png 2011-08-31 01:58:22 +0000 differ
2460=== added file 'gfx/logos/processors/AMD-Sempron_K7.png'
2461Binary files gfx/logos/processors/AMD-Sempron_K7.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Sempron_K7.png 2011-08-31 01:58:22 +0000 differ
2462=== added file 'gfx/logos/processors/AMD-Sempron_K8.png'
2463Binary files gfx/logos/processors/AMD-Sempron_K8.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Sempron_K8.png 2011-08-31 01:58:22 +0000 differ
2464=== added file 'gfx/logos/processors/AMD-Turion-X2.png'
2465Binary files gfx/logos/processors/AMD-Turion-X2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Turion-X2.png 2011-08-31 01:58:22 +0000 differ
2466=== added file 'gfx/logos/processors/AMD-Turion-X2Ultra.png'
2467Binary files gfx/logos/processors/AMD-Turion-X2Ultra.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Turion-X2Ultra.png 2011-08-31 01:58:22 +0000 differ
2468=== added file 'gfx/logos/processors/AMD-Turion64-X2.png'
2469Binary files gfx/logos/processors/AMD-Turion64-X2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Turion64-X2.png 2011-08-31 01:58:22 +0000 differ
2470=== added file 'gfx/logos/processors/AMD-Turion64.png'
2471Binary files gfx/logos/processors/AMD-Turion64.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/AMD-Turion64.png 2011-08-31 01:58:22 +0000 differ
2472=== added file 'gfx/logos/processors/Intel-Atom.png'
2473Binary files gfx/logos/processors/Intel-Atom.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Atom.png 2011-08-31 01:58:22 +0000 differ
2474=== added file 'gfx/logos/processors/Intel-Celeron.png'
2475Binary files gfx/logos/processors/Intel-Celeron.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Celeron.png 2011-08-31 01:58:22 +0000 differ
2476=== added file 'gfx/logos/processors/Intel-CeleronD.png'
2477Binary files gfx/logos/processors/Intel-CeleronD.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-CeleronD.png 2011-08-31 01:58:22 +0000 differ
2478=== added file 'gfx/logos/processors/Intel-CeleronM.png'
2479Binary files gfx/logos/processors/Intel-CeleronM.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-CeleronM.png 2011-08-31 01:58:22 +0000 differ
2480=== added file 'gfx/logos/processors/Intel-Celeron_Core.png'
2481Binary files gfx/logos/processors/Intel-Celeron_Core.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Celeron_Core.png 2011-08-31 01:58:22 +0000 differ
2482=== added file 'gfx/logos/processors/Intel-Celeron_old.png'
2483Binary files gfx/logos/processors/Intel-Celeron_old.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Celeron_old.png 2011-08-31 01:58:22 +0000 differ
2484=== added file 'gfx/logos/processors/Intel-Core-i3.png'
2485Binary files gfx/logos/processors/Intel-Core-i3.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Core-i3.png 2011-08-31 01:58:22 +0000 differ
2486=== added file 'gfx/logos/processors/Intel-Core-i5.png'
2487Binary files gfx/logos/processors/Intel-Core-i5.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Core-i5.png 2011-08-31 01:58:22 +0000 differ
2488=== added file 'gfx/logos/processors/Intel-Core-i7.png'
2489Binary files gfx/logos/processors/Intel-Core-i7.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Core-i7.png 2011-08-31 01:58:22 +0000 differ
2490=== added file 'gfx/logos/processors/Intel-Core-i7Extreme.png'
2491Binary files gfx/logos/processors/Intel-Core-i7Extreme.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Core-i7Extreme.png 2011-08-31 01:58:22 +0000 differ
2492=== added file 'gfx/logos/processors/Intel-Core2Duo.png'
2493Binary files gfx/logos/processors/Intel-Core2Duo.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Core2Duo.png 2011-08-31 01:58:22 +0000 differ
2494=== added file 'gfx/logos/processors/Intel-Core2Extreme.png'
2495Binary files gfx/logos/processors/Intel-Core2Extreme.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Core2Extreme.png 2011-08-31 01:58:22 +0000 differ
2496=== added file 'gfx/logos/processors/Intel-Core2Quad.png'
2497Binary files gfx/logos/processors/Intel-Core2Quad.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Core2Quad.png 2011-08-31 01:58:22 +0000 differ
2498=== added file 'gfx/logos/processors/Intel-CoreDuo.png'
2499Binary files gfx/logos/processors/Intel-CoreDuo.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-CoreDuo.png 2011-08-31 01:58:22 +0000 differ
2500=== added file 'gfx/logos/processors/Intel-CoreSolo.png'
2501Binary files gfx/logos/processors/Intel-CoreSolo.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-CoreSolo.png 2011-08-31 01:58:22 +0000 differ
2502=== added file 'gfx/logos/processors/Intel-Pentium2.png'
2503Binary files gfx/logos/processors/Intel-Pentium2.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Pentium2.png 2011-08-31 01:58:22 +0000 differ
2504=== added file 'gfx/logos/processors/Intel-Pentium3.png'
2505Binary files gfx/logos/processors/Intel-Pentium3.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Pentium3.png 2011-08-31 01:58:22 +0000 differ
2506=== added file 'gfx/logos/processors/Intel-Pentium3M.png'
2507Binary files gfx/logos/processors/Intel-Pentium3M.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Pentium3M.png 2011-08-31 01:58:22 +0000 differ
2508=== added file 'gfx/logos/processors/Intel-Pentium4.png'
2509Binary files gfx/logos/processors/Intel-Pentium4.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Pentium4.png 2011-08-31 01:58:22 +0000 differ
2510=== added file 'gfx/logos/processors/Intel-Pentium4HT.png'
2511Binary files gfx/logos/processors/Intel-Pentium4HT.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Pentium4HT.png 2011-08-31 01:58:22 +0000 differ
2512=== added file 'gfx/logos/processors/Intel-Pentium4M.png'
2513Binary files gfx/logos/processors/Intel-Pentium4M.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Pentium4M.png 2011-08-31 01:58:22 +0000 differ
2514=== added file 'gfx/logos/processors/Intel-Pentium4XE.png'
2515Binary files gfx/logos/processors/Intel-Pentium4XE.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Pentium4XE.png 2011-08-31 01:58:22 +0000 differ
2516=== added file 'gfx/logos/processors/Intel-PentiumD.png'
2517Binary files gfx/logos/processors/Intel-PentiumD.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-PentiumD.png 2011-08-31 01:58:22 +0000 differ
2518=== added file 'gfx/logos/processors/Intel-PentiumDual.png'
2519Binary files gfx/logos/processors/Intel-PentiumDual.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-PentiumDual.png 2011-08-31 01:58:22 +0000 differ
2520=== added file 'gfx/logos/processors/Intel-PentiumM.png'
2521Binary files gfx/logos/processors/Intel-PentiumM.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-PentiumM.png 2011-08-31 01:58:22 +0000 differ
2522=== added file 'gfx/logos/processors/Intel-PentiumXE.png'
2523Binary files gfx/logos/processors/Intel-PentiumXE.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-PentiumXE.png 2011-08-31 01:58:22 +0000 differ
2524=== added file 'gfx/logos/processors/Intel-Xeon.png'
2525Binary files gfx/logos/processors/Intel-Xeon.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Xeon.png 2011-08-31 01:58:22 +0000 differ
2526=== added file 'gfx/logos/processors/Intel-Xeon_Core.png'
2527Binary files gfx/logos/processors/Intel-Xeon_Core.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Xeon_Core.png 2011-08-31 01:58:22 +0000 differ
2528=== added file 'gfx/logos/processors/Intel-Xeon_Nehalem.png'
2529Binary files gfx/logos/processors/Intel-Xeon_Nehalem.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Xeon_Nehalem.png 2011-08-31 01:58:22 +0000 differ
2530=== added file 'gfx/logos/processors/Intel-Xeon_old.png'
2531Binary files gfx/logos/processors/Intel-Xeon_old.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/Intel-Xeon_old.png 2011-08-31 01:58:22 +0000 differ
2532=== added file 'gfx/logos/processors/VIA-C3.png'
2533Binary files gfx/logos/processors/VIA-C3.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/VIA-C3.png 2011-08-31 01:58:22 +0000 differ
2534=== added file 'gfx/logos/processors/VIA-C7-M.png'
2535Binary files gfx/logos/processors/VIA-C7-M.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/VIA-C7-M.png 2011-08-31 01:58:22 +0000 differ
2536=== added file 'gfx/logos/processors/VIA-C7.png'
2537Binary files gfx/logos/processors/VIA-C7.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/VIA-C7.png 2011-08-31 01:58:22 +0000 differ
2538=== added file 'gfx/logos/processors/VIA-Nano.png'
2539Binary files gfx/logos/processors/VIA-Nano.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/VIA-Nano.png 2011-08-31 01:58:22 +0000 differ
2540=== added file 'gfx/logos/processors/noimage.png'
2541Binary files gfx/logos/processors/noimage.png 1970-01-01 00:00:00 +0000 and gfx/logos/processors/noimage.png 2011-08-31 01:58:22 +0000 differ
2542=== added file 'setup.cfg'
2543--- setup.cfg 1970-01-01 00:00:00 +0000
2544+++ setup.cfg 2011-08-31 01:58:22 +0000
2545@@ -0,0 +1,7 @@
2546+[install]
2547+optimize = 1
2548+
2549+[bdist_rpm]
2550+group = Hardware/Other
2551+requires = pygtk2, pygtk2-libglade, util-linux
2552+doc_files = README LICENSE TODO
2553
2554=== added file 'setup.py'
2555--- setup.py 1970-01-01 00:00:00 +0000
2556+++ setup.py 2011-08-31 01:58:22 +0000
2557@@ -0,0 +1,24 @@
2558+#!/usr/bin/env python
2559+# -*- coding: utf-8 -*-
2560+
2561+from distutils.core import setup
2562+
2563+setup(
2564+ name = 'CPU-G',
2565+ version = '0.11.0',
2566+ description = 'A CPU-Z clone 4 linux',
2567+ long_description = """CPU-G is a program that shows useful information about your hardware. It collects and displays information about your CPU, Motherboard, some general information about your system and more.""",
2568+ author = 'Fotis Tsamis (ftsamis)',
2569+ author_email = 'ftsamis@gmail.com',
2570+ license = "GPL",
2571+ url = 'http://cpug.sourceforge.net/',
2572+ data_files = [
2573+ ('share/cpu-g', [
2574+ 'cpu-g.glade', 'cpu-g_128.png'
2575+ ]),
2576+ ('share/pixmaps', ['cpu-g_48.png', 'cpu-g_128.png']),
2577+ ('share/applications', ['cpu-g.desktop']),
2578+ ],
2579+ scripts = ["cpu-g"],
2580+ keywords = "cpu cpuinfo chipset",
2581+)

Subscribers

People subscribed via source and target branches