# Maintainer: David P. <megver83@parabola.nu>
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Maintainer: Jan de Groot <jgc@archlinxu.org>
# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
# Contributor: Tor Krill <tor@krill.nu>
# Contributor: Will Rea <sillywilly@gmail.com>
# Contributor: Valentine Sinitsyn <e_val@inbox.ru>

_pppver=2.4.7

pkgname=networkmanager-elogind
pkgver=1.10.6
pkgrel=1
pkgdesc="Network Management daemon"
arch=('i686' 'x86_64' 'armv7h')
license=('GPL2' 'LGPL2.1')
url="http://www.gnome.org/projects/NetworkManager/"
provides=('networkmanager')
conflicts=('networkmanager' 'networkmanager-consolekit')
replaces=('networkmanager-consolekit')
makedepends=(intltool dhclient iptables gobject-introspection gtk-doc "ppp=$_pppver" modemmanager
             dbus-glib iproute2 nss polkit-elogind wpa_supplicant curl elogind libmm-glib
             libnewt libndp libteam vala perl-yaml python-gobject git vala jansson bluez-libs
             glib2-docs dhcpcd eudev-systemd) # modemmanager and libmbim depend on 'systemd'
checkdepends=('libx11' 'python-dbus')
depends=(libnm-glib iproute2 polkit-elogind wpa_supplicant libmm-glib libnewt libndp libteam curl
         bluez-libs elogind)
optdepends=('dnsmasq: connection sharing'
            'bluez: Bluetooth support'
            'openresolv: resolvconf support'
            'ppp: dialup connection support'
            'rp-pppoe: ADSL support'
            'dhclient: External DHCP client'
            'modemmanager: cellular network support'
            'networkmanager-openrc: networkmanager initscript')
backup=('etc/NetworkManager/NetworkManager.conf')
_commit=dd8cf21cea13fa1bbee11fd3e0e7519e4b4ba712  # tags/1.10.6^0
source=("git+https://anongit.freedesktop.org/git/NetworkManager/NetworkManager#commit=$_commit")
sha512sums=('SKIP')

prepare() {
  mkdir -p libnm{,-glib}/usr/{include,lib/{girepository-1.0,pkgconfig},share/{gir-1.0,gtk-doc/html,vala/vapi}}

  cd NetworkManager
  git cherry-pick -n 4d1f090aedf05c0e2955d431638e311d1e18a52f
  NOCONFIGURE=1 ./autogen.sh
}

pkgver() {
  cd NetworkManager
  git describe | sed 's/-dev/dev/;s/-/+/g'
}

build() {
    cd NetworkManager
    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    runstatedir=/run \
    --sbindir=/usr/bin \
    --libexecdir=/usr/lib \
    --disable-ifcfg-rh \
    --disable-ifcfg-suse \
    --disable-ifnet \
    --disable-ifupdown \
    --disable-lto \
    --disable-more-logging \
    --disable-more-warnings \
    --disable-static \
    --enable-bluez5-dun \
    --enable-concheck \
    --enable-config-plugin-ibft \
    --enable-gtk-doc \
    --enable-introspection \
    --enable-json-validation \
    --enable-ld-gc \
    --enable-modify-system \
    --enable-polkit \
    --enable-polkit-agent \
    --enable-teamdctl \
    --enable-wifi \
    --with-config-dhcp-default=internal \
    --with-config-dns-rc-manager-default=symlink \
    --with-config-logging-backend-default=journal \
    --with-config-plugins-default=keyfile,ibft \
    --with-crypto=nss \
    --with-dbus-sys-dir=/usr/share/dbus-1/system.d \
    --with-dhclient=/usr/bin/dhclient \
    --with-dhcpcd-supports-ipv6 \
    --with-dhcpcd=/usr/bin/dhcpcd \
    --with-dist-version="$pkgver-$pkgrel, Artix Linux" \
    --with-dnsmasq=/usr/bin/dnsmasq \
    --with-dnssec-trigger=/usr/lib/dnssec-trigger/dnssec-trigger-script \
    --with-hostname-persist=default \
    --with-iptables=/usr/bin/iptables \
    --with-kernel-firmware-dir=/usr/lib/firmware \
    --with-libnm-glib \
    --with-modem-manager-1 \
    --with-nmcli \
    --with-nmtui \
    --with-pppd-plugin-dir=/usr/lib/pppd/$_pppver \
    --with-pppd=/usr/bin/pppd \
    --with-resolvconf=/usr/bin/resolvconf \
    --with-session-tracking=elogind \
    --with-suspend-resume=elogind \
    --with-system-ca-path=/etc/ssl/certs \
    --without-systemd-journal \
    --without-systemd-logind \
    --with-systemdsystemunitdir=no \
    --with-udev-dir=/usr/lib/udev \
    --with-wext \
    --without-consolekit \
    --without-libaudit \
    --without-more-asserts \
    --without-netconfig \
    --without-ofono \
    --without-selinux

    sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool

    make
}

check() {
    cd NetworkManager
    make -k check || :
}

package() {
    cd NetworkManager
    make DESTDIR="$pkgdir" install

    # packaged configuration
    install -Dm644 /dev/stdin "$pkgdir/usr/lib/NetworkManager/conf.d/20-connectivity.conf" <<END
[connectivity]
uri=http://www.archlinux.org/check_network_status.txt
END

    # /etc/NetworkManager
    install -d "$pkgdir"/etc/NetworkManager/{conf,dnsmasq}.d
    install -dm700 "$pkgdir/etc/NetworkManager/system-connections"
    install -m644 /dev/stdin "$pkgdir/etc/NetworkManager/NetworkManager.conf" <<END
# Configuration file for NetworkManager.
# See "man 5 NetworkManager.conf" for details.
END

    ### rm libnm

    cd ../libnm
    rm -rv "$pkgdir"/usr/include/libnm
    rm -rv  "$pkgdir"/usr/lib/girepository-1.0/NM-*
    rm -rv  "$pkgdir"/usr/lib/libnm.* usr/lib
    rm -rv  "$pkgdir"/usr/lib/pkgconfig/libnm.pc
    rm -rv  "$pkgdir"/usr/share/gir-1.0/NM-*
    rm -rv  "$pkgdir"/usr/share/gtk-doc/html/libnm
    rm -rv  "$pkgdir"/usr/share/vala/vapi/libnm.*

    ### rm libnm-glib

    cd ../libnm-glib
    rm -rv  "$pkgdir"/usr/include/*
    rm -rv  "$pkgdir"/usr/lib/girepository-1.0/*
    rm -rv  "$pkgdir"/usr/lib/libnm-*
    rm -rv  "$pkgdir"/usr/lib/pkgconfig/*
    rm -rv  "$pkgdir"/usr/share/gir-1.0/*
    rm -rv  "$pkgdir"/usr/share/gtk-doc/html/libnm-*
    rm -rv  "$pkgdir"/usr/share/vala/vapi/*

    rmdir -p --ignore-fail-on-non-empty \
    "$pkgdir"/usr/include \
    "$pkgdir"/usr/lib/{girepository-1.0,pkgconfig} \
    "$pkgdir"/usr/share/{gir-1.0,vala/vapi}
}
