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

Re: apt-get upgrade and package consolidation



On 09/21/2015 02:07 AM, Frank de Lange wrote:
> Russ Allbery wrote:
>> Frank de Lange <debian-mentors-f@unternet.org> writes:
>>
>>> In packaging owncloud (https://owncloud.org) for Debian we've hit on a
>>> bit of a snag. In previous versions of the Debian packages, many
>>> disparate components were delivered in their own package
>>> (owncloud-app-encryption, owncloud-app-kichensink, owncloud-app-.....,
>>> etc). These functions have now been consolidated into the main package,
>>> named owncloud-server. The main question now is how to get this upgrade
>>> to go ahead using a normal apt-get upgrade (or the equivalent in other
>>> upgrade mechanisms) without needing to resort to dist-upgrade or a
>>> targeted upgrade (apt-get upgrade/install owncloud-server).
>>
>>> Currently the following happens:
>>
>>>  - user has the whole bunch of owncloud-app-... packages installed
>>>    as well as owncloud-server, all at v 8.1.1-1.
>>
>>>  - the next version of owncloud-server (v 8.1.3-6.1) includes all these
>>>    owncloud-app-... packages. In the control file this is stated:
>>
>>>     Conflicts: ... owncloud-app-activity (<< 8.1.3-6.1), owncloud-
>>>     app-encryption (<< 8.1.3-6.1), ... (etcetera - the list is long)
>>>     Breaks: ... owncloud-app-activity (<< 8.1.3-6.1), owncloud-
>>>     app-encryption (<< 8.1.3-6.1), ... (etcetera - the list is long)
>>
>> You basically never want both Conflicts and Breaks.  Breaks is a weaker
>> version of Conflicts.  In this case, I think you want Conflicts, not
>> Breaks, plus Provides and Replaces.
>>
>>>  - user tries a normal upgrade but this fails - owncloud-server
>>>    is held back
>>
>>>  - attempting to solve this by adding a 'Provides:' section with the
>>>    consolidated packages does not solve it either - now both the
>>>    owncloud-server package as well as all those 'Provided' packages
>>>    are held back.
>>
>> I think you need Replaces.  See:
>>
>> https://www.debian.org/doc/debian-policy/ch-relationships.html#s7.6.2
>>
> 
> Uh, jut got this reply. The new owncloud-server already contains a
> 'Replaces:' section, mentioning all the consolidated packages.
> 
> We can try to remove the Breaks: section, but it is doubtful as to
> whether that would solve this issue. Since they more or less state the
> same but in different terms it is probably a good idea anyway.
> 
> Gr//Fr
> 

If the Provides doesn't work, I'd go with empty transitional packages
for each owncloud-app-* *instead*.
Add them in owncloud-server/debian/control, each with Depends:
owncloud-server (>= ${source:Version}).

Then add to "Package: owncloud-server" Breaks and Replaces for each
owncloud-app-... (<< 8.1.3-6.1~).

I don't think Conflicts is necessary if you use transitional packages.
You have to keep thetransitional packages until Stretch is out.


Greets
jre


Reply to: