aboutsummaryrefslogtreecommitdiff
path: root/x11/gdm/Makefile
blob: 761c2de67f9ea7f47095635148fcf630f91de911 (plain) (blame)
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
PORTNAME=	gdm
PORTVERSION=	47.0
CATEGORIES=	x11 gnome
MASTER_SITES=	GNOME
DIST_SUBDIR=	gnome

MAINTAINER=	gnome@FreeBSD.org
COMMENT=	GNOME display manager
WWW=		https://gitlab.gnome.org/GNOME/gdm

LICENSE=	GPLv2+
LICENSE_FILE=	${WRKSRC}/COPYING

PORTSCOUT=	limit:^47\.

BUILD_DEPENDS=	iso-codes>0:misc/iso-codes \
		xorg-server>0:x11-servers/xorg-server \
		itstool:textproc/itstool
LIB_DEPENDS=	libaccountsservice.so:sysutils/accountsservice \
		libcanberra-gtk3.so:audio/libcanberra-gtk3 \
		libcanberra.so:audio/libcanberra \
		libck-connector.so:sysutils/consolekit2 \
		libjson-glib-1.0.so:devel/json-glib
RUN_DEPENDS=	gnome-keyring-3:security/gnome-keyring \
		gnome-session>0:x11/gnome-session \
		gnome-settings-daemon>0:sysutils/gnome-settings-daemon \
		iso-codes>0:misc/iso-codes
# used in scripts
RUN_DEPENDS+=	setxkbmap:x11/setxkbmap \
		xhost:x11/xhost \
		xmodmap:x11/xmodmap \
		xrdb:x11/xrdb \
		xsetroot:x11/xsetroot \
		xterm:x11/xterm \
		zenity:x11/zenity

USERS=		gdm
GROUPS=		gdm video

USES=		cpe gettext gnome localbase:ldflags meson pathfix \
		pkgconfig tar:xz xorg
CPE_VENDOR=	gnome
CPE_PRODUCT=	gnome_display_manager
USE_GNOME=	atk dconf gdkpixbuf glib20 gtk30 introspection:build
USE_LDCONFIG=	yes
USE_XORG=	x11 xau xcb xdmcp xorgproto
USE_RC_SUBR=	gdm
USE_GNOME_SUBR=	yes
GLIB_SCHEMAS=	org.gnome.login-screen.gschema.xml \
		15_org.gnome.login-screen.gschema.override
MESON_ARGS=	-Dat-spi-registryd-dir=${PREFIX}/libexec \
		-Dcustom-conf=${PREFIX}/etc/gdm/custom.conf \
		-Ddefault-pam-config=none \
		-Ddmconfdir=${PREFIX}/share/xsessions \
		-Dgdm-xsession=true \
		-Dgroup=gdm \
		-Dinitial-vt=09 \
		-Dlang-file=${PREFIX}/etc/gdm/locale.conf \
		-Dlibaudit=disabled \
		-Dpid-file=/var/run/gdm.pid \
		-Dplymouth=disabled \
		-Dscreenshot-dir=/var/run/gdm/greeter \
		-Dselinux=disabled \
		-Dsystemd-journal=false \
		-Duser-display-server=false \
		-Dudev-dir=${PREFIX}/lib/udev/rules.d \
		-Duser=gdm \
		-Dworking-dir=/var/cache/gdm \
		-Dxauth-dir=/var/run/gdm

# this is a hack until we can get our own pam dir and dir in order.
CPPFLAGS+=	-DHAS_SA_LEN -DWITH_CONSOLE_KIT=1

SUB_FILES+=	gdm-autologin gdm-launch-environment gdm-password \
		locale.conf

GDMDIR?=	${PREFIX}/etc/gdm

GNOME_LOCALSTATEDIR=	/var

OPTIONS_DEFINE=	IPV6

IPV6_MESON_TRUE=	ipv6

.include <bsd.port.options.mk>

post-patch:
	@${REINPLACE_CMD} -e 's|/usr/X11R6|${LOCALBASE}|g' \
		-e 's|/usr/bin/X|${LOCALBASE}/bin/X|g' \
		-e 's|/usr/bin/Xorg|${LOCALBASE}/bin/Xorg|g' \
		${WRKSRC}/meson.build
	@${REINPLACE_CMD} -e 's|/usr/bin/|${LOCALBASE}/bin/|g' \
		${WRKSRC}/daemon/gdm-local-display-factory.c
	@${REINPLACE_CMD} -e 's|/at-spi-registryd|/at-spi2-registryd|g' \
		${WRKSRC}/chooser/gdm-host-chooser.c \
		${WRKSRC}/chooser/chooser-main.c
	@${REINPLACE_CMD} -e 's|/etc/X11|${LOCALBASE}/etc/X11|g' \
		${WRKSRC}/data/Init.in \
		${WRKSRC}/data/Xsession.in

# Force X11 session (support of Wayland is not yet complete!)
	@${REINPLACE_CMD} -e 's|wayland|xorg|' \
		${WRKSRC}/data/gdm.schemas.in

pre-install:
	${MKDIR} ${STAGEDIR}/var/cache/gdm
	${MKDIR} ${STAGEDIR}/var/log/gdm
	${MKDIR} ${STAGEDIR}/var/run/gdm/greeter

	#${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home
	#${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home/.pulse
	#${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home/.config

post-install:
	${INSTALL_DATA} ${WRKDIR}/gdm-autologin \
		${STAGEDIR}${PREFIX}/etc/pam.d/gdm-autologin.sample
	${INSTALL_DATA} ${WRKDIR}/gdm-launch-environment \
		${STAGEDIR}${PREFIX}/etc/pam.d/gdm-launch-environment.sample
	${INSTALL_DATA} ${WRKDIR}/gdm-password \
		${STAGEDIR}${PREFIX}/etc/pam.d/gdm-password.sample

	#${INSTALL_DATA} ${WRKDIR}/client.conf \
	#	${STAGEDIR}${PREFIX}/etc/gdm/home/.pulse/client.conf.sample

	${INSTALL_DATA} ${WRKDIR}/locale.conf \
		${STAGEDIR}${PREFIX}/etc/gdm/locale.conf.sample

	${INSTALL_DATA} ${FILESDIR}/15_org.gnome.login-screen.gschema.override \
		${STAGEDIR}${PREFIX}/share/glib-2.0/schemas/

.include <bsd.port.mk>