1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cargo,
6 rustc,
7 autoreconfHook,
8 jdk,
9 glib,
10 firefox-unwrapped,
11 zip,
12 pkg-config,
13 npapi_sdk,
14 bash,
15 bc,
16}:
17
18stdenv.mkDerivation rec {
19 pname = "adoptopenjdk-icedtea-web";
20
21 version = "1.8.8";
22
23 src = fetchFromGitHub {
24 owner = "AdoptOpenJDK";
25 repo = "IcedTea-Web";
26 rev = "icedtea-web-${version}";
27 sha256 = "sha256-hpEVWG9ltNDL/0EFJjgQRRce+BLcCO4ZERULYZxyC1o=";
28 };
29
30 nativeBuildInputs = [
31 autoreconfHook
32 pkg-config
33 bc
34 ];
35 buildInputs = [
36 cargo
37 rustc
38 glib
39 firefox-unwrapped
40 zip
41 npapi_sdk
42 ];
43
44 preConfigure = ''
45 configureFlagsArray+=("BIN_BASH=${bash}/bin/bash")
46 '';
47
48 patches = [ ./patches/0001-make-cargo-work-with-nix-build-on-linux.patch ];
49
50 doCheck = true;
51 preCheck = ''
52 # Needed for the below rust-launcher tests to pass
53 # dirs_paths_helper::tests::check_config_files_paths
54 # dirs_paths_helper::tests::check_legacy_config_files_paths
55
56 mkdir -p $HOME/.icedtea
57 touch $HOME/.icedtea/deployment.properties
58
59 mkdir -p $XDG_CONFIG_HOME/icedtea-web
60 touch $XDG_CONFIG_HOME/icedtea-web/deployment.properties
61 '';
62
63 HOME = "/build";
64 XDG_CONFIG_HOME = "/build";
65
66 configureFlags = [
67 "--with-itw-libs=DISTRIBUTION"
68 "--with-jdk-home=${jdk.home}"
69 "--disable-docs"
70 ];
71
72 mozillaPlugin = "/lib";
73
74 postInstall = ''
75 mkdir -p $out/share/applications
76 cp javaws.desktop itweb-settings.desktop policyeditor.desktop $out/share/applications
77 '';
78
79 meta = {
80 description = "Java web browser plugin and an implementation of Java Web Start";
81 longDescription = ''
82 A Free Software web browser plugin running applets written in the Java
83 programming language and an implementation of Java Web Start, originally
84 based on the NetX project.
85 '';
86 homepage = "https://github.com/adoptopenjdk/icedtea-web";
87 platforms = lib.platforms.linux;
88 };
89}