1{ lib
2, stdenv
3, fetchurl
4, jdk
5, ant
6, makeWrapper
7}:
8
9stdenv.mkDerivation rec {
10 pname = "dataexplorer";
11 version = "3.8.0";
12
13 src = fetchurl {
14 url = "mirror://savannah/dataexplorer/dataexplorer-${version}-src.tar.gz";
15 sha256 = "sha256-ZluT/jCjcOrlh2nqe0j56shmtGqfm11BCnsp6mWDXkQ=";
16 };
17
18 nativeBuildInputs = [ ant makeWrapper ];
19
20 buildInputs = [ jdk ];
21
22 buildPhase = ''
23 ant -f build/build.xml dist
24 '';
25
26 doCheck = false;
27 # Missing dependencies (e.g. junit). Does not work.
28 #checkPhase = ''
29 # ant -f build/build.xml check
30 #'';
31
32 installPhase = ''
33 ant -Dprefix=$out/share/ -f build/build.xml install
34
35 # The sources contain a wrapper script in $out/share/DataExplorer/DataExplorer
36 # but it hardcodes bash shebang and does not pin the java path.
37 # So we create our own wrapper, using similar cmdline args as upstream.
38 mkdir -p $out/bin
39 makeWrapper ${jdk}/bin/java $out/bin/DataExplorer \
40 --add-flags "-Xms64m -Xmx3092m -jar $out/share/DataExplorer/DataExplorer.jar" \
41 --set SWT_GTK3 0
42
43 makeWrapper ${jdk}/bin/java $out/bin/DevicePropertiesEditor \
44 --add-flags "-Xms32m -Xmx512m -classpath $out/share/DataExplorer/DataExplorer.jar gde.ui.dialog.edit.DevicePropertiesEditor" \
45 --set SWT_GTK3 0 \
46 --set LIBOVERLAY_SCROLLBAR 0
47
48 install -Dvm644 build/misc/GNU_LINUX_JUNSI_ICHARER_USB_UDEV_RULE/50-Junsi-iCharger-USB.rules \
49 $out/etc/udev/rules.d/50-Junsi-iCharger-USB.rules
50 install -Dvm644 build/misc/GNU_LINUX_SKYRC_UDEV_RULE/50-SkyRC-Charger.rules \
51 $out/etc/udev/rules.d/50-SkyRC-Charger.rules
52 '';
53
54 meta = with lib; {
55 description = "Graphical tool to analyze data, gathered from various hardware devices";
56 homepage = "https://www.nongnu.org/dataexplorer/index.html";
57 license = licenses.gpl3Plus;
58 maintainers = with maintainers; [ panicgh ];
59 platforms = [ "x86_64-linux" ];
60 sourceProvenance = with sourceTypes; [
61 fromSource
62 binaryNativeCode # contains RXTXcomm (JNI library with *.so files)
63 binaryBytecode # contains thirdparty jar files, e.g. javax.json, org.glassfish.json
64 ];
65 };
66}