# -*- 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
# $Id: Portfile 119086 2014-04-16 23:10:17Z devans@macports.org $

# 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

name            gdm
version         3.11.90
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
platforms       darwin
homepage        https://wiki.gnome.org/Projects/GDM
master_sites    gnome:sources/${name}/${branch}/

use_xz          yes

checksums       rmd160  98ccd8bfc99773264d73ef077c424b0518ae1df8 \
                sha256  51b54d428aeb1c55d91e992edd8c4603d6e528c888321d39cfc9d17039545482

depends_build   port:pkgconfig \
                port:intltool \
                port:itstool

depends_lib     port:desktop-file-utils \
                port:gtk3 \
                port:dconf \
                port:accountsservice \
                port:nss \
                port:libcanberra \
                port:upower \
                port:fontconfig \
                port:gobject-introspection \
                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
               
patchfiles      patch-daemon.diff \
                patch-daemon-gdm-session-worker.c.diff \
                patch-configure.ac.diff

post-patch {
    reinplace "s|@MP_PREFIX@|${prefix}|" ${worksrcpath}/configure.ac
}

use_parallel_build no

# update m4/intltool.m4 and autoreconf

pre-configure {
    copy -force ${prefix}/share/aclocal/intltool.m4 ${worksrcpath}/m4
}

use_autoreconf  yes
autoreconf.args -fvi

configure.args  --enable-ipv6 \
                --without-console-kit \
                --without-plymouth \
                --disable-systemd-journal \
                --disable-wayland-support \
                --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-3.0 -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-with-unstable
