> From: Gaetan Nadon <mems...@videotron.ca> > Date: Sun, 03 Oct 2010 15:36:44 -0400 > > The intent for the platform check for SU is to use "su -m" for > BSD-like systems. The compiler already provide defines for > such systems. > > Better alternatives are to perform a feature check on the behavior of "su", > or to change code in xdm-config to setuid. > > For the time being, this patch will reduce maintenance by replacing > the large case statement and the Automake variable with an > existing one liner of defines.
Sorry, but I still think the existing approach makes more sense. I don't see why a pretty much static sequence of case statements is a "maintenance burden". > config/Makefile.am | 2 +- > config/xdm-config.cpp | 7 ++++++- > configure.ac | 24 ------------------------ > 3 files changed, 7 insertions(+), 26 deletions(-) > > diff --git a/config/Makefile.am b/config/Makefile.am > index d13645f..c3d837f 100644 > --- a/config/Makefile.am > +++ b/config/Makefile.am > @@ -54,7 +54,7 @@ CPP_FILES_FLAGS = -DBINDIR="$(bindir)" > -DDEFAULTVT="$(DEFAULTVT)" \ > -DXDMDIR="$(XDMLIBDIR)" -DXDMLOGDIR="$(XDMLOGDIR)" \ > -DXDMXAUTHDIR="$(XDMXAUTHDIR)" \ > -DXDMPIDDIR="$(XDMPIDDIR)" -DXDMCONFIGDIR="$(XDMCONFIGDIR)" \ > - -DXDMSCRIPTDIR="$(XDMSCRIPTDIR)" -DSU="$(SU)" \ > + -DXDMSCRIPTDIR="$(XDMSCRIPTDIR)" \ > -DCHOOSERPATH="$(XDMLIBDIR)/chooser" $(XPMDEFINES) \ > -DSHELL_CMD="$(SHELL_CMD)" $(MKTEMP_DEFINES) > > diff --git a/config/xdm-config.cpp b/config/xdm-config.cpp > index 59d548b..81a5931 100644 > --- a/config/xdm-config.cpp > +++ b/config/xdm-config.cpp > @@ -16,7 +16,12 @@ DisplayManager.keyFile: XDMCONFIGDIR/xdm-keys > DisplayManager.servers: XDMCONFIGDIR/Xservers > DisplayManager.accessFile: XDMCONFIGDIR/Xaccess > DisplayManager*resources: XDMCONFIGDIR/Xresources > -DisplayManager.willing: SU nobody -c XDMSCRIPTDIR/Xwilling > +# if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) \ > + || defined(__APPLE__) || defined(__DragonFly__) > +DisplayManager.willing: su -m nobody -c XDMSCRIPTDIR/Xwilling > +#else > +DisplayManager.willing: su nobody -c XDMSCRIPTDIR/Xwilling > +#endif > ! All displays should use authorization, but we cannot be sure > ! X terminals may not be configured that way, so they will require > ! individual resource settings. > diff --git a/configure.ac b/configure.ac > index 53793a1..69f251c 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -145,30 +145,6 @@ if test "x$USE_SELINUX" != "xno" ; then > LIBS="$old_LIBS" > fi > > -# FIXME: Find better test for which OS'es use su -m - for now, just try to > -# mirror the Imakefile setting of: > -# if defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || > defined(FreeBSDArchitecture) || defined(DarwinArchitecture) > - > - > -case $host_os in > - linux*|gnu*|*-gnu) > - SU="su" > - ;; > - darwin*) > - SU="su -m" > - ;; > - *bsd*|dragonfly*) > - SU="su -m" > - ;; > - solaris*|sysv4*) > - SU="su" > - ;; > - *) > - SU="su" > - ;; > -esac > -AC_SUBST(SU) > - > # Check for /dev/random or /dev/urandom > AC_ARG_WITH(random-device, > AC_HELP_STRING([--with-random-device\[=<pathname>\]], > -- > 1.6.0.4 > > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel > _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel