diff --git a/gnu/local.mk b/gnu/local.mk index 2484320038..cbfe880d6e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -858,6 +858,7 @@ dist_patch_DATA = \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ %D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch \ + %D%/packages/patches/aoflagger-use-system-provided-pybind11.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/ark-skip-xar-test.patch \ %D%/packages/patches/aspell-default-dict-dir.patch \ diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 336ef02d66..3c4c92619e 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -142,6 +142,69 @@ (define-public calceph @end itemize\n") (license license:cecill))) +(define-public aoflagger + (package + (name "aoflagger") + (version "3.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/aroffringa/aoflagger") + (commit (string-append "v" version)))) + (sha256 + (base32 "1dcbfrbiybhpbypna2xhddx1wk7yifh38ha2r6p5rzsikzwlsin1")) + (patches + (search-patches "aoflagger-use-system-provided-pybind11.patch")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + (list + ;; XXX: Tests require external files download from + ;; https://www.astron.nl/citt/ci_data/aoflagger/ + ;; FIXME: runtest is not found + #:tests? #f + #:configure-flags + #~(list (string-append "-DCASACORE_ROOT_DIR=" + #$(this-package-input "casacore"))) + #:phases + #~(modify-phases %standard-phases + ;; aocommon and pybind11 are expected to be found as git submodules, + ;; link them before build. + (add-after 'unpack 'link-submodule-package + (lambda _ + (rmdir "external/aocommon") + (symlink #$(this-package-native-input "aocommon") + (string-append (getcwd) "/external/aocommon"))))))) + (native-inputs + (list aocommon + boost + pkg-config + python + pybind11)) + (inputs + (list casacore + cfitsio + fftw + gsl + gtkmm-3 + hdf5 + lapack + libpng + libsigc++ + libxml2 + lua + openblas + zlib)) + (home-page "https://gitlab.com/aroffringa/aoflagger") + (synopsis "Astronomical tool that can find and remove radio-frequency interference") + (description + "AOFlagger is a tool that can find and remove radio-frequency +interference (RFI) in radio astronomical observations. It can make use of Lua +scripts to make flagging strategies flexible, and the tools are applicable to a +wide set of telescopes.") + (license license:gpl3+))) + (define-public casacore (package (name "casacore") diff --git a/gnu/packages/patches/aoflagger-use-system-provided-pybind11.patch b/gnu/packages/patches/aoflagger-use-system-provided-pybind11.patch new file mode 100644 index 0000000000..76bc52a4ba --- /dev/null +++ b/gnu/packages/patches/aoflagger-use-system-provided-pybind11.patch @@ -0,0 +1,38 @@ +This patch was borrowed from Debian's package: +https://salsa.debian.org/debian-astro-team/aoflagger/-/blob/0484ef75a663e3e07738550cdade46f433a53dac/debian/patches/Use-system-provided-pybind11.patch +Description: Use system provided pybind11 +Author: Ole Streicher +Origin: Debian +Last-Update: Mon, 30 Aug 2021 11:05:37 +0200 +--- + CMakeLists.txt | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 655ea5e..824ee2a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -62,11 +62,6 @@ foreach(ExternalSubmodule IN LISTS ExternalSubmoduleDirectories) + endif() + endforeach() + +-# Include aocommon/pybind11 headers +-include_directories("${CMAKE_SOURCE_DIR}/external/aocommon/include") +-add_subdirectory("${CMAKE_SOURCE_DIR}/external/pybind11") +-include_directories(SYSTEM ${pybind11_INCLUDE_DIR}) +- + find_package( + HDF5 + COMPONENTS C CXX +@@ -101,6 +96,11 @@ find_package(PythonInterp REQUIRED) + message(STATUS "Using python version ${PYTHON_VERSION_STRING}") + include_directories(SYSTEM ${PYTHON_INCLUDE_DIRS}) + ++# Include pybind11 headers ++find_package(pybind11 REQUIRED) ++include_directories("${CMAKE_SOURCE_DIR}/external/aocommon/include") ++include_directories(${pybind11_INCLUDE_DIR}) ++ + # boost::alignment requires Boost 1.56 + find_package(Boost 1.56.0 REQUIRED COMPONENTS date_time filesystem system + unit_test_framework)