Jonathan Hall
Jonathan Hall

Reputation: 79734

Is it possible to specify a range of versions for a conflict in a Debian package?

I have a Debian package (lets call it foo) that I am splitting into two parts (foo and foo-icons). The previous package has three released versions (let's say 1.5, 2.3, and 3.1). The new package being split out will be common across all three versions. How can I make sure the new package conflicts with the proper versions of the old?

My problem is two-fold:

  1. How do I conflict with a range of versions. i.e.

    Conflicts: foo (>= 2.0 & <= 2.3)
    
  2. How do I conflict with multiple (ranges of) versions to the new foo-icons package?

    Logically, what I want is:

    Conflicts: foo (<= 1.5) & foo (>= 2.0 & <= 2.3) & foo (>= 3.0 & <= 3.1)
    

Is any of this possible? If not, what alternatives do I have? Do I need to rename my original package (foo to foo1 or somesuch)?

Upvotes: 3

Views: 2152

Answers (1)

InternetSeriousBusiness
InternetSeriousBusiness

Reputation: 2635

1. How do I conflict with a range of versions

Conflicts: foo (>= 2.0), foo (<= 2.3)

2. How do I conflict with multiple (ranges of) versions to the new foo-icons package?

I don't think you can do that, but why don't you increase the version of the splitted foo package (eg. 3.2) and Confict with foo (<< 3.2)?

Furthermore, from the Debian Policy Manual:

A Conflicts entry may have an "earlier than" version clause if the reason for the conflict is corrected in a later version of one of the packages. However, normally the presence of an "earlier than" version clause is a sign that Breaks should have been used instead. An "earlier than" version clause in Conflicts prevents dpkg from upgrading or installing the package which declares such a conflict until the upgrade or removal of the conflicted-with package has been completed, which is a strong restriction.

Upvotes: 2

Related Questions