POLDEK.CONF(1)

Name
poldek.conf - the configuration file for poldek

Synopsis

poldek.conf contains runtime configuration information for poldek package management tool. The complete description of the file format and possible parameters held within are here for reference purposes.

File format

The file consists of directives, sections and parameters. A section begins with thename of the section in square brackets and continues until the next section begins ('ini'-like format). Sections contain parameters of the form:

    name = value

The file is line-based - that is, each newline-terminated line represents either a comment, a section name or a parameter. Any line beginning with a hash (``#'') character is ignored, as are lines containing only whitespace.

In most string paramameters environment variables are expanded:

    path = $HOME/foo

Special directives

File can be combined from multiple configuration files with %include directive. Either local and remote HTTP/FTP files can be included, examples:

    %include /etc/foo.conf            # simply include /etc/foo.conf
    %include foo.conf                 # include foo.conf from directory of includer
    %include http://bar.org/foo.conf  # include foo.conf from remote location

Any "[global]" sections from included files are simply ignored. Remote files are cached, they can be updated using --upconf switch.

Second directive, %includedir includes all *.conf files from given directory, examples:

    %includedir repos.d                  # include all *.conf files from repos.d subdirectory
    %includedir /etc/repos.d             # include all *.conf files from /etc/repos.d

Macros

Simple macros are supported. Macros are declared as paramameter with underscore ('_') at beginning:

    _foo = /bar

and can be expanded in any following value in %{NAME} form:

    path = %{_foo}/dir    # path will be '/bar/dir'

Macros are local to file beeing declared, they are not visible in included files as they are not visible to includer.

Section descriptions

There are three section types: [global], [source] and [fetcher].

[global]
    Section contains global paramameters. May be declared multiple times, in this case content of all global sections are concatenated.

[source]
    This section contains poldek's repository configuration. Each section describes one repository.

[fetcher]
    Configuration of external file getters. Each section declares one external downloader.

To make things simpler default configuration consists of several files. Repositories are declared in separate source.conf and *-source.conf, file getters are declared in fetch.conf. All of them are included by poldek.conf.

Parameters of [global] section

default index type
    This parameter allows to configure the default repository index type.

    Default: default index type = pndir

cachedir
    Cache directory for downloaded files. NOTE that parent directory of cachedir must exist.

    Default: cachedir = $HOME/.poldek-cache

runas
    Switch to ordinary user at startup when executed by root

    Default: runas =

use sudo
    Permits using root privileges for installation only. If set to "auto" then automatically turned on when poldek executed as ordinary user.

    Default: use sudo = auto

load apt sources list
    Load /etc/apt/sources.list.

    Default: load apt sources list = no

vfile external compress
    Handle gzipped indexes externally (needed on RedHat 9 and Fedora Core 1 and 2). This option is a workaround for broken zlib linked into librpm; with enabled 'auto zlib in rpm' poldek tries to detect such case and then enables external *.gz handling automatically.

    Default: vfile external compress = no

auto zlib in rpm
    Auto detection of zlib linked into librpm. See 'vfile external compress' description.

    Default: auto zlib in rpm = yes

autoupa
    Automatically download whole index if incremental update fails.

    Default: autoupa = yes

exclude path
    Do not save given paths into created indexes. This option may significantly reduce index size. Example (notice missing starting '/'):

         exclude path = usr/share/doc:usr/share/man:usr/src

pm command
    Full path name to a PM (rpm for now) binary.

    Default: pm command = /bin/rpm

sudo command
    Full path name to sudo binary.

    Default: sudo command = /usr/bin/sudo

  File downloaders configuration

vfile ftp sysuser as anon passwd
    Send ${USER}@${HOSTNAME} as anonymous FTP password (by default 'poldek@znienacka.net' is sent)

    Default: vfile ftp sysuser as anon passwd = no

default fetcher
    File getters configuration parameter. By this option URL handlers may be configured. To get file from HTTP and FTP servers poldek uses its internal client (what is recommended), although it can be changedby this option. Others protocols handled by external utilities can be configured also. The syntax is:

         default fetcher = PROTOCOL[,PROTOCOL...]:FETCHER_NAME

    where FETCHER_NAME is a name of one of the fetcher preconfigured in [fetch] sections (placed in fetch.conf in default configuration). Examples:

         default fetcher = ftp,http:internal
         default fetcher = https:wget
         default fetcher = cdrom:vfjuggle

    vfjuggle is a cdrom getter supplied with poldek.

    Default: default fetcher = http,ftp: internal

proxy
    Proxies for internal FTP and HTTP client may be configured in usual way, by environment variables ftp_proxy and http_proxy, or by this option. Its syntax is similar to "default fetcher" one:

         proxy = PROTOCOL[,PROTOCOL...]:PROXY_URL

    Example:

         proxy = http: http://w3cache.foo.org:8080

    Default: proxy =

noproxy
    Comma separated list of hosts or domains which will not be accessed via proxy. Option overrides no_proxy environment variable. Example:

         noproxy = localhost, .pl, ftp.foo.bar.org

    Default: noproxy =

vfile retries
    Internal HTTP and FTP client is stubborn, it retries to retrive file if connection breaks. This option tells it how many times it should try.

    Default: vfile retries = 128

  Installation options

particle install
    Install packages in small groups instead of doing all-or-nothing installations.

    Default: particle install = yes

keep downloads
    Do not remove downloaded packages after its successful installation.

    Default: keep downloads = no

unique package names
    Controls visibility of multiple package instances with different EVR. If on, only one, highest version will be visible.

    Default: unique package names = no

promoteepoch
    Epoch autopromotion during dependency comparision. RPM specific. Set it up if you are using system with rpm prior to 4.2.1 version.

    Default: promoteepoch = no

confirm installation
    Confirm packages installation.

    Default: confirm installation = no

confirm removal
    Confirm packages removal.

    Default: confirm removal = yes

choose equivalents manually
    Let the user select package among equivalents.

    Default: choose equivalents manually = no

hold
    Prevent package listed from being upgraded if they are already installed.

         hold = kernel* foo*.i686 th-test:* *-smp-* th-ready:bar*.x86_64

    Default: hold =

ignore
    Ignore package list - packages fits given mask will be invisible.

         ignore = *-smp-* foo*
         ignore = vserver-packages

    Default: ignore =

allow duplicates
    Conflicts with already installed packages are treated as resolved if at least one of multiple-installed package satisfies conflict. rpm doesn't support such cases, so --pm-nodeps is needed (use with care).

    Default: allow duplicates = yes

  RPM specific options

rpmdef
    rpm macros can be set by this option. Examples:

         rpmdef   = _install_langs pl:pl_PL:lt:lt_LT

    Do not install any documentation:

         rpmdef  = _netsharedpath /usr/share/info:/usr/share/man
         rpmdef  = _excludedocs 1

    If non-zero, all erasures will be automagically repackaged.

         rpmdef  = _repackage_all_erasures 1

    Default: rpmdef =

  Dependency processing settings

     Subtle dependency processing options, they should not be changed
     unless you know what you are doing

auto directory dependencies
    RPM 4.4.6 introduces auto dependencies based on package directories. Option controls this feature.

    Default: auto directory dependencies = auto

follow
    Automatically install packages required by installed ones.

    Default: follow = yes

greedy
    Greedy upgrades, i.e. upgrade packages which dependencies are broken by being uninstalled ones.

    Default: greedy = yes

aggressive greedy
    Be yet more greedy; if successor of orphaned package found, and this successor drags no packages then upgrade the package instead of process its dependencies. Option value is implied by 'greedy' one by defalut.

    Default: aggressive greedy = yes

mercy
    Be tolerant for unmatched versioned dependencies which rpm tolerates, e.g. package A requires capability foo >= 1.0 while package B provides "foo" without any version. Use with care, it may cause weird dependency errors.

    Default: mercy = no

suggests
    Taking into account package Suggests.

    Default: suggests = yes

obsoletes
    Taking into account package Obsoletes.

    Default: obsoletes = yes

conflicts
    Taking into account package Conflicts.

    Default: conflicts = yes

Parameters of [source] section

This section contains poldek's repository configuration. Every repository is configured in its own [source] section.

name
    Unique name of the repository.

type
    Type of repository index. Permitted values are 'pndir', 'pdir', 'apt', 'yum' and 'dir' as listed by --stl switch.

original type
    This parameter sets index original type i.e type of repository from what this repository is created. Default is 'dir' - means that directory of packages is scanned.

    Default: original type = dir

path
    Unique name of the repository. May be either path or URL.

prefix
    If package index and packages are stored in different locations then prefix stands for packages path.

douniq
    Controls visibility of multiple package instances with different EVR. If on, only one, highest version will be visible.

    Default: douniq = no

pri
    Repository priority. If the same packages (equal names and EVR) are available in more than one source then package from highest prioritized source are taken. Priority is numeric value. Lower number means higher priority, and negative priorities are allowed. Priority is numeric value.

    Default: pri = 0

auto
    Controling if repository index will be implicit loaded. Set it off if the index should be loaded on demand only, i.e. if specified directly by --sn option.

    Default: auto = yes

autoup
    Controls if repository index will be implicit updated. Set it off if the index should be updated on demand only, i.e. if specified directly by --sn option.

    Default: autoup = yes

signed
    Packages PGP/GPG signatures (if any) will be verified before their installation.

    Default: signed = no

hold
    Have the same meaning as [global] parameter. Example:

         hold = kernel* dev

    Default: hold =

ignore
    Have the same meaning as [global] parameter. Example:

         ignore = kernel*smp* dev

    Default: ignore =

exclude path
    Parameter have the same meaning as [global] parameter.

         exclude path = usr/share/doc:usr/share/man:usr/src

    Default: exclude path =

lang
    Preferred language of package descriptions. If not set, taken from locale settings. Example:

         lang = pl_PL:lt_LT

sources
    Make sense for 'group' source type only. A list of names of sources.

Parameters of [fetcher] section

This section contains external downloaders configuration. Each section describes one fetcher.

name
    Unique name of the fetcher. This is an optional parameter, if not set then name is taken from the "cmd" parameter value as "$(basename $cmd)".

proto
    Protocol or protocols supported by fetcher. Name of the protocol can be completely arbitrary, i.e. if you can handle protocol "foo" by writing a script which takes URLs in form 'foo://'.

cmd
    Parameter specifies an external command and its invoking syntax. The syntax of "cmd" is:

         cmd = COMMAND [ OPTION... ] {%d,%D}  {%p,%P}[n]

    Where COMMAND is the name or full path of command, OPTION is command specific options. Macro '%d' is replaced with cache directory, '%D' is replaced with 'cache directory/file basename', and '%p' with file basename, %P with file full path (URL). Optional suffix 'n' with %p and %P means that command can be invoked with multiple files at once.