Unverified Commit 7fb36e13 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

intiface-central: 2.6.8-unstable-2025-09-14 -> 3.0.0 (#486463)

parents 4a62a736 b4ad0fcd
Loading
Loading
Loading
Loading
+86 −8
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  flutter332,
  flutter338,
  corrosion,
  rustPlatform,
  cargo,
@@ -12,6 +13,9 @@
  copyDesktopItems,
  makeDesktopItem,
  runCommand,
  writeText,
  pkg-config,
  dbus,
}:

let
@@ -23,16 +27,52 @@ let

  pname = "intiface-central";

  version = "2.6.8-unstable-2025-09-14";
  version = "3.0.0";

  src = fetchFromGitHub {
    owner = "intiface";
    repo = "intiface-central";
    rev = "17877c623ad7e47fccfbb0acd6d191d672dc5053";
    hash = "sha256-sXvV3T/3Po2doDWXxiiJhAbQidwPPTS5300tEbgP83g=";
    tag = "v${version}";
    hash = "sha256-yKWaXkSjg7LMIKIeRfviu4SmStxl9BSXncJSxXJeU0Y=";
  };

  rustDep = rustPlatform.buildRustPackage {
    inherit pname version src;

    sourceRoot = "${src.name}/rust";

    preBuild = ''
      chmod +w ../..
      ln -s ${buttplug} ../../buttplug
    '';

    cargoHash = "sha256-HpmGmMMocLQ5/DJq8PJ5u04DipSlrReJ/3l76L9j8Yk=";

    nativeBuildInputs = [ pkg-config ];

    buildInputs = [
      dbus
      udev
    ];

    passthru.libraryPath = "lib/librust_lib_intiface_central.so";
  };

  buttplug_dart = fetchFromGitHub {
    owner = "buttplugio";
    repo = "buttplug_dart";
    tag = "v1.0.0-beta1";
    hash = "sha256-cJJU/DRTuQawdfi0aMyi7Vfmv4GtUj7nEBRNYEuZ8JQ=";
  };

  buttplug = fetchFromGitHub {
    owner = "buttplugio";
    repo = "buttplug";
    tag = "intiface_engine-4.0.0";
    hash = "sha256-F3mMQviTeyw9Wlrf8vcbJ9oGTYoKCIpPbj2jayQlpeg=";
  };
in
flutter332.buildFlutterApplication {
flutter338.buildFlutterApplication {
  inherit pname version src;

  patches = [
@@ -41,13 +81,45 @@ flutter332.buildFlutterApplication {

  pubspecLock = lib.importJSON ./pubspec.lock.json;

  gitHashes.buttplug = "sha256-nm9TdEL9+80hCbaPnpAJTQ0w1t40vWYcxyilQTwvEBU=";

  cargoDeps = rustPlatform.fetchCargoVendor {
    inherit pname version src;
    sourceRoot = "${src.name}/intiface-engine-flutter-bridge";
    hash = "sha256-S+TonMTj3xb9oVo17hfjbl448pEvR+3sTTI8ePFjYXk=";
    sourceRoot = "${src.name}/rust";
    hash = rustDep.cargoHash;
  };

  cargoRoot = "intiface-engine-flutter-bridge";
  cargoRoot = "rust";

  customSourceBuilders = {
    rust_lib_intiface_central =
      { version, src, ... }:
      stdenv.mkDerivation {
        pname = "rust_lib_intiface_central";
        inherit version src;
        inherit (src) passthru;

        postPatch =
          let
            fakeCargokitCmake = writeText "FakeCargokit.cmake" ''
              function(apply_cargokit target manifest_dir lib_name any_symbol_name)
                set("''${target}_cargokit_lib" ${rustDep}/${rustDep.passthru.libraryPath} PARENT_SCOPE)
              endfunction()
            '';
          in
          ''
            cp ${fakeCargokitCmake} rust_builder/cargokit/cmake/cargokit.cmake
          '';

        installPhase = ''
          runHook preInstall

          cp -r . "$out"

          runHook postInstall
        '';
      };
  };

  preConfigure = ''
    export CMAKE_PREFIX_PATH="${corrosion}:$CMAKE_PREFIX_PATH"
@@ -68,6 +140,12 @@ flutter332.buildFlutterApplication {

  env.ZLIB_ROOT = zlib-root;

  preBuild = ''
    chmod +w ..
    ln -s ${buttplug_dart} ../buttplug_dart
    ln -s ${buttplug} ../buttplug
  '';

  # without this, only the splash screen will be shown and the logs will contain the
  # line `Failed to load dynamic library 'lib/libintiface_engine_flutter_bridge.so'`
  extraWrapProgramArgs = "--chdir $out/app/intiface-central";
+246 −352

File changed.

Preview size limit exceeded, changes collapsed.