diff options
author | Philipp Middendorf <philipp.middendorf@desy.de> | 2023-03-08 08:57:52 +0100 |
---|---|---|
committer | Philipp Middendorf <philipp.middendorf@desy.de> | 2023-03-08 08:57:52 +0100 |
commit | d980b918663ff2e21b1ad77950d1fd0c30c6a27a (patch) | |
tree | a1b3f1e1e6f95caebce5b872b53a2a0ccf9edc01 /pkgs/applications/science | |
parent | da46337f0e25190ce1a51986f1cf401227bc59b1 (diff) | |
download | nixlib-d980b918663ff2e21b1ad77950d1fd0c30c6a27a.tar nixlib-d980b918663ff2e21b1ad77950d1fd0c30c6a27a.tar.gz nixlib-d980b918663ff2e21b1ad77950d1fd0c30c6a27a.tar.bz2 nixlib-d980b918663ff2e21b1ad77950d1fd0c30c6a27a.tar.lz nixlib-d980b918663ff2e21b1ad77950d1fd0c30c6a27a.tar.xz nixlib-d980b918663ff2e21b1ad77950d1fd0c30c6a27a.tar.zst nixlib-d980b918663ff2e21b1ad77950d1fd0c30c6a27a.zip |
crystfel: review fixes
Diffstat (limited to 'pkgs/applications/science')
3 files changed, 23 insertions, 165 deletions
diff --git a/pkgs/applications/science/physics/crystfel/0002-fix-ftbfs-with-gcc-10.patch b/pkgs/applications/science/physics/crystfel/0002-fix-ftbfs-with-gcc-10.patch deleted file mode 100644 index ddd91aec9a6e..000000000000 --- a/pkgs/applications/science/physics/crystfel/0002-fix-ftbfs-with-gcc-10.patch +++ /dev/null @@ -1,43 +0,0 @@ -Description: Fixing argument mismatches in Fortran code, addressing #957430. -Author: Andrius Merkys <merkys@debian.org> -Forwarded: ccp4-dev@dl.ac.uk ---- a/fortran/pack_f.f -+++ b/fortran/pack_f.f -@@ -106,7 +106,7 @@ - endif - 10 continue - filnarray(len(filn) + 1) = 0 -- call pack_wordimage_f(data, x, y, filnarray) -+ call pack_longimage_f(data, x, y, filnarray) - return - end - -@@ -138,7 +138,7 @@ - endif - 10 continue - filnarray(len(filn) + 1) = 0 -- call v2pack_wordimage_f(data, x, y, filnarray) -+ call v2pack_longimage_f(data, x, y, filnarray) - return - end - ---- a/fortran/lgglib.f -+++ b/fortran/lgglib.f -@@ -1236,7 +1236,7 @@ - B3(2) = XYZ(2) * CELL(2) - B3(3) = XYZ(3) * CELL(3) - C -- CALL matmult(3,3,3,1,ORTH,B3,XYZ,B1) -+ CALL matmult(3,3,3,1,ORTH,B3,XYZ) - END - c - c -@@ -1274,7 +1274,7 @@ - B3(1) = XYZ(1) - B3(2) = XYZ(2) - B3(3) = XYZ(3) -- CALL matmult(3,3,3,1,ORTH,B3,XYZ,B1) -+ CALL matmult(3,3,3,1,ORTH,B3,XYZ) - END - character*80 function getnam(filnam) - character*(*) filnam diff --git a/pkgs/applications/science/physics/crystfel/add-meson-build.patch b/pkgs/applications/science/physics/crystfel/add-meson-build.patch deleted file mode 100644 index 7d77ba47a37e..000000000000 --- a/pkgs/applications/science/physics/crystfel/add-meson-build.patch +++ /dev/null @@ -1,116 +0,0 @@ -diff --git a/meson.build b/meson.build -new file mode 100644 -index 0000000..8fc0631 ---- /dev/null -+++ b/meson.build -@@ -0,0 +1,110 @@ -+# Meson file for libccp4c (CCP4 core libraries, C part only) -+project('libccp4c', 'c', version: '8.0.0', meson_version: '>=0.49.0', license: 'LGPL-3.0-or-later') -+ -+cc = meson.get_compiler('c') -+mdep = cc.find_library('m', required: false) -+ -+# Note that the source code assumes that datadir='share'. -+# If it is not, programs using the library will not be able -+# to find 'environ.def'. -+datadir = get_option('datadir') / 'ccp4' -+ -+add_project_arguments('-DPACKAGE_ROOT="@0@"'.format(get_option('prefix')), language: 'c') -+add_project_arguments( -+ cc.get_supported_arguments( -+ '-Wno-uninitialized', -+ '-Wno-unused-function', -+ '-Wno-stringop-truncation', -+ '-Wno-stringop-overflow', -+ '-Wno-format-overflow', -+ '-Wno-misleading-indentation', -+ '-Wno-pointer-compare', -+ ), -+ language: 'c', -+) -+ -+# C library -+libccp4c = library( -+ 'ccp4c', -+ 'ccp4/ccp4_array.c', -+ 'ccp4/cmap_accessor.c', -+ 'ccp4/cmap_open.c', -+ 'ccp4/csymlib.c', -+ 'ccp4/pack_c.c', -+ 'ccp4/ccp4_general.c', -+ 'ccp4/cmap_close.c', -+ 'ccp4/cmap_skew.c', -+ 'ccp4/cvecmat.c', -+ 'ccp4/ccp4_parser.c', -+ 'ccp4/cmap_data.c', -+ 'ccp4/cmap_stats.c', -+ 'ccp4/library_err.c', -+ 'ccp4/ccp4_program.c', -+ 'ccp4/cmap_header.c', -+ 'ccp4/cmap_symop.c', -+ 'ccp4/library_file.c', -+ 'ccp4/ccp4_unitcell.c', -+ 'ccp4/cmap_labels.c', -+ 'ccp4/cmtzlib.c', -+ 'ccp4/library_utils.c', -+ dependencies: mdep, -+ install: true, -+) -+ -+# CCP4 headers are included with prefix: <ccp4/header.h> -+incdir = include_directories('.') -+ -+install_headers( -+ 'ccp4/ccp4_file_err.h', -+ 'ccp4/ccp4_program.h', -+ 'ccp4/ccp4_unitcell.h', -+ 'ccp4/cmap_errno.h', -+ 'ccp4/cmap_stats.h', -+ 'ccp4/csymlib.h', -+ 'ccp4/library_file.h', -+ 'ccp4/ccp4_fortran.h', -+ 'ccp4/ccp4_spg.h', -+ 'ccp4/ccp4_utils.h', -+ 'ccp4/cmap_header.h', -+ 'ccp4/cmaplib.h', -+ 'ccp4/cvecmat.h', -+ 'ccp4/mtzdata.h', -+ 'ccp4/ccp4_array.h', -+ 'ccp4/ccp4_general.h', -+ 'ccp4/ccp4_sysdep.h', -+ 'ccp4/ccp4_vars.h', -+ 'ccp4/cmap_labels.h', -+ 'ccp4/cmaplib_f.h', -+ 'ccp4/overview.h', -+ 'ccp4/ccp4_errno.h', -+ 'ccp4/ccp4_parser.h', -+ 'ccp4/ccp4_types.h', -+ 'ccp4/cmap_data.h', -+ 'ccp4/cmap_skew.h', -+ 'ccp4/cmtzlib.h', -+ 'ccp4/pack_c.h', -+ subdir: 'ccp4', -+) -+ -+# Data files -+install_data( -+ 'data/atomsf_electron.lib', -+ 'data/atomsf.lib', -+ 'data/atomsf_neutron.lib', -+ 'data/syminfo.lib', -+ 'data/symop.lib', -+ install_dir: datadir, -+) -+ -+# pkg-config file -+pkg = import('pkgconfig') -+pkg.generate( -+ libccp4c, -+ filebase: 'libccp4c', -+ description: 'CCP4 core C libraries', -+) -+ -+libccp4c_dep = declare_dependency( -+ include_directories: incdir, -+ link_with: libccp4c, -+) diff --git a/pkgs/applications/science/physics/crystfel/default.nix b/pkgs/applications/science/physics/crystfel/default.nix index 116c3f5d8456..e916e9c44654 100644 --- a/pkgs/applications/science/physics/crystfel/default.nix +++ b/pkgs/applications/science/physics/crystfel/default.nix @@ -3,6 +3,7 @@ , fetchurl , fetchFromGitHub , fetchpatch +, fetchzip , cmake , lz4 , bzip2 @@ -39,7 +40,7 @@ let pname = "libccp4"; version = "8.0.0"; src = fetchurl { - url = "http://ftp.ccp4.ac.uk/opensource/${pname}-${version}.tar.gz"; + url = "https://ftp.ccp4.ac.uk/opensource/${pname}-${version}.tar.gz"; hash = "sha256-y4E66GYSoIZjKd6rfO6W6sVz2BvlskA0HUD5rVMi/y0="; }; nativeBuildInputs = [ meson ninja ]; @@ -53,10 +54,19 @@ let env.NIX_CFLAGS_COMPILE = "-DNIX_PROVIDED_SYMOP_FILE=\"${placeholder "out"}/share/ccp4/syminfo.lib\""; patches = [ - # This circumvents the original autoconf/CMake based build and uses meson instead - ./add-meson-build.patch ./libccp4-use-hardcoded-syminfo-lib.patch ]; + + postPatch = + let + mesonPatch = fetchzip { + url = "https://wrapdb.mesonbuild.com/v2/libccp4c_8.0.0-1/get_patch#somefile.zip"; + hash = "sha256-ohskfKh+972Pl56KtwAeWwHtAaAFNpCzz5vZBAI/vdU="; + }; + in + '' + cp ${mesonPatch}/meson.build . + ''; }; # This is the statically-linked, pre-built binary of mosflm. Compiling it ourselves turns out to be very difficult # since the build process is very hard-coded for a specific machine, architecture, and libraries. @@ -137,12 +147,19 @@ let pname = "HDF5-External-Filter-Plugins"; version = "0.1.0"; src = fetchFromGitHub { - owner = "spanezz"; + owner = "nexusformat"; repo = pname; rev = "master"; - hash = "sha256-Lkhhfhs0dIEplTAod1VBeO4vWH5/MIdfRvhAI3bCgD4="; + hash = "sha256-bEzfWdZuHmb0PDzCqy8Dey4tLtq+4coO0sT0GzqrTYI="; }; + patches = [ + (fetchpatch { + url = "https://github.com/spanezz/HDF5-External-Filter-Plugins/commit/6b337fe36da97a3ef72354393687ce3386c0709d.patch"; + hash = "sha256-wnBEdL/MjEyRHPwaVtuhzY+DW1AFeaUQUmIXh+JaRHo="; + }) + ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ hdf5 lz4 bzip2 ]; @@ -219,7 +236,7 @@ stdenv.mkDerivation rec { downloadPage = "https://www.desy.de/~twhite/crystfel/download.html"; license = licenses.gpl3Plus; maintainers = with maintainers; [ pmiddend ]; - platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + platforms = platforms.unix; }; } |