gnome-screensaver conflicts with ubuntu-desktop

Bug #22335 reported by Allison Karlitskaya
26
Affects Status Importance Assigned to Milestone
ubuntu-meta (Ubuntu)
Fix Released
Medium
Oliver Grawert

Bug Description

gnome-screensaver has a

Conflicts: xscreensaver

and of course, ubuntu-desktop depends on xscreensaver.

As a result, it's not possible to have ubuntu-desktop and gnome-screensaver
installed on the same system.

Could be fixed by removing the conflict or even allowing ubuntu-desktop to
depend on xss | gss

Revision history for this message
Allison Karlitskaya (desrt) wrote :

sebastien says that ubuntu-desktop is a better place for this to go.

Revision history for this message
Oliver Grawert (ogra) wrote :

gnome-screensaver is immature and broken (thats the reason why we switched
back), i dont think its a good idea to even offer it as a choice at all in
ubuntu-desktop in its current state

Revision history for this message
Scott James Remnant (Canonical) (canonical-scott) wrote :
Download full text (4.9 KiB)

Ok, I'm starting to get a bit tired of this ... I'm going to schedule a BOF at
UbuntuBelowZero to explain to you guys carefully, lovingly and with a baseball
bat exactly what Conflicts and Replaces *mean* in an attempt to stop you using
them like this!

Seriously guys, we use "dpkg" and not "rpm" -- so trying to use these headers as
you would in RPM is going to do almost exactly the wrong thing in every
circumstance.

Now shut up, sit down, and listen.

In the dpkg world, only one package may own a given file at a time. There is no
way to have two packages installed which own the same file, one of them has to
own it. The Conflicts and Replaces headers are *ONLY* used for resolving this
problem in the case where "foo" and "bar" both provide the same file.

If both foo and bar provide /some-file; and you install foo, and then install
bar (or the other way around) you will get an error at unpack time that bar is
trying to overwrite /some-file when it is owned by foo.

The Replaces header means that bar *MAY* overwrite files owned by foo, and that
after doing so the file is owned by bar. If bar Replaces foo, and you install
bar (when foo is installed) it will succeed; and any files overwritten are now
owned by bar.

THIS HEADER DOES NOT MEAN THAT bar IS A REPLACEMENT FOR foo; DPKG IS NOT RPM!
If you prefer, think of this header as "Overwrites".

The reason this header is dangerous to use is that once bar has overwritten a
file owned by foo, bar now owns the file and not foo. If bar is removed, SO IS
THE FILE! Removing bar can damage foo. It is primarily used to split packages
where the package that used to own the file can Depend on the package that now
owns the file (and Replaces the parent).

The Conflicts header means that bar *MAY NOT* overwrite files owned by foo, even
if the user tries to force it with --force-overwrite. This header means that
bar is known to have the same files as foo, and that the files are *different*
in some way (usually two applications providing /usr/bin/filename which are
different). Installing bar will damage foo. The installation of bar will fail
unless foo has been removed first.

THIS HEADER DOES NOT FORCE AN UPGRADE OR PACKAGE CHANGE!
It simply states that foo and bar provide the same filename on disk, and that
the user should be prevented from trying to force the issue as they'll only
damage their system.

In particular, this header is only used at unpack time on the package being
installed. If bar Conflicts foo, and you install foo and then bar, the
installation of bar will be refused. However if you install bar, and then
install foo, that's fine because foo doesn't Conflict bar. For this reason
Conflicts nearly always come in pairs, both foo and bar should Conflict each other.

And this is the reason this header is dangerous, once foo and bar Conflict each
other, there's no way to install one without removing the other first and no way
for that to be processed by an upgrade engine. Once done, you can't swap
packages around. It's most commonly used with a virtual package provided by
both (see below), and generally discouraged in favour of using diverts and
alternatives to allow swapping of the...

Read more...

Revision history for this message
Allison Karlitskaya (desrt) wrote :

Nice rant :D

anyway. this is fixed now. cheerio.

Revision history for this message
Irios (irios) wrote :

Sure, nice rant. Very informative.

Now, how can I install xscreensaver and remove gnome-screensaver (from the system-preferences menu at the very least) without having whole ubuntu-desktop removed?

Revision history for this message
Dennis Kaarsemaker (dennis) wrote :

With alacarte you can edit the menus. You cannot uninstall gnome-screensaver without taking ubuntu-desktop along with it.

Revision history for this message
Étienne BERSAC (bersace) wrote :

Ok, wake up.

Now gnome-screensaver is default in ubuntu, how to really switch from xscreensaver to gnome-screensaver and installing both which is very annoying for end user ?

Revision history for this message
Oliver Grawert (ogra) wrote :

the new upgrade tool will care for it ...

Revision history for this message
shanen (Shannon Jacobs) (shanen) wrote :

Basically just noting that I have the same question, but so far haven't been able to come up with an answer. I would like to remove several components from ubuntu-desktop without sacrificing all of it.

Revision history for this message
Sebastien Bacher (seb128) wrote :

That's not possible for now but there is some work planned to make that possible

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.