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.
View this message in rfc822 format
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: David Elsing <david.elsing <at> posteo.net>, 58261 <at> debbugs.gnu.org Subject: [bug#58261] [PATCH v2 10/13] gnu: Add yaehmop-tightbind. Date: Fri, 14 Oct 2022 23:33:26 +0200
Am Donnerstag, dem 13.10.2022 um 21:00 +0000 schrieb David Elsing: > Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes: > > > 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. > Ah thanks. :) > > > --- > > > 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. > I used latexmk as it's already included in texlive-bin > (it is also reproducible with \pdfsuppressptexinfo=-1). > > > + (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) > The visualization program is not built, so maybe without visualizing? SGTM
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.