<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-
-<!ENTITY % aptent SYSTEM "apt.ent">
-%aptent;
-
-<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent">
-%aptverbatiment;
-
+<!ENTITY % aptent SYSTEM "apt.ent"> %aptent;
+<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent"> %aptverbatiment;
+<!ENTITY % aptvendor SYSTEM "apt-vendor.ent"> %aptvendor;
]>
<refentry>
&apt-email;
&apt-product;
<!-- The last update date -->
- <date>2010-02-16T00:00:00Z</date>
+ <date>2015-08-15T00:00:00Z</date>
</refentryinfo>
<refmeta>
underscore (_) and period (.) characters.
Otherwise APT will print a notice that it has ignored a file, unless that
file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
-configuration list - in this case it will be silently ignored.</para>
+configuration list - in which case it will be silently ignored.</para>
<refsect2><title>APT's Default Priority Assignments</title>
<varlistentry>
<term>priority 500</term>
-<listitem><simpara>to the versions that are not installed and do not belong to the target release.</simpara></listitem>
+<listitem><simpara>to the versions that do not belong to the target release.</simpara></listitem>
</varlistentry>
<varlistentry>
<term>priority 990</term>
-<listitem><simpara>to the versions that are not installed and belong to the target release.</simpara></listitem>
+<listitem><simpara>to the versions that belong to the target release.</simpara></listitem>
</varlistentry>
</variablelist>
+
+The highest of those priorities whose description matches the version is assigned to the
+version.
</para>
<para>If the target release has not been specified then APT simply assigns
</programlisting>
</listitem>
</itemizedlist>
+
+The effect of the comma operator is similar to an "and" in logic: All
+conditions must be satisfied for the pin to match. There is one exception:
+For any type of condition (such as two "a" conditions), only the last such
+condition is checked.
</para>
</refsect2>
<programlisting>
Package: gnome* /kde/
-Pin: release n=experimental
+Pin: release a=experimental
Pin-Priority: 500
</programlisting>
<variablelist>
<varlistentry>
-<term>P > 1000</term>
+<term>P >= 1000</term>
<listitem><simpara>causes a version to be installed even if this
constitutes a downgrade of the package</simpara></listitem>
</varlistentry>
<varlistentry>
-<term>990 < P <=1000</term>
+<term>990 <= P < 1000</term>
<listitem><simpara>causes a version to be installed
even if it does not come from the target release,
unless the installed version is more recent</simpara></listitem>
</varlistentry>
<varlistentry>
-<term>500 < P <=990</term>
+<term>500 <= P < 990</term>
<listitem><simpara>causes a version to be installed
unless there is a version available belonging to the target release
or the installed version is more recent</simpara></listitem>
</varlistentry>
<varlistentry>
-<term>100 < P <=500</term>
+<term>100 <= P < 500</term>
<listitem><simpara>causes a version to be installed
unless there is a version available belonging to some other
distribution or the installed version is more recent</simpara></listitem>
</varlistentry>
<varlistentry>
-<term>0 < P <=100</term>
+<term>0 < P < 100</term>
<listitem><simpara>causes a version to be installed
only if there is no installed version of the package</simpara></listitem>
</varlistentry>
<term>P < 0</term>
<listitem><simpara>prevents the version from being installed</simpara></listitem>
</varlistentry>
+<varlistentry>
+<term>P = 0</term>
+<listitem><simpara>has undefined behaviour, do not use it.</simpara></listitem>
+</varlistentry>
</variablelist>
</para>
-<para>If any specific-form records match an available package version then the
-first such record determines the priority of the package version.
-Failing that,
-if any general-form records match an available package version then the
-first such record determines the priority of the package version.</para>
+<para>
+The first specific-form record matching an available package version determines
+the priority of the package version.
+Failing that, the priority of the package is defined as the maximum of all
+priorities defined by generic-form records matching the version.
+Records defined using patterns in the Pin field other than "*" are treated like
+specific-form records.
+</para>
<para>For example, suppose the APT preferences file contains the three
records presented earlier:</para>