Init flake for running ecuflash in wine
Some checks failed
Deploy NixOS System Configurations to Silver-Flame Hosts / deploy (push) Failing after 1m58s
Some checks failed
Deploy NixOS System Configurations to Silver-Flame Hosts / deploy (push) Failing after 1m58s
This commit is contained in:
parent
a1d9464015
commit
a03bde27a7
10
projects/nix-ecuflash/README.md
Normal file
10
projects/nix-ecuflash/README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# A Nix Package for Tactrix EcuFlash
|
||||||
|
> EcuFlash is a general-purpose ECU reflashing and editing tool that supports an [ever-growing list](http://openecu.org/index.php?title=EcuFlash:VehicleSupport) of vehicles. EcuFlash uses the [OpenPort](http://openecu.org/index.php?title=OpenPort) vehicle interface to reflash vehicles via the [OBDII port](http://en.wikipedia.org/wiki/On_Board_Diagnostics). EcuFlash also allows you to edit ECU data (known as 'maps' or 'tables') in a human-readable format using a [XML-based](http://en.wikipedia.org/wiki/XML) definition system to translate the data. With properly setup definitions, the ROM from any vehicle can be edited. Future plans for EcuFlash include logging support / overlay, and live tuning.
|
||||||
|
|
||||||
|
- [Tactrix.com](https://www.tactrix.com/index.php?option=com_content&view=category&layout=blog&id=36&Itemid=57)
|
||||||
|
|
||||||
|
This project attempts to create a reproducible package for running Tactrix' Windows-only software on Linux.
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
<TODO>
|
71
projects/nix-ecuflash/ecuflash.nix
Normal file
71
projects/nix-ecuflash/ecuflash.nix
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
{ lib
|
||||||
|
, mkWindowsAppNoCC
|
||||||
|
, wine
|
||||||
|
, makeDesktopItem
|
||||||
|
, copyDesktopItems
|
||||||
|
}: mkWindowsAppNoCC rec {
|
||||||
|
inherit wine;
|
||||||
|
|
||||||
|
pname = "ecuflash";
|
||||||
|
version = "1.44";
|
||||||
|
version_raw = "1444870";
|
||||||
|
|
||||||
|
src = builtins.fetchurl {
|
||||||
|
sha256 = "sha256-6SQtiIJTD8MgFk8T5BB87/nIYvW9Lmbevb6+SJX/+gs=";
|
||||||
|
url = "https://www.tactrix.com/downloads/ecuflash_1444870_win.exe";
|
||||||
|
};
|
||||||
|
dontUnpack = true;
|
||||||
|
wineArch = "win64";
|
||||||
|
enableInstallNotification = true;
|
||||||
|
|
||||||
|
fileMapDuringAppInstall = false;
|
||||||
|
persistRegistry = true;
|
||||||
|
persistRuntimeLayer = true;
|
||||||
|
inputHashMethod = "store-path";
|
||||||
|
nativeBuildInputs = [ copyDesktopItems ];
|
||||||
|
winAppInstall = ''
|
||||||
|
d="$WINEPREFIX/drive_c/Program Files (x86)/OpenECU/${pname}/"
|
||||||
|
config_dir="$HOME/.config/ecuflash"
|
||||||
|
|
||||||
|
mkdir -p "$d"
|
||||||
|
cp ${src} "$d/${pname}_${version_raw}.exe"
|
||||||
|
wine "$WINEPREFIX/drive_c/Program Files (x86)/OpenECU/${pname}/${pname}_${version_raw}.exe"
|
||||||
|
|
||||||
|
mkdir -p "$config_dir"
|
||||||
|
'';
|
||||||
|
winAppPreRun = ''
|
||||||
|
'';
|
||||||
|
winAppRun = ''
|
||||||
|
echo "src: ${src}"
|
||||||
|
ls "$WINEPREFIX/drive_c/Program Files (x86)/OpenECU/${pname}"
|
||||||
|
wine "$WINEPREFIX/drive_c/Program Files (x86)/OpenECU/EcuFlash/${pname}.exe"
|
||||||
|
'';
|
||||||
|
winAppPostRun = "";
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
ln -s $out/bin/.launcher $out/bin/${pname}
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
desktopItems = makeDesktopItem {
|
||||||
|
name = pname;
|
||||||
|
exec = pname;
|
||||||
|
icon = pname;
|
||||||
|
mimeTypes = [ "application/octet-stream" ];
|
||||||
|
desktopName = "EcuFlash";
|
||||||
|
genericName = "ROM Editor";
|
||||||
|
categories = [ "Development" "Electronics" "Java" ];
|
||||||
|
};
|
||||||
|
meta = with lib; {
|
||||||
|
description = "EcuFlash is Tactrix' free software used with the Openport 2.0 to give you the power to tune and reflash many Subaru and Mitsubishi vehicles.";
|
||||||
|
homepage = "https://www.tactrix.com/";
|
||||||
|
license = {
|
||||||
|
url = "https://www.tactrix.com/index.php?option=com_content&view=article&id=79:eula&catid=36:downloads-ecuflash&Itemid=57";
|
||||||
|
free = false;
|
||||||
|
redistributable = true;
|
||||||
|
};
|
||||||
|
maintainers = with maintainers; [ jafner ];
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
79
projects/nix-ecuflash/flake.lock
Normal file
79
projects/nix-ecuflash/flake.lock
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"erosanix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730470491,
|
||||||
|
"narHash": "sha256-vh8DM+5/BhqZXzqB99CCeqNo01pzzYTY8COq+5ptXUs=",
|
||||||
|
"owner": "emmanuelrosa",
|
||||||
|
"repo": "erosanix",
|
||||||
|
"rev": "8f79749eef7becb102342d37e9689cde1dfcee42",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "emmanuelrosa",
|
||||||
|
"repo": "erosanix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1673956053,
|
||||||
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729776892,
|
||||||
|
"narHash": "sha256-NGTJbX/zKE1GfUlcqc/lgvvZxiUvWk9s9A1rFeZJyPE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2aa5b5d837e7cabe4c6632c27f8b005465539f08",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730327045,
|
||||||
|
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"erosanix": "erosanix",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
29
projects/nix-ecuflash/flake.nix
Normal file
29
projects/nix-ecuflash/flake.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
description = "A Nix flake for EcuFlash";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||||
|
erosanix.url = "github:emmanuelrosa/erosanix";
|
||||||
|
};
|
||||||
|
outputs = { self, nixpkgs, erosanix }: {
|
||||||
|
packages.x86_64-linux = let
|
||||||
|
pkgs = import "${nixpkgs}" {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
};
|
||||||
|
in with (pkgs // erosanix.packages.x86_64-linux // erosanix.lib.x86_64-linux); {
|
||||||
|
default = self.packages.x86_64-linux.ecuflash;
|
||||||
|
|
||||||
|
ecuflash = callPackage ./ecuflash.nix {
|
||||||
|
inherit mkWindowsAppNoCC;
|
||||||
|
wine = wineWowPackages.full;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
apps.x86_64-linux.ecuflash = {
|
||||||
|
type = "app";
|
||||||
|
program = "${self.packages.x86_64-linux.ecuflash}/bin/ecuflash";
|
||||||
|
};
|
||||||
|
|
||||||
|
apps.x86_64-linux.default = self.apps.x86_64-linux.ecuflash;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user