[Bug 1978125] Re: apt ignoring pin/block/hold files in preferences.d for snapd
Julian Andres Klode
1978125 at bugs.launchpad.net
Thu Jun 30 13:48:58 UTC 2022
** Description changed:
- Did some upgrades on a new box on 22.04, and had previously removed
- snapd and BLOCKED via a file in /etc/apt/preferences.d/
+ [Impact]
+ Negative pins are overridden by a pin of 1 if the package is phasing and "not for us", which suddenly makes packages installable that were effectively blocklisted by the negative pin, overriding user settings
+
+ [Test plan]
+ Integration tests covers the fix for this. The fix is not enabled by default as the implementation was changed for bug 1979244, however the new implementation also tests that.
+
+ These tests are run during autopkgtest.
+
+ To test with the new implementation, create an update that pulls in a
+ phasing package that is pinned -1 and make sure it's not being
+ installed. I did not add a test for that case as the new implementation
+ only works by keeping back packages, so it by definition can't suddenly
+ cause a package to be allowed.
+
+ [Where problems could occur]
+ This specific bit is not enabled anymore, but for the sake of it, it is implemented as a ceiling for the pin, so any other pin will be limited to 1 if the package is considered a "not-for-us" phasing package. So problems could occur there.
+
+ For the new phasing implementation, see bug 1979244.
+
+ [Original bug report]
+ Did some upgrades on a new box on 22.04, and had previously removed snapd and BLOCKED via a file in /etc/apt/preferences.d/
And this upgrade cycle REINSTALLED snapd! and the stupid FF snap! Had to
repurge it again!
I had done this previously, and it appears that apt or something is
IGNORING any pin/holds of snapd
I use preferences.d files as using:
- sudo apt-mark hold snapd
+ sudo apt-mark hold snapd
This has never worked on any package, ever...
-
- I have:
+ I have:
/etc/apt/preferences.d$ cat snapd
Package: snapd
Pin: origin *
Pin-Priority: -1
And that previously resulted in an error on apt in any attempt to
install snapd, including using -s... NOW it will still attempt to
install snapd!
I've tried several variants of this as well, which other 22.04 and 20.04
boxes have, same on 22.04, it will allow snapd install!
Did sudo apt-get update, apt update several times, rebooted several
times, had various levels of the Pin-Priority from -1 to -9999, still
will attempt to install snapd, versus the expected error
sudo apt-get -s install snapd
Expected error: Reading package lists... Done Building dependency tree
Reading state information... Done Package snapd is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'snapd' has no installation candidate
20.04 boxes still seem to fail correctly with this pin file,.....
Checking my BASE VM IMAGE of 22.04 and this still works there, as its
not been touched, this pin file blocks snapd from installing as
expected... this is apt 2.3.15, updated one is 2.4.5....
If I pick ANY OTHER RANDOM PACKAGE out and use the same pin/block file,
and change the name to that package, it blocks it from installing!
Anything but snapd this works for!
1)$ lsb_release -rd
Description: Ubuntu 22.04 LTS
Release: 22.04
2) sudo apt-cache policy apt
apt:
- Installed: 2.4.5
- Candidate: 2.4.5
- Version table:
- *** 2.4.5 500
- 500 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
- 100 /var/lib/dpkg/status
+ Installed: 2.4.5
+ Candidate: 2.4.5
+ Version table:
+ *** 2.4.5 500
+ 500 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
+ 100 /var/lib/dpkg/status
What I expect to happen? HONOR MY BLOCK on snapd! It works for any
random package chosen, EXCEPT snadp!
** Also affects: apt (Ubuntu Kinetic)
Importance: Undecided
Status: Triaged
** Also affects: apt (Ubuntu Impish)
Importance: Undecided
Status: New
** Also affects: apt (Ubuntu Jammy)
Importance: Undecided
Status: New
** Changed in: apt (Ubuntu Impish)
Status: New => In Progress
** Changed in: apt (Ubuntu Jammy)
Status: New => In Progress
** Changed in: apt (Ubuntu Kinetic)
Status: Triaged => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1978125
Title:
apt ignoring pin/block/hold files in preferences.d for snapd
Status in apt package in Ubuntu:
Fix Committed
Status in apt source package in Impish:
In Progress
Status in apt source package in Jammy:
In Progress
Status in apt source package in Kinetic:
Fix Committed
Bug description:
[Impact]
Negative pins are overridden by a pin of 1 if the package is phasing and "not for us", which suddenly makes packages installable that were effectively blocklisted by the negative pin, overriding user settings
[Test plan]
Integration tests covers the fix for this. The fix is not enabled by default as the implementation was changed for bug 1979244, however the new implementation also tests that.
These tests are run during autopkgtest.
To test with the new implementation, create an update that pulls in a
phasing package that is pinned -1 and make sure it's not being
installed. I did not add a test for that case as the new
implementation only works by keeping back packages, so it by
definition can't suddenly cause a package to be allowed.
[Where problems could occur]
This specific bit is not enabled anymore, but for the sake of it, it is implemented as a ceiling for the pin, so any other pin will be limited to 1 if the package is considered a "not-for-us" phasing package. So problems could occur there.
For the new phasing implementation, see bug 1979244.
[Original bug report]
Did some upgrades on a new box on 22.04, and had previously removed snapd and BLOCKED via a file in /etc/apt/preferences.d/
And this upgrade cycle REINSTALLED snapd! and the stupid FF snap! Had
to repurge it again!
I had done this previously, and it appears that apt or something is
IGNORING any pin/holds of snapd
I use preferences.d files as using:
sudo apt-mark hold snapd
This has never worked on any package, ever...
I have:
/etc/apt/preferences.d$ cat snapd
Package: snapd
Pin: origin *
Pin-Priority: -1
And that previously resulted in an error on apt in any attempt to
install snapd, including using -s... NOW it will still attempt to
install snapd!
I've tried several variants of this as well, which other 22.04 and
20.04 boxes have, same on 22.04, it will allow snapd install!
Did sudo apt-get update, apt update several times, rebooted several
times, had various levels of the Pin-Priority from -1 to -9999, still
will attempt to install snapd, versus the expected error
sudo apt-get -s install snapd
Expected error: Reading package lists... Done Building dependency tree
Reading state information... Done Package snapd is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'snapd' has no installation candidate
20.04 boxes still seem to fail correctly with this pin file,.....
Checking my BASE VM IMAGE of 22.04 and this still works there, as its
not been touched, this pin file blocks snapd from installing as
expected... this is apt 2.3.15, updated one is 2.4.5....
If I pick ANY OTHER RANDOM PACKAGE out and use the same pin/block
file, and change the name to that package, it blocks it from
installing! Anything but snapd this works for!
1)$ lsb_release -rd
Description: Ubuntu 22.04 LTS
Release: 22.04
2) sudo apt-cache policy apt
apt:
Installed: 2.4.5
Candidate: 2.4.5
Version table:
*** 2.4.5 500
500 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
100 /var/lib/dpkg/status
What I expect to happen? HONOR MY BLOCK on snapd! It works for any
random package chosen, EXCEPT snadp!
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1978125/+subscriptions
More information about the foundations-bugs
mailing list