# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

# TODO: figure out how to make PAM happy without blowing a large hole
#       in the security of the OS or touching PAM

PortSystem          1.0
PortGroup           gobject_introspection 1.0

name                gdm
version             3.16.4
revision            1
license             GPL-2
set branch          [join [lrange [split ${version} .] 0 1] .]
description         The Gnome Display Manager is a re-implementation of the well known xdm program.
long_description    The Gnome Display Manager is a re-implementation of the well \
                    known xdm program. It displays a X11-based graphical login screen.
maintainers         nomaintainer
categories          gnome
homepage            https://wiki.gnome.org/Projects/GDM
master_sites        gnome:sources/${name}/${branch}/

use_xz              yes

checksums           rmd160  4c453f997bdce66dff734a8735ddd4a2927fc5e9 \
                    sha256  281dd28d729eaab2f67e450b5b162299dec537b6f7e81fa1124e35c89d3942fd \
                    size    1535580

depends_build       path:bin/pkg-config:pkgconfig \
                    port:intltool \
                    port:itstool \
                    port:autoconf \
                    port:automake \
                    port:libtool

depends_lib         port:desktop-file-utils \
                    path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \
                    port:dconf \
                    port:accountsservice \
                    port:nss \
                    port:libcanberra \
                    port:upower \
                    port:fontconfig \
                    port:iso-codes \
                    port:xorg-libX11 \
                    port:xorg-libXau \
                    port:xorg-libXrandr \
                    port:xorg-libXdmcp \
                    port:xorg-libXi \
                    port:xorg-libXinerama \
                    port:xorg-libXevie

depends_run         port:gnome-session \
                    port:gnome-settings-daemon

gobject_introspection yes

use_parallel_build  no

patchfiles          patch-configure.ac.diff \
                    patch-daemon.diff \
                    patch-daemon-gdm-session-record.c.diff \
                    patch-daemon-gdm-session-worker.c.diff \
                    patch-daemon-gdm-xdmcp-display-factory.c.diff

post-patch {
    xinstall -m 755 ${filespath}/autogen.sh ${worksrcpath}
    reinplace "s|@MP_PREFIX@|${prefix}|" ${worksrcpath}/configure.ac
}

# reconfigure using upstream autogen.sh for intltool 0.51 compatibility

configure.cmd       ./autogen.sh

configure.args      --enable-ipv6 \
                    --without-console-kit \
                    --without-plymouth \
                    --disable-systemd-journal \
                    --disable-schemas-compile \
                    --disable-silent-rules

startupitem.create  yes
startupitem.name    gdm
startupitem.init    XDG_DATA_DIRS=${prefix}/share
startupitem.start   ${prefix}/sbin/gdm
startupitem.stop    ${prefix}/sbin/gdm-stop
startupitem.restart ${prefix}/sbin/gdm-restart

post-destroot   {
    xinstall -m 644 ${filespath}/pam.sample ${destroot}${prefix}/etc/gdm
    xinstall ${filespath}/macports-gdm-util ${destroot}${prefix}/bin
}

universal_variant   no

pre-activate {
    addgroup gdm
    adduser gdm gid=[existsgroup gdm] realname=GNOME\ Display\ Manager
}

post-activate {
    system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
    system "${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}/share/icons/hicolor"
    system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
    file mkdir ${prefix}/var/gdm
    file attributes ${prefix}/var/gdm -owner gdm -group gdm
}

livecheck.type      gnome
