added patch from Greg Fitzgerald <netzdamon@gmail.com> to fix bzr
[ule.git] / doc / update-live-ebuilds.8
blob5cce62c0693619336f9dc168498280d8339b6233
1 .\" Process this file with
2 .\" groff -man -Tascii foo.1
3 .\"
4 .TH update-live-ebuilds 8 "JANUARY 2009" "" "User Manuals"
5 .SH NAME
6 update-live-ebuilds \- The SCM update detector and install initiator.
7 .SH SYNOPSIS
8 .B update-live-ebuilds [-abhpq]
9 .I [PACKAGE|PKGSPEC] ..
10 .SH DESCRIPTION
11 .B update-live-ebuilds
12 detects portage compatible packages which pull compilation files from a supported source code management repository, such as CVS, SVN, GIT, Mercurial, Bazaar or TLA. If an update has been detected, it initiates the portage compatible installer, which installed the package originally, to update the package. By default, it attempts to update all SCM packages. Alternatively, the user can use the package as an argument to this script to only update the package, but do be warned, arguments are treated as fuzzy values and will match many live ebuilds if they exist. For example if "update-live-ebuilds foo" is executed, it will find foo, foobar, but it might also find foocat.
13 .SH OPTIONS
14 .IP -a
15 Updates or baselines, reguardless if it's needed. This usually overrides anything that would prevent updating.
16 .IP -b
17 Baseline, this option skips the update and writes out the database with the information which is currently in ${DISTDIR}. This option is used, for example, right after you have done initial emerge on a package, and don't want ule to reemerge it just for the ule cookie's database injection.
18 .IP -h
19 Print the usage information.
20 .IP -p
21 If an update is required, only pretend to do it.
22 .IP -q
23 Try to be as quiet as possible, except for errors.
24 .IP -r
25 Report information on packages tracked by ULE.
26 .SH FILES
27 .I /etc/ule/ule.conf
29 The system wide configuration file. This file is self documented.
31 .I /etc/ule/ule.mask
33 If set in /etc/ule/ule.conf, this file takes one package spec per line and must be followed by a 'newline'. These packages will not be updated by update-live-ebuilds.
35 .I /etc/ule/ule.ask
37 If set in /etc/ule/ule.conf, this file takes one package spec per line and must be followed by a 'newline'. The user will be prompted before updating the specific package.
39 .I /etc/ule/ule.date
41 If set in /etc/ule/ule.date, this file takes one package spec per line, a space, then a number of days; this will delay the updating of a specific package for the specified number of days. For example, if it is desired to restrict update attempts of a specific package to once every two weeks, the following should be in the update-live-ebuilds.date file 'media-sound/foo-live 14'. There are two special cases, one is to use category/*, ie media-sound/* 14, to affect all files in the category media-sound. The second special case is the */*:SLOT case, which can be used to date files by their slot. All lines must be followed by a 'newline'. If not updated, subsequent update-live-ebuilds runs will continue to attempt to update this specific package until an update occurs.
43 .SH DETECTING UPDATES
44 update-live-ebuilds usually finds live ebuilds in the portage compatible database, /var/db/pkg. Then, if PEEK support is not enabled, it updates the repository in the DISTDIR, with the information found in the package's environment file. update-live-ebuilds normally does this quietly, thus the user may think that update-live-ebuilds is unnecessarily updating. This is not always the case.
46 If PEEK support is not enabled, or pre-PEEK support, when the package begins to install, in the fetch stage, the user may be confused when noticing there are no updates. On the flip side, with PEEK support the user may see the portage compatible installer actually updates during fetch. To make things more confusing, the user may see that sometimes the package maybe flagged for updates, with PEEK support on and the fetch didn't need to update the source directory. This could be due to many factors, such as DISTDIR being previously updated by another computer on the network, if this is a shared DISTDIR; a failed update; etc.
48 The point is that the fetch procedure in the portage compatible installer is not a good method of detecting weather a live ebuild is up to date. There are no known bugs in this part of update-live-ebuilds, I check for them regularly, and there are procedures for testing for problems inside update-live-ebuilds.
50 .SH ORDER
51 update-live-ebuilds orders installs, whenever possible. Live ebuilds are installed with libraries first, to give the ebuilds to be installed after a good base to link to, once again, if necessary. Programs that are not plugins are installed next. Plugins follow all other packages, so they can be cleanly based on the libraries and programs, weather or not the package is applicable to this scenario.
53 .SH EXAMPLES
54 .B update-live-ebuilds -ab
56 This will baseline all live ebuilds. In other words, this could be run on the first ule run to prevent reemerging all live ebuilds. This is used when /var/pkg/ule has been corrupted or removed, this will quickly set it back up.
58 .B update-live-ebuilds media-sound/foo-live media-gfx/bar-live
60 This will update only the package 'media-sound/foo-live' and 'media-gfx/bar-live', only if the respective source SCM has a newer revision.
62 .B update-live-ebuilds -a media-sound/foo-live
64 This will update only the package 'media-sound/foo-live', weather or not the source SCM has a new revision. This is a simple equalivent of emerge 'media-sound/foo-live' && update-live-ebuilds -b 'media-sound/foo-live'
65 .B update-live-ebuilds -a foo
67 This will update the package foo, foobar, any package with foo in the name that is an ebuild from a repository. Be careful when using syntax like this as it is fuzzy and will match all kinds of things you may have not meant.
69 .B update-live-ebuids foo bar
71 This will update not only foo, but app-misc/foo-bar, www-client/foo-cat, net-print/barcat, etc.
73 .SH BUGS
74 TLA and Bazaar support are in update-live-ebuilds, but both are untested, and are not on by default. Testing and feedback welcome.
76 Methods in update-live-ebuilds which require passing information through the environment maybe blocked by sudo's env_reset directive. This may create silent bugs, due to the way a certain SCM is implemented in ULE. These issues normally have the ability to be workedaround, please file them as a bug in the forums, or by email.
78 'update only' support does not yet support slots. This will likely require a few hours and strict package arguments, not necessarily a bad thing, but will take time I don't have at the moment.
80 Turn debug on only in cases where it needs to be on. It's not well tested and bugs may become visible when it is on.
82 .SH AUTHOR
83 Avuton Olrich <avuton@gmail.com>