[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Apt pinning.



Can anyone tell me exactly what this Pin line I have actually does - or
even better point me to a webpage that has more than "if you want to do
this use this" type of example?

(FTAOD I know that this isn't right and is inconsistent but before I
start changing it I want to really understand what it's currently doing)

I have a local repository:

Codename: buster
Components: main
Date: Thu, 25 Nov 2021 19:42:12 +0000
Description: Debs for local installing
Label: local debs
Origin: local debs
Suite: oldstable

And I have a pin (which I've failed to update since bullseye became
stable hence the a=stable)

Package: *
Pin: release o=local debs,a=stable,n=buster,l=local debs,c=main,b=amd64
Pin-Priority: 900


What I want this to do is hold any package in my local repository even
if a newer version is present in debian. My local repository has patched
packages for various reasons - e.g.
linphone/oldstable,now 3.12.0-3+tjw10r1 amd64 [installed]

linphonec in buster has a bug that causes a core on answering a call.
I've applied the patch locally. Were a new buster build to happen
(unlikely now but not impossible if there's a serious security issue
found) I'd want my local version to stay until I patch the new version.

This pin has worked successfully for me throughout buster's lifetime -
however when looking at it now to correct that a=stable I noticed that
https://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html suggests
that I should be pinning at 990, not 900.

Also, I don't know if this pin is working with a=stable or it's actually
not doing anything useful any more. I cannot find anything that tells me
how the Pin: line actually matches.


I don't even know whether the options on that Pin line are AND or ORed
together. The example on the webpage has:

     Package: *
     Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
     Pin-Priority: 1001

When debian went from v2.2 potato to v3 woody, would this pin stop
working? Because woody would be stable and potato oldstable at that
point.


I'm trying to solve a (minor) problem I'm having during upgrades from
buster to bullseye where I've backported make from bullseye to buster.
So on my buster systems I have:
make/oldstable,now 4.3-4.1+tjw10r1 amd64 [installed]

while once I've upgraded to bullseye I want to "downgrade" from my
backported package to make 4.3-4.1 and then continue to track bullseye.
I'm trying to work out what Pin line I want (ideally generic rather than
package specific - dump has exactly the same feature) but at the same
time I do not want my buster systems to install squid 4.6-1+deb10u7
(should it ever be created) over my patched 4.6-1+deb10u6+tjw10r1 but
instead hold my patched package until I patch deb10u7.

(ditto bullseye where I have squid/stable,now 4.13-10+tjw11r1)

For now I just manually apt-get install make=4.3-4.1 to fix it. But if
make built on buster had failed to work on bullseye then my package
could have made a mess of the upgrade if any packages are using make
during configuation.


Tim.


Reply to: