diff --git a/x11/lightdm/Makefile b/x11/lightdm/Makefile index cdbe7bb7d5f5..5139df1403f2 100644 --- a/x11/lightdm/Makefile +++ b/x11/lightdm/Makefile @@ -1,93 +1,93 @@ PORTNAME= lightdm PORTVERSION= 1.32.0 -PORTREVISION= 3 +PORTREVISION= 5 CATEGORIES= x11 MASTER_SITES= https://github.com/canonical/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/ MAINTAINER= desktop@FreeBSD.org COMMENT= Lightweight Display Manager WWW= https://github.com/canonical/lightdm # library/bindings are LGPLv2 or LGPLv3, the rest GPLv3+ LICENSE= GPLv3 LGPL20 LGPL3 LICENSE_COMB= multi LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPL3 LICENSE_FILE_LGPL20= ${WRKSRC}/COPYING.LGPL2 LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPL3 BUILD_DEPENDS= itstool:textproc/itstool LIB_DEPENDS= libgcrypt.so:security/libgcrypt \ libxklavier.so:x11/libxklavier RUN_DEPENDS= accountsservice>=0:sysutils/accountsservice \ ck-launch-session:sysutils/consolekit2 USES= autoreconf compiler:c++11-lang cpe gettext-tools gmake gnome \ libtool localbase pathfix pkgconfig tar:xz xorg CPE_VENDOR= ${PORTNAME}_project USE_CXXSTD= c++11 USE_GNOME= glib20 intltool USE_LDCONFIG= yes USE_RC_SUBR= lightdm USE_XORG= x11 xcb xdmcp GNU_CONFIGURE= yes # tests causes PAM errors CONFIGURE_ARGS= --disable-libaudit \ --disable-tests INSTALL_TARGET= install-strip LIBS= -lutil CONFLICTS_INSTALL= sddm PORTSCOUT= limitw:1,even SUB_FILES= Xsession USERS= lightdm GROUPS= lightdm video OPTIONS_DEFINE= DOCS NLS QT5 VAPI OPTIONS_DEFAULT= VAPI OPTIONS_SUB= yes DOCS_BUILD_DEPENDS= ${LOCALBASE}/share/aclocal/yelp.m4:textproc/yelp-tools \ gtkdoc-check:textproc/gtk-doc DOCS_CONFIGURE_ON= --enable-gtk-doc NLS_USES= gettext-runtime NLS_CONFIGURE_ENABLE= nls QT5_USES= qt:5 QT5_USE= QT=buildtools,core,dbus,gui QT5_CONFIGURE_ENABLE= liblightdm-qt5 VAPI_USES= vala:build VAPI_USE= GNOME=introspection:build VAPI_CONFIGURE_ENABLE= vala post-patch: @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \ ${WRKSRC}/data/lightdm.conf post-patch-DOCS-off: @${REINPLACE_CMD} -e '/^GTK_DOC_CHECK/d' \ -e '/^YELP_HELP_INIT/d' \ -e '/^doc\/Makefile/d' \ -e '/^help\/Makefile/d' \ ${WRKSRC}/configure.ac @${REINPLACE_CMD} -e '/^SUBDIRS/s/ doc help//' \ ${WRKSRC}/Makefile.am post-install: ${RM} -r ${STAGEDIR}${PREFIX}/etc/init ${INSTALL_SCRIPT} ${WRKDIR}/Xsession ${STAGEDIR}${ETCDIR} ${MV} ${STAGEDIR}${ETCDIR}/keys.conf ${STAGEDIR}${ETCDIR}/keys.conf.sample ${MV} ${STAGEDIR}${ETCDIR}/lightdm.conf ${STAGEDIR}${ETCDIR}/lightdm.conf.sample ${MV} ${STAGEDIR}${ETCDIR}/users.conf ${STAGEDIR}${ETCDIR}/users.conf.sample ${MV} ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm.sample ${MV} ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-autologin ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-autologin.sample ${MV} ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-greeter ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-greeter.sample ${MKDIR} ${STAGEDIR}/var/cache/lightdm \ ${STAGEDIR}/var/log/lightdm \ ${STAGEDIR}/var/run/lightdm ${MKDIR} ${STAGEDIR}${PREFIX}/share/xgreeters @(cd ${STAGEDIR}${PREFIX}/share/xgreeters && \ ${LN} -sf lightdm-gtk-greeter.desktop default.desktop) .include diff --git a/x11/lightdm/files/patch-src_x-server.c b/x11/lightdm/files/patch-src_x-server.c index 394789feaa3f..514215b861ab 100644 --- a/x11/lightdm/files/patch-src_x-server.c +++ b/x11/lightdm/files/patch-src_x-server.c @@ -1,15 +1,63 @@ ---- src/x-server.c.orig 2018-08-30 00:28:55 UTC +--- src/x-server.c.orig 2019-08-04 22:29:55 UTC +++ src/x-server.c -@@ -152,10 +152,10 @@ x_server_connect_session (DisplayServer *display_serve +@@ -152,13 +152,60 @@ x_server_connect_session (DisplayServer *display_serve g_autofree gchar *tty_text = NULL; g_autofree gchar *vt_text = NULL; -- tty_text = g_strdup_printf ("/dev/tty%d", vt); -+ tty_text = g_strdup_printf ("/dev/ttyv%d", vt - 1); ++#ifdef __FreeBSD__ ++ char vty_num32[6]; ++ int num; ++ const int base = 32; ++ size_t offset = 0; ++ ++ num = vt - 1; ++ ++ if (num == 0) { ++ vty_num32[offset++] = '0'; ++ vty_num32[offset] = '\0'; ++ } else { ++ for (int remaning = num; remaning > 0; remaning /= base, offset++) { ++ if (offset + 1 >= 6) { ++ g_error ("tty number buffer too small"); ++ goto error; ++ } ++ ++ const int value = remaning % base; ++ if (value >= 10) { ++ vty_num32[offset] = 'a' + value - 10; ++ } else { ++ vty_num32[offset] = '0' + value; ++ } ++ } ++ ++ for (size_t i = 0; i < offset / 2; i++) { ++ const size_t p1 = i; ++ const size_t p2 = offset - 1 - i; ++ const char tmp = vty_num32[p1]; ++ vty_num32[p1] = vty_num32[p2]; ++ vty_num32[p2] = tmp; ++ } ++ ++ vty_num32[offset] = '\0'; ++ } ++ ++ tty_text = g_strdup_printf ("/dev/ttyv%s", vty_num32); ++#else + tty_text = g_strdup_printf ("/dev/tty%d", vt); ++#endif session_set_tty (session, tty_text); -- vt_text = g_strdup_printf ("%d", vt); -+ vt_text = g_strdup_printf ("%d", vt - 1); ++#ifdef __FreeBSD__ ++ vt_text = g_strdup_printf ("%d", num); ++#else + vt_text = g_strdup_printf ("%d", vt); ++#endif session_set_env (session, "XDG_VTNR", vt_text); } else ++#ifdef __FreeBSD__ ++error: ++#endif + l_debug (session, "Not setting XDG_VTNR"); + + session_set_env (session, "DISPLAY", x_server_get_address (X_SERVER (display_server)));