mathematica: enable installation of localized editions

For now English (default) and Japanese editions only.
Fill out information in `l10ns.nix` to add the other localized editions.
Example usage: `mathematica.override { lang = "ja"; }` derives Japanese edition.
This commit is contained in:
Mitsuhiro Nakamura 2018-01-18 01:50:24 +09:00
parent d4dbe03be5
commit 1ed47cf214
2 changed files with 42 additions and 14 deletions

View File

@ -1,7 +1,7 @@
{ stdenv
, coreutils
, patchelf
, requireFile
, callPackage
, alsaLib
, dbus
, fontconfig
@ -18,6 +18,7 @@
, zlib
, libxml2
, libuuid
, lang ? "en"
}:
let
@ -26,21 +27,15 @@ let
"Linux"
else
throw "Mathematica requires i686-linux or x86_64 linux";
l10n =
with stdenv.lib;
with callPackage ./l10ns.nix {};
flip (findFirst (l: l.lang == lang)) l10ns
(throw "Language '${lang}' not supported");
in
stdenv.mkDerivation rec {
version = "11.2.0";
name = "mathematica-${version}";
src = requireFile rec {
name = "Mathematica_${version}_LINUX.sh";
message = ''
This nix expression requires that ${name} is
already part of the store. Find the file on your Mathematica CD
and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
'';
sha256 = "4a1293cc1c404303aa1cab1bd273c7be151d37ac5ed928fbbb18e9c5ab2d8df9";
};
inherit (l10n) version name src;
buildInputs = [
coreutils

View File

@ -0,0 +1,33 @@
{ lib, requireFile }:
with lib;
{
l10ns = flip map
[
{
version = "11.2.0";
lang = "en";
language = "English";
sha256 = "4a1293cc1c404303aa1cab1bd273c7be151d37ac5ed928fbbb18e9c5ab2d8df9";
}
{
version = "11.2.0";
lang = "ja";
language = "Japanese";
sha256 = "916392edd32bed8622238df435dd8e86426bb043038a3336f30df10d819b49b1";
}
]
({ version, lang, language, sha256 }: {
inherit version lang;
name = "mathematica-${version}" + optionalString (lang != "en") "-${lang}";
src = requireFile rec {
name = "Mathematica_${version}" + optionalString (lang != "en") "_${language}" + "_LINUX.sh";
message = ''
This nix expression requires that ${name} is
already part of the store. Find the file on your Mathematica CD
and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
'';
inherit sha256;
};
});
}