Bug 211433

Summary: Review Request: wdm - WINGs Display Manager
Product: [Fedora] Fedora Reporter: Patrice Dumas <pertusus>
Component: Package ReviewAssignee: Mamoru TASAKA <mtasaka>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Package Reviews List <fedora-package-review>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mtasaka
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-11-30 17:52:56 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 163779    

Description Patrice Dumas 2006-10-19 07:34:41 UTC
Spec URL: http://www.environnement.ens.fr/perso/dumas/fc-srpms/wdm.spec
SRPM URL: http://www.environnement.ens.fr/perso/dumas/fc-srpms/wdm-1.28-1.src.rpm
Description:

wdm combines the functions of a graphical display manager identifying 
and authenticating a user on a system with some of the functions of a 
session manager in selecting and starting a window manager. Optionally, 
wdm can shutdown (reboot or halt) the system.

wdm is a modification of XFree86's xdm package for graphically handling 
authentication and system login. Most of xdm has been preserved 
(XFree86 4.2.1.1) with the Login interface based on a WINGs. Tom 
Rothamel's "external greet" interface (see AUTHORS) was used to 
communicate wdm with wdmLogin. 

In fedora, wdm may be called through a wrapper, wdm-dynwm, which determines
the available window managers using the freedesktop information and modifies
the wdm-config configuration file accordingly, before launching wdm.

Comment 1 Patrice Dumas 2006-10-19 07:42:08 UTC
It won't build in mock because WindowMaker-devel miss many
dependencies, I filled Bug #211263 for that issue. I'll add build deps 
if needed.

The font appearing on the chooser are quite ugly on my system, but it
may be a local configuration issue.

I added a perl script to detect available desktop similarly than what 
gdm and kdm do, the drawback is that it adds a perl dependency, 
force to use a wrapper wdm-dynwm around wdm, and the script rewrites
a user configuration file, but it works nicely.

If somebody has an image that may be used and use the fedora artwork 
theme and image instead of a penguin head, I'd happily use it.

I don't know how to integrate wdm better (using wdm-dynwm) in fedora.


Comment 2 Patrice Dumas 2006-10-20 11:57:41 UTC
(In reply to comment #1)

> If somebody has an image that may be used and use the fedora artwork 
> theme and image instead of a penguin head, I'd happily use it.

I found something for that, and also enhanced the package in:
http://www.environnement.ens.fr/perso/dumas/fc-srpms/wdm-1.28-2.src.rpm

- use images from desktop-backgrounds-basic fedora-logos
- record session style before calling the generic Xsession, and add
  previous session and custom session handling.
- ship the original config files
- fix a bug in the default config files



Comment 3 Patrice Dumas 2006-10-20 15:28:59 UTC
Ooops... My wrapper script was broken... Fixed in 

http://www.environnement.ens.fr/perso/dumas/fc-srpms/wdm-1.28-3.src.rpm

Comment 4 Kevin Fenzi 2006-11-12 02:59:25 UTC
Humm... I'm not able to build in mock. I seem to be getting (for both fc6 and
devel):

gcc -c  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic
-fasynchronous-unwind-tables -DHAVE_CONFIG_H -I./include  -I/usr/include
-I/usr/include -DWITH_SELINUX -I/usr/include/selinux src/wdm/access.c -o
src/wdm/access.o
In file included from src/wdm/Greet.c:97:
./include/dm.h:272: error: expected specifier-qualifier-list before 'Boolean'
./include/dm.h:362: error: expected ')' before 'ctx'
./include/dm.h:423: error: expected ')' before '*' token
./include/dm.h:439: error: expected declaration specifiers or '...' before 'Display'
./include/dm.h:442: error: expected declaration specifiers or '...' before 'Display'
./include/dm.h:445: error: expected declaration specifiers or '...' before 'Display'
./include/dm.h:449: error: expected declaration specifiers or '...' before 'Display'
src/wdm/Greet.c: In function 'InitGreet':
src/wdm/Greet.c:202: warning: ignoring return value of 'pipe', declared with
attribute warn_unused_result
src/wdm/Greet.c: In function 'GreetUser':
src/wdm/Greet.c:417: error: too many arguments to function 'DeleteXloginResources'
src/wdm/Greet.c:375: warning: ignoring return value of 'system', declared with
attribute warn_unused_result
src/wdm/Greet.c:381: warning: ignoring return value of 'system', declared with
attribute warn_unused_result
make: *** [src/wdm/Greet.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from src/wdm/access.c:36:
./include/dm.h:49:27: error: X11/Intrinsic.h: No such file or directory
In file included from src/wdm/access.c:36:
./include/dm.h:272: error: expected specifier-qualifier-list before 'Boolean'
./include/dm.h:362: error: expected ')' before 'ctx'
./include/dm.h:423: error: expected ')' before '*' token
./include/dm.h:439: error: expected declaration specifiers or '...' before 'Display'
./include/dm.h:442: error: expected declaration specifiers or '...' before 'Display'
./include/dm.h:445: error: expected declaration specifiers or '...' before 'Display'
./include/dm.h:449: error: expected declaration specifiers or '...' before 'Display'
make: *** [src/wdm/access.o] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.77552 (%build)

Any ideas?

Comment 5 Patrice Dumas 2006-11-12 18:42:31 UTC
(In reply to comment #4)
> Humm... I'm not able to build in mock. I seem to be getting (for both fc6 and
> devel):
> 

> In file included from src/wdm/access.c:36:
> ./include/dm.h:49:27: error: X11/Intrinsic.h: No such file or directory

There is the error. I'll investigate a bit to understand whether 
it is really in wdm or in WindowMaker-devel.


Comment 6 Patrice Dumas 2006-11-12 21:33:37 UTC
Ok, builds in mock now

- add BR libXt-devel and libXmu-devel

Available now here:

http://www.lmd.jussieu.fr/~pdlmd/wdm.spec
http://www.lmd.jussieu.fr/~pdlmd/wdm-1.28-4.src.rpm

Comment 7 Mamoru TASAKA 2006-11-29 07:14:25 UTC
Well, this package creates a lot of rpmlint complaints.
---------------------------------------------------------------
W: wdm dangling-relative-symlink /etc/wdm/GiveConsole ../X11/xdm/GiveConsole
W: wdm dangling-relative-symlink /etc/wdm/Xaccess ../X11/xdm/Xaccess
E: wdm executable-marked-as-config-file /etc/wdm/Xsession
E: wdm script-without-shebang /etc/wdm/Xsession
E: wdm executable-marked-as-config-file /etc/wdm/Xsetup_0.wdm
W: wdm dangling-relative-symlink /etc/wdm/Xsetup_0 ../X11/xdm/Xsetup_0
E: wdm wrong-script-interpreter /etc/wdm/Xclients.in "@SHELL_LOGIN@"
E: wdm non-executable-script /etc/wdm/Xclients.in 0644
E: wdm executable-marked-as-config-file /etc/wdm/Xclients
E: wdm non-executable-script /etc/wdm/Xsession.orig 0644
E: wdm executable-marked-as-config-file /etc/wdm/TakeConsole.wdm
W: wdm dangling-relative-symlink /etc/wdm/TakeConsole ../X11/xdm/TakeConsole
E: wdm executable-marked-as-config-file /etc/wdm/GiveConsole.wdm
E: wdm non-standard-dir-perm /etc/wdm/authdir 0700
E: wdm executable-marked-as-config-file /etc/wdm/Xsession.wdm
E: wdm executable-marked-as-config-file /etc/wdm/Xsession.XFree86
W: wdm strange-permission wdm-update_wdm_wmlist 0755
--------------------------------------------------------------
Would you explain 
* which ones can be ignored and why
* which ones should be fixed
before I install this package?


Comment 8 Patrice Dumas 2006-11-29 09:33:46 UTC
(In reply to comment #7)

Most should be ignorable.

> W: wdm dangling-relative-symlink /etc/wdm/GiveConsole ../X11/xdm/GiveConsole
> W: wdm dangling-relative-symlink /etc/wdm/Xaccess ../X11/xdm/Xaccess
> W: wdm dangling-relative-symlink /etc/wdm/Xsetup_0 ../X11/xdm/Xsetup_0
> W: wdm dangling-relative-symlink /etc/wdm/TakeConsole ../X11/xdm/TakeConsole

Symlinks to xdm scripts to avoid duplicating, and also because
they are more recent and maintained as part of xdm.

> E: wdm executable-marked-as-config-file /etc/wdm/Xsession

That's a session script, rightly located in /etc/

> E: wdm non-standard-dir-perm /etc/wdm/authdir 0700

restricted permissions for a directory holding sensitive files.

> E: wdm non-executable-script /etc/wdm/Xsession.orig 0644
> E: wdm executable-marked-as-config-file /etc/wdm/TakeConsole.wdm
> E: wdm executable-marked-as-config-file /etc/wdm/Xsetup_0.wdm
> E: wdm executable-marked-as-config-file /etc/wdm/GiveConsole.wdm
> E: wdm executable-marked-as-config-file /etc/wdm/Xsession.wdm
> E: wdm executable-marked-as-config-file /etc/wdm/Xsession.XFree86

Other session scripts. They could be in %doc, but I think that 
it is better to have them right in the config dir, such that it is 
easy to switch to them. Xsession.orig is not set executable upstream,
it is the original X11R? session script. After reading Xsession.orig
and Xsession.XFree86, it seems like they use /tmp insecurely, so 
I'll remove them. Xsession.wdm too, uses /tmp insecurely but I'll 
patch it.

> W: wdm strange-permission wdm-update_wdm_wmlist 0755

This is a script so executable.

> E: wdm wrong-script-interpreter /etc/wdm/Xclients.in "@SHELL_LOGIN@"
> E: wdm non-executable-script /etc/wdm/Xclients.in 0644
> E: wdm executable-marked-as-config-file /etc/wdm/Xclients

/etc/wdm/Xclients is a session script, and it can be regenerated
from Xclients.in using wdmReconfig, it explains the rpmlint errors.
It is also not used in the default case, but provided for those
who want to use the config from upstream.



This one is to be fixed:
> E: wdm script-without-shebang /etc/wdm/Xsession

I will fix that one.

Comment 9 Patrice Dumas 2006-11-29 09:51:22 UTC
New srpm available:
http://www.environnement.ens.fr/perso/dumas/fc-srpms/wdm-1.28-5.src.rpm
- fix insecure use of /tmp in original wdm script
- remove obsolete session scripts

I replaced Xsession.XFree86 by a link to /etc/X11/xdm/Xsession, named
Xsession.xorg.

rpmlint now gives (on installed package to avoid the symlinks warnings):

W: wdm strange-permission wdm-update_wdm_wmlist 0755

A script.

E: wdm executable-marked-as-config-file /etc/wdm/Xsession
E: wdm executable-marked-as-config-file /etc/wdm/Xsetup_0.wdm
E: wdm executable-marked-as-config-file /etc/wdm/Xclients
E: wdm executable-marked-as-config-file /etc/wdm/TakeConsole.wdm
E: wdm executable-marked-as-config-file /etc/wdm/GiveConsole.wdm
E: wdm executable-marked-as-config-file /etc/wdm/Xsession.wdm

Session scripts.

E: wdm wrong-script-interpreter /etc/wdm/Xclients.in "@SHELL_LOGIN@"
E: wdm non-executable-script /etc/wdm/Xclients.in 0644

used by wdmReconfig to regenerate Xclients.

E: wdm non-standard-dir-perm /etc/wdm/authdir 0700

directory for sensitive files.

Comment 10 Mamoru TASAKA 2006-11-29 16:51:42 UTC
Well, then my next question is:

A-1 :
------------------------------------------------
E: wdm executable-marked-as-config-file /etc/wdm/Xsession
E: wdm executable-marked-as-config-file /etc/wdm/Xsetup_0.wdm
E: wdm executable-marked-as-config-file /etc/wdm/Xclients
E: wdm executable-marked-as-config-file /etc/wdm/TakeConsole.wdm
E: wdm executable-marked-as-config-file /etc/wdm/GiveConsole.wdm
E: wdm executable-marked-as-config-file /etc/wdm/Xsession.wdm
------------------------------------------------
are these files which rpmlint complains as 
'executable-marked-as-config-file' are 'configuration' files?
I feel like that configuration for wdm should done by somewhat
other files if these files should be customizable.

A-2:
----------------------------------------------------
E: wdm wrong-script-interpreter /etc/wdm/Xclients.in "@SHELL_LOGIN@"
E: wdm non-executable-script /etc/wdm/Xclients.in 0644

used by wdmReconfig to regenerate Xclients.
----------------------------------------------------
Umm, does /usr/bin/wdmReconfig correctly fix "@SHELL_LOGIN@"
in /etc/wdm/Xclients.in?
----------------------------------------------------
[root@localhost i386]# grep 'SHELL_LOGIN' `rpm -ql wdm` 
/etc/wdm/Xclients.in:#!@SHELL_LOGIN@
----------------------------------------------------

For packaging issue (not checked in detail)
A. From http://fedoraproject.org/wiki/Packaging/Guidelines :
* Timestamps
  - For install, use 'install -p'.
  - Please try to keep timestamps on image files under
    /usr/share/pixmaps/wdm .

B. Other notes:
* /etc/pam.d/wdm
  - This includes 
-------------------------------------------
account    include      system-auth
-------------------------------------------
    For this pam setting, I usually recommend
    'Requires: pam >= 0.80'. 

Comment 11 Patrice Dumas 2006-11-29 18:09:51 UTC
(In reply to comment #10)

> are these files which rpmlint complains as 
> 'executable-marked-as-config-file' are 'configuration' files?
> I feel like that configuration for wdm should done by somewhat
> other files if these files should be customizable.

In fact they may be in other place than /etc since the script
location is set in /etc/wdm/wdm-config. However it could be possible
for a sysadm to want to modify them to do special things at login
or logout. They are clearly not suitable for %_bindir, but maybe
some below /usr/share/, others in %docs.

I removed the noreplace flag for the scripts and examples not
used in the default case. Now rpmlint is even more verbose.
It wouldn't be possible to shut down rpmlint completly with files
in /etc, since there would still be
W: xorg-x11-xdm non-conffile-in-etc /etc/X11/xdm/Xaccess

I don't have a clear idea on what would be the best packaging,
but in any case this should be also discussed with 
xorg-x11-xdm/gdm/kdm

> Umm, does /usr/bin/wdmReconfig correctly fix "@SHELL_LOGIN@"
> in /etc/wdm/Xclients.in?

No, there is a bug in wdmReconf, patched now.

>   - For install, use 'install -p'.
>   - Please try to keep timestamps on image files under
>     /usr/share/pixmaps/wdm .

hopefully fixed.

> B. Other notes:
> * /etc/pam.d/wdm
>   - This includes 
> -------------------------------------------
> account    include      system-auth
> -------------------------------------------
>     For this pam setting, I usually recommend
>     'Requires: pam >= 0.80'. 

Done, thanks.

http://www.environnement.ens.fr/perso/dumas/fc-srpms/wdm-1.28-6.src.rpm
- fix reconfiguration script
- requires pam recent enough
- don't set noreplace for scripts and example config files


Comment 12 Mamoru TASAKA 2006-11-30 06:47:16 UTC
Umm... we cannot avoid rpmlint complaints... I leave them
as they are.

Then a few issues are left.
* 'install -m755' or 'install -m644'
  Please use 'install -p -m755' or so.
* A question:
  What does disabling --enable-aafont option mean? Doesn't it work
  well (I have not checked this)?

Other things are okay.
Well, actually this is a right and nice display manager.

Comment 13 Patrice Dumas 2006-11-30 10:41:16 UTC
(In reply to comment #12)

> Then a few issues are left.
> * 'install -m755' or 'install -m644'
>   Please use 'install -p -m755' or so.

Done.

> * A question:
>   What does disabling --enable-aafont option mean? Doesn't it work
>   well (I have not checked this)?

I tried to follow what's in README.aa, but I didn't see anything 
happening. I may have missed something. I enabled the option 
anyway.

http://www.environnement.ens.fr/perso/dumas/fc-srpms/wdm-1.28-7.src.rpm
- keep timestamps for shipped files
- enable aa fonts


Comment 14 Mamoru TASAKA 2006-11-30 12:43:16 UTC
(In reply to comment #13)
> I tried to follow what's in README.aa, but I didn't see anything 
> happening. I may have missed something. I enabled the option 
> anyway.

Well, I have not yet checked the effect of AAFONT, however
it might do something... Anyway 1.28-7 works well for me.

---------------------------------------------------------------
   This package (wdm) is APPROVED by me.

Comment 15 Patrice Dumas 2006-11-30 17:52:56 UTC
built in devel, owners.list updated, FC-6 branch asked. 
Thanks for the review.