Diff:
---
 calm/package.py                                    | 12 +++--
 calm/pkg2html.py                                   | 14 ++++--
 test/testdata/htdocs.expected/dirtree.expected     |  2 +-
 .../doc/keychain/keychain-2.6.8.README             | 58 ----------------------
 .../{keychain-2.7.1.README => keychain.README}     |  0
 test/testdata/htdocs.expected/packages_docs.inc    |  2 +-
 .../testdata/htdocs.expected/summary/keychain.html |  2 +-
 test/testdata/process_arch/htdocs.expected         |  2 +-
 8 files changed, 22 insertions(+), 70 deletions(-)

diff --git a/calm/package.py b/calm/package.py
index 292cbac..8c523f3 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -1240,10 +1240,14 @@ def validate_package_maintainers(args, packages):
 def packages_warnings(args, packages, *modified):
     for m in modified:
         for p in sorted(m):
-            # warn if no non-test ('curr') version exists
-            if (('missing-curr' not in 
packages[p].version_hints[packages[p].best_version].get('disable-check', '')) 
and
-                ('missing-curr' not in getattr(args, 'disable_check', []))):
-                logging.warning("package '%s' doesn't have any non-test 
versions (i.e. no curr: version)" % (p))
+            for v in packages[p].versions():
+                if 'test' not in packages[p].version_hints[v]:
+                    break
+            else:
+                # warn if no non-test ('curr') version exists
+                if (('missing-curr' not in 
packages[p].version_hints[packages[p].best_version].get('disable-check', '')) 
and
+                    ('missing-curr' not in getattr(args, 'disable_check', 
[]))):
+                    logging.warning("package '%s' doesn't have any non-test 
versions (i.e. no curr: version)" % (p))
 
 
 #
diff --git a/calm/pkg2html.py b/calm/pkg2html.py
index 617221a..a23c662 100755
--- a/calm/pkg2html.py
+++ b/calm/pkg2html.py
@@ -582,7 +582,7 @@ def write_arch_listing(args, packages, arch):
         else:
             listings = []
 
-        for v in packages[p].versions():
+        for v in sorted(packages[p].versions(), key=lambda v: SetupVersion(v)):
             to = packages[p].tar(v)
 
             # the way this filename is built is pretty arbitrary, but is linked
@@ -636,7 +636,7 @@ def write_arch_listing(args, packages, arch):
 
                                         # extract Cygwin-specific READMEs
                                         if 
i.name.startswith('usr/share/doc/Cygwin/') and i.name.endswith('README'):
-                                            logging.error("extracting %s to 
cygwin-specific documents directory" % (i.name))
+                                            logging.info("extracting %s to 
cygwin-specific documents directory" % (i.name))
 
                                             readme_text = 
a.extractfile(i).read()
                                             # redact email addresses
@@ -644,7 +644,13 @@ def write_arch_listing(args, packages, arch):
 
                                             doc_dir = 
os.path.join(args.htdocs, 'doc', p)
                                             ensure_dir_exists(args, doc_dir)
-                                            with open(os.path.join(doc_dir, 
os.path.basename(i.name)), mode='wb') as readme:
+
+                                            # accommodate an historical error 
where the README was installed as
+                                            # $PN-$PV.README, by stripping off 
any version suffix after the
+                                            # package name
+                                            basename = 
re.sub(r'(.*)-[.0-9ga]*.README', r'\1.README', os.path.basename(i.name))
+
+                                            with open(os.path.join(doc_dir, 
basename), mode='wb') as readme:
                                                 readme.write(readme_text)
 
                                             update_doc_inc = True
@@ -692,7 +698,7 @@ def write_arch_listing(args, packages, arch):
                 os.rmdir(os.path.join(dirpath))
 
     # update the package documents list
-    if update_doc_inc:
+    if update_doc_inc or args.force:
         write_doc_inc(args)
 
     return update_summary
diff --git a/test/testdata/htdocs.expected/dirtree.expected 
b/test/testdata/htdocs.expected/dirtree.expected
index e24bab7..15cfa5f 100644
--- a/test/testdata/htdocs.expected/dirtree.expected
+++ b/test/testdata/htdocs.expected/dirtree.expected
@@ -1,6 +1,6 @@
 {'.': ['packages.inc', 'packages_docs.inc', 'src_packages.inc'],
  'doc': ['.htaccess'],
- 'doc/keychain': ['keychain-2.6.8.README', 'keychain-2.7.1.README'],
+ 'doc/keychain': ['keychain.README'],
  'summary': ['arc-src.html',
              'arc.html',
              'base-cygwin.html',
diff --git a/test/testdata/htdocs.expected/doc/keychain/keychain-2.6.8.README 
b/test/testdata/htdocs.expected/doc/keychain/keychain-2.6.8.README
deleted file mode 100644
index 32dbe29..0000000
--- a/test/testdata/htdocs.expected/doc/keychain/keychain-2.6.8.README
+++ /dev/null
@@ -1,58 +0,0 @@
-Keychain
-------------------------------------------
-Keychain is a manager for ssh-agent, typically run from ~/.bash_profile.
-It allows your shells and cron jobs to share a single ssh-agent process.
-
-Runtime requirements:
-  cygwin-1.5.18 or newer
-  openssh-4.5p1-1 or newer
-  bash-3.1-9 or newer
-  grep-2.5.1a-3 or newer
-  gawk-3.1.5-4 or newer
-  coreutils-6.4-1 or newer
-
-Canonical homepage:
-  http://www.gentoo.org/proj/en/keychain/
-
-Canonical download:
-  http://dev.gentoo.org/~agriffis/keychain/
-
-License:
-  GPL
-
-Language:
-  sh
-
-------------------------------------
-
-Build instructions:
-  unpack keychain-2.6.8-1-src.tar.bz2
-    if you use setup to install this src package, it will be
-        unpacked under /usr/src automatically
-  cd /usr/src
-  ./keychain-2.6.8-1.sh all
-
-This will create:
-  /usr/src/keychain-2.6.8-1.tar.bz2
-  /usr/src/keychain-2.6.8-1-src.tar.bz2
-
-Or use './keychain-2.6.8-1.sh prep' to get a patched source directory
-
-To find out the files included in the binary distribution, you can
-use "cygcheck -l keychain", or browse the listing for the appropriate version
-at <http://cygwin.com/packages/>.
-
-------------------
-
-Port Notes:
-
----------- keychain-2.6.8-1 -- 11/08/2006 -----------
-New Maintainer: Jonathan C. Allen
-keychain 2.6.8 released
-
-For more information about this package, see the upstream documentation in
-/usr/share/doc/keychain-2.6.8.
-
-Cygwin port maintained by: Jonathan C. Allen <jca at sdf dot lonestar dot org>
-Please address all questions to the Cygwin mailing list:
-<cygwin at cygwin dot com>
diff --git a/test/testdata/htdocs.expected/doc/keychain/keychain-2.7.1.README 
b/test/testdata/htdocs.expected/doc/keychain/keychain.README
similarity index 100%
rename from test/testdata/htdocs.expected/doc/keychain/keychain-2.7.1.README
rename to test/testdata/htdocs.expected/doc/keychain/keychain.README
diff --git a/test/testdata/htdocs.expected/packages_docs.inc 
b/test/testdata/htdocs.expected/packages_docs.inc
index 7b4652e..e845ecd 100644
--- a/test/testdata/htdocs.expected/packages_docs.inc
+++ b/test/testdata/htdocs.expected/packages_docs.inc
@@ -1,4 +1,4 @@
 <div class="multicolumn-list">
-<p>keychain: <a href="doc/keychain/keychain-2.6.8.README">keychain-2.6.8</a>, 
<a href="doc/keychain/keychain-2.7.1.README">keychain-2.7.1</a></p>
+<p><a href="doc/keychain/keychain.README">keychain</a></p>
 <p><a href="https://x.cygwin.com/";>X</a></p>
 </div>
diff --git a/test/testdata/htdocs.expected/summary/keychain.html 
b/test/testdata/htdocs.expected/summary/keychain.html
index c8869fa..0f3134a 100644
--- a/test/testdata/htdocs.expected/summary/keychain.html
+++ b/test/testdata/htdocs.expected/summary/keychain.html
@@ -27,7 +27,7 @@ necessary</p></td></tr>
 <tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
 <span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> 
to report bugs or ask questions.
 <a href="/problems.html#personal-email">Do not contact the maintainer(s) 
directly</a>.)</span></p></td></tr>
-<tr><td><p><span class="detail">readme</span>:</p></td><td><p><a 
href="../doc/keychain/keychain-2.6.8.README">keychain-2.6.8.README</a>, <a 
href="../doc/keychain/keychain-2.7.1.README">keychain-2.7.1.README</a></p></td></tr>
+<tr><td><p><span class="detail">readme</span>:</p></td><td><p><a 
href="../doc/keychain/keychain.README">keychain.README</a></p></td></tr>
 </table><br>
 <table class="pkgtable">
 <tr><th>Version</th><th>Arch</th><th>Package 
Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
diff --git a/test/testdata/process_arch/htdocs.expected 
b/test/testdata/process_arch/htdocs.expected
index 067d41c..dfe67ea 100644
--- a/test/testdata/process_arch/htdocs.expected
+++ b/test/testdata/process_arch/htdocs.expected
@@ -1,6 +1,6 @@
 {'.': ['calm.db', 'packages.inc', 'packages_docs.inc', 'reports_list.inc', 
'src_packages.inc'],
  'doc': ['.htaccess'],
- 'doc/keychain': ['keychain-2.6.8.README', 'keychain-2.7.1.README'],
+ 'doc/keychain': ['keychain.README'],
  'reports': ['deprecated_so.html',
              'maintainer_activity.html',
              'perl_rebuilds.html',

Reply via email to