Package: guix-patches;
Reported by: David Elsing <david.elsing <at> posteo.net>
Date: Mon, 3 Oct 2022 00:06:02 UTC
Severity: normal
Tags: patch
Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Bug is archived. No further changes may be made.
Message #173 received at 58261 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: David Elsing <david.elsing <at> posteo.net>, 58261 <at> debbugs.gnu.org Subject: Re: [PATCH v2 10/13] gnu: Add yaehmop-tightbind. Date: Sun, 09 Oct 2022 14:02:58 +0200
Am Freitag, dem 07.10.2022 um 15:21 +0000 schrieb David Elsing: > * gnu/packages/chemistry.scm (yaehmop-tightbind): New variable. Don't forget to update the ChangeLog. > --- > 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"))) Note that we have rubber to automate building PDFs. Also prefer "with- directory-excursion" over chdir where possible. > + (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))))) I think you can do without labels here (see my comment regarding rubber). > + (inputs (list openblas)) > + (home-page "https://github.com/greglandrum/yaehmop") > + (synopsis "Yet Another extended Hueckel Molecular Orbital > Package") You can use this as an @acronym in the description. For the synopsis, I'd use something else, e.g. "Perform Hückel calculations". > + (description "@code{YAeHMOP} contains a program and library for > performing > +extended Hückel calculations.") I recommend adding "and analyzing and visualizing the results." (see plug_it.tex) > + (license license:bsd-2))) Cheers
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.