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: David Elsing <david.elsing <at> posteo.net> To: Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at>, 58261 <at> debbugs.gnu.org Subject: [bug#58261] [PATCH 07/11] gnu: Add freesasa. Date: Fri, 07 Oct 2022 15:12:08 +0000
Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at> writes: > Am Montag, dem 03.10.2022 um 00:19 +0000 schrieb David Elsing: >> * gnu/packages/chemistry.scm (freesasa): New variable. >> --- >> gnu/packages/chemistry.scm | 81 >> ++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 81 insertions(+) >> >> diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm >> index f8fd85814f..223a27a20d 100644 >> --- a/gnu/packages/chemistry.scm >> +++ b/gnu/packages/chemistry.scm >> @@ -34,11 +34,13 @@ (define-module (gnu packages chemistry) >> #:use-module (gnu packages algebra) >> #:use-module (gnu packages autotools) >> #:use-module (gnu packages backup) >> + #:use-module (gnu packages bison) >> #:use-module (gnu packages boost) >> #:use-module (gnu packages check) >> #:use-module (gnu packages compression) >> #:use-module (gnu packages cpp) >> #:use-module (gnu packages documentation) >> + #:use-module (gnu packages flex) >> #:use-module (gnu packages fontutils) >> #:use-module (gnu packages gl) >> #:use-module (gnu packages graphviz) >> @@ -54,6 +56,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 web) >> #:use-module (gnu packages xml) >> #:use-module (guix build-system cmake) >> #:use-module (guix build-system copy) >> @@ -688,3 +691,81 @@ (define-public gemmi >> @item crystallographic symmetry. >> @end enumerate") >> (license license:mpl2.0))) >> + >> +(define-public freesasa >> + (package >> + (name "freesasa") >> + (version "2.1.2") >> + (source (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url "https://github.com/mittinatten/freesasa") >> + (commit version))) >> + (file-name (git-file-name name version)) >> + (sha256 >> + (base32 >> + >> "07wdnahf3g355ryaiqvfxd5f4rl54wv8jwxcbn0nia89fqysbv0f")) >> + (modules '((guix build utils))) >> + (snippet >> + '(begin >> + ;; Remove C files generated by Flex and Bison >> + (for-each delete-file >> + '("src/parser.c" "src/parser.h" >> + "src/lexer.c" "src/lexer.h")) >> + #t)))) >> + (build-system gnu-build-system) >> + (inputs >> + (list gemmi json-c libxml2)) >> + (native-inputs >> + (list bison flex check autoconf automake pkg-config doxygen >> perl libtool)) >> + (outputs '("out" "doc")) >> + (arguments >> + (list >> + #:configure-flags >> + #~(list "--enable-check" >> + "--enable-parser-generator" >> + "CXXFLAGS=-std=c++17" >> + "--enable-doxygen") >> + #:phases >> + #~(modify-phases %standard-phases >> + (add-after 'unpack 'remove-libc++-linking >> + (lambda _ >> + (substitute* "src/Makefile.am" >> + (("-lc\\+\\+") "")) >> + #t)) > Why? If it's because you're building a shared library, do this in the > next phase. This is libc++ from LLVM and the linking against the standard library is automatic anyway, right? >> + (add-after 'unpack 'build-shared-library >> + (lambda _ >> + (substitute* "src/Makefile.am" >> + (("lib_LIBRARIES") "lib_LTLIBRARIES") >> + (("libfreesasa\\.a") "libfreesasa.la") >> + (("freesasa_LDADD \\+= libfreesasa\\.la" prev) >> + (string-append prev "\nlibfreesasa_la_LIBADD" >> + " = -ljson-c ${libxml2_LIBS}\n")) >> + (("_a_SOURCES") "_la_SOURCES")) >> + (substitute* "configure.ac" >> + (("AC_PROG_INSTALL" inst) >> + (string-append "AM_PROG_LIBTOOL\n" inst))) >> + (substitute* "tests/Makefile.am" >> + (("libfreesasa\\.a") "libfreesasa.la")) >> + #t)) >> + (add-before 'build 'build-lexer-and-parser >> + (lambda _ >> + (with-directory-excursion "src" >> + (invoke "make" "lexer.h") >> + (invoke "make" "parser.h")) >> + #t)) > You can do this in one make. >> + (add-after 'install 'install-doc >> + (lambda _ >> + (copy-recursively >> + "doc/html" >> + (string-append #$output:doc "/share/doc/" #$name "-" >> #$version)) >> + #t))))) >> + (home-page "https://freesasa.github.io/") >> + (synopsis "Library for calculating the solvent accessible >> surface area >> +(SASA) of molecules") > "Calculate the..." >> + (description "FreeSASA is a command line tool and C-library for >> +calculating solvent accessible surface areas (SASA). By default Lee >> & > Use @abbr. I get the error "warning: invalid Texinfo markup", do you have an idea why? >> +Richards' algorithm is used, but Shrake & Rupley's is also >> available. Both can >> +be parameterized to arbitrary precision, and for high resolution >> versions of >> +the algorithms, the calculations give identical results.") >> + (license license:expat))) > > Cheers
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.