makedepends=(bluez dbus-glib dhcpcd gobject-introspection gtk-doc iptables iwd
             libndp newt nss polkit python-gobject vala wpa-supplicant wireless-tools
             upower intltool libxslt python-setuptools jansson libnvme)
run=(wpa-supplicant)

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

packager="Great-OS Team"
maintainer="Great-OS Team"

alias=(NetworkManager)

name=networkmanager
_name=NetworkManager
version=1.56.0
release=1

source=(https://gitlab.freedesktop.org/$_name/$_name/-/archive/$version/$_name-$version.tar.gz)

prepare() {

  mv ${_name}-$version $name-$version

  cd $name-$version

  sed '/initrd/d' -i src/meson.build

  grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'

  mkdir -v ../build 
}

build() {
  cd build

  meson --prefix /usr              \
        --sysconfdir /etc          \
        --localstatedir /var       \
        --libdir=/usr/lib          \
        -Dlibaudit=no              \
        -Dlibpsl=false             \
        -Dsuspend_resume=systemd   \
        -Dmodify_system=true       \
        -Dnmtui=true               \
        -Diwd=true                 \
        -Dbluez5_dun=true          \
        -Dovs=false                \
        -Dppp=false                \
        -Dselinux=false            \
        -Dqt=false                 \
        -Dudev_dir=/lib/udev       \
        -Dsession_tracking=systemd \
        -Dmodem_manager=false      \
        -Dudev_dir=/usr/lib/udev   \
        -Dsystemdsystemunitdir=/usr/lib/systemd/system \
        -Dkernel_firmware_dir=/usr/lib/firmware \
        ../$name-$version
        
  ninja
  DESTDIR=$PKG ninja install
   
  mv -v $PKG/usr/share/doc/NetworkManager{,-$version}

  cat > $PKG/etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF

  cat > $PKG/etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=dhclient
EOF
  cat > $PKG/etc/NetworkManager/conf.d/dns-update.conf << "EOF"
[main]
dns=default
rc-manager=file
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
}
