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

This commit is contained in:
Sandro
2026-02-08 21:35:03 +00:00
committed by GitHub
2 changed files with 334 additions and 362 deletions
+86 -8
View File
@@ -1,7 +1,8 @@
{
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";
File diff suppressed because it is too large Load Diff