summaryrefslogtreecommitdiffstats
path: root/trinity-base/tdm/tdm-9999.ebuild
blob: 5d4d6160b3fa87d3229c0183d2ca781a7f633bee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
TRINITY_MODULE_NAME="tdebase"

inherit trinity-meta

DESCRIPTION="Trinity login manager, similar to xdm and gdm"
KEYWORDS=
IUSE="pam xdmcp xcomposite sak +xrandr"

DEPEND="pam? ( trinity-base/tdebase-pam )
	xdmcp? ( x11-libs/libXdmcp )
	xcomposite? ( x11-libs/libXcomposite )
	xrandr? ( x11-libs/libXrandr )
	>=trinity-base/tdelibs-${PV}:${SLOT}[xrandr?]
	sys-apps/dbus
	x11-libs/libXtst
	>=trinity-base/kcontrol-${PV}:${SLOT}
	dev-libs/dbus-tqt"

RDEPEND="${DEPEND}
	>=trinity-base/tdepasswd-${PV}:${SLOT}
	x11-apps/xinit
	x11-apps/xmessage"

pkg_setup() {
	trinity-meta_pkg_setup;
	use sak && TRINITY_SUBMODULE+=" tsak"
}

src_configure() {
	mycmakeargs=(
		-DWITH_XTEST=ON
		-DWITH_LIBART=ON
		-DWITH_SHADOW=ON
		$(cmake-utils_use_with xcomposite XCOMPOSITE )
		$(cmake-utils_use_with xdmcp XDMCP )
		$(cmake-utils_use_with xrandr XRANDR )
		$(cmake-utils_use_with pam PAM )
	)

	trinity-meta_src_configure
}

src_install() {
	cmake-utils_src_install

	# Customize the kdmrc configuration
	sed -i -e "s:#SessionsDirs=:SessionsDirs=/usr/share/xsessions\n#SessionsDirs=:" \
		"${D}/${TDEDIR}/share/config/tdm/tdmrc" || die "sed tdmrc failed"

	# install XSession upstream script seems to be debian-cpecific
	cp "${FILESDIR}/${P}-xsession.script" "${D}/${TDEDIR}/share/config/tdm/Xsession"
	sed -i -e "s!@TRINITY_INSTALL_PATH@!${TDEDIR}!" "${D}/${TDEDIR}/share/config/tdm/Xsession" \
		|| die "sed tdmrc failed"
}

pkg_postinst() {
	# set the default kdm face icon if it's not already set by the system admin
	# because this is user-overrideable in that way, it's not in src_install
	if [ ! -e "${ROOT}${TDEDIR}/share/apps/tdm/faces/.default.face.icon" ];	then
		mkdir -p "${ROOT}${TDEDIR}/share/apps/tdm/faces"
		cp "${ROOT}${TDEDIR}/share/apps/tdm/pics/users/default1.png" \
			"${ROOT}${TDEDIR}/share/apps/tdm/faces/.default.face.icon"
	fi
	if [ ! -e "${ROOT}${TDEDIR}/share/apps/tdm/faces/root.face.icon" ]; then
		mkdir -p "${ROOT}${TDEDIR}/share/apps/tdm/faces"
		cp "${ROOT}${TDEDIR}/share/apps/tdm/pics/users/root1.png" \
			"${ROOT}${TDEDIR}/share/apps/tdm/faces/root.face.icon"
	fi

	if use sak; then
		sak_ok=yes
		if ! linux_config_exists; then
			ewarn "Can't check the linux kernel configuration."
			ewarn "You might have some incompatible options enabled."
			sak_ok=no
		else
			if ! linux_chkconfig_present INPUT_UINPUT; then
				eerror "You build tdm with sak feature enabled. "
				eerror "It requires the INPUT_UINPUT support enabled."
				eerror "Please enable it:"
				eerror "    CONFIG_INPUT_UINPUT=y"
				eerror "in /usr/src/linux/.config or"
				eerror "    Device Drivers --->"
				eerror "        Input device support  --->"
				eerror "           [*] Miscellaneous devices  --->"
				eerror "                <*> User level driver support"
				sak_ok=no
			fi
		fi
		if [[ "$sak_ok" != yes ]]; then
			sed -i -e 's:#\?\s*UseSAK=\(true\|false\)\?:UseSak=false:' \
				"${D}${TDEDIR}/share/config/tdm/tdmrc" || die "sed tdmrc failed"
			ewarn "SAK feature is disabled. You can enable it yourself by setting UseSAK=true "
			ewarn "in ${TDEDIR}/share/config/tdm/tdmrc "
		else
			ewarn "SAK feature is enabled. You can disable it yourself by setting UseSAK=false"
			ewarn "in ${TDEDIR}/share/config/tdm/tdmrc "
		fi
	fi
}