diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2016-05-02 21:20:10 +0300 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2016-05-03 20:30:44 +0300 |
commit | 4b71e7852fd658e061595d0c6217081dd7f56b60 (patch) | |
tree | 51cb391c51c22ce0c6c22bd7032440b1c9b3cd9d | |
parent | aa09650907f559abcab099361577f8790817da2c (diff) |
Improvements to handling of empty install packages.
Don't consider empty install packages as using any source they refer to, so
source files which are only used by empty install packages are reported as
effectively unused.
Log rather than throwing an exception when writing setup.ini in the
unexpected situation where an external-source is expected to exist, but
doesn't.
Add more reasonable test packages for keychain.
Update tests appropriately.
20 files changed, 86 insertions, 52 deletions
@@ -421,6 +421,10 @@ def validate_packages(args, packages): if 'install' not in packages[p].vermap[v]: continue + # unless the install tarfile is empty + if packages[p].tars[packages[p].vermap[v]['install']].is_empty: + continue + # source tarfile may be either in this package or in the # external-source package # @@ -436,10 +440,6 @@ def validate_packages(args, packages): packages[es_p].tars[packages[es_p].vermap[v]['source']].is_used = True continue - # unless the install tarfile is empty - if packages[p].tars[packages[p].vermap[v]['install']].is_empty: - continue - # unless this package is marked as 'self-source' if 'self-source' in packages[p].hints: continue @@ -447,15 +447,18 @@ def validate_packages(args, packages): logging.error("package '%s' version '%s' is missing source" % (p, v)) error = True - # make another pass to verify that each source tarfile version has at least - # one corresponding install tarfile, in some package. + # make another pass to verify that each non-empty source tarfile version has + # at least one corresponding non-empty install tarfile, in some package. for p in sorted(packages.keys()): for v in sorted(packages[p].vermap.keys(), key=lambda v: SetupVersion(v), reverse=True): if 'source' not in packages[p].vermap[v]: continue + if packages[p].tars[packages[p].vermap[v]['source']].is_empty: + continue + if not packages[p].tars[packages[p].vermap[v]['source']].is_used: - logging.error("package '%s' version '%s' source has no install tarfile" % (p, v)) + logging.error("package '%s' version '%s' source has no non-empty install tarfiles" % (p, v)) error = True # validate that all packages are in the package maintainers list @@ -556,8 +559,11 @@ def write_setup_ini(args, packages): # if that doesn't exist, follow external-source elif 'external-source' in packages[p].hints: s = packages[p].hints['external-source'] - t = packages[s].vermap[version]['source'] - tar_line('source', args.arch, packages[s], t, f) + if 'source' in packages[s].vermap[version]: + t = packages[s].vermap[version]['source'] + tar_line('source', args.arch, packages[s], t, f) + else: + logging.warning("package '%s' version '%s' has no source in external-source '%s'" % (p, version, s)) if 'message' in packages[p].hints: print("message: %s" % packages[p].hints['message'], file=f) diff --git a/testdata/htdocs.expected/x86/keychain/keychain-2.6.8-1 b/testdata/htdocs.expected/x86/keychain/keychain-2.6.8-1 new file mode 100644 index 0000000..543226a --- /dev/null +++ b/testdata/htdocs.expected/x86/keychain/keychain-2.6.8-1 @@ -0,0 +1,19 @@ +<html> +<h1>keychain: Key manager for OpenSSH (installed binaries and support files)</h1> +<tt><pre> + 2006-11-09 04:58 0 usr/ + 2006-11-09 04:58 0 usr/bin/ + 2006-11-09 04:58 53740 usr/bin/keychain + 2006-11-09 04:58 0 usr/share/ + 2006-11-09 04:58 0 usr/share/doc/ + 2006-11-09 04:58 0 usr/share/doc/Cygwin/ + 2006-11-09 04:58 1534 usr/share/doc/Cygwin/keychain-2.6.8.README + 2006-11-09 04:58 0 usr/share/doc/keychain-2.6.8/ + 2006-11-09 04:58 19017 usr/share/doc/keychain-2.6.8/ChangeLog + 2006-11-09 04:58 18009 usr/share/doc/keychain-2.6.8/COPYING + 2006-11-09 04:58 787 usr/share/doc/keychain-2.6.8/README + 2006-11-09 04:58 0 usr/share/man/ + 2006-11-09 04:58 0 usr/share/man/man1/ + 2006-11-09 04:58 13240 usr/share/man/man1/keychain.1 +</pre></tt> +</html> diff --git a/testdata/htdocs.expected/x86/keychain/keychain-2.6.8-1-src b/testdata/htdocs.expected/x86/keychain/keychain-2.6.8-1-src new file mode 100644 index 0000000..0b4f281 --- /dev/null +++ b/testdata/htdocs.expected/x86/keychain/keychain-2.6.8-1-src @@ -0,0 +1,8 @@ +<html> +<h1>keychain: Key manager for OpenSSH (source code)</h1> +<tt><pre> + 2006-11-09 04:59 3051 keychain-2.6.8-1.patch + 2006-11-09 04:59 5621 keychain-2.6.8-1.sh + 2006-11-09 04:59 31531 keychain-2.6.8.tar.bz2 +</pre></tt> +</html> diff --git a/testdata/htdocs.expected/x86/keychain/keychain-2.7.1-1 b/testdata/htdocs.expected/x86/keychain/keychain-2.7.1-1 new file mode 100644 index 0000000..c6bfe4f --- /dev/null +++ b/testdata/htdocs.expected/x86/keychain/keychain-2.7.1-1 @@ -0,0 +1,19 @@ +<html> +<h1>keychain: Key manager for OpenSSH (installed binaries and support files)</h1> +<tt><pre> + 2012-10-10 05:40 0 usr/ + 2012-10-10 05:40 0 usr/bin/ + 2012-10-10 05:40 50490 usr/bin/keychain + 2012-10-10 05:40 0 usr/share/ + 2012-10-10 05:40 0 usr/share/doc/ + 2012-10-10 05:40 0 usr/share/doc/Cygwin/ + 2012-10-10 05:40 2120 usr/share/doc/Cygwin/keychain-2.7.1.README + 2012-10-10 05:40 0 usr/share/doc/keychain/ + 2012-10-10 05:40 17921 usr/share/doc/keychain/COPYING.txt + 2012-10-10 05:40 8980 usr/share/doc/keychain/keychain.txt + 2012-10-10 05:40 14144 usr/share/doc/keychain/README.rst + 2012-10-10 05:40 0 usr/share/man/ + 2012-10-10 05:40 0 usr/share/man/man1/ + 2012-10-10 05:40 5326 usr/share/man/man1/keychain.1.gz +</pre></tt> +</html> diff --git a/testdata/htdocs.expected/x86/keychain/keychain-2.7.1-1-src b/testdata/htdocs.expected/x86/keychain/keychain-2.7.1-1-src new file mode 100644 index 0000000..ce348ee --- /dev/null +++ b/testdata/htdocs.expected/x86/keychain/keychain-2.7.1-1-src @@ -0,0 +1,10 @@ +<html> +<h1>keychain: Key manager for OpenSSH (source code)</h1> +<tt><pre> + 2012-10-10 05:40 24455 keychain-2.7.1-1-cygwin.patch + 2012-10-10 05:40 270 keychain-2.7.1-1-cygwin.patch.sig + 2012-10-10 05:40 320093 keychain-2.7.1-1.sh + 2012-10-10 05:40 260 keychain-2.7.1-1.sh.sig + 2012-10-10 05:40 65211 keychain_2.7.1.orig.tar.gz +</pre></tt> +</html> diff --git a/testdata/htdocs.expected/x86/keychain/keychain-3.1.5-1 b/testdata/htdocs.expected/x86/keychain/keychain-3.1.5-1 deleted file mode 100644 index 574236e..0000000 --- a/testdata/htdocs.expected/x86/keychain/keychain-3.1.5-1 +++ /dev/null @@ -1,5 +0,0 @@ -<html> -<h1>keychain: Key manager for OpenSSH (installed binaries and support files)</h1> -<tt><pre> -</pre></tt> -</html> diff --git a/testdata/htdocs.expected/x86/keychain/keychain-3.1.5-1-src b/testdata/htdocs.expected/x86/keychain/keychain-3.1.5-1-src deleted file mode 100644 index ef34643..0000000 --- a/testdata/htdocs.expected/x86/keychain/keychain-3.1.5-1-src +++ /dev/null @@ -1,9 +0,0 @@ -<html> -<h1>keychain: Key manager for OpenSSH (source code)</h1> -<tt><pre> - 2014-08-17 10:50 0 arpack-3.1.5-1.src/ - 2014-08-17 10:50 1333 arpack-3.1.5-1.src/arpack-3.1.5-1.src.patch - 2014-08-17 10:50 1516406 arpack-3.1.5-1.src/arpack-ng-3.1.5.tar.gz - 2014-08-17 10:50 1334 arpack-3.1.5-1.src/arpack.cygport -</pre></tt> -</html> diff --git a/testdata/htdocs.expected/x86/keychain/keychain-3.2.0-1 b/testdata/htdocs.expected/x86/keychain/keychain-3.2.0-1 deleted file mode 100644 index 574236e..0000000 --- a/testdata/htdocs.expected/x86/keychain/keychain-3.2.0-1 +++ /dev/null @@ -1,5 +0,0 @@ -<html> -<h1>keychain: Key manager for OpenSSH (installed binaries and support files)</h1> -<tt><pre> -</pre></tt> -</html> diff --git a/testdata/htdocs.expected/x86/keychain/keychain-3.2.0-1-src b/testdata/htdocs.expected/x86/keychain/keychain-3.2.0-1-src deleted file mode 100644 index 6ff955f..0000000 --- a/testdata/htdocs.expected/x86/keychain/keychain-3.2.0-1-src +++ /dev/null @@ -1,9 +0,0 @@ -<html> -<h1>keychain: Key manager for OpenSSH (source code)</h1> -<tt><pre> - 2015-03-07 13:15 0 arpack-3.2.0-1.src/ - 2015-03-07 13:15 1333 arpack-3.2.0-1.src/arpack-3.2.0-1.src.patch - 2015-03-07 13:15 1424242 arpack-3.2.0-1.src/arpack-ng-3.2.0.tar.gz - 2015-03-07 13:15 1334 arpack-3.2.0-1.src/arpack.cygport -</pre></tt> -</html> diff --git a/testdata/inifile/setup.ini.expected b/testdata/inifile/setup.ini.expected index a69302f..6c09d84 100644 --- a/testdata/inifile/setup.ini.expected +++ b/testdata/inifile/setup.ini.expected @@ -116,17 +116,17 @@ 'necessary"\n' 'category: Utils\n' 'requires: openssh\n' - 'version: 3.2.0-1\n' - 'install: x86/release/keychain/keychain-3.2.0-1.tar.xz 32 ' - '034b32f1138322638c7a5b7949a3b184c6a4cdfd003360a496c08c56c2cc645c94fbe9cdf9d84c963af6dda6c442717cd61d7e1cecf7024bd463f6f5196c5527\n' - 'source: x86/release/keychain/keychain-3.2.0-1-src.tar.xz 1418708 ' - 'ab811e9636bfc10c21d003818a3e6e614d98ae578a238feb18df9ba25f8fdb18ab1782bfdd09be636617893c62957dd968434004e9ac119d1ec28e8a084f22d9\n' + 'version: 2.7.1-1\n' + 'install: x86/release/keychain/keychain-2.7.1-1.tar.bz2 32219 ' + '0c7b7ad2636b6e23e40e8cb593196b3fabe9c44f7618ea9b2021b89ecdc08720a7f824be0beaa75c9e62dda9a7b5ed7e9c1ed147a1875c582e80866ad09533a2\n' + 'source: x86/release/keychain/keychain-2.7.1-1-src.tar.bz2 134875 ' + 'cef733c5f1ba7380088ce4b12be0a70c3d657fd0e26beae11cf96bbbc2a02c492dafef700adac1059ee643208d76b5f19042e01d9628b2463b916b3dea13aa54\n' '[prev]\n' - 'version: 3.1.5-1\n' - 'install: x86/release/keychain/keychain-3.1.5-1.tar.xz 32 ' - '034b32f1138322638c7a5b7949a3b184c6a4cdfd003360a496c08c56c2cc645c94fbe9cdf9d84c963af6dda6c442717cd61d7e1cecf7024bd463f6f5196c5527\n' - 'source: x86/release/keychain/keychain-3.1.5-1-src.tar.xz 1509512 ' - 'b413bd3a28c25266889f089c7cca560d969f8e099c4322d1408945a865b3538f899d9d80a276f92a2357b1553c59a3526a15434d3b2854ff33486ba85c6b024e\n' + 'version: 2.6.8-1\n' + 'install: x86/release/keychain/keychain-2.6.8-1.tar.bz2 30476 ' + '05af40c0fabbd2ea8f8b74719434371a47c7751986fe6411c17e18cda7d03947c5785ed164dfe59b7238831cc10d8e29f4f88bf3414420bd3231423f424c00bd\n' + 'source: x86/release/keychain/keychain-2.6.8-1-src.tar.bz2 36347 ' + '2151b73a9ec2ece63a842ddad6de19bcfdf097b86d4cae932eeadfc64640997051254001f31081e80272e020887b9599188990368c833ba10886f0ba32a3415e\n' '\n' '@ libdns_sd-devel\n' 'sdesc: "Bonjour Zeroconf implementation"\n' diff --git a/testdata/process_arch/htdocs.expected b/testdata/process_arch/htdocs.expected index 174081f..6554900 100644 --- a/testdata/process_arch/htdocs.expected +++ b/testdata/process_arch/htdocs.expected @@ -14,7 +14,7 @@ 'cygwin-debuginfo-2.2.1-1', 'cygwin-debuginfo-2.3.0-0.3'], 'x86/cygwin-devel': ['.htaccess', 'cygwin-devel-2.2.0-1', 'cygwin-devel-2.2.1-1', 'cygwin-devel-2.3.0-0.3'], - 'x86/keychain': ['.htaccess', 'keychain-3.1.5-1', 'keychain-3.1.5-1-src', 'keychain-3.2.0-1', 'keychain-3.2.0-1-src'], + 'x86/keychain': ['.htaccess', 'keychain-2.6.8-1', 'keychain-2.6.8-1-src', 'keychain-2.7.1-1', 'keychain-2.7.1-1-src'], 'x86/libdns_sd-devel': ['.htaccess', 'libdns_sd-devel-379.32.1-1'], 'x86/libdns_sd1': ['.htaccess', 'libdns_sd1-379.32.1-1'], 'x86/mDNSResponder': ['.htaccess', 'mDNSResponder-379.32.1-1', 'mDNSResponder-379.32.1-1-src'], diff --git a/testdata/process_arch/rel_area.expected b/testdata/process_arch/rel_area.expected index 3c725eb..f081c02 100644 --- a/testdata/process_arch/rel_area.expected +++ b/testdata/process_arch/rel_area.expected @@ -23,10 +23,10 @@ 'setup.hint', 'sha512.sum'], 'x86/release/invalid': ['setup.hint', 'sha512.sum'], - 'x86/release/keychain': ['keychain-3.1.5-1-src.tar.xz', - 'keychain-3.1.5-1.tar.xz', - 'keychain-3.2.0-1-src.tar.xz', - 'keychain-3.2.0-1.tar.xz', + 'x86/release/keychain': ['keychain-2.6.8-1-src.tar.bz2', + 'keychain-2.6.8-1.tar.bz2', + 'keychain-2.7.1-1-src.tar.bz2', + 'keychain-2.7.1-1.tar.bz2', 'setup.hint', 'sha512.sum'], 'x86/release/libspiro': ['setup.hint', 'sha512.sum'], diff --git a/testdata/relarea/x86/release/keychain/keychain-2.6.8-1-src.tar.bz2 b/testdata/relarea/x86/release/keychain/keychain-2.6.8-1-src.tar.bz2 Binary files differnew file mode 100644 index 0000000..ec4c57b --- /dev/null +++ b/testdata/relarea/x86/release/keychain/keychain-2.6.8-1-src.tar.bz2 diff --git a/testdata/relarea/x86/release/keychain/keychain-2.6.8-1.tar.bz2 b/testdata/relarea/x86/release/keychain/keychain-2.6.8-1.tar.bz2 Binary files differnew file mode 100644 index 0000000..a8fd52f --- /dev/null +++ b/testdata/relarea/x86/release/keychain/keychain-2.6.8-1.tar.bz2 diff --git a/testdata/relarea/x86/release/keychain/keychain-2.7.1-1-src.tar.bz2 b/testdata/relarea/x86/release/keychain/keychain-2.7.1-1-src.tar.bz2 Binary files differnew file mode 100644 index 0000000..08be499 --- /dev/null +++ b/testdata/relarea/x86/release/keychain/keychain-2.7.1-1-src.tar.bz2 diff --git a/testdata/relarea/x86/release/keychain/keychain-2.7.1-1.tar.bz2 b/testdata/relarea/x86/release/keychain/keychain-2.7.1-1.tar.bz2 Binary files differnew file mode 100644 index 0000000..4982bf6 --- /dev/null +++ b/testdata/relarea/x86/release/keychain/keychain-2.7.1-1.tar.bz2 diff --git a/testdata/relarea/x86/release/keychain/keychain-3.1.5-1-src.tar.xz b/testdata/relarea/x86/release/keychain/keychain-3.1.5-1-src.tar.xz Binary files differdeleted file mode 100644 index a9d6a57..0000000 --- a/testdata/relarea/x86/release/keychain/keychain-3.1.5-1-src.tar.xz +++ /dev/null diff --git a/testdata/relarea/x86/release/keychain/keychain-3.1.5-1.tar.xz b/testdata/relarea/x86/release/keychain/keychain-3.1.5-1.tar.xz Binary files differdeleted file mode 100644 index ea28d9e..0000000 --- a/testdata/relarea/x86/release/keychain/keychain-3.1.5-1.tar.xz +++ /dev/null diff --git a/testdata/relarea/x86/release/keychain/keychain-3.2.0-1-src.tar.xz b/testdata/relarea/x86/release/keychain/keychain-3.2.0-1-src.tar.xz Binary files differdeleted file mode 100644 index b2241e1..0000000 --- a/testdata/relarea/x86/release/keychain/keychain-3.2.0-1-src.tar.xz +++ /dev/null diff --git a/testdata/relarea/x86/release/keychain/keychain-3.2.0-1.tar.xz b/testdata/relarea/x86/release/keychain/keychain-3.2.0-1.tar.xz Binary files differdeleted file mode 100644 index ea28d9e..0000000 --- a/testdata/relarea/x86/release/keychain/keychain-3.2.0-1.tar.xz +++ /dev/null |