package clamdscan 0.98.7+dfsg-0ubuntu4 failed to install/upgrade: trying to overwrite '/usr/share/man/man1/clamdscan.1.gz', which is also in package clamav-daemon 0.98.7+dfsg-0ubuntu0.14.04.1

Bug #1581839 reported by http://alis.asso.ma on 2016-05-14
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
clamav (Ubuntu)
High
Unassigned
Wily
High
Unassigned
Xenial
High
Christian Ehrhardt 

Bug Description

[Impact]
 * Upgrade path Trusty->Xenial is broken if clamav-daemon is installe
 * The fix shall restore the upgrade path by marking properly with
   breaks/replaces as needed

[Test Case]
 1. Spawn Trusty container
 2. apt-get install clamav-daemon
 3. replace trusty with xenial in /etc/apt/sources.list
 4. apt-get update
 FIX CASE
 5. make fixed package available locally
    (http://paste.ubuntu.com/17288886/)
 6. verify that the local repo works
   apt-cache policy clamav
 BOTH CASES
 7. apt-get install clamdscan
 Note: we don't need full dist-upgrade which can save time

[Regression Potential]
 * The change is "only" Dependencies of clamav, so even in the worst case
   fallout should be local to clamav
 * Tested with/without fix in Trusty based containers proved that it works
   now

[Other Info]
 * While there could be upgrade paths V->W and T->W that would be broken
   as well, both are not important enough for an SRU for this issue.

this is it

ProblemType: Package
DistroRelease: Ubuntu 15.10
Package: clamdscan 0.98.7+dfsg-0ubuntu4
ProcVersionSignature: Ubuntu 4.2.0-36.41-generic 4.2.8-ckt8
Uname: Linux 4.2.0-36-generic x86_64
ApportVersion: 2.19.1-0ubuntu5
Architecture: amd64
Date: Sun May 8 22:52:42 2016
DuplicateSignature: package:clamdscan:0.98.7+dfsg-0ubuntu4:trying to overwrite '/usr/share/man/man1/clamdscan.1.gz', which is also in package clamav-daemon 0.98.7+dfsg-0ubuntu0.14.04.1
ErrorMessage: trying to overwrite '/usr/share/man/man1/clamdscan.1.gz', which is also in package clamav-daemon 0.98.7+dfsg-0ubuntu0.14.04.1
InstallationDate: Installed on 2014-09-10 (611 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Release amd64 (20140417)
ProcCmdline: BOOT_IMAGE=/boot/vmlinuz-4.2.0-36-generic root=UUID=0fbf1b1f-43cd-45e3-8195-99f298669c28 ro quiet splash vt.handoff=7
RelatedPackageVersions:
 dpkg 1.18.2ubuntu5.1
 apt 1.0.10.2ubuntu2
SourcePackage: clamav
Title: package clamdscan 0.98.7+dfsg-0ubuntu4 failed to install/upgrade: trying to overwrite '/usr/share/man/man1/clamdscan.1.gz', which is also in package clamav-daemon 0.98.7+dfsg-0ubuntu0.14.04.1
UpgradeStatus: No upgrade log present (probably fresh install)

http://alis.asso.ma (nhaily) wrote :
tags: removed: need-duplicate-check
Robie Basak (racb) on 2016-05-16
tags: added: bitesize
Changed in clamav (Ubuntu):
importance: Undecided → High
Robie Basak (racb) wrote :

Xenial and Wily need a Breaks/Replaces against the version in Trusty (and this will potentially need to be bumped every time Trusty is bumped to a new upstream release).

No action is needed in Yakkety since all upgrade paths go through Xenial.

Changed in clamav (Ubuntu):
status: New → Invalid
Changed in clamav (Ubuntu Wily):
status: New → Triaged
Changed in clamav (Ubuntu Xenial):
status: New → Triaged
Changed in clamav (Ubuntu Wily):
importance: Undecided → High
Changed in clamav (Ubuntu Xenial):
importance: Undecided → High
Robie Basak (racb) on 2016-06-07
Changed in clamav (Ubuntu Wily):
assignee: nobody → ChristianEhrhardt (paelzer)
Changed in clamav (Ubuntu Xenial):
assignee: nobody → ChristianEhrhardt (paelzer)

Ok, so a bit of a summary for those like me who not auto-understand all these packaging things like racb :-P

Reason behind it is that the file /usr/share/man/man1/clamdscan.1.gz was moved between
from package clamav-daemon to clamdscan.

While clamav-daemon recommends clamdscan it can exist without clamav-daemon.

Thereby we talk about #7 on https://wiki.debian.org/PackageTransition

After some discussion on the options (complex SRU for trusty moving the file, just adding breaks, or how to make at leas the xenial portion in a way to not needing re-fixes over time).
The issue is that with any new update in Trusty the issue might come back again.

To avoid this as good as possible I will prepare SRUs with the following changes:
- Wily gets a breaks & replaces according to https://wiki.debian.org/PackageTransition with <<WilyVersion
- Xenial will get a breaks & replaces <0.99 which should be stable along potential Trusty updates
- If Trusty gets a MRE to 0.99 we are back to the same trouble we have today, but that will break so much more that we don't have to overengineer before it happens

Actually I realized Breaks <<0.99-plus-remaining-version is as good or even better than just <<0.99, so I do the "usual" thing on break/replace on the version that is adding the break/replace and by that hopefully lowering the chance for confusion of the next one looking at the package.

After some more thinking "<<first-version-in-this-release" is probably the safest.
The upgrade path Trusty->Wily and Trusty->Xenial need that relation anyway - which means we should be able to rely on it.

Debdiffs are complete and sbuild is happy (expected given the change), but I want to give it some testing before adding the SRU+subscription. That won't be today thou.

I'll need that test for steps to reproduce anyway.

Test for verification:
1. Spawn Trusty container
2. apt-get install clamav-daemon
3. replace trusty with xenial in /etc/apt/sources.list
4. apt-get update
FIX CASE
5. make fixed package available locally (http://paste.ubuntu.com/17288886/)
6. verify with apt-cache policy that the local repo works
BOTH CASES
7. apt-get install clamdscan

Note: we don't need full dist-upgrade which can save time

Tests are nice, there seem to be a file move in just another package
New clamav-daemon breaks older clamav-base by file /usr/share/man/man5/clamd.conf.5.gz

Need to integrate that as well.

Giving my tests more coverage and thinking about reasonability of an SRU:

Vivid is soon out of scope and has already 0.98.7* packaging due to security updates - so V->W path isn't important anymore.

Also the Trusty -> Wily path can be considered unimportant now that Xenial is out a while (and almost nobody does LTS->nonLTS).

That said I'd vote to only fix T->X.

Changed in clamav (Ubuntu Wily):
status: Triaged → Won't Fix
assignee: ChristianEhrhardt (paelzer) → nobody
description: updated
Robie Basak (racb) wrote :

We discussed this at length at: http://irclogs.ubuntu.com/2016/06/15/%23ubuntu-devel.html#t12:53

Conclusion: it's right and safest as it is. Uploaded. Thank you!

One minor thing: I had to adjust the version number. 0.99+dfsg-1ubuntu2 is already used in Yakkety, so would have got rejected. We prefer the 1.1 style for SRUs anyway, as that makes it clear that it's an SRU just from the version number.

Changed in clamav (Ubuntu Xenial):
status: Triaged → In Progress
Brian Murray (brian-murray) wrote :

Step 5 in the test case should really be to make sure -proposed is enabled in /etc/apt/sources.list because we want to test the package from the official Ubuntu archive.

Changed in clamav (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed

Hello http://alis.asso.ma, or anyone else affected,

Accepted clamav into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/clamav/0.99+dfsg-1ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

There was no verification by the reporter yet, it is small enough a change that I will do it.

Did the good path in two and the bad path in two containers to be sure.

1. Spawn Trusty container
2. apt-get install clamav-daemon
3. replace trusty with xenial in /etc/apt/sources.list
4. (good path only): make xenial-proposed available
5. apt-get update
6. verify with apt-cache policy clamdscan that proposed is enable on good path only
7. apt-get install clamdscan

Worked fine in the good path.
I also set up a minimal clamdscan testcase (starting and notifying clamav-daemon as needed) which worked - so I think there should be no regression (also it was a packaging only change)

tags: added: verification-done-xenial
removed: verification-needed

The verification of the Stable Release Update for clamav has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package clamav - 0.99+dfsg-1ubuntu1.1

---------------
clamav (0.99+dfsg-1ubuntu1.1) xenial; urgency=medium

  * Fix upgrade paths with proper Breaks/Replaces (LP: #1581839)
    - several files were move since the version in trusty, e.g:
      /usr/share/man/man1/clamdscan.1.gz moved clamav-daemon to clamdscan
      /usr/share/man/man5/clamd.conf.5.gz moved clamav-base to clamav-daemon

 -- Christian Ehrhardt <email address hidden> Fri, 10 Jun 2016 12:40:52 +0200

Changed in clamav (Ubuntu Xenial):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers