aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Dolbec <brian.dolbec@gmail.com>2010-07-11 13:46:58 -0700
committerBrian Dolbec <brian.dolbec@gmail.com>2010-07-11 13:46:58 -0700
commit134efef47a8ecb700ae6e73d62021a62303f9bd2 (patch)
treefc0f8b659d3aec78dd94c09111081dfb06c4e211
parentMerge branch 'master' into api (diff)
parentPrepare release of 1.4.1 (set release date, sync release notes) (diff)
downloadoverlord-134efef47a8ecb700ae6e73d62021a62303f9bd2.tar.gz
overlord-134efef47a8ecb700ae6e73d62021a62303f9bd2.tar.bz2
overlord-134efef47a8ecb700ae6e73d62021a62303f9bd2.zip
Merge branch 'master' of git://layman.git.sourceforge.net/gitroot/layman/layman into api
Conflicts: layman/overlays/source.py fix merge conflicts to suit the api changes. Signed-off-by: Brian Dolbec <brian.dolbec@gmail.com>
-rw-r--r--CHANGES49
-rw-r--r--Makefile9
-rw-r--r--RELEASE_NOTES18
-rw-r--r--doc/layman.8.xml17
-rw-r--r--layman/config.py15
-rw-r--r--layman/overlays/bzr.py11
-rw-r--r--layman/overlays/cvs.py26
-rw-r--r--layman/overlays/darcs.py10
-rw-r--r--layman/overlays/git.py31
-rw-r--r--layman/overlays/mercurial.py10
-rw-r--r--layman/overlays/rsync.py16
-rw-r--r--layman/overlays/source.py96
-rw-r--r--layman/overlays/svn.py24
-rw-r--r--layman/overlays/tar.py7
-rw-r--r--layman/version.py2
-rwxr-xr-xtestsuite.sh13
-rw-r--r--www/index.html316
17 files changed, 214 insertions, 456 deletions
diff --git a/CHANGES b/CHANGES
index d2903b4..908f03e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,14 +1,37 @@
CHANGES
-------
-Version ???
+Version 1.4.1 - Released 2010-07-09
+===================================
+
+ - Fixed: Catch keyboard interrupts (Ctrl+C) while
+ running child processes properly
+
+ - Fixed: doctest error in tar overlay code (bug #327491)
+ Thanks to David Abbott for reporting!
+
+
+Version 1.4.0 - Released 2010-07-08
+===================================
+
+ - Handle command line calls "layman" and "layman foo" better.
+ Former now shows a usage summary while latter now reports
+ an error. Both of them kept quiet before.
+
+ - Replace os.system() by subprocess.Popen()
+
+ - Close stdin of child processes when run in quiet mode
+ to avoid running into infinite and blindly interactive sessions.
+
+
+Version 1.3.4 - Released 2010-07-05
===================================
- Propagate move of cvs and subversion from
dev-util/* to dev-vcs/* (bug #311419, bug #307849)
-Version 1.3.3 - Released 2010/04/08
+Version 1.3.3 - Released 2010-04-08
===================================
- Fix syncing of SVN overlays for users of SVN <1.6.5 (bug #313303)
@@ -23,7 +46,7 @@ Version 1.3.3 - Released 2010/04/08
dev-util/* to dev-vcs/* (bug #311419)
-Version 1.3.2 - Released 2010/02/20
+Version 1.3.2 - Released 2010-02-20
===================================
- Fix syncing of tar overlays (bug #304547)
@@ -31,7 +54,7 @@ Version 1.3.2 - Released 2010/02/20
- Hint about broken overlay catalog (bug #304781)
-Version 1.3.1 - Released 2010/02/05
+Version 1.3.1 - Released 2010-02-05
===================================
- Fix handling of CVS overlays (bug #301689)
@@ -44,7 +67,7 @@ Version 1.3.1 - Released 2010/02/05
- after failed addition of an overlay.
-Version 1.3.0 - Released 2010/01/19
+Version 1.3.0 - Released 2010-01-19
===================================
- Move storage default from /usr/local/portage/layman
@@ -58,7 +81,7 @@ Version 1.3.0 - Released 2010/01/19
- Fix faults introduced at refactoring (bug #301253)
-Version 1.3.0_rc1 - Released 2010/01/15
+Version 1.3.0_rc1 - Released 2010-01-15
=======================================
- Add support for several sources per overlay (also fixes #280472)
@@ -75,7 +98,7 @@ Version 1.3.0_rc1 - Released 2010/01/15
- Improve layman usage display
-Version 1.2.6 - Released 2010/01/12
+Version 1.2.6 - Released 2010-01-12
===================================
- Warn on lack of write permissions (fixes #260218)
@@ -96,7 +119,7 @@ Version 1.2.6 - Released 2010/01/12
- Start shipping test suite files missing from the 1.2.5 release
-Version 1.2.5 - Released 2010/01/04
+Version 1.2.5 - Released 2010-01-04
===================================
- Allow overriding of VCS commands
@@ -111,7 +134,7 @@ Version 1.2.5 - Released 2010/01/04
- Fix handling of non-ASCII characters (#286290)
-Version 1.2.4 - Released 2009/12/05
+Version 1.2.4 - Released 2009-12-05
===================================
- Add option "-d" to calls of "cvs update" so it checks out new
@@ -127,7 +150,7 @@ Version 1.2.4 - Released 2009/12/05
- Fix grammar errors in program output (#259188)
-Version 1.2.3 - Released 2009/01/01
+Version 1.2.3 - Released 2009-01-01
===================================
- Support setting the terminal screen width (also fixes #253016)
@@ -135,7 +158,7 @@ Version 1.2.3 - Released 2009/01/01
- layman -S fetches each overlay twice (#253241)
-Version 1.2.2 - Released 2008/12/28
+Version 1.2.2 - Released 2008-12-28
===================================
- layman -L: better use of screen real estate for source URLs
@@ -148,7 +171,7 @@ Version 1.2.2 - Released 2008/12/28
not a git-command." (#247964)
-Version 1.2.1 - Released 2008/11/15
+Version 1.2.1 - Released 2008-11-15
===================================
- Pass --quiet flag down to the version control
@@ -164,7 +187,7 @@ Version 1.2.1 - Released 2008/11/15
overlay failed (#236945)
-Version 1.2.0 - Released 2008/06/02
+Version 1.2.0 - Released 2008-06-02
===================================
- Fixed --info call (#198483)
diff --git a/Makefile b/Makefile
index e1c8ce1..05b8f9b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,12 @@
+.PHONY: doc
+doc:
+ $(MAKE) -C doc
+
.PHONY: www
www:
cp doc/layman.8.html www/index.html
-.PHONY: release
-release:
+.PHONY: dist
+dist: doc
rm -rf dist MANIFEST
- $(MAKE) -C doc
./setup.py sdist
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index a828604..88e48f6 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -1,26 +1,20 @@
-Version 1.3.3 - Released 2010/04/08
+Version 1.4.1 - Released 2010-07-09
===================================
FULL CHANGES
------------
- - Fix syncing of SVN overlays for users of SVN <1.6.5 (bug #313303)
+ - Fixed: Catch keyboard interrupts (Ctrl+C) while
+ running child processes properly
- - Fix handling of empty XML entities (bug #309617)
-
- - Fix missing import (bug #306143)
-
- - Extend in-config docs on proxy handling (bug #300651)
-
- - Propagate move of bzr, darcs, git, mercurial from
- dev-util/* to dev-vcs/* (bug #311419)
+ - Fixed: doctest error in tar overlay code (bug #327491)
+ Thanks to David Abbott for reporting!
SHORT CHANGES
-------------
- layman-1.3.3 is a bugfix release. Everyone is recommended
- to upgrade.
+ layman-1.4.1 is a bugfix release. Updating is recommended.
FRESHMEAT
diff --git a/doc/layman.8.xml b/doc/layman.8.xml
index 2dcd093..dda55e9 100644
--- a/doc/layman.8.xml
+++ b/doc/layman.8.xml
@@ -195,9 +195,9 @@
<refentry id="layman-manpage">
<refentryinfo>
<title>layman</title>
- <date>January 2010</date>
+ <date>July 2010</date>
<productname>layman</productname>
- <productnumber>1.3.3</productnumber>
+ <productnumber>1.4.1</productnumber>
<copyright>
<year>2005-2009</year>
<holder>Gunnar Wrobel</holder>
@@ -482,12 +482,13 @@
<term><option>--quiet</option></term>
<listitem>
<para>Makes <command>layman</command> completely quiet.
- This option is dangerous: If the processes spawned by
- layman when adding or synchronizing overlays require
- any input layman will hang without telling you
- why. This might happen for example if your overlay
- resides in subversion and the SSL certificate of
- the server needs acceptance.</para>
+ In quiet mode child processes will be run with stdin closed
+ to avoid running into infinite and blindly interactive sessions.
+ Thus a child process may abort once it runs into an
+ situation with need for human interaction.
+ For example this might happen if your overlay
+ resides in Subversion and the SSL certificate of
+ the server needs manual acceptance.</para>
</listitem>
</varlistentry>
diff --git a/layman/config.py b/layman/config.py
index 71cf97b..e62f535 100644
--- a/layman/config.py
+++ b/layman/config.py
@@ -40,10 +40,9 @@ from layman.version import VERSION
#-------------------------------------------------------------------------------
_USAGE = """
-
-layman (-a|-d|-s|-i) OVERLAY
-layman -f [-o URL]
-layman (-l|-L|-S)"""
+ layman (-a|-d|-s|-i) (OVERLAY|ALL)
+ layman -f [-o URL]
+ layman (-l|-L|-S)"""
class BareConfig(object):
'''Handles the configuration only.'''
@@ -315,7 +314,13 @@ class ArgsParser(object):
# Parse the command line first since we need to get the config
# file option.
- self.options = self.parser.parse_args(args)[0]
+ if len(args) == 1:
+ print 'Usage:%s' % _USAGE
+ sys.exit(0)
+
+ (self.options, remain_args) = self.parser.parse_args(args)
+ if len(remain_args) > 1: # remain_args starts with something like "bin/layman" ...
+ self.parser.error("Unhandled parameters: %s" % ', '.join(('"%s"' % e) for e in remain_args[1:]))
# handle debugging
self.output.cli_handle(self.options)
diff --git a/layman/overlays/bzr.py b/layman/overlays/bzr.py
index d5a5321..e73c2f4 100644
--- a/layman/overlays/bzr.py
+++ b/layman/overlays/bzr.py
@@ -50,17 +50,18 @@ class BzrOverlay(OverlaySource):
self.supported()
- return self.cmd(self.command() + ' get "' + self.src + '/" "' +\
- path([base, self.parent.name]) + '"')
+ # bzr get SOURCE TARGET
+ args = ['get', self.src + '/', path([base, self.parent.name])]
+ return self.run_command(*args)
def sync(self, base, quiet = False):
'''Sync overlay.'''
self.supported()
- return self.cmd('cd "' + path([base, self.parent.name]) + '" && ' + \
- self.command() + ' pull --overwrite "' + self.src \
- + '"')
+ # bzr pull --overwrite SOURCE
+ args = ['pull', '--overwrite', self.src]
+ return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
'''Overlay type supported?'''
diff --git a/layman/overlays/cvs.py b/layman/overlays/cvs.py
index ba7c0a9..f8fc277 100644
--- a/layman/overlays/cvs.py
+++ b/layman/overlays/cvs.py
@@ -74,27 +74,29 @@ class CvsOverlay(OverlaySource):
self.supported()
+ # cvs [-q] co -d SOURCE SCOPE
+ args = []
if quiet:
- quiet_option = ' -q'
- else:
- quiet_option = ''
+ args.append('-q')
+ args.append('co')
+ args.append('-d')
+ args.append(self.parent.name)
+ args.append(self.subpath)
- return self.cmd('cd "' + base + '" && CVSROOT="' + self.src + '" ' +
- self.command() + quiet_option + ' co -d "' + self.parent.name
- + '" "' + self.subpath + '"' )
+ return self.run_command(*args, cwd=base, env=dict(CVSROOT=self.src))
def sync(self, base, quiet = False):
'''Sync overlay.'''
self.supported()
+ # cvs [-q] update -d
+ args = []
if quiet:
- quiet_option = ' -q'
- else:
- quiet_option = ''
-
- return self.cmd('cd "' + path([base, self.parent.name]) + '" && ' +
- self.command() + quiet_option + ' update -d')
+ args.append('-q')
+ args.append('update')
+ args.append('-d')
+ return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
'''Overlay type supported?'''
diff --git a/layman/overlays/darcs.py b/layman/overlays/darcs.py
index 33f7c6c..7d89477 100644
--- a/layman/overlays/darcs.py
+++ b/layman/overlays/darcs.py
@@ -49,16 +49,18 @@ class DarcsOverlay(OverlaySource):
self.supported()
- return self.cmd(self.command() + ' get --partial "' + self.src +
- '/" "' + path([base, self.parent.name]) + '"')
+ # darcs get --partial SOURCE TARGET
+ args = ['get', '--partial', self.src + '/', path([base, self.parent.name])]
+ return self.run_command(*args)
def sync(self, base, quiet = False):
'''Sync overlay.'''
self.supported()
- return self.cmd('cd "' + path([base, self.parent.name]) + '" && ' +
- self.command() + ' pull --all "' + self.src + '"')
+ # darcs pull --all SOURCE
+ args = ['pull', '--all', self.src]
+ return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
'''Overlay type supported?'''
diff --git a/layman/overlays/git.py b/layman/overlays/git.py
index 40cf2d1..caa73f4 100644
--- a/layman/overlays/git.py
+++ b/layman/overlays/git.py
@@ -48,30 +48,29 @@ class GitOverlay(OverlaySource):
self.supported()
+ def fix_git_source(source):
+ # http:// should get trailing slash, other protocols shouldn't
+ if source.split(':')[0] == 'http':
+ return source + '/'
+ return source
+
+ # git clone [-q] SOURCE TARGET
+ args = ['clone']
if quiet:
- quiet_option = '-q '
- else:
- quiet_option = ''
-
- # http:// should get trailing slash, other protocols shouldn't
- slash = ''
- if self.src.split(':')[0] == 'http':
- slash = '/'
- return self.cmd(self.command() + ' clone ' + quiet_option + '"' + self.src + slash
- + '" "' + path([base, self.parent.name]) + '"')
+ args.append('-q')
+ args.append(fix_git_source(self.src))
+ args.append(path([base, self.parent.name]))
+ return self.run_command(*args)
def sync(self, base, quiet = False):
'''Sync overlay.'''
self.supported()
+ args = ['pull']
if quiet:
- quiet_option = ' -q'
- else:
- quiet_option = ''
-
- return self.cmd('cd "' + path([base, self.parent.name]) + '" && '
- + self.command() + ' pull' + quiet_option)
+ args.append('-q')
+ return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
'''Overlay type supported?'''
diff --git a/layman/overlays/mercurial.py b/layman/overlays/mercurial.py
index 651e452..06cf59d 100644
--- a/layman/overlays/mercurial.py
+++ b/layman/overlays/mercurial.py
@@ -49,16 +49,18 @@ class MercurialOverlay(OverlaySource):
self.supported()
- return self.cmd(self.command() + ' clone "' + self.src + '/" "' +
- path([base, self.parent.name]) + '"')
+ # hg clone SOURCE TARGET
+ args = ['clone', self.src + '/', path([base, self.parent.name])]
+ return self.run_command(*args)
def sync(self, base, quiet = False):
'''Sync overlay.'''
self.supported()
- return self.cmd('cd "' + path([base, self.parent.name]) + '" && ' +
- self.command() + ' pull -u "' + self.src + '"')
+ # hg pull -u SOURCE
+ args = ['pull', '-u', self.src]
+ return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
'''Overlay type supported?'''
diff --git a/layman/overlays/rsync.py b/layman/overlays/rsync.py
index 495d2ba..3a5a342 100644
--- a/layman/overlays/rsync.py
+++ b/layman/overlays/rsync.py
@@ -58,17 +58,15 @@ class RsyncOverlay(OverlaySource):
self.supported()
+ # rsync OPTIONS [-q] SOURCE TARGET
+ args = ['-rlptDvz', '--progress', '--delete', '--delete-after', '--timeout=180',
+ '--exclude=distfiles/*', '--exclude=local/*', '--exclude=packages/*']
if quiet:
- quiet_option = '-q '
- else:
- quiet_option = ''
+ args.append('-q')
+ args.append(self.src + '/')
+ args.append(path([base, self.parent.name]))
- _command = self.command() + ' -rlptDvz --progress --delete --delete-after ' +\
- '--timeout=180 --exclude="distfiles/*" --exclude="local/*" ' +\
- '--exclude="packages/*" '
-
- return self.cmd(_command + quiet_option + '"' + self.src + '/" "' +
- path([base, self.parent.name]) + '"')
+ return self.run_command(*args)
def supported(self):
'''Overlay type supported?'''
diff --git a/layman/overlays/source.py b/layman/overlays/source.py
index 8d41bf4..d6cffef 100644
--- a/layman/overlays/source.py
+++ b/layman/overlays/source.py
@@ -14,6 +14,7 @@
# Sebastian Pipping <sebastian@pipping.org>
import os
+import copy
import sys
import shutil
import subprocess
@@ -21,21 +22,26 @@ import subprocess
from layman.utils import path
+def _resolve_command(command):
+ if os.path.isabs(command):
+ if not os.path.exists(command):
+ raise Exception('Program "%s" not found' % command)
+ return ('File', command)
+ else:
+ kind = 'Command'
+ env_path = os.environ['PATH']
+ for d in env_path.split(os.pathsep):
+ f = os.path.join(d, command)
+ if os.path.exists(f):
+ return ('Command', f)
+ raise Exception('Cound not resolve command "%s" based on PATH "%s"' % (command, env_path))
+
+
def require_supported(binaries):
for command, mtype, package in binaries:
found = False
- if os.path.isabs(command):
- kind = 'Binary'
- found = os.path.exists(command)
- else:
- kind = 'Command'
- for d in os.environ['PATH'].split(os.pathsep):
- f = os.path.join(d, command)
- if os.path.exists(f):
- found = True
- break
-
- if not found:
+ kind, path = _resolve_command(command)
+ if not path:
raise Exception(kind + ' ' + command + ' seems to be missing!'
' Overlay type "' + mtype + '" not support'
'ed. Did you emerge ' + package + '?')
@@ -102,30 +108,54 @@ class OverlaySource(object):
def command(self):
return self.config['%s_command' % self.__class__.type_key]
- def cmd(self, command):
- '''Run a command.'''
+ def run_command(self, *args, **kwargs):
+ file_to_run = _resolve_command(self.command())[1]
+ args = (file_to_run, ) + args
+ assert('pwd' not in kwargs) # Bug detector
+
+ cwd = kwargs.get('cwd', None)
+ env = None
+ env_updates = None
+ if 'env' in kwargs:
+ # Build actual env from surrounding plus updates
+ env_updates = kwargs['env']
+ env = copy.copy(os.environ)
+ env.update(env_updates)
+
+ command_repr = ' '.join(args)
+ if env_updates:
+ command_repr = '%s %s' % (' '.join('%s=%s' % (k, v) for (k, v) in sorted(env_updates.items())), command_repr)
+ if cwd:
+ command_repr = '( cd %s && %s )' % (cwd, command_repr)
+
+ self.output.info('Running... # %s' % command_repr, 2)
+
+ if self.quiet:
+ input_source = subprocess.PIPE
+ output_target = open('/dev/null', 'w')
+ else:
+ # Re-use parent file descriptors
+ input_source = self.config['stdin']
+ output_target = self.config['stdout']
+
+ proc = subprocess.Popen(args,
+ stdin=input_source,
+ stdout=output_target,
+ stderr=self.config['stderr']t,
+ cwd=cwd,
+ env=env)
- self.output.info('Running command "' + command + '"...', 2)
+ if self.quiet:
+ # Make child non-interactive
+ proc.stdin.close()
- if hasattr(sys.stdout,'encoding'):
- enc = sys.stdout.encoding or sys.getfilesystemencoding()
- if enc:
- command = command.encode(enc)
+ result = proc.wait()
+
+ if self.quiet:
+ output_target.close()
+
+ return result
- if not self.quiet:
- cmd = subprocess.Popen([command], shell = True,
- stdout = self.config['stdout'],
- stderr = self.config['stderr'],
- close_fds = True)
- result = cmd.wait()
- return result
- else:
- cmd = subprocess.Popen([command], shell = True,
- stdout = subprocess.PIPE,
- stderr = subprocess.PIPE,
- close_fds = True)
- result = cmd.wait()
- return result
def to_xml_hook(self, repo_elem):
pass
diff --git a/layman/overlays/svn.py b/layman/overlays/svn.py
index d9f90c5..2a30198 100644
--- a/layman/overlays/svn.py
+++ b/layman/overlays/svn.py
@@ -50,24 +50,19 @@ class SvnOverlay(OverlaySource):
super(SvnOverlay, self).add(base)
+ args = ['co']
if quiet:
- quiet_option = '-q '
- else:
- quiet_option = ''
+ args.append('-q')
+ args.append(self.src + '/@')
+ args.append(path([base, self.parent.name]))
- return self.cmd(self.command() + ' co ' + quiet_option +
- '"' + self.src + '/@" "' + path([base, self.parent.name]) + '"')
+ return self.run_command(*args)
def sync(self, base, quiet = False):
'''Sync overlay.'''
self.supported()
- if quiet:
- quiet_option = '-q '
- else:
- quiet_option = ''
-
def checkout_location():
# Append '@' iff needed
# Keeps users of SVN <1.6.5 happy in more cases (bug #313303)
@@ -76,8 +71,13 @@ class SvnOverlay(OverlaySource):
repo_part = repo_part + '@'
return path([base, repo_part])
- return self.cmd(self.command() + ' up ' + quiet_option +
- '"' + checkout_location() + '"')
+ # svn up [-q] TARGET
+ args = ['up']
+ if quiet:
+ args.append('-q')
+ args.append(checkout_location())
+
+ return self.run_command(*args)
def supported(self):
'''Overlay type supported?'''
diff --git a/layman/overlays/tar.py b/layman/overlays/tar.py
index d0b78cc..4916b77 100644
--- a/layman/overlays/tar.py
+++ b/layman/overlays/tar.py
@@ -64,7 +64,7 @@ class TarOverlay(OverlaySource):
>>> a = Overlay(repo, config, quiet=False)
>>> OUT.color_off()
>>> a.add(testdir) #doctest: +ELLIPSIS
- * Running command "/bin/tar -v -x -f...
+ * Running... # /bin/tar -v -x -f...
>>> sorted(os.listdir(testdir + '/dummy'))
['app-admin', 'app-portage']
>>> shutil.rmtree(testdir)
@@ -128,8 +128,9 @@ class TarOverlay(OverlaySource):
raise Exception('Failed to store tar package in '
+ pkg + '\nError was:' + str(error))
- result = self.cmd(self.command() + u' -v -x' + u' -f "' + pkg
- + u'" -C "' + dest_dir + u'"')
+ # tar -v -x -f SOURCE -C TARGET
+ args = ['-v', '-x', '-f', pkg, '-C', dest_dir]
+ result = self.run_command(*args)
os.unlink(pkg)
return result
diff --git a/layman/version.py b/layman/version.py
index 7e9ec8f..592d8f9 100644
--- a/layman/version.py
+++ b/layman/version.py
@@ -20,7 +20,7 @@
__version__ = "$Id: version.py 309 2007-04-09 16:23:38Z wrobel $"
-VERSION = '1.3.3'
+VERSION = '1.4.1'
if __name__ == '__main__':
print VERSION
diff --git a/testsuite.sh b/testsuite.sh
new file mode 100755
index 0000000..ce125d2
--- /dev/null
+++ b/testsuite.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+# Copyright (C) 2010 Sebastian Pipping <sebastian@pipping.org>
+# Licensed under GPLv2
+
+ret=0
+for script in layman/tests/*.py ; do
+ echo "# PYTHONPATH=\"${PWD}\" python \"${script}\""
+ PYTHONPATH="${PWD}" python "${script}" \
+ || ret=1
+done
+
+[[ ${ret} != 0 ]] && echo '!!! FAIL'
+exit ${ret}
diff --git a/www/index.html b/www/index.html
deleted file mode 100644
index a229d67..0000000
--- a/www/index.html
+++ /dev/null
@@ -1,316 +0,0 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>layman</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" title="layman"><div class="titlepage"><div><div><h2 class="title"><a name="id3020038"></a>layman</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Gunnar</span> <span class="surname">Wrobel</span></h3><div class="affiliation"><div class="address"><p><br>
-     <code class="email">&lt;<a class="email" href="mailto:wrobel@gentoo.org">wrobel@gentoo.org</a>&gt;</code><br>
-     <span class="otheraddr"><br>
-       <a class="ulink" href="http://gunnarwrobel.de" target="_top">http://gunnarwrobel.de</a><br>
-     </span><br>
-   </p></div></div></div></div></div><div><p class="copyright">Copyright © 2005-2009 Gunnar Wrobel</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id3020126">Overview</a></span></dt><dt><span class="section"><a href="#id2979502">External links</a></span></dt><dt><span class="section"><a href="#layman-reference">Reference</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="#layman-manpage">layman</a></span><span class="refpurpose"> &#8212;
- manage your local repository of Gentoo overlays
- </span></dt></dl></dd></dl></div><div class="section" title="Overview"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3020126"></a>Overview</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-synopsis" title="Synopsis">Synopsis</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-description" title="Description">Description</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-actions" title="Actions">Action flags</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-other-options" title="Other options">Other options</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-configuration" title="Configuration">Configuration</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-remote" title="Overlay lists">Overlay lists</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-local" title="Local cache">Layman cache</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-make-conf" title="Handling /etc/make.conf">Handling make.conf</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-update" title="Adding, removing and updating overlays">Handle overlays</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-list" title="List overlays">List overlays</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-search" title="Searching ebuilds in overlays">Searching ebuilds in overlays</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-types" title="Overlay types">Overlay types</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-global" title="Overlay lists">Get your overlay published to the world</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-examples" title="Examples">Examples</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-files" title="Files">Layman files</a>
- </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="link" href="#layman-bugs" title="Reporting bugs">Reporting bugs</a>
- </p></li></ul></div></div><div class="section" title="External links"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2979502"></a>External links</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
- <a class="ulink" href="http://sourceforge.net/projects/layman/" target="_top">Layman project page on SourceForge</a>
- </p></li><li class="listitem"><p>
- <a class="ulink" href="http://overlays.gentoo.org" target="_top">Gentoo Overlays project</a>
- </p></li><li class="listitem"><p>
- <a class="ulink" href="http://ohloh.net/projects/layman/" target="_top">Layman project page on Ohloh</a>
- </p></li><li class="listitem"><p>
- <a class="ulink" href="http://freshmeat.net/projects/layman/" target="_top">Layman project page on Freshmeat</a>
- </p></li><li class="listitem"><p>
- <a class="ulink" href="http://bugs.gentoo.org/" target="_top">Bug tracker</a>
- </p></li><li class="listitem"><p>
- <a class="ulink" href="http://gentoo-wiki.com/Portage_Overlay_Listing#Layman" target="_top">Wiki</a>
- </p></li><li class="listitem"><p>
- <a class="ulink" href="http://log.onthebrink.de/feeds/posts/default/-/layman" target="_top">Blog</a>
- </p></li><li class="listitem"><p>
- <a class="ulink" href="http://www.google.com/reader/public/atom/user/02645926629531261525/label/%5Bproject%5D%20layman" target="_top">Combined RSS feed</a>
- </p></li></ul></div></div><div class="section" title="Reference"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="layman-reference"></a>Reference</h2></div></div></div><div class="refentry" title="layman"><a name="layman-manpage"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>layman &#8212;
- manage your local repository of Gentoo overlays
- </p></div><div class="refsynopsisdiv" title="Synopsis"><a name="layman-synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">layman</code> [-a] | [--add] [ALL] | [<em class="replaceable"><code>overlay</code></em>] </p></div><div class="cmdsynopsis"><p><code class="command">layman</code> [-d] | [--delete] [ALL] | [<em class="replaceable"><code>overlay</code></em>] </p></div><div class="cmdsynopsis"><p><code class="command">layman</code> [-s] | [--sync] [ALL] | [<em class="replaceable"><code>overlay</code></em>] </p></div><div class="cmdsynopsis"><p><code class="command">layman</code> [-i] | [--info] [ALL] | [<em class="replaceable"><code>overlay</code></em>] </p></div><div class="cmdsynopsis"><p><code class="command">layman</code> [-S] | [--sync-all] </p></div><div class="cmdsynopsis"><p><code class="command">layman</code> [-L] | [--list] </p></div><div class="cmdsynopsis"><p><code class="command">layman</code> [-l] | [--list-local] </p></div><div class="cmdsynopsis"><p><code class="command">layman</code> [-f] | [--fetch] </p></div></div><div class="refsection" title="Description"><a name="layman-description"></a><h2>Description</h2><p><span class="command"><strong>layman</strong></span> is a script that allows you to
- add, remove and update Gentoo overlays from a variety of
- sources.</p><div class="refsection" title="WARNING"><a name="id2978969"></a><h3>WARNING</h3><p><span class="command"><strong>layman</strong></span> makes it easy to retrieve and
- update overlays for Gentoo. In addition it makes it TRIVIAL
- to break your system.
- </p><p>The main portage tree provides you with high quality ebuilds
- that are all maintained by Gentoo developers. This will not
- be the case for most of the overlays you can get by using
- <span class="command"><strong>layman</strong></span>. Thus you are removing the
- security shield that the standard tree provides for
- you. You should keep that in mind when installing ebuilds
- from an overlay.
- </p><p>To ensure the security of your system you MUST read the
- source of the ebuild you are about to install.
- </p></div></div><div class="refsection" title="Options"><a name="layman-options"></a><h2>Options</h2><div class="refsection" title="Actions"><a name="layman-actions"></a><h3>Actions</h3><p>List of possible <span class="command"><strong>layman</strong></span> actions.</p><div class="variablelist"><dl><dt><span class="term"><code class="option">-f</code>, </span><span class="term"><code class="option">--fetch</code></span></dt><dd><p>Fetches the remote list of overlays. You will
- usually NOT need to explicitly specify this option. The
- fetch operation will be performed automatically once you
- run the sync, sync-all, or list action. You can prevent
- this automatic fetching using the --nofetch option.</p></dd><dt><span class="term"><code class="option">-a</code> <em class="replaceable"><code>overlay</code></em>, </span><span class="term"><code class="option">--add</code> <em class="replaceable"><code>overlay</code></em></span></dt><dd><p>Add the given overlay from the cached remote list to
- your locally installed overlays. Specify "ALL" to add
- all overlays from the remote list.</p></dd><dt><span class="term"><code class="option">-d</code> <em class="replaceable"><code>overlay</code></em>, </span><span class="term"><code class="option">--delete</code> <em class="replaceable"><code>overlay</code></em></span></dt><dd><p>Remove the given overlay from your locally installed
- overlays. Specify "ALL" to remove all overlays</p></dd><dt><span class="term"><code class="option">-s</code> <em class="replaceable"><code>overlay</code></em>, </span><span class="term"><code class="option">--sync</code> <em class="replaceable"><code>overlay</code></em></span></dt><dd><p>Update the specified overlay. Use "ALL" as
- parameter to synchronize all overlays</p></dd><dt><span class="term"><code class="option">-i</code> <em class="replaceable"><code>overlay</code></em>, </span><span class="term"><code class="option">--info</code> <em class="replaceable"><code>overlay</code></em></span></dt><dd><p>Display all available information about the specified overlay.</p></dd><dt><span class="term"><code class="option">-S</code>, </span><span class="term"><code class="option">--sync-all</code></span></dt><dd><p>Update all overlays. Shortcut for -s ALL.</p></dd><dt><span class="term"><code class="option">-L</code>, </span><span class="term"><code class="option">--list</code></span></dt><dd><p>List the contents of the remote list.</p></dd><dt><span class="term"><code class="option">-l</code>, </span><span class="term"><code class="option">--list-local</code></span></dt><dd><p>List the locally installed overlays.</p></dd></dl></div></div><div class="refsection" title="Other options"><a name="layman-other-options"></a><h3>Other options</h3><p>List of other available <span class="command"><strong>layman</strong></span> options.</p><div class="variablelist"><dl><dt><span class="term"><code class="option">-c</code> <em class="replaceable"><code>path</code></em>, </span><span class="term"><code class="option">--config</code> <em class="replaceable"><code>path</code></em></span></dt><dd><p>Path to an alternative configuration file.</p></dd><dt><span class="term"><code class="option">-o</code> <em class="replaceable"><code>url</code></em>, </span><span class="term"><code class="option">--overlays</code> <em class="replaceable"><code>url</code></em></span></dt><dd><p>Specifies the location of additional overlay
- lists. You can use this flag several times and the
- specified URLs will get temporarily appended to the list
- of URLs you specified in your config file. You may also
- specify local file URLs by prepending the path with
- <strong class="userinput"><code>file://</code></strong>. This option
- will only append the URL for this specific layman run -
- edit your config file to add a URL permanently. So this
- is useful for testing purposes.
- </p></dd><dt><span class="term"><code class="option">-n</code>, </span><span class="term"><code class="option">--nofetch</code></span></dt><dd><p>Prevents <span class="command"><strong>layman</strong></span> from
- automatically fetching the remote lists of overlays. The
- default behavior for <span class="command"><strong>layman</strong></span> is to
- update all remote lists if you run the sync, list or
- fetch operation.</p></dd><dt><span class="term"><code class="option">-k</code>, </span><span class="term"><code class="option">--nocheck</code></span></dt><dd><p>Prevents <span class="command"><strong>layman</strong></span> from checking
- the remote lists of overlays for complete overlay
- definitions. The default behavior for layman is to
- reject overlays that do not provide a description or a
- contact attribute.</p></dd><dt><span class="term"><code class="option">-q</code>, </span><span class="term"><code class="option">--quiet</code></span></dt><dd><p>Makes <span class="command"><strong>layman</strong></span> completely quiet.
- This option is dangerous: If the processes spawned by
- layman when adding or synchronizing overlays require
- any input layman will hang without telling you
- why. This might happen for example if your overlay
- resides in subversion and the SSL certificate of
- the server needs acceptance.</p></dd><dt><span class="term"><code class="option">-v</code>, </span><span class="term"><code class="option">--verbose</code></span></dt><dd><p>Makes <span class="command"><strong>layman</strong></span> more verbose and
- you will receive a description of the overlays you can
- download.</p></dd><dt><span class="term"><code class="option">-N</code>, </span><span class="term"><code class="option">--nocolor</code></span></dt><dd><p>Remove color codes from the <span class="command"><strong>layman</strong></span>
- output.</p></dd><dt><span class="term"><code class="option">-Q</code><em class="replaceable"><code>LEVEL</code></em>, </span><span class="term"><code class="option">--quietness</code><em class="replaceable"><code>LEVEL</code></em></span></dt><dd><p>Makes <span class="command"><strong>layman</strong></span> less verbose.
- Choose a value between 0 and 4 with 0 being completely
- quiet. Once you set this below 3, the same warning as
- given for --quiet applies.</p></dd><dt><span class="term"><code class="option">-p</code><em class="replaceable"><code>LEVEL</code></em>, </span><span class="term"><code class="option">--priority</code><em class="replaceable"><code>LEVEL</code></em></span></dt><dd><p>Use this option in combination with
- the <span class="command"><strong>--add</strong></span>. It will modify the
- priority of the added overlay and thus influence the
- order of entries in the make.conf file. The lower the
- priority, the earlier in the list the entry will be
- mentioned. Use a value between 0 and 100. The default
- value is 50.</p></dd></dl></div></div></div><div class="refsection" title="Configuration"><a name="layman-configuration"></a><h2>Configuration</h2><p><span class="command"><strong>layman</strong></span> reads configuration parameters
- from the file
- <code class="filename">/etc/layman/layman.cfg</code> by
- default. This file provides seven possible settings.</p><div class="variablelist"><dl><dt><span class="term"><code class="option">storage</code></span></dt><dd><p>Directory that will be used to store the overlays
- and all additional data <span class="command"><strong>layman</strong></span>
- needs. The default is
- <code class="filename">/var/lib/layman</code>. layman
- uses a location within the /usr/portage hierarchy instead
- of <code class="filename">/var</code> in order to
- store its data. This decision has been made to support
- network file systems. If you have your portage tree on nfs
- or a similar file system and several machines access the
- same ebuild repository over the net it will be necessary
- to also provide all necessary <span class="command"><strong>layman</strong></span>
- data within the hierarchy of the tree. This way the
- overlays will also have to be synced at one location
- only.</p></dd><dt><span class="term"><code class="option">cache</code></span></dt><dd><p><span class="command"><strong>layman</strong></span> will store the downloaded
- global list of overlays here. The default is
- <code class="filename">%(storage)s/cache.xml</code>.</p></dd><dt><span class="term"><code class="option">overlays</code></span></dt><dd><p><span class="command"><strong>layman</strong></span> will store the list of
- installed overlays here. The default is
- <code class="filename">%(storage)s/overlays.xml</code>.</p></dd><dt><span class="term"><code class="option">make.conf</code></span></dt><dd><p>This is the portage configuration file that
- <span class="command"><strong>layman</strong></span> will modify in order to make
- the new overlays available within portage. The default
- is <code class="filename">%(storage)s/make.conf</code>. You could
- also specify <code class="filename">/etc/make.conf
- directly</code>. But that would mean that you have
- an external program trying to automatically set
- variables within this very central configuration
- file. Since I consider that dangerous I prefer having a
- very small external file that only contains the setting
- for PORTAGE_OVERLAYS. This file is then sourced at the
- end of <code class="filename">/etc/make.conf</code>. This is the
- reason why <span class="command"><strong>layman</strong></span> suggests running
- "echo "source
- <code class="filename">/var/lib/layman/make.conf</code>" &gt;&gt;
- <code class="filename">/etc/make.conf</code>" after it has been
- installed.</p></dd><dt><span class="term"><code class="option">overlays</code></span></dt><dd><p>Specifies the URL for the remote list of all
- available overlays. The default is
- <code class="filename">http://www.gentoo.org/proj/en/overlays/repositories.xml</code>. You
- can specify several URLs here (one per line). The
- contents will get merged to a single list of
- overlays. This allows to add a personal collection of
- overlays that are not present in the global list.</p></dd><dt><span class="term"><code class="option">proxy</code></span></dt><dd><p>Specify your proxy in case you have to use
- one.</p></dd><dt><span class="term"><code class="option">nocheck</code></span></dt><dd><p>Set to "yes" if <span class="command"><strong>layman</strong></span> should stop
- worrying about overlays with missing a contact address or
- the description.</p></dd></dl></div></div><div class="refsection" title="Handling overlays"><a name="layman-handling"></a><h2>Handling overlays</h2><p><span class="command"><strong>layman</strong></span> intends to provide easy
- maintenance of Gentoo overlays while not requiring any
- configuration.
- </p><div class="refsection" title="Overlay lists"><a name="layman-remote"></a><h3>Overlay lists</h3><p><span class="command"><strong>layman</strong></span> allows you to fetch an
- overlay without the need to modify any configuration
- files. In order for this to be possible the script needs an
- external list of possible overlay sources. There is a
- centralized list available at <a class="ulink" href="http://www.gentoo.org/proj/en/overlays/repositories.xml" target="_top">http://www.gentoo.org/proj/en/overlays/repositories.xml</a>
- but nothing will prevent you from using or publishing your
- own list of overlays. The location of the remote lists can
- also be modified using the <code class="option">--overlays</code>
- option when running <span class="command"><strong>layman</strong></span>.
- </p><p>To get a new overlay added to the central list provided
- for layman, send a mail to
- <code class="email">&lt;<a class="email" href="mailto:overlays@gentoo.org">overlays@gentoo.org</a>&gt;</code>. Gentoo developers may
- add their overlay entries directly into the list which can
- be accessed over the CVS repository for the Gentoo
- website.
- </p><p>You can also use several lists at the same time. Just
- add one URL per line to the overlays variable in your
- configuration file. <span class="command"><strong>layman</strong></span> will merge the
- contents of all lists.
- </p><p><span class="command"><strong>layman</strong></span> also allows you to define
- local files in this list. Just make sure you prepend these
- path names in standard URL notation
- with <code class="filename">file://</code>.
- </p><p>If you need to use a proxy for access to the Internet,
- you can use the corresponding variable in
- the <span class="command"><strong>layman</strong></span> configuration file. Layman
- will also respect the <span class="command"><strong>http_proxy</strong></span>
- environment variable in case you set it.
- </p></div><div class="refsection" title="Local cache"><a name="layman-local"></a><h3>Local cache</h3><p><span class="command"><strong>layman</strong></span> stores a local copy of the
- fetched remote list. It will be stored in
- <code class="filename">/var/lib/layman/cache.xml</code>
- by default. There exists only one such cache file and it
- will be overwritten every time you
- run <span class="command"><strong>layman</strong></span>.
- </p></div><div class="refsection" title="Handling /etc/make.conf"><a name="layman-make-conf"></a><h3>Handling <code class="filename">/etc/make.conf</code></h3><p>Since <span class="command"><strong>layman</strong></span> is designed to
- automatically handle the inclusion of overlays into your
- system it needs to be able to modify
- the <span class="command"><strong>PORTDIR_OVERLAY</strong></span> variable in your
- <code class="filename">/etc/make.conf</code> file. But
- <code class="filename">/etc/make.conf</code> is a very central and
- essential configuration file for a Gentoo
- system. Automatically modifying this file would be
- somewhat dangerous. You can
- allow <span class="command"><strong>layman</strong></span> to do this by setting
- the <span class="command"><strong>make_conf</strong></span> variable in the
- configuration file to <code class="filename">/etc/make.conf</code>.
- </p><p>A much safer and in fact recommended solution to the
- problem is to let <span class="command"><strong>layman</strong></span> handle an
- external file that only contains
- the <span class="command"><strong>PORTDIR_OVERLAY</strong></span> variable and is
- sourced within the
- standard <code class="filename">/etc/make.conf</code> file. Just add the following line to the end of your
- <code class="filename">/etc/make.conf</code> file:
- </p><p>source /var/lib/layman/make.conf</p><p><code class="filename">/var/lib/layman/make.conf</code>
- is the default provided in the layman
- configuration. Change this file name in case you decide to
- store it somewhere else.
- </p><p>The file does not necessarily need to exist at the
- beginning. If it is missing, layman will create it for you.
- </p><p>There is also no need to remove the
- original <span class="command"><strong>PORTDIR_OVERLAY</strong></span> variable from
- the make.conf file. Layman will simply add new overlays to
- this variable and all your old entries will remain in there.
- </p></div><div class="refsection" title="Adding, removing and updating overlays"><a name="layman-update"></a><h3>Adding, removing and updating overlays</h3><p>Once a remote list of overlays has been fetched,
- <span class="command"><strong>layman</strong></span> allows to add overlays from the
- remote list to your system. The script will try to fetch
- the overlay. If this is successful the overlay information
- will be copied from the cache to the list of locally
- installed overlays. In addition
- <span class="command"><strong>layman</strong></span> will modify the
- <span class="command"><strong>PORTDIR_OVERLAY</strong></span> variable to include the
- new overlay path.
- </p><p>Removing the overlay with <span class="command"><strong>layman</strong></span> will
- delete the overlay without leaving any traces behind.
- </p><p>In order to update all overlays managed by
- <span class="command"><strong>layman</strong></span> you can run the script with the
- <code class="option">--sync ALL</code> option or
- the <code class="option">--sync-all</code> flag.
- </p></div><div class="refsection" title="List overlays"><a name="layman-list"></a><h3>List overlays</h3><p><span class="command"><strong>layman</strong></span> provides the
- <code class="option">--list</code> and <code class="option">--list-local</code>
- options to print a list of available respectively
- installed overlays.
- </p><p> Listing will prepend all fully supported overlays
- with a green asterisk, all non-official overlays with a
- yellow asterisk and all overlays that you will not be able
- to use since you do not have the necessary tools installed
- with a red asterisk.
- </p><p> In the default mode layman will be strict about
- listing overlays and only present you with overlays that
- are fully supported. In addition it will complain about
- overlays that are missing a description field or a contact
- attribute. This type of behavior has been added with
- layman-1.0.7 and if you'd like to return to the old
- behavior you may use the k option flag or set the nocheck
- option in the configuration file.
- </p></div><div class="refsection" title="Searching ebuilds in overlays"><a name="layman-search"></a><h3>Searching ebuilds in overlays</h3><p>
- You can search through the ebuilds available in the
- overlays on <a class="ulink" href="http://overlays.gentoo.org" target="_top">http://overlays.gentoo.org</a> by
- using "eix". Emerge the package and run
- <span class="command"><strong>update-eix-remote update</strong></span>.
- </p></div><div class="refsection" title="Overlay types"><a name="layman-types"></a><h3>Overlay types</h3><p>Currently <span class="command"><strong>layman</strong></span> supports overlays that
- are exported via <span class="command"><strong>rsync</strong></span>,
- <span class="command"><strong>subversion</strong></span>, <span class="command"><strong>bzr</strong></span>,
- <span class="command"><strong>darcs</strong></span>, <span class="command"><strong>git</strong></span>,
- <span class="command"><strong>mercurial</strong></span> or provided
- as <span class="command"><strong>tar</strong></span> packages.
- </p></div></div><div class="refsection" title="Overlay lists"><a name="layman-global"></a><h2>Overlay lists</h2><div class="refsection" title="Overlay list format"><a name="id3030784"></a><h3>Overlay list format</h3><p>
- Layman uses a central list of overlays in XML format. The file looks like this:
- </p><div class="example"><a name="id3030793"></a><p class="title"><b>Example 1. An example overlays.xml file</b></p><div class="example-contents"><pre class="programlisting">
- &lt;?xml version="1.0" encoding="UTF-8"?&gt;
- &lt;!DOCTYPE repositories SYSTEM "/dtd/repositories.dtd"&gt;
- &lt;repositories xmlns="" version="1.0"&gt;
- &lt;repo quality="experimental" status="official"&gt;
- &lt;name&gt;gnome&lt;/name&gt;
- &lt;description&gt;experimental gnome ebuilds&lt;/description&gt;
- &lt;homepage&gt;http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=summary&lt;/homepage&gt;
- &lt;owner type="project"&gt;
- &lt;email&gt;gnome@gentoo.org&lt;/email&gt;
- &lt;name&gt;GNOME herd&lt;/name&gt;
- &lt;/owner&gt;
- &lt;source type="git"&gt;git://git.overlays.gentoo.org/proj/gnome.git&lt;/source&gt;
- &lt;source type="git"&gt;http://git.overlays.gentoo.org/gitroot/proj/gnome.git&lt;/source&gt;
- &lt;source type="git"&gt;git+ssh://git@git.overlays.gentoo.org/proj/gnome.git&lt;/source&gt;
- &lt;feed&gt;http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=atom&lt;/feed&gt;
- &lt;feed&gt;http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=rss&lt;/feed&gt;
- &lt;/repo&gt;
- &lt;/repositories&gt;
- </pre></div></div><p><br class="example-break">
- </p></div><div class="refsection" title="Adding an overlay locally"><a name="id3030842"></a><h3>Adding an overlay locally</h3><p>
- Simply create an overlay list in the format described
- above and run <span class="command"><strong>layman</strong></span> with the
- <code class="option">-o</code> switch. You need to
- prepend local file URLs with
- <strong class="userinput"><code>file://</code></strong>.
- </p></div><div class="refsection" title="Adding an overlay globally"><a name="id3030868"></a><h3>Adding an overlay globally</h3><p>
- The global list of overlays used by
- <span class="command"><strong>layman</strong></span> lies at
- <code class="filename">http://www.gentoo.org/proj/en/overlays/repositories.xml</code>.
- </p><p>
- All Gentoo developers have access to this location via CVS
- and can modify the list of overlays.
- </p><p>
- If you are not a Gentoo developer but wish to get your
- overlay listed you should contact the Gentoo Overlays team
- at <code class="email">&lt;<a class="email" href="mailto:overlays@gentoo.org">overlays@gentoo.org</a>&gt;</code>. You can also join
- <strong class="userinput"><code>#gentoo-overlays</code></strong> on
- <code class="filename">irc.freenode.net</code>.
- </p></div></div><div class="refsection" title="Examples"><a name="layman-examples"></a><h2>Examples</h2><div class="refsection" title="Installing an overlay"><a name="id3030922"></a><h3>Installing an overlay</h3><p><strong class="userinput"><code>layman -f -a wrobel</code></strong></p><p>This would add the overlay with the id
- <span class="command"><strong>wrobel</strong></span> to your list of installed
- overlays.</p></div><div class="refsection" title="Syncing your overlays"><a name="id3030945"></a><h3>Syncing your overlays</h3><p><strong class="userinput"><code>layman -s ALL</code></strong></p><p>This updates all overlays</p></div><div class="refsection" title="Performing several actions at the same time"><a name="id3030961"></a><h3>Performing several actions at the same time</h3><p><strong class="userinput"><code>layman -f -a wrobel -a webapps-experimental</code></strong></p><p>This fetches the remote list and immediately adds two
- overlays</p></div></div><div class="refsection" title="Files"><a name="layman-files"></a><h2>Files</h2><div class="variablelist"><dl><dt><span class="term"><code class="filename">/etc/layman/layman.cfg</code></span></dt><dd><p>Configuration file, holding the defaults for
- <span class="command"><strong>layman</strong></span></p></dd></dl></div></div><div class="refsection" title="Reporting bugs"><a name="layman-bugs"></a><h2>Reporting bugs</h2><p>
- Please report bugs you might find at <a class="ulink" href="http://bugs.gentoo.org" target="_top">http://bugs.gentoo.org</a>
- </p></div></div></div></div></body></html>