Hello community,
here is the log from the commit of package viewvc for openSUSE:Factory
checked in at Thu Jan 13 09:27:40 CET 2011.
--------
--- viewvc/viewvc.changes 2010-09-12 03:53:53.000000000 +0200
+++ /mounts/work_src_done/STABLE/viewvc/viewvc.changes 2010-12-02 23:47:13.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Dec 2 22:43:14 UTC 2010 - pascal.bleser@opensuse.org
+
+- update to 1.1.8:
+ * fix slowness triggered by allow_compress=1 configuration (issue #467)
+ * yield more useful error on directory markup/annotate request (issue #472)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
viewvc-1.1.7.tar.bz2
New:
----
viewvc-1.1.8.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ viewvc.spec ++++++
--- /var/tmp/diff_new_pack.6FL62j/_old 2011-01-13 08:04:42.000000000 +0100
+++ /var/tmp/diff_new_pack.6FL62j/_new 2011-01-13 08:04:42.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package viewvc (Version 1.1.7)
+# spec file for package viewvc (Version 1.1.8)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
Name: viewvc
BuildRequires: apache2-devel python-devel
-Version: 1.1.7
+Version: 1.1.8
Release: 1
#
%define apxs /usr/sbin/apxs2
++++++ viewvc-1.1.7.tar.bz2 -> viewvc-1.1.8.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewvc-1.1.7/bin/standalone.py new/viewvc-1.1.8/bin/standalone.py
--- old/viewvc-1.1.7/bin/standalone.py 2010-09-09 20:20:01.000000000 +0200
+++ new/viewvc-1.1.8/bin/standalone.py 2010-12-02 21:34:29.000000000 +0100
@@ -17,7 +17,7 @@
__author__ = "Peter Funk "
__date__ = "11 November 2001"
-__version__ = "$Revision: 2464 $"
+__version__ = "$Revision: 2482 $"
__credits__ = """Guido van Rossum, for an excellent programming language.
Greg Stein, for writing ViewCVS in the first place.
Ka-Ping Yee, for the GUI code and the framework stolen from pydoc.py.
@@ -42,7 +42,6 @@
import socket
import select
import base64
-import crypt
import BaseHTTPServer
if LIBRARY_DIR:
@@ -55,6 +54,26 @@
import compat; compat.for_standalone()
+# The 'crypt' module is only available on Unix platforms. We'll try
+# to use 'fcrypt' if it's available (for more information, see
+# http://carey.geek.nz/code/python-fcrypt/).
+has_crypt = False
+try:
+ import crypt
+ has_crypt = True
+ def _check_passwd(user_passwd, real_passwd):
+ return real_passwd == crypt.crypt(user_passwd, real_passwd[:2])
+except ImportError:
+ try:
+ import fcrypt
+ has_crypt = True
+ def _check_passwd(user_passwd, real_passwd):
+ return real_passwd == fcrypt.crypt(user_passwd, real_passwd[:2])
+ except ImportError:
+ def _check_passwd(user_passwd, real_passwd):
+ return False
+
+
class Options:
port = 49152 # default TCP/IP port used for the server
start_gui = 0 # No GUI unless requested.
@@ -182,7 +201,7 @@
for line in lines:
file_user, file_pass = string.split(line.rstrip(), ':', 1)
if username == file_user:
- return file_pass == crypt.crypt(password, file_pass[:2])
+ return _check_passwd(password, file_pass)
except:
pass
return False
@@ -693,11 +712,26 @@
import getopt
class BadUsage(Exception): pass
+ short_opts = string.join(['c',
+ 'd:',
+ 'g',
+ 'h:',
+ 'p:',
+ 'r:',
+ 's:',
+ ], '')
+ long_opts = ['daemon',
+ 'config-file=',
+ 'gui',
+ 'host=',
+ 'htpasswd-file=',
+ 'port=',
+ 'repository=',
+ 'script-alias=',
+ ]
+
try:
- opts, args = getopt.getopt(argv[1:], 'gdc:p:r:h:s:',
- ['gui', 'daemon', 'config-file=', 'host=',
- 'port=', 'repository=', 'script-alias=',
- 'htpasswd-file='])
+ opts, args = getopt.getopt(argv[1:], short_opts, long_opts)
for opt, val in opts:
if opt in ('-g', '--gui'):
options.start_gui = 1
@@ -729,6 +763,13 @@
if not os.path.isfile(val):
raise BadUsage, "'%s' does not appear to be a valid " \
"htpasswd file." % (val)
+ if not has_crypt:
+ raise BadUsage, "Unable to locate suitable `crypt' module for use " \
+ "with --htpasswd-file option. If your Python " \
+ "distribution does not include this module (as is " \
+ "the case on many non-Unix platforms), consider " \
+ "installing the `fcrypt' module instead (see " \
+ "http://carey.geek.nz/code/python-fcrypt/)."
options.htpasswd_file = val
if options.start_gui and options.config_file:
raise BadUsage, "--config-file option is not valid in GUI mode."
@@ -785,10 +826,11 @@
"cgi-bin/viewvc", then ViewVC will be accessible
at "http://%(host)s:%(port)s/cgi-bin/viewvc".
[default: %(script_alias)s]
-
+
--htpasswd-file=FILE Demand authentication from clients, validating
- authentication credentials against Apache
- htpasswd file FILE.
+ authentication credentials against FILE, which is
+ an Apache htpasswd file that employs CRYPT
+ encryption. (Sorry, no DIGEST support yet.)
--gui (-g) Pop up a graphical interface for serving and
testing ViewVC. NOTE: this requires a valid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewvc-1.1.7/CHANGES new/viewvc-1.1.8/CHANGES
--- old/viewvc-1.1.7/CHANGES 2010-09-09 20:21:15.000000000 +0200
+++ new/viewvc-1.1.8/CHANGES 2010-12-02 21:46:06.000000000 +0100
@@ -1,9 +1,15 @@
+Version 1.1.8 (released 02-Dec-2010)
+
+ * fix slowness triggered by allow_compress=1 configuration (issue #467)
+ * allow use of 'fcrypt' for Windows standalone.py authn support (issue #471)
+ * yield more useful error on directory markup/annotate request (issue #472)
+
Version 1.1.7 (released 09-Sep-2010)
* display Subversion revision properties in the revision view (issue #453)
* fix exception in 'standalone.py -r REPOS' when run without a config file
* fix standalone.py server root deployments (--script-alias='')
- * add rudimentary Basic authentication support to standalone.py (issue #49)
+ * add Basic authentication support to standalone.py (Unix only) (issue #49)
* fix obscure "unexpected NULL parent pool" Subversion bindings error
* enable path info / link display in remote Subversion root revision view
* fix vhost name case handling inconsistency (issue #466)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewvc-1.1.7/lib/config.py new/viewvc-1.1.8/lib/config.py
--- old/viewvc-1.1.7/lib/config.py 2010-09-09 17:31:52.000000000 +0200
+++ new/viewvc-1.1.8/lib/config.py 2010-11-30 17:44:16.000000000 +0100
@@ -155,8 +155,7 @@
self.parser.read(self.conf_path or [])
for section in self.parser.sections():
- if self._is_allowed_section(self.parser, section,
- self._base_sections):
+ if self._is_allowed_section(section, self._base_sections):
self._process_section(self.parser, section, section)
if vhost and self.parser.has_section('vhosts'):
@@ -222,7 +221,7 @@
setattr(sc, opt, value)
- def _is_allowed_section(self, parser, section, allowed_sections):
+ def _is_allowed_section(self, section, allowed_sections):
"""Return 1 iff SECTION is an allowed section, defined as being
explicitly present in the ALLOWED_SECTIONS list or present in the
form 'someprefix-*' in that list."""
@@ -235,7 +234,7 @@
return 1
return 0
- def _is_allowed_override(self, parser, sectype, secspec, section):
+ def _is_allowed_override(self, sectype, secspec, section):
"""Test if SECTION is an allowed override section for sections of
type SECTYPE ('vhosts' or 'root', currently) and type-specifier
SECSPEC (a rootname or vhostname, currently). If it is, return
@@ -248,7 +247,7 @@
if section[:lcv] != cv:
return None
base_section = section[lcv:]
- if self._is_allowed_section(parser, base_section,
+ if self._is_allowed_section(base_section,
self._allowed_overrides[sectype]):
return base_section
raise IllegalOverrideSection(sectype, section)
@@ -261,8 +260,7 @@
# Overlay any option sections associated with this vhost name.
for section in parser.sections():
- base_section = self._is_allowed_override(parser, 'vhost',
- canon_vhost, section)
+ base_section = self._is_allowed_override('vhost', canon_vhost, section)
if base_section:
self._process_section(parser, section, base_section)
@@ -288,8 +286,7 @@
return
for section in self.parser.sections():
- base_section = self._is_allowed_override(self.parser, 'root',
- rootname, section)
+ base_section = self._is_allowed_override('root', rootname, section)
if base_section:
# We can currently only deal with root overlays happening
# once, so check that we've not yet done any overlaying of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewvc-1.1.7/lib/viewvc.py new/viewvc-1.1.8/lib/viewvc.py
--- old/viewvc-1.1.7/lib/viewvc.py 2010-09-09 20:22:48.000000000 +0200
+++ new/viewvc-1.1.8/lib/viewvc.py 2010-12-02 21:47:46.000000000 +0100
@@ -14,7 +14,7 @@
#
# -----------------------------------------------------------------------
-__version__ = '1.1.7'
+__version__ = '1.1.8'
# this comes from our library; measure the startup time
import debug
@@ -897,25 +897,37 @@
return template
-def get_writeready_server_file(request, content_type=None, encoding=None):
+def get_writeready_server_file(request, content_type=None, encoding=None,
+ content_length=None):
"""Return a file handle to a response body stream, after outputting
any queued special headers (on REQUEST.server) and (optionally) a
'Content-Type' header whose value is CONTENT_TYPE and character set
- is ENCODING. After this is called, it is too late to add new
- headers to the response."""
+ is ENCODING.
+
+ If CONTENT_LENGTH is provided and compression is not in use, also
+ generate a 'Content-Length' header for this response.
+
+ After this function is called, it is too late to add new headers to
+ the response."""
+
if request.gzip_compress_level:
request.server.addheader('Content-Encoding', 'gzip')
+ elif content_length is not None:
+ request.server.addheader('Content-Length', content_length)
+
if content_type and encoding:
request.server.header("%s; charset=%s" % (content_type, encoding))
elif content_type:
request.server.header(content_type)
else:
request.server.header()
+
if request.gzip_compress_level:
fp = gzip.GzipFile('', 'wb', request.gzip_compress_level,
request.server.file())
else:
fp = request.server.file()
+
return fp
def generate_page(request, view_name, data, content_type=None):
@@ -1808,12 +1820,18 @@
if 'markup' not in request.cfg.options.allowed_views:
raise debug.ViewVCException('Markup view is disabled',
'403 Forbidden')
+ if request.pathtype != vclib.FILE:
+ raise debug.ViewVCException('Unsupported feature: markup view on '
+ 'directory', '400 Bad Request')
markup_or_annotate(request, 0)
def view_annotate(request):
if 'annotate' not in request.cfg.options.allowed_views:
raise debug.ViewVCException('Annotation view is disabled',
'403 Forbidden')
+ if request.pathtype != vclib.FILE:
+ raise debug.ViewVCException('Unsupported feature: annotate view on '
+ 'directory', '400 Bad Request')
markup_or_annotate(request, 1)
def revcmp(rev1, rev2):
@@ -2751,7 +2769,6 @@
raise debug.ViewVCException('Static file "%s" not available (%s)'
% (document, str(v)), '404 Not Found')
- request.server.addheader('Content-Length', content_length)
if document[-3:] == 'png':
mime_type = 'image/png'
elif document[-3:] == 'jpg':
@@ -2762,7 +2779,8 @@
mime_type = 'text/css'
else: # assume HTML:
mime_type = None
- copy_stream(fp, get_writeready_server_file(request, mime_type))
+ copy_stream(fp, get_writeready_server_file(request, mime_type,
+ content_length=content_length))
fp.close()
def rcsdiff_date_reformat(date_str, cfg):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewvc-1.1.7/templates-contrib/viewsvn/templates/query.ezt new/viewvc-1.1.8/templates-contrib/viewsvn/templates/query.ezt
--- old/viewvc-1.1.7/templates-contrib/viewsvn/templates/query.ezt 2006-03-06 21:01:11.000000000 +0100
+++ new/viewvc-1.1.8/templates-contrib/viewsvn/templates/query.ezt 2010-10-02 20:48:46.000000000 +0200
@@ -4,13 +4,13 @@
<!-- ViewVC :: http://www.viewvc.org/ -->
<head>
<title>Checkin Database Query</title>
- <link rel="stylesheet" href="[docroot]/styles.css" type="text/css" />
+ [if-any docroot]<link rel="stylesheet" href="[docroot]/styles.css" type="text/css" />[end]
</head>
<body>
[# setup page definitions]
- [define help_href][docroot]/help_query.html[end]
+ [define help_href][if-any docroot][docroot]/help_query.html[end][end]
[# end]
<p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewvc-1.1.7/templates-contrib/viewsvn/templates/revision.ezt new/viewvc-1.1.8/templates-contrib/viewsvn/templates/revision.ezt
--- old/viewvc-1.1.7/templates-contrib/viewsvn/templates/revision.ezt 2010-07-30 22:24:35.000000000 +0200
+++ new/viewvc-1.1.8/templates-contrib/viewsvn/templates/revision.ezt 2010-10-02 20:48:46.000000000 +0200
@@ -82,4 +82,5 @@
</tbody>
</table>
+[include "include/props.ezt"]
[include "include/footer.ezt"]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org