diff --git a/lib/licenses.nix b/lib/licenses.nix index 4071fcfd70d..c91b0c21a06 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -200,6 +200,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { url = https://geant4.web.cern.ch/geant4/license/LICENSE.html; }; + geogebra = { + fullName = "GeoGebra Non-Commercial License Agreement"; + url = https://www.geogebra.org/license; + free = false; + }; + gpl1 = spdx { spdxId = "GPL-1.0"; fullName = "GNU General Public License v1.0 only"; diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix new file mode 100644 index 00000000000..d92318ef31a --- /dev/null +++ b/pkgs/applications/science/math/geogebra/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, jre, makeDesktopItem, makeWrapper }: + +stdenv.mkDerivation rec { + name = "geogebra-${version}"; + version = "5.0.265.0"; + + src = fetchurl { + url = "http://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"; + sha256 = "74e5abfa098ee0fc464cd391cd3ef6db474ff25e8ea4fbcd82c4b4b5d3d5c459"; + }; + + srcIcon = fetchurl { + url = "http://static.geogebra.org/images/geogebra-logo.svg"; + sha256 = "55ded6b5ec9ad382494f858d8ab5def0ed6c7d529481cd212863b2edde3b5e07"; + }; + + desktopItem = makeDesktopItem { + name = "geogebra"; + exec = "geogebra"; + icon = "geogebra"; + desktopName = "Geogebra"; + genericName = "Geogebra"; + comment = meta.description; + categories = "Education;Science;Math;"; + mimeType = "application/vnd.geogebra.file;application/vnd.geogebra.tool;"; + }; + + buildInputs = [ makeWrapper ]; + + installPhase = '' + install -D geogebra/* -t "$out/libexec/geogebra/" + + makeWrapper "$out/libexec/geogebra/geogebra" "$out/bin/geogebra" \ + --set JAVACMD "${jre}/bin/java" \ + --set GG_PATH "$out/libexec/geogebra" + + install -Dm644 "${desktopItem}/share/applications/"* \ + -t $out/share/applications/ + + install -Dm644 "${srcIcon}" \ + "$out/share/icons/hicolor/scalable/apps/geogebra.svg" + ''; + + meta = with stdenv.lib; { + description = "Dynamic mathematics software with graphics, algebra and spreadsheets"; + longDescription = '' + Dynamic mathematics software for all levels of education that brings + together geometry, algebra, spreadsheets, graphing, statistics and + calculus in one easy-to-use package. + ''; + homepage = https://www.geogebra.org/; + license = with licenses; [ gpl3 cc-by-nc-sa-30 geogebra ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e3d2dd6b8b3..857681504b4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16862,6 +16862,8 @@ in gap = callPackage ../applications/science/math/gap { }; + geogebra = callPackage ../applications/science/math/geogebra { }; + maxima = callPackage ../applications/science/math/maxima { }; wxmaxima = callPackage ../applications/science/math/wxmaxima { wxGTK = wxGTK30; };