ungoogled-software / ungoogled-chromium-debian

Debian, Ubuntu, and others packaging for ungoogled-chromium
386 stars 49 forks source link

Updated debian/control 'Breaks' and 'Replaces' #175

Closed ghost closed 4 years ago

ghost commented 4 years ago

Changed the Breaks and Replaces section for ungoogled-chromium-sandbox

ghost commented 4 years ago

What purpose does this serve?

Eloston commented 4 years ago

Thanks for pointing out the problematic package relationships. I understand the change from chromium to ungoogled-chromium (which fixes our package relationships to be more like that of the original packages), but I think we need to more carefully consider the semantics here. There are two loopholes that come to mind:

  1. ungoogled-chromium-sandbox is probably not compatible with chromium, so we need to add chromium to Breaks. This can arise if the user is switching between chromium and ungoogled-chromium.
  2. Users may still want to switch from ungoogled-chromium to chromium, but you have a Replaces for chromium-sandbox that would make the dependency resolver fail because of the behavior in section 7.6.2 of the Debian Policy Manual. Simply removing the entry in Replaces is not quite correct because of the behavior documented in section 7.6.1 of the Policy Manual. Instead, I think we should remove chromium-sandbox from Replaces AND add it to Conflicts (Conflicts is documented in section 7.4)

I am by no means a packaging expert, so please let us know if there are any holes in my logic.

ghost commented 4 years ago

@braewoods, if the relationships section for the packages is incorrect, this can cause a problem for the users.

Take this example: An older version of ungoogled-chromium is used while a newer version of ungoogled-chromium-sandbox is also installed. This would not be supported but due to the relationship specification of the package, this problem would not be detected and ungoogled-chromium-sandbox would (probably) not function.

This is a rare case but something to keep in mind nonetheless. It is vital to get the relationships of packages right, as it may result in a mess.

ghost commented 4 years ago

@Eloston, I appreciate the thought you have put into this, however if what you’re saying is correct, should we apply this idea to the other packages as well? (e.g ungoogled-chromium-common)

Eloston commented 4 years ago

should we apply this idea to the other packages as well? (e.g ungoogled-chromium-common)

Yeah, the same situation should apply to common, sandbox, and driver.

ghost commented 4 years ago

Okay I have updated the changes - please review this pull request. @Eloston