summaryrefslogtreecommitdiffstats
path: root/x11/gdm/files/gdm.in
diff options
context:
space:
mode:
Diffstat (limited to 'x11/gdm/files/gdm.in')
-rw-r--r--x11/gdm/files/gdm.in62
1 files changed, 62 insertions, 0 deletions
diff --git a/x11/gdm/files/gdm.in b/x11/gdm/files/gdm.in
new file mode 100644
index 000000000..63bf40a4b
--- /dev/null
+++ b/x11/gdm/files/gdm.in
@@ -0,0 +1,62 @@
+#!/bin/sh
+# $FreeBSD: ports/x11/gdm/files/gdm.in,v 1.19 2010/05/10 21:18:50 kwm Exp $
+# $MCom: ports/x11/gdm/files/gdm.in,v 1.43 2010/04/17 19:06:00 marcus Exp $
+
+# PROVIDE: gdm
+# REQUIRE: LOGIN cleanvar moused syscons dbus
+#
+# Add the following to /etc/rc.conf to start GDM at boot time:
+#
+# gdm_enable="YES"
+#
+
+. /etc/rc.subr
+. %%GNOME_SUBR%%
+
+gdm_enable=${gdm_enable-${gnome_enable}}
+gdm_preserve_base_pam_conf=${gdm_preserve_base_pam_conf-NO}
+gdm_lang=${gdm_lang-${LANG}}
+
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin:%%LOCALBASE%%/bin:%%LOCALBASE%%/sbin
+
+name="gdm"
+rcvar=`set_rcvar`
+command="%%PREFIX%%/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+procname="%%PREFIX%%/sbin/gdm-binary"
+start_cmd="gdm_start"
+
+gdm_start()
+{
+ if ! checkyesno gdm_enable ; then
+ return 0
+ fi
+ echo "Starting ${name}."
+
+ # make sure there is no pam configuration for gdm service in base system
+ if ! checkyesno gdm_preserve_base_pam_conf && [ -f /etc/pam.d/gdm ]; then
+ cp -p /etc/pam.d/gdm /etc/pam.d/gdm_disabled
+ rm -f /etc/pam.d/gdm
+ fi
+
+ ( iter=0
+ while ! ps -axoargs | grep "^/usr/libexec/getty " | grep -qv grep >/dev/null 2>&1; do
+ if [ ${iter} -eq 60 ]; then
+ break
+ fi
+ sleep 1
+ iter=$(expr ${iter} + 1)
+ done
+ iter=0
+ while ! %%LOCALBASE%%/bin/lshal >/dev/null 2>&1 ; do
+ if [ ${iter} -eq 60 ]; then
+ break
+ fi
+ sleep 1
+ iter=$(expr ${iter} + 1)
+ done
+ LANG=${gdm_lang} ${command} ${gdm_flags} ) &
+}
+
+load_rc_config ${name}
+run_rc_command "$1"