From ff895276c8c8aa367aa948c9037a26abb317c270 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Fri, 19 Jul 2024 22:47:22 +0100 Subject: [PATCH] add minimal ModemManager for use with GPS can't use the regular nixos modem-manager because it doesn't cross-compile --- configuration.nix | 2 ++ modem-manager.nix | 88 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 modem-manager.nix diff --git a/configuration.nix b/configuration.nix index 4a5cb2b..afccf4f 100644 --- a/configuration.nix +++ b/configuration.nix @@ -12,6 +12,8 @@ let makeFlags = ["prefix=${placeholder "out"}"]; }; + modemmanager_ = pkgs.callPackage ./modem-manager.nix {}; + drm-framebuffer = pkgs.stdenv.mkDerivation { name = "drm-framebuffer"; src = pkgs.fetchFromGitHub { diff --git a/modem-manager.nix b/modem-manager.nix new file mode 100644 index 0000000..7c29609 --- /dev/null +++ b/modem-manager.nix @@ -0,0 +1,88 @@ +{ + stdenv, + fetchFromGitLab, + libxslt, + bash, # shebangs in share/ModemManager/fcc-unlock.available.d/, + bash-completion, + dbus, + gettext, + glib, + libgudev, + libqmi, + meson, + ninja, + cmake, + pkg-config, + python3, + systemd, + pkgsBuildBuild, + buildPackages +}: stdenv.mkDerivation rec { + pname = "modemmanager"; + version = "1.22.0"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mobile-broadband"; + repo = "ModemManager"; + rev = version; + hash = "sha256-/D9b2rCCUhpDCUfSNAWR65+3EyUywzFdH1R17eSKRDo="; + }; + patches = [ + /home/dan/src/nixpkgs/pkgs/tools/networking/modemmanager/no-dummy-dirs-in-sysconfdir.patch + ]; + nativeBuildInputs = [ + meson + ninja + # gobject-introspection + gettext + pkg-config + libxslt + python3 + cmake + glib # for gdbus-codegen + ]; + + buildInputs = [ + glib + libgudev + # polkit + pkg-config + # ppp + # libmbim + libqmi + systemd + bash-completion + dbus +# cmake + bash # shebangs in share/ModemManager/fcc-unlock.available.d/ + ]; + + mesonFlags = [ + "-Dudevdir=${placeholder "out"}/lib/udev" + "-Ddbus_policy_dir=${placeholder "out"}/share/dbus-1/system.d" + "--sysconfdir=/etc" + "--localstatedir=/var" + "-Dvapi=false" + "-Dmbim=false" + "-Dqmi=true" + "-Dqrtr=false" + "-Dpolkit=no" + "-Dplugin_foxconn=disabled" + "-Dman=false" + "-Dexamples=false" + "-Dtests=false" + "-Dintrospection=false" + ]; + + postPatch = '' + env | grep PKG + mkdir bin + PATH=${buildPackages.pkg-config}/bin:$PATH + PATH=$PWD/bin:$PATH + ln -s ${buildPackages.pkg-config}/bin/$PKG_CONFIG bin/pkg-config + echo $PATH | sed 's/:/\n/g' | grep pkg + type pkg-config + patchShebangs tools/test-modemmanager-service.py + ''; +}