#!/bin/bash # A list of packages useful/needed to build and develop # NetworkManager on Fedora and RHEL. # # Not all of these packages are available, depending # on your distribution/release. But yum will happily # skip them. # # Not all of these packages are strictly speaking necessary. # This is a generous list of related packages. set -xe DNF="$(command -v dnf &>/dev/null && echo dnf || echo yum)" SUDO= [ "$EUID" -eq 0 ] || SUDO=sudo install() { if [ "$NM_INSTALL" != "" ]; then $NM_INSTALL "$@" else $SUDO "$DNF" install -y "$@" fi } install_ignore_missing() { for p; do install "$p" || : done } if test "$NM_NO_EXTRA" != 1; then # these packages are convenient for developing, but not necessary # for CI testing. EXTRA_PACKAGES=( bash-completion \ cscope \ ) else EXTRA_PACKAGES=() fi install \ /usr/bin/clang-format \ /usr/bin/xargs \ ModemManager-devel \ ModemManager-glib-devel \ audit-libs-devel \ bluez-libs-devel \ clang \ dbus-devel \ dbus-x11 \ ethtool \ firewalld-filesystem \ gcc-c++ \ gettext-devel \ git \ glib2-doc \ gnutls-devel \ gobject-introspection-devel \ gtk-doc \ iptables \ jansson-devel \ jq \ libcurl-devel \ libndp-devel \ libnvme-devel \ libselinux-devel \ libuuid-devel \ meson \ mobile-broadband-provider-info-devel \ newt-devel \ nss-devel \ polkit-devel \ ppp \ ppp-devel \ python3-dbus \ python3-gobject \ python3-pexpect \ readline-devel \ rpm-build \ systemd-devel \ util-linux \ vala \ valgrind \ which \ #end # some packages don't exist in certain distributions. Install them one-by-one, and ignore errors. install_ignore_missing \ black \ dhclient \ iproute-tc \ libasan \ libpsl-devel \ libubsan \ libvala-devel \ qt-devel \ teamd-devel \ vala-devel \ "${EXTRA_PACKAGES[@]}"