diff options
-rw-r--r-- | pkgs/applications/science/chemistry/gwyddion/codegen.patch | 22 | ||||
-rw-r--r-- | pkgs/applications/science/chemistry/gwyddion/default.nix | 71 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 5 |
3 files changed, 89 insertions, 9 deletions
diff --git a/pkgs/applications/science/chemistry/gwyddion/codegen.patch b/pkgs/applications/science/chemistry/gwyddion/codegen.patch new file mode 100644 index 000000000000..eb306d99f8a3 --- /dev/null +++ b/pkgs/applications/science/chemistry/gwyddion/codegen.patch @@ -0,0 +1,22 @@ +--- gwyddion-2.55.orig/configure 2019-11-04 01:25:31.000000000 -0800 ++++ gwyddion-2.55/configure 2020-03-20 18:49:43.860452655 -0700 +@@ -18560,7 +18560,7 @@ + fi + if test "x$embed_pygtk" = xno; then + if test "x$PYGTK_CODEGENDIR" = 'x'; then +- PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygtk-2.0` ++ PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygobject-2.0` + fi + else + # Some silly OSes want to remove pygtk2. We can build pygwy without +--- gwyddion-2.55.orig/configure.ac 2019-11-04 01:25:16.000000000 -0800 ++++ gwyddion-2.55/configure.ac 2020-03-20 18:52:55.042724547 -0700 +@@ -270,7 +270,7 @@ + [embed_pygtk=yes; pygwy_warn=" (embedded pygtk2)"]) + if test "x$embed_pygtk" = xno; then + if test "x$PYGTK_CODEGENDIR" = 'x'; then +- PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygtk-2.0` ++ PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygobject-2.0` + fi + else + # Some silly OSes want to remove pygtk2. We can build pygwy without diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix index 12007c940b3d..cd8b93c9aac7 100644 --- a/pkgs/applications/science/chemistry/gwyddion/default.nix +++ b/pkgs/applications/science/chemistry/gwyddion/default.nix @@ -1,17 +1,69 @@ -{ stdenv, fetchurl, gtk2, pkgconfig }: +{ stdenv, fetchurl, gtk2, pkg-config, fftw, file, + pythonSupport ? false, pythonPackages ? null, + gnome2 ? null, + openexrSupport ? true, openexr ? null, + libzipSupport ? true, libzip ? null, + libxml2Support ? true, libxml2 ? null, + libwebpSupport ? true, libwebp ? null, + # libXmu is not used if libunique is. + libXmuSupport ? false, xorg ? null, + libxsltSupport ? true, libxslt ? null, + fitsSupport ? true, cfitsio ? null, + zlibSupport ? true, zlib ? null, + libuniqueSupport ? true, libunique ? null, + libpngSupport ? true, libpng ? null, + openglSupport ? true +}: -with stdenv.lib; +assert openexrSupport -> openexr != null; +assert libzipSupport -> libzip != null; +assert libxml2Support -> libxml2 != null; +assert libwebpSupport -> libwebp != null; +assert libXmuSupport -> xorg != null; +assert libxsltSupport -> libxslt != null; +assert fitsSupport -> cfitsio != null; +assert zlibSupport -> zlib != null; +assert libuniqueSupport -> libunique != null; +assert libpngSupport -> libpng != null; +assert openglSupport -> gnome2 != null; +assert pythonSupport -> (pythonPackages != null && gnome2 != null); -let version = "2.48"; in -stdenv.mkDerivation { +let + inherit (pythonPackages) pygtk pygobject2 python; + +in + +stdenv.mkDerivation rec { pname = "gwyddion"; - inherit version; + version = "2.55"; src = fetchurl { - url = "mirror://sourceforge/gwyddion/files/gwyddion/${version}/gwyddion-${version}.tar.xz"; - sha256 = "119iw58ac2wn4cas6js8m7r1n4gmmkga6b1y711xzcyjp9hshgwx"; + url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz"; + sha256 = "0l00zszvginpriv12idc0y1x28qmicdmrwkqa007srkxvrdgxwdi"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gtk2 ]; + + nativeBuildInputs = [ pkg-config file ]; + + buildInputs = with stdenv.lib; + [ gtk2 fftw ] ++ + optionals openglSupport [gnome2.gtkglext] ++ + optional openexrSupport openexr ++ + optional libXmuSupport xorg.libXmu ++ + optional fitsSupport cfitsio ++ + optional libpngSupport libpng ++ + optional libxsltSupport libxslt ++ + optional libxml2Support libxml2 ++ + optional libwebpSupport libwebp ++ + optional zlibSupport zlib ++ + optional libuniqueSupport libunique ++ + optional libzipSupport libzip; + + propagatedBuildInputs = with stdenv.lib; + optionals pythonSupport [ pygtk pygobject2 python gnome2.gtksourceview ]; + + # This patch corrects problems with python support, but should apply cleanly + # regardless of whether python support is enabled, and have no effects if + # it is disabled. + patches = [ ./codegen.patch ]; meta = { homepage = http://gwyddion.net/; @@ -29,5 +81,6 @@ stdenv.mkDerivation { ''; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.cge ]; }; } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e4a3781865ee..b0e080a7be8c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2248,6 +2248,11 @@ in { eth-utils = callPackage ../development/python-modules/eth-utils { }; + gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override { + pythonSupport = true; + pythonPackages = self; + })); + impacket = callPackage ../development/python-modules/impacket { }; jsonlines = callPackage ../development/python-modules/jsonlines { }; |