From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24175 invoked by alias); 14 Sep 2016 13:15:44 -0000 Mailing-List: contact cygwin-apps-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-apps-cvs-owner@sourceware.org Received: (qmail 23441 invoked by uid 9795); 14 Sep 2016 13:15:36 -0000 Date: Wed, 14 Sep 2016 13:15:00 -0000 Message-ID: <20160914131536.23396.qmail@sourceware.org> From: jturney@sourceware.org To: cygwin-apps-cvs@sourceware.org Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20160705-17-gdb2d7aa X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 2e76b3557432f1a3283ec9ad8ac9330be0cf6caf X-Git-Newrev: db2d7aa3af433748b4c4e8fd922e5151dff72211 X-SW-Source: 2016-q3/txt/msg00035.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=db2d7aa3af433748b4c4e8fd922e5151dff72211 commit db2d7aa3af433748b4c4e8fd922e5151dff72211 Author: Jon Turney Date: Tue Sep 13 22:07:09 2016 +0100 Correctly handle upload which doesn't alter an existing override.hint If there is an existing override.hint, it should be retained rather than be discarded when there is an upload https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=9967dd937702f63df47a99cbf5624277e6c6297a commit 9967dd937702f63df47a99cbf5624277e6c6297a Author: Jon Turney Date: Tue Sep 13 20:32:47 2016 +0100 Check the setup.ini produced by the 'process' test Also check the setup.ini produced by the 'process' test against the expected output Diff: --- calm/package.py | 8 +- test/test_calm.py | 6 + test/testdata/process_arch/setup.ini.expected | 263 +++++++++++++++++++++++++ 3 files changed, 275 insertions(+), 2 deletions(-) diff --git a/calm/package.py b/calm/package.py index e198c9e..27d6457 100755 --- a/calm/package.py +++ b/calm/package.py @@ -734,6 +734,10 @@ def upper_first_character(s): # - we combine the list of tarfiles, duplicates are not permitted # - we use the hints from b, and warn if they are different to the hints for a # +# (XXX: this implementation possibly assumes that a package is at most in a and +# one of b, which is currently true, but it could be written with more +# generality) +# def merge(a, *l): # start with a copy of a c = copy.deepcopy(a) @@ -770,8 +774,8 @@ def merge(a, *l): logging.warning("package '%s' hints changed\n%s" % (p, diff)) - # take overrides from b - c[p].override_hints = b[p].override_hints + # overrides from b take precedence + c[p].override_hints.update(b[p].override_hints) # skip if both a and b are skip c[p].skip = a[p].skip and b[p].skip diff --git a/test/test_calm.py b/test/test_calm.py index 2d60f82..7cbe9f2 100755 --- a/test/test_calm.py +++ b/test/test_calm.py @@ -272,6 +272,12 @@ class CalmTest(unittest.TestCase): pkg2html.update_package_listings(args, packages['x86'], 'x86') package.write_setup_ini(args, packages['x86'], 'x86') + with open(os.path.join(args.rel_area, 'setup.ini')) as inifile: + results = inifile.read() + # fix the timestamp to match expected + results = re.sub('setup-timestamp: .*', 'setup-timestamp: 1473797080', results, 1) + compare_with_expected_file(self, 'testdata/process_arch', (results,), 'setup.ini') + for d in ['rel_area', 'homedir', 'htdocs', 'vault']: with self.subTest(directory=d): dirlist = capture_dirtree(getattr(args, d)) diff --git a/test/testdata/process_arch/setup.ini.expected b/test/testdata/process_arch/setup.ini.expected new file mode 100644 index 0000000..7de15aa --- /dev/null +++ b/test/testdata/process_arch/setup.ini.expected @@ -0,0 +1,263 @@ +('# This file is automatically generated. If you edit it, your\n' + '# edits will be discarded next time the file is generated.\n' + '# See http://cygwin.com/setup.html for details.\n' + '#\n' + 'release: trial\n' + 'arch: x86\n' + 'setup-timestamp: 1473797080\n' + 'setup-version: 3.1415\n' + '\n' + '@ arc\n' + 'sdesc: "The ARC archive utility"\n' + 'ldesc: "This program is based on the MSDOS ARC program, version 5.21, plus a\n' + 'few enhancements. ARC performs Huffman Squeezing on data. The Huffman\n' + 'Squeeze algorithm was removed from MSDOS ARC after version 5.12. It\n' + 'turns out to be more efficient than Lempel-Ziv style compression when\n' + 'compressing graphic images. Squeeze analysis is always done now, and\n' + 'the best of packing, squeezing, or crunching is used."\n' + 'category: Archive\n' + 'version: 4.32.7-10\n' + 'install: x86/release/arc/arc-4.32.7-10.tar.bz2 14 ' + '6de201dfed1d45412509c65deb34690dc2d09c6aafccfe491fd2f440f92842b9c755b61dc7bcdd4cc0c9f18cf46c2b3a1241e99c4c2a33fff5555e7b2f0b6348\n' + 'source: x86/release/arc/arc-4.32.7-10-src.tar.bz2 14 ' + '6de201dfed1d45412509c65deb34690dc2d09c6aafccfe491fd2f440f92842b9c755b61dc7bcdd4cc0c9f18cf46c2b3a1241e99c4c2a33fff5555e7b2f0b6348\n' + '\n' + '@ base-cygwin\n' + 'sdesc: "Initial base installation helper script"\n' + 'ldesc: "Initial base installation helper script."\n' + 'category: Base\n' + 'version: 3.8-1\n' + 'install: x86/release/base-cygwin/base-cygwin-3.8-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[prev]\n' + 'version: 3.6-1\n' + 'install: x86/release/base-cygwin/base-cygwin-3.6-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '\n' + '@ corrupt\n' + 'sdesc: "A corrupt package"\n' + 'ldesc: "A package containing corrupt archives"\n' + 'category: Devel\n' + 'version: 2.0.0-1\n' + 'install: x86/release/corrupt/corrupt-2.0.0-1.tar.xz 128 ' + '1f7a858f21049e9b13b8f4bbb9325582a304c8829d67c7cd302a33d78bc59808b6a84a0f6f19c87cc3c331aeaa60613437d35b0bae3390a78fd9118ac156d3f1\n' + 'source: x86/release/corrupt/corrupt-2.0.0-1-src.tar.xz 362012 ' + '26a2a77ce2ab0691bbd20b720d34285dcf814888649810a70edadf398b7dca264dba7ba4449f51f20f2d1cd9617844919e2f2718b6014b37ab564d2463cc366b\n' + '\n' + '@ cygwin\n' + 'sdesc: "The UNIX emulation engine"\n' + 'ldesc: "The UNIX emulation engine"\n' + 'category: Base\n' + 'requires: base-cygwin\n' + 'version: 2.2.1-1\n' + 'install: x86/release/cygwin/cygwin-2.2.1-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.2.1-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[prev]\n' + 'version: 2.2.0-1\n' + 'install: x86/release/cygwin/cygwin-2.2.0-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.2.0-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[test]\n' + 'version: 2.3.0-0.3\n' + 'install: x86/release/cygwin/cygwin-2.3.0-0.3.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.3.0-0.3-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '\n' + '@ cygwin-debuginfo\n' + 'sdesc: "Debug info for cygwin"\n' + 'ldesc: "This package contains files necessary for debugging the\n' + 'cygwin package with gdb."\n' + 'category: Debug\n' + 'requires: cygwin-debuginfo\n' + 'version: 2.2.1-1\n' + 'install: x86/release/cygwin/cygwin-debuginfo/cygwin-debuginfo-2.2.1-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.2.1-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[prev]\n' + 'version: 2.2.0-1\n' + 'install: x86/release/cygwin/cygwin-debuginfo/cygwin-debuginfo-2.2.0-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.2.0-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[test]\n' + 'version: 2.3.0-0.3\n' + 'install: x86/release/cygwin/cygwin-debuginfo/cygwin-debuginfo-2.3.0-0.3.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.3.0-0.3-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '\n' + '@ cygwin-devel\n' + 'sdesc: "Core development files"\n' + 'ldesc: "Core development files required to build Cygwin packages"\n' + 'category: Devel\n' + 'version: 2.2.1-1\n' + 'install: x86/release/cygwin/cygwin-devel/cygwin-devel-2.2.1-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.2.1-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[prev]\n' + 'version: 2.2.0-1\n' + 'install: x86/release/cygwin/cygwin-devel/cygwin-devel-2.2.0-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.2.0-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[test]\n' + 'version: 2.3.0-0.3\n' + 'install: x86/release/cygwin/cygwin-devel/cygwin-devel-2.3.0-0.3.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/cygwin/cygwin-2.3.0-0.3-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '\n' + '@ keychain\n' + 'sdesc: "Key manager for OpenSSH"\n' + 'ldesc: "Keychain is an OpenSSH key manager, typically run from\n' + '~/.bash_profile. When keychain is run, it checks for a running\n' + 'ssh-agent, otherwise it starts one. It saves the ssh-agent environment\n' + 'variables to ~/.keychain/$HOSTNAME-sh, so that subsequent logins\n' + 'and non-interactive shells such as cron jobs can source the file and\n' + 'make passwordless ssh connections. In addition, when keychain runs, it\n' + 'verifies that the key files specified on the command-line are known to\n' + 'ssh-agent, otherwise it loads them, prompting you for a password if\n' + 'necessary"\n' + 'category: Utils\n' + 'requires: openssh\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: 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' + 'ldesc: "Bonjour, also known as zero-configuration networking, enables\n' + 'automatic discovery of computers, devices, and services on IP networks using\n' + 'industry standard IP protocols."\n' + 'category: Net\n' + 'requires: libdns_sd1\n' + 'version: 379.32.1-1\n' + 'install: x86/release/mDNSResponder/libdns_sd-devel/libdns_sd-devel-379.32.1-1.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + 'source: x86/release/mDNSResponder/mDNSResponder-379.32.1-1-src.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + '\n' + '@ libdns_sd1\n' + 'sdesc: "Bonjour Zeroconf implementation"\n' + 'ldesc: "Bonjour, also known as zero-configuration networking, enables\n' + 'automatic discovery of computers, devices, and services on IP networks using\n' + 'industry standard IP protocols."\n' + 'category: Net\n' + 'version: 379.32.1-1\n' + 'install: x86/release/mDNSResponder/libdns_sd1/libdns_sd1-379.32.1-1.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + 'source: x86/release/mDNSResponder/mDNSResponder-379.32.1-1-src.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + '\n' + '@ mDNSResponder\n' + 'sdesc: "Bonjour Zeroconf implementation"\n' + 'ldesc: "Bonjour, also known as zero-configuration networking, enables\n' + 'automatic discovery of computers, devices, and services on IP networks using\n' + 'industry standard IP protocols."\n' + 'category: Net\n' + 'requires: libdns_sd1\n' + 'version: 379.32.1-1\n' + 'install: x86/release/mDNSResponder/mDNSResponder-379.32.1-1.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + 'source: x86/release/mDNSResponder/mDNSResponder-379.32.1-1-src.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + 'message: mDNSResponder "The Cygwin mDNSResponder package contains only clients.\n' + "If you do not already have the 'Bonjour Service' installed (it comes with\n" + 'a number of popular Windows programs), then you can download it at\n' + 'http://support.apple.com/kb/DL999"\n' + '\n' + '@ openssh\n' + 'sdesc: "The OpenSSH server and client programs"\n' + 'ldesc: "OpenSSH is a program for logging into a remote machine and for\n' + '\texecuting commands on a remote machine. It can replace rlogin and rsh,\n' + '\tproviding encrypted communication between two machines."\n' + 'category: Net\n' + 'version: 7.2p2-1\n' + 'install: x86/release/openssh/openssh-7.2p2-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/openssh/openssh-7.2p2-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '\n' + '@ per-version\n' + 'sdesc: "Per-version hint test package"\n' + 'ldesc: "Per-version hint test package"\n' + 'category: Base\n' + 'requires: base-cygwin cygwin\n' + 'version: 4.8-1\n' + 'install: x86/release/per-version/per-version-4.8-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/per-version/per-version-4.8-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '[prev]\n' + 'version: 4.0-1\n' + 'install: x86/release/per-version/per-version-4.0-1.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + 'source: x86/release/per-version/per-version-4.0-1-src.tar.xz 228 ' + 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n' + '\n' + '@ perl-Net-SMTP-SSL\n' + 'sdesc: "Perl distribution Net-SMTP-SSL"\n' + 'ldesc: "Implements the same API as Net::SMTP, but uses IO::Socket::SSL for\n' + 'its network operations in order to support encrypted connections."\n' + 'category: Perl\n' + 'version: 1.03-2\n' + 'install: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2.tar.xz 3180 ' + 'aac6428f56fed431da1430242a327f36f1ec1ca6106366acb6752dd87f1b9adb87767709be9279b2f9435d16cee003f119a5ed4519c7365c8411404555618e66\n' + 'source: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xz 2752 ' + '4de528554acb0b63f2a964bc8a0421118f96ce05cb4c9d111983aaea1a4a93025b31627fd66875fa09c2dfaecc11a89f2a294bdd3c77055bfaa93a27fdfc1f07\n' + '[prev]\n' + 'version: 1.03-1\n' + 'install: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-1.tar.xz 3180 ' + 'aac6428f56fed431da1430242a327f36f1ec1ca6106366acb6752dd87f1b9adb87767709be9279b2f9435d16cee003f119a5ed4519c7365c8411404555618e66\n' + 'source: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-1-src.tar.xz 2752 ' + '4de528554acb0b63f2a964bc8a0421118f96ce05cb4c9d111983aaea1a4a93025b31627fd66875fa09c2dfaecc11a89f2a294bdd3c77055bfaa93a27fdfc1f07\n' + '\n' + '@ rpm-doc\n' + 'sdesc: "Obsolete package for RPM package management system manual pages"\n' + 'category: _obsolete\n' + 'version: 999-1\n' + 'install: x86/release/rpm-doc/rpm-doc-999-1.tar.bz2 42 ' + '28c70b843fe01d90a3eeab4a3617551d236cd0b7d69668d1b1b6c8b14a9fd050e4039c192894c93bdf31575771c58c1fea2a41c24c8da22d10080d8b032b6369\n' + '[prev]\n' + 'version: 4.1-2\n' + 'install: x86/release/rpm-doc/rpm-doc-4.1-2.tar.bz2 50941 ' + '7cc9db802364252e3206ce9f75c8ca53813d8308a22a425b50ef695dd8e51568740b06739d3aa3399a83fb3d3e1345ab7e2ad03a1e9d47c02dded3363bf4f493\n' + 'source: x86/release/rpm-doc/rpm-doc-4.1-2-src.tar.bz2 42 ' + '28c70b843fe01d90a3eeab4a3617551d236cd0b7d69668d1b1b6c8b14a9fd050e4039c192894c93bdf31575771c58c1fea2a41c24c8da22d10080d8b032b6369\n' + '\n' + '@ testpackage\n' + 'sdesc: "A test package"\n' + 'ldesc: "A test package\n' + "It's description might contains some unicode gibberish\n" + 'Like it’s you’re Markup Language™ Nokogiri’s tool―that Bézier."\n' + 'category: Devel\n' + 'requires: cygwin\n' + 'version: 1.0-1\n' + 'install: x86/release/testpackage/testpackage-1.0-1.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + 'source: x86/release/testpackage/testpackage-1.0-1-src.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + '\n' + '@ testpackage-subpackage\n' + 'sdesc: "A test subpackage"\n' + 'ldesc: "A test subpackage"\n' + 'category: Devel\n' + 'version: 1.0-1\n' + 'install: x86/release/testpackage/testpackage-subpackage/testpackage-subpackage-1.0-1.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n' + 'source: x86/release/testpackage/testpackage-1.0-1-src.tar.bz2 195 ' + 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n',)