1 |
commit: 563f65e4b167f213981ec030c71ebd35a2ca9780 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Jan 21 18:29:07 2016 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jan 27 22:44:26 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=563f65e4 |
7 |
|
8 |
repoman: Fix a traceback due to xmlint not being installed for a manifest generation |
9 |
|
10 |
Mike helped find teh fact that self.binary was None, causing the misleading traceback. |
11 |
Tighten up the logic in XmlLint. |
12 |
Bypass the PkgMetadata check for manifest mode. |
13 |
|
14 |
floppym@naomi btrfs-progs % repoman manifest |
15 |
>>> Creating Manifest for /home/floppym/repos/gentoo/sys-fs/btrfs-progs |
16 |
Traceback (most recent call last): |
17 |
File "/home/floppym/bin/repoman", line 37, in <module> |
18 |
repoman_main(sys.argv[1:]) |
19 |
File "/home/floppym/src/portage/pym/repoman/main.py", line 111, in repoman_main |
20 |
can_force = scanner.scan_pkgs(can_force) |
21 |
File "/home/floppym/src/portage/pym/repoman/scanner.py", line 242, in scan_pkgs |
22 |
rdata = func(**dynamic_data) |
23 |
File "/home/floppym/src/portage/pym/repoman/modules/scan/metadata/pkgmetadata.py", line 180, in check |
24 |
if not self.xmllint.check(checkdir, repolevel): |
25 |
File "/home/floppym/src/portage/pym/repoman/_xml.py", line 98, in check |
26 |
os.path.join(checkdir, "metadata.xml")))) |
27 |
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' |
28 |
|
29 |
pym/repoman/_xml.py | 2 +- |
30 |
pym/repoman/modules/scan/metadata/pkgmetadata.py | 3 +++ |
31 |
2 files changed, 4 insertions(+), 1 deletion(-) |
32 |
|
33 |
diff --git a/pym/repoman/_xml.py b/pym/repoman/_xml.py |
34 |
index 2661f14..f7ff9fb 100644 |
35 |
--- a/pym/repoman/_xml.py |
36 |
+++ b/pym/repoman/_xml.py |
37 |
@@ -60,6 +60,7 @@ class XmlLint(object): |
38 |
self.repoman_settings = repoman_settings |
39 |
self._is_capable = metadata_dtd is not None |
40 |
self.binary = None |
41 |
+ self._is_capable = False |
42 |
self._check_capable() |
43 |
|
44 |
def _check_capable(self): |
45 |
@@ -68,7 +69,6 @@ class XmlLint(object): |
46 |
self.binary = find_binary('xmllint') |
47 |
if not self.binary: |
48 |
print(red("!!! xmllint not found. Can't check metadata.xml.\n")) |
49 |
- self._is_capable = False |
50 |
elif not self._is_capable: |
51 |
if not fetch_metadata_dtd(self.metadata_dtd, self.repoman_settings): |
52 |
sys.exit(1) |
53 |
|
54 |
diff --git a/pym/repoman/modules/scan/metadata/pkgmetadata.py b/pym/repoman/modules/scan/metadata/pkgmetadata.py |
55 |
index 220fd23..8e93457 100644 |
56 |
--- a/pym/repoman/modules/scan/metadata/pkgmetadata.py |
57 |
+++ b/pym/repoman/modules/scan/metadata/pkgmetadata.py |
58 |
@@ -71,6 +71,9 @@ class PkgMetadata(ScanBase): |
59 |
repolevel = kwargs.get('repolevel') |
60 |
|
61 |
self.musedict = {} |
62 |
+ if self.options.mode in ['manifest']: |
63 |
+ return {'continue': False, 'muselist': frozenset(self.musedict)} |
64 |
+ |
65 |
# metadata.xml file check |
66 |
if "metadata.xml" not in checkdirlist: |
67 |
self.qatracker.add_error("metadata.missing", xpkg + "/metadata.xml") |