Sophie

Sophie

distrib > Mandriva > 2010.0 > x86_64 > by-pkgid > 8d63b5f84cdb347c59c85b3579a2e384 > files > 15

bazaar-1.4.2-4mdv2009.1.x86_64.rpm

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title></title>
<meta name="author" content="James Blackwell &lt;jblack&#64;gnuarch.org&gt;" />
<style type="text/css">

/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
:Copyright: This stylesheet has been placed in the public domain.

Default cascading style sheet for the HTML output of Docutils.

See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/

/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
  border: 0 }

table.borderless td, table.borderless th {
  /* Override padding for "table.docutils td" with "! important".
     The right padding separates the table cells. */
  padding: 0 0.5em 0 0 ! important }

.first {
  /* Override more specific margin styles with "! important". */
  margin-top: 0 ! important }

.last, .with-subtitle {
  margin-bottom: 0 ! important }

.hidden {
  display: none }

a.toc-backref {
  text-decoration: none ;
  color: black }

blockquote.epigraph {
  margin: 2em 5em ; }

dl.docutils dd {
  margin-bottom: 0.5em }

/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
  font-weight: bold }
*/

div.abstract {
  margin: 2em 5em }

div.abstract p.topic-title {
  font-weight: bold ;
  text-align: center }

div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
  margin: 2em ;
  border: medium outset ;
  padding: 1em }

div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
  font-weight: bold ;
  font-family: sans-serif }

div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
  color: red ;
  font-weight: bold ;
  font-family: sans-serif }

/* Uncomment (and remove this text!) to get reduced vertical space in
   compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
  margin-bottom: 0.5em }

div.compound .compound-last, div.compound .compound-middle {
  margin-top: 0.5em }
*/

div.dedication {
  margin: 2em 5em ;
  text-align: center ;
  font-style: italic }

div.dedication p.topic-title {
  font-weight: bold ;
  font-style: normal }

div.figure {
  margin-left: 2em ;
  margin-right: 2em }

div.footer, div.header {
  clear: both;
  font-size: smaller }

div.line-block {
  display: block ;
  margin-top: 1em ;
  margin-bottom: 1em }

div.line-block div.line-block {
  margin-top: 0 ;
  margin-bottom: 0 ;
  margin-left: 1.5em }

div.sidebar {
  margin: 0 0 0.5em 1em ;
  border: medium outset ;
  padding: 1em ;
  background-color: #ffffee ;
  width: 40% ;
  float: right ;
  clear: right }

div.sidebar p.rubric {
  font-family: sans-serif ;
  font-size: medium }

div.system-messages {
  margin: 5em }

div.system-messages h1 {
  color: red }

div.system-message {
  border: medium outset ;
  padding: 1em }

div.system-message p.system-message-title {
  color: red ;
  font-weight: bold }

div.topic {
  margin: 2em }

h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
  margin-top: 0.4em }

h1.title {
  text-align: center }

h2.subtitle {
  text-align: center }

hr.docutils {
  width: 75% }

img.align-left {
  clear: left }

img.align-right {
  clear: right }

ol.simple, ul.simple {
  margin-bottom: 1em }

ol.arabic {
  list-style: decimal }

ol.loweralpha {
  list-style: lower-alpha }

ol.upperalpha {
  list-style: upper-alpha }

ol.lowerroman {
  list-style: lower-roman }

ol.upperroman {
  list-style: upper-roman }

p.attribution {
  text-align: right ;
  margin-left: 50% }

p.caption {
  font-style: italic }

p.credits {
  font-style: italic ;
  font-size: smaller }

p.label {
  white-space: nowrap }

p.rubric {
  font-weight: bold ;
  font-size: larger ;
  color: maroon ;
  text-align: center }

p.sidebar-title {
  font-family: sans-serif ;
  font-weight: bold ;
  font-size: larger }

p.sidebar-subtitle {
  font-family: sans-serif ;
  font-weight: bold }

p.topic-title {
  font-weight: bold }

pre.address {
  margin-bottom: 0 ;
  margin-top: 0 ;
  font-family: serif ;
  font-size: 100% }

pre.literal-block, pre.doctest-block {
  margin-left: 2em ;
  margin-right: 2em }

span.classifier {
  font-family: sans-serif ;
  font-style: oblique }

span.classifier-delimiter {
  font-family: sans-serif ;
  font-weight: bold }

span.interpreted {
  font-family: sans-serif }

span.option {
  white-space: nowrap }

span.pre {
  white-space: pre }

span.problematic {
  color: red }

span.section-subtitle {
  /* font-size relative to parent (h1..h6 element) */
  font-size: 80% }

table.citation {
  border-left: solid 1px gray;
  margin-left: 1px }

table.docinfo {
  margin: 2em 4em }

table.docutils {
  margin-top: 0.5em ;
  margin-bottom: 0.5em }

table.footnote {
  border-left: solid 1px black;
  margin-left: 1px }

table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
  padding-left: 0.5em ;
  padding-right: 0.5em ;
  vertical-align: top }

table.docutils th.field-name, table.docinfo th.docinfo-name {
  font-weight: bold ;
  text-align: left ;
  white-space: nowrap ;
  padding-left: 0 }

h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
  font-size: 100% }

ul.auto-toc {
  list-style-type: none }

</style>
</head>
<body>
<div class="document">

<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<tbody valign="top">
<tr class="field"><th class="docinfo-name">title:</th><td class="field-body">Serving Archives with WebDAV</td>
</tr>
<tr class="field"><th class="docinfo-name">license:</th><td class="field-body">General Public License, V2</td>
</tr>
<tr class="field"><th class="docinfo-name">copyright:</th><td class="field-body"><ol class="first upperalpha simple" start="3">
<li>2004, 2005 Canonical Ltd.</li>
</ol>
<div class="last system-message">
<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">../../bazaar-docs/src/ServingWithWebDAV.rst</tt>, line 3)</p>
Cannot extract compound bibliographic field &quot;copyright&quot;.</div>
</td>
</tr>
<tr><th class="docinfo-name">Author:</th>
<td>James Blackwell &lt;<a class="reference external" href="mailto:jblack&#64;gnuarch.org">jblack&#64;gnuarch.org</a>&gt;</td></tr>
<tr class="field"><th class="docinfo-name" colspan="2">original-location:</th></tr>
<tr><td>&nbsp;</td><td class="field-body"><a class="reference external" href="mailto:jblack&#64;gnuarch.org--2004/bazaar-docs--initial--1.1">jblack&#64;gnuarch.org--2004/bazaar-docs--initial--1.1</a></td>
</tr>
</tbody>
</table>
<p>This article covers serving your archives via WebDAV. After you are finished
reading this mini-howto, you will no longer have to worry about using listing
files again.</p>
<p>Before we get started, what exactly is WebDAV (aka DAV)?
Well, one overly simplified explanation is that WebDAV is essentially a
filesystem that works over HTTP.  Though WebDAV has all sorts of nifty concepts
like locking, filesystem properties and namespace manipulation. However, to
arch, DAV is really just another filesystem it can talk to.</p>
<p>This is pretty close to what HTTP can do for arch, so there must be some good
reason to bother with DAV. It so happens that there _is_. HTTP doesn't work
very well as a filesystem; in fact, HTTP doesn't even support directory
listings (For those of you that are familiar with Apache's autoindex module,
no, that is not a directory listing. That is actually a html page that is built
on the fly). In order to get around this problem, arch creates &quot;.listing&quot; files
that act as a cached directory listing. Though this does work around the
problem to some extent, .listing files aren't <em>completely</em> reliable.</p>
<p>However, it so happens that DAV does support directory listings. By using DAV,
arch doesn't need the listing files workaround. This makes installing read-only
DAV support worth doing, especially considering installing read-only DAV support
is pretty darn easy for apache.</p>
<p>Though DAV and arch support both reading from and writing to archives via DAV,
this minihowto is just going to focus on serving archives with read-only DAV.
There's a couple reasons for not covering writing with DAV. One reason is that
arch (due to limitations of libneon) does not support SSL. The main reason this
mini-howto doesn't cover writing archives via DAV is that arch does not
currently support SSL. The other, less important, reason is that setting up
writable DAV isn't the sort of task that somebody should undertake based on
reading a mini-howto. :)</p>
<p>In order to use DAV with apache, there's a few things we need to do:</p>
<p>1. Make sure your archive is in a location that is served by apache. For
the purpose of this tutorial, I'm going to assume your archive's location
is in /home/jdoe/public_html/archives/jdoe&#64;isp.com--2004.</p>
<p>2. First, make sure that DAV support is installed on the server. If
you are using either Debian/GNU or Ubuntu Linux, then as root,
run :</p>
<pre class="literal-block">
apt-get install libapache-mod-dav
</pre>
<p>4. Ensure that the mod_dav module is loaded by apache. You should have
a line in /etc/apache/modules.conf that includes the line:</p>
<pre class="literal-block">
LoadModule dav_module /usr/lib/apache/1.3/libdav.so
</pre>
<p>5. Edit /etc/apache/httpd.conf, and add the following stanza:</p>
<pre class="literal-block">
&lt;Directory /home/jdoe/public_html/archives/jdoe&#64;isp.com--2004/&gt;
DAV On
&lt;/Directory&gt;
</pre>
<ol class="arabic simple" start="6">
<li>Restart apache.</li>
</ol>
<p>And that should be it. You can verify that DAV is working by watching your
apache logs while arch tries and retrieves from the archive. If DAV is working,
you will not see any requests for &quot;.listing&quot; files.</p>
<p>Once you are satisfied that DAV is working, you can perform the following commands:</p>
<pre class="literal-block">
find /home/jdoe/public_html/archives/jdoe&#64;isp.com--2004 -name .listing \
  | xargs -n 1 rm
rm /home/jdoe/public_html/archives/jdoe&#64;isp.com--2004/=meta-info/http-blows
</pre>
</div>
</body>
</html>