Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 qt5,
6}:
7
8stdenv.mkDerivation rec {
9 pname = "savvycan";
10 version = "220";
11
12 src = fetchFromGitHub {
13 owner = "collin80";
14 repo = "SavvyCAN";
15 rev = "V${version}";
16 hash = "sha256-Du6Pc0JePdJNwBaWKKjTMWOmKCnk6Azojh8IJ7I+ngY=";
17 };
18
19 buildInputs = [
20 qt5.qtbase
21 qt5.qttools
22 qt5.qtserialbus
23 qt5.qtserialport
24 qt5.qtdeclarative
25 ];
26
27 nativeBuildInputs = [
28 qt5.qmake
29 qt5.wrapQtAppsHook
30 ];
31
32 postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
33 mkdir -p $out/Applications
34 mv $out/bin/SavvyCAN.app $out/Applications
35 ln -s $out/Applications/SavvyCAN.app/Contents/MacOS/SavvyCAN $out/bin/SavvyCAN
36 '';
37
38 meta = {
39 description = "QT based cross platform canbus tool";
40 homepage = "https://savvycan.com/";
41 changelog = "https://github.com/collin80/SavvyCAN/releases/tag/${version}";
42 maintainers = with lib.maintainers; [ simoneruffini ];
43 platforms = lib.platforms.all;
44 license = lib.licenses.mit;
45 mainProgram = "SavvyCAN";
46 longDescription = ''
47 SavvyCAN is a cross platform QT based C++ program. It is a CAN bus reverse
48 engineering and capture tool. It was originally written to utilize EVTV
49 hardware such as the EVTVDue and CANDue hardware. It has since expanded to be
50 able to use any socketCAN compatible device as well as the Macchina M2 and
51 Teensy 3.x boards. SavvyCAN can use any CAN interface supported by QT's
52 SerialBus system (PeakCAN, Vector, SocketCAN, J2534, etc) It can capture and
53 send to multiple buses and CAN capture devices at once. It has many functions
54 specifically meant for reverse engineering data found on the CAN bus:
55 - Ability to capture even very highly loaded buses
56 - Ability to connect to many dongles simultaneously
57 - Scan captured traffic for data that looks coherent
58 - Show ASCII of captured data to find things like VIN numbers and traffic to
59 and from the radio
60 - Graph data found on the bus
61 - Load and Save many different file formats common to CAN capture tools (Vector
62 captures, Microchip, CANDo, PCAN, and many more)
63 - Load and Save DBC files. DBC files are used to store definitions for how data
64 are formatted on the bus. You can turn the raw data into things like a RPM,
65 odometer readings, and more.
66 - UDS scanning and decoding
67 - Scripting interface to be able to expand the scope of the software
68 - Best of all, it's free and open source. Don't like something about it? Change
69 it!
70 '';
71 };
72}