Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/
Date: Tue, 31 Jul 2012 10:21:36
Message-Id: 1343729881.3836d4ec2da708677826cda1d3ea9f8281bde9c7.zmedico@gentoo
1 commit: 3836d4ec2da708677826cda1d3ea9f8281bde9c7
2 Author: Michael Palimaka <kensington <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jul 31 10:18:01 2012 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Tue Jul 31 10:18:01 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=3836d4ec
7
8 Validate desktop entries after src_install.
9
10 ---
11 pym/portage/package/ebuild/doebuild.py | 26 ++++++++++++++++++++++++++
12 1 files changed, 26 insertions(+), 0 deletions(-)
13
14 diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
15 index 09062f9..dfdfedc 100644
16 --- a/pym/portage/package/ebuild/doebuild.py
17 +++ b/pym/portage/package/ebuild/doebuild.py
18 @@ -28,6 +28,7 @@ portage.proxy.lazyimport.lazyimport(globals(),
19 'portage.package.ebuild._ipc.QueryCommand:QueryCommand',
20 'portage.dep._slot_abi:evaluate_slot_abi_equal_deps',
21 'portage.package.ebuild._spawn_nofetch:spawn_nofetch',
22 + 'portage.util._desktop_entry:validate_desktop_entry',
23 'portage.util.ExtractKernelVersion:ExtractKernelVersion'
24 )
25
26 @@ -1746,6 +1747,7 @@ def _post_src_install_uid_fix(mysettings, out):
27
28 destdir = mysettings["D"]
29 ed_len = len(mysettings["ED"])
30 + desktopfile_errors = []
31 unicode_errors = []
32
33 while True:
34 @@ -1794,6 +1796,11 @@ def _post_src_install_uid_fix(mysettings, out):
35 else:
36 fpath = os.path.join(parent, fname)
37
38 + if fname.endswith(".desktop") and os.path.isfile(fpath):
39 + desktop_validate = validate_desktop_entry(fpath)
40 + if desktop_validate:
41 + desktopfile_errors.extend(desktop_validate)
42 +
43 if fixlafiles and \
44 fname.endswith(".la") and os.path.isfile(fpath):
45 f = open(_unicode_encode(fpath,
46 @@ -1860,6 +1867,11 @@ def _post_src_install_uid_fix(mysettings, out):
47 if not unicode_error:
48 break
49
50 + if desktopfile_errors:
51 + for l in _merge_desktopfile_error(desktopfile_errors):
52 + l = l.replace(mysettings["ED"], '/')
53 + eqawarn(l, phase='install', key=mysettings.mycpv, out=out)
54 +
55 if unicode_errors:
56 for l in _merge_unicode_error(unicode_errors):
57 eqawarn(l, phase='install', key=mysettings.mycpv, out=out)
58 @@ -2022,6 +2034,20 @@ def _post_src_install_soname_symlinks(mysettings, out):
59 for line in qa_msg:
60 eqawarn(line, key=mysettings.mycpv, out=out)
61
62 +def _merge_desktopfile_error(errors):
63 + lines = []
64 +
65 + msg = _("QA Notice: This package installs one or more .desktop files "
66 + "that do not pass validation.")
67 + lines.extend(wrap(msg, 72))
68 +
69 + lines.append("")
70 + errors.sort()
71 + lines.extend("\t" + x for x in errors)
72 + lines.append("")
73 +
74 + return lines
75 +
76 def _merge_unicode_error(errors):
77 lines = []