#794719 xscreensaver-data: runs /usr/bin/barcode rather than /usr/lib/xscreensaver/barcode

Package:
xscreensaver-data
Source:
xscreensaver
Description:
Screen saver modules for screensaver frontends
Submitter:
Andy Isaacson
Date:
2015-08-06 18:21:04 UTC
Severity:
normal
#794719#5
Date:
2015-08-05 23:14:54 UTC
From:
To:
Dear Maintainer,

on a system with the barcode package installed, and the default set
of xscreensaver packages,

ii  barcode               0.98+debian-9.1
ii  xscreensaver          5.30-1+b1
ii  xscreensaver-data     5.30-1+b1
un  xscreensaver-gl       <none>
un  xscreensaver-gnome    <none>
un  xscreensaver-nognome  <none>

% which barcode
/usr/bin/barcode

xscreensaver ends up running /usr/bin/barcode rather than
the screensaver in /usr/lib/xscreensaver .

This is because the commands are named without absolute paths in
/etc/X11/app-defaults/XScreenSaver-nogl,

% grep -C3 barcode /etc/X11/app-defaults/XScreenSaver-nogl
- GL: 				antspotlight -root			    \n\
				apple2 -root				    \n\
- GL: 				atunnel -root				    \n\
				barcode -root				    \n\
- GL: 				blinkbox -root				    \n\
- GL: 				blocktube -root				    \n\
- GL: 				bouncingcow -root			    \n\

and the barcode saver is in xscreensaver-data-extra but is mentioned in the
app-defaults file from xscreensaver-data, so while it is not found in
/usr/lib/xscreensaver it is found later in $PATH.  As a result, my laptop
frequently ends up showing the usage message from /usr/bin/barcode rather than
a pleasing graphical screensaver.

Perhaps xscreensaver should only consider /usr/lib/xscreensaver when executing
the screensavers rather than falling back to $PATH, since there may be other
commands that are less benign when executed erroneously.  But I don't know
what the downsides of that approach might be ...

thanks,
-andy

#794719#10
Date:
2015-08-06 18:09:36 UTC
From:
To:
The proper fix to this is for there to be only *one* xscreeensaver package, instead of having the savers be divided up into, what, six different packages at random? I have no idea why anyone ever thought that was a good idea.