1{
2 stdenv,
3 lib,
4 fetchurl,
5 unzip,
6 makeDesktopItem,
7 jre,
8}:
9
10let
11 desktopItem = makeDesktopItem {
12 name = "jmol";
13 exec = "jmol";
14 desktopName = "JMol";
15 genericName = "Molecular Modeler";
16 mimeTypes = [
17 "chemical/x-pdb"
18 "chemical/x-mdl-molfile"
19 "chemical/x-mol2"
20 "chemical/seq-aa-fasta"
21 "chemical/seq-na-fasta"
22 "chemical/x-xyz"
23 "chemical/x-mdl-sdf"
24 ];
25 categories = [
26 "Graphics"
27 "Education"
28 "Science"
29 "Chemistry"
30 ];
31 };
32in
33stdenv.mkDerivation rec {
34 version = "16.3.27";
35 pname = "jmol";
36
37 src =
38 let
39 baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
40 in
41 fetchurl {
42 url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
43 hash = "sha256-VRyMMkSwdXX80DudS+4uCZBnxypgmR/75PyK/vEJyrs=";
44 };
45
46 patchPhase = ''
47 sed -i -e "4s:.*:command=${jre}/bin/java:" -e "10s:.*:jarpath=$out/share/jmol/Jmol.jar:" -e "11,21d" jmol
48 '';
49
50 installPhase = ''
51 mkdir -p "$out/share/jmol" "$out/bin"
52
53 ${unzip}/bin/unzip jsmol.zip -d "$out/share/"
54
55 cp *.jar jmol.sh "$out/share/jmol"
56 cp -r ${desktopItem}/share/applications $out/share
57 cp jmol $out/bin
58 '';
59
60 enableParallelBuilding = true;
61
62 meta = with lib; {
63 description = "Java 3D viewer for chemical structures";
64 mainProgram = "jmol";
65 homepage = "https://sourceforge.net/projects/jmol";
66 sourceProvenance = with sourceTypes; [ binaryBytecode ];
67 license = licenses.lgpl2;
68 platforms = platforms.all;
69 maintainers = with maintainers; [ mounium ];
70 teams = [ teams.sage ];
71 };
72}