<p dir="ltr"><br>
</p>
<p dir="ltr"></p>
<p dir="ltr">On Tue, Jul 21, 2015, 4:51 AM Andreas Beckmann <<a href="mailto:anbe@debian.org">anbe@debian.org</a>> wrote:</p>
<blockquote><p dir="ltr">Package: ffmpeg<br>
Version: 7:2.7.2-1<br>
Severity: serious<br>
User: <a href="mailto:debian-qa@lists.debian.org">debian-qa@lists.debian.org</a><br>
Usertags: piuparts replaces-without-breaks<br>
Control: affects -1 + libav-tools</p>
<p dir="ltr">Hi,</p>
<p dir="ltr">during a test with piuparts and DOSE tools I noticed your package causes<br>
removal of files that also belong to another package.<br>
This is caused by using Replaces without corresponding Breaks.</p>
<p dir="ltr">The installation sequence to reproduce this problem is</p>
<p dir="ltr">  apt-get install libav-tools<br>
  # (1)<br>
  apt-get install ffmpeg<br>
  apt-get remove ffmpeg<br>
  # (2)</p>
<p dir="ltr">The list of installed files at points (1) and (2) should be identical,<br>
but the following files have disappeared:</p>
<p dir="ltr">  usr/bin/qt-faststart<br>
  usr/share/man/man1/qt-faststart.1.gz</p>
<p dir="ltr">This is a serious bug violating policy 7.6, see<br>
<a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">https</a><a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">://</a><a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">www.debian.org</a><a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">/doc/</a><a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">debian-policy</a><a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">/</a><a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">ch-relationships.html#s-replaces</a><br>
and also see the footnote that describes this incorrect behavior<br>
<a href="https://www.debian.org/doc/debian-policy/footnotes.html#f53">https</a><a href="https://www.debian.org/doc/debian-policy/footnotes.html#f53">://</a><a href="https://www.debian.org/doc/debian-policy/footnotes.html#f53">www.debian.org</a><a href="https://www.debian.org/doc/debian-policy/footnotes.html#f53">/doc/</a><a href="https://www.debian.org/doc/debian-policy/footnotes.html#f53">debian-policy</a><a href="https://www.debian.org/doc/debian-policy/footnotes.html#f53">/</a><a href="https://www.debian.org/doc/debian-policy/footnotes.html#f53">footnotes.html#f53</a></p>
<p dir="ltr">The ffmpeg package has the following relationships with libav-tools:</p>
<p dir="ltr">  Conflicts: n/a<br>
  Breaks:    libav-tools (<< 6:9~), qt-faststart (<< 7:2.7.1-3~)<br>
  Replaces:  libav-tools (<< 6:12~), qt-faststart (<< 7:2.7.1-3~)</p>
<p dir="ltr">The Breaks was not bumped to match the Replaces.</p>
<p dir="ltr">>From the attached log (scroll to the bottom...):</p>
<p dir="ltr">1m28.2s ERROR: FAIL: After purging files have disappeared:<br>
  /usr/bin/qt-faststart  owned by: ffmpeg<br>
  /usr/share/man/man1/qt-faststart.1.gz  owned by: ffmpeg</p>
<p dir="ltr">1m28.2s ERROR: FAIL: After purging files have been modified:<br>
  /var/lib/dpkg/info/libav-tools.list    not owned<br>
</p>
</blockquote>
<p dir="ltr"><br>
</p>
<blockquote><p dir="ltr"><br>
</p>
</blockquote>
<p dir="ltr"><br>
Well, that was actually the purpose, the idea is to replace qt-faststart from libav-tools, and the problem is rather transitional until libav-tools is uninstalled. I guess the bug is that we don't ensure that this actually takes place. I've therefore made two commits in git:</p>
<p dir="ltr">- one that tightens the Breaks relationship as suggested<br>
- one that renames libav-tools-links to libav-tools in src:ffmpeg.</p>
<p dir="ltr">This should ensure a comprehensive transition.</p>
<p dir="ltr">Feedback on these two commits are welcome. In particular, I saw a comment suggesting to transition command-line interface separately from the library interfaces. While this may make the transition slightly smaller, the benefits don't outweigh the confusion here, and would rather suggest to transition them both at the same time with the 2nd commit mentioned above.</p>
<p dir="ltr">Best,<br>
Reinhard<br>
</p>