summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorConstantine Glen Evans <cevans@evanslabs.org>2020-03-23 17:41:52 -0700
committerJon <jonringer@users.noreply.github.com>2020-03-27 10:56:00 -0700
commit59fbc7acba1242df575190205681502399f48b1a (patch)
treeb8ca6e3d8a523033819af3cbeeee9de154348ed8
parent037c91b193eee5ab5088d25bd25aeab5ac2bce56 (diff)
gwyddion: 2.48 -> 2.55 (and add options)
Gwyddion has a large number of optional dependencies. In this update, those dependencies have been added with options set mostly to true, and an option (default false) for working Python 2.7 support in the program and in Python has been added. I have also added myself as a maintainer as no maintainer is currently set.
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/codegen.patch22
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/default.nix71
-rw-r--r--pkgs/top-level/python-packages.nix5
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 { };