description="Tools which simplify and make the network more directly manageable."
url="http://projects.gnome.org/NetworkManager/"

packager="spiky <spiky@nutyx.org>"
contributors="Pierre,Greg,Rems,Tnut"

makedepends=(libndp libgudev dbus-glib iptables libnl
             nss wireless-tools polkit upower vala grep
             gobject-introspection newt python
             python-gobject gtk-doc meson ninja)
run=(wpa-supplicant)

alias=(NetworkManager)

_name=NetworkManager

name=networkmanager
version=1.40.8

runyx_version=20201011

source=(http://download.tuxfamily.org/nutyx/files/runyx-${runyx_version}.tar.xz
	https://download.gnome.org/sources/$_name/${version:0:4}/$_name-$version.tar.xz)

build() {

mkdir build && cd build

CXXFLAGS+="-02 -fPIC"            \
meson --prefix        /usr       \
      -Dudev_dir=/lib/udev       \
      -Dsession_tracking=elogind \
      -Dsession_tracking="no"    \
      -Dlibaudit=no              \
      -Dlibpsl=false             \
      -Dnmtui=true               \
      -Dselinux=false            \
      -Dqt=false                 \
      -Dovs=false                \
      -Dppp=false                \
      -Dmodem_manager=false      \
      -Ddocs=true                \
      -Dsystemdsystemunitdir=/lib/systemd/system \
      ../${_name}-$version
ninja
DESTDIR=$PKG ninja install

mv $PKG/usr/share/doc/NetworkManager{,-$version}
# create a VPN directory
install -d $PKG/etc/$_name/VPN

# create keyfile plugin system-settings directory
install -d $PKG/etc/${_name}/system-connections

# Minimum config to make NetworkManager working
cat >> $PKG/etc/${_name}/${_name}.conf << "EOF"
[main]
plugins=keyfile
EOF

# Allow polkit to manage authorizations
cat > $PKG/etc/${_name}/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF

mkdir -p $PKG/usr/share/polkit-1/rules.d
cat > $PKG/usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
        return polkit.Result.YES;
    }
});
EOF

# Runit service
cd ../runyx-${runyx_version}
make DESTDIR=$PKG install-runyx-networkmanager
}

uptodate(){
local latest lastversion url
url="https://download.gnome.org/sources/${_name}"
latest="`lynx -read_timeout=20 -dump -listonly -nonumbers \
$url/?C=N\;O=D|grep [0-9]/$|head -1`"
lastversion="`lynx -read_timeout=20 -dump -listonly -nonumbers \
$latest/?C=N\;O=D|grep LATEST|grep [0-9]$|cut -d "-" -f3`"
echo "$lastversion"
}
