From patchwork Fri Oct 7 15:21:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Elsing X-Patchwork-Id: 43196 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 0A76B27BBEA; Fri, 7 Oct 2022 17:03:16 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 5489227BBE9 for ; Fri, 7 Oct 2022 17:03:15 +0100 (BST) Received: from localhost ([::1]:53288 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ogpof-0008Ii-F3 for patchwork@mira.cbaines.net; Fri, 07 Oct 2022 12:03:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57156) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ogpBq-0002bq-3l for guix-patches@gnu.org; Fri, 07 Oct 2022 11:23:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38116) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ogpBp-0005ql-Qy for guix-patches@gnu.org; Fri, 07 Oct 2022 11:23:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ogpBp-0005ox-MP for guix-patches@gnu.org; Fri, 07 Oct 2022 11:23:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58261] [PATCH v2 10/13] gnu: Add yaehmop-tightbind. Resent-From: David Elsing Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Oct 2022 15:23:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58261 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58261@debbugs.gnu.org Cc: David Elsing Received: via spool by 58261-submit@debbugs.gnu.org id=B58261.166515615722223 (code B ref 58261); Fri, 07 Oct 2022 15:23:05 +0000 Received: (at 58261) by debbugs.gnu.org; 7 Oct 2022 15:22:37 +0000 Received: from localhost ([127.0.0.1]:37176 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ogpBM-0005mG-S9 for submit@debbugs.gnu.org; Fri, 07 Oct 2022 11:22:37 -0400 Received: from mout01.posteo.de ([185.67.36.65]:36203) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ogpAv-0005jk-GJ for 58261@debbugs.gnu.org; Fri, 07 Oct 2022 11:22:10 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id EBB68240027 for <58261@debbugs.gnu.org>; Fri, 7 Oct 2022 17:22:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1665156124; bh=rF+T+ebEQ8GJtiCG7HcOOn6TsritUuf1oh+O53gXy74=; h=From:To:Cc:Subject:Date:From; b=ODtplfdFahvzIoqX39K9p3eno6Q9Mb3SM6Clm03PFM6D4rjQVMF4bgaffrIMSqAnq 5sqsM+0MO0rXW88eaX0qNn05MyBJXPM0ssxzwaN3VY23NEe2WR5lJRqiW/9DwkQy6l kmjKDgY9rc5LOtIW5gtIXI8fHPRjCBfrJO1jaNxvtG2Zk9MtR/QNtdoh9rx8fRrYhw wCz2aXsKc1Bb1XOVThaq6w9VMTHHCEMJqs3lDoCDRtIwMTg7Lxt9O9Zv02xnA3Z2bY 9jGPSFhErKRVIiwkBOLSkKbWMivrF2OKkDjDsoTVZ9nyAAHAhsKB3UDPcyudqwiAJd 3aU+ILC920lww== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4MkX973gqdz6tmq; Fri, 7 Oct 2022 17:22:03 +0200 (CEST) From: David Elsing Date: Fri, 7 Oct 2022 15:21:47 +0000 Message-Id: <20221007152148.32591-11-david.elsing@posteo.net> In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/chemistry.scm (yaehmop-tightbind): New variable. --- gnu/packages/chemistry.scm | 110 +++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index 1510cbab41..68d28a52c3 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -42,6 +42,7 @@ (define-module (gnu packages chemistry) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages graphviz) #:use-module (gnu packages gv) @@ -56,6 +57,7 @@ (define-module (gnu packages chemistry) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages stb) + #:use-module (gnu packages tex) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (guix build-system cmake) @@ -818,3 +820,111 @@ (define-public coordgenlibs (description "@code{coordgenlibs} contains algorithms to generate 2D coordinates. It has an emphasis on quality rather than speed.") (license license:bsd-3))) + +(define-public yaehmop + (package + (name "yaehmop") + (version "2022.09.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/greglandrum/yaehmop") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1x0d75m1hgdb411fiv7c5bwq1n4y0swrll0gigh8v5c73kjxrja0")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Separate program + (delete-file-recursively "viewkel") + ;; Remove example output (some are corrupted) + (for-each delete-file (find-files "examples" "\\.Z$")) + ;; Documentation outputs + (for-each delete-file (find-files "docs" "\\.(ps|pdf)$")) + ;; These are transpiled from Fortran to C, but we build the + ;; Fortran code instead + (delete-file-recursively "tightbind/f2c_files") + (delete-file "tightbind/diag.c") + (delete-file "tightbind/cboris.c") + (delete-file "tightbind/abfns.c") + (delete-file "tightbind/lovlap.c"))))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list + "-DUSE_BLAS_LAPACK=ON" + (string-append "-DPARM_FILE_LOC=" #$output + "/share/" #$name "-" #$version "/eht_parms.dat") + "-DBIND_EXE_NAME=yaehmop-bind") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "tightbind"))) + (add-after 'chdir 'patch-fortran-functions + (lambda _ + (substitute* '("mov.c" "prototypes.h") + (("lovlap\\(") "lovlap_(") + (("abfns\\(") "abfns_(")))) + (add-after 'chdir 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + (("project\\(yaehmop C\\)") "project(yaehmop C Fortran)") + (("abfns.c") "fortran77/abfns.f") + (("lovlap.c") "fortran77/lovlap.f") + (("(set\\(PARM_FILE_LOC.*)\\)" all init) + (string-append init " CACHE STRING \"\")")) + (("add_library\\(yaehmop_eht" lib) + (string-append lib " SHARED ")) + (("target_link_libraries\\(test_eht \\$\\{LAPACK_LIBRARIES\\}.*" + all) + (string-append all "\ntarget_link_libraries(yaehmop_eht " + "${LAPACK_LIBRARIES})\n"))))) + (add-after 'build 'fix-latex + (lambda _ + (chdir "../docs") + (substitute* "bind_manual.tex" + (("\\\\usepackage\\{bindpage\\}") + (string-append + "\\usepackage[left=2cm,right=2cm,top=4cm,bottom=2cm]" + "{geometry}"))) + (substitute* "Zmat_appendix.tex" + (("file=dihedral\\.eps") + "file=figs/dihedral.eps")))) + (add-after 'fix-latex 'build-doc + (lambda _ + ;; TODO: not reproducible + (setenv "FORCE_SOURCE_DATE" "1") + ;; Needs to run twice to compile completely + (invoke "pdflatex" "bind_manual.tex") + (invoke "pdflatex" "bind_manual.tex") + (chdir "../build"))) + (add-after 'install 'install-eht-parms + (lambda _ + (install-file "../tightbind/eht_parms.dat" + (string-append #$output "/share/" + #$name "-" #$version)))) + (add-after 'install-eht-parms 'install-doc + (lambda _ + (install-file "../docs/bind_manual.pdf" + (string-append #$output "/share/doc/" + #$name "-" #$version)))) + (delete 'check) + (add-after 'install-doc 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./test_eht"))))))) + (native-inputs + `(("gfortran" ,gfortran) + ("texlive" ,(texlive-updmap.cfg (list texlive-fonts-ec + texlive-latex-graphics + texlive-latex-geometry))))) + (inputs (list openblas)) + (home-page "https://github.com/greglandrum/yaehmop") + (synopsis "Yet Another extended Hueckel Molecular Orbital Package") + (description "@code{YAeHMOP} contains a program and library for performing +extended Hückel calculations.") + (license license:bsd-2)))