commit ff895276c8c8aa367aa948c9037a26abb317c270
parent 3174caa0edc263e65be13ae2190cbaf81442a564
Author: Daniel Barlow <dan@telent.net>
Date: Fri, 19 Jul 2024 22:47:22 +0100
add minimal ModemManager for use with GPS
can't use the regular nixos modem-manager because it doesn't
cross-compile
Diffstat:
2 files changed, 90 insertions(+), 0 deletions(-)
diff --git 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
@@ -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
+ '';
+}