summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorViktor Drobot2020-08-25 17:18:53 +0300
committerViktor Drobot2020-08-25 17:18:53 +0300
commitbbecce8cab7ca4ac354d4bad61988ff6908244dd (patch)
tree025280f0daeaaffe216aa60a5855382f30556eea
parent1ef3a52610685d77c88b3b5f0e9906496e519e9c (diff)
downloadaur-bbecce8cab7ca4ac354d4bad61988ff6908244dd.tar.gz
Update 3.0.0
-rw-r--r--.SRCINFO29
-rw-r--r--PKGBUILD109
-rw-r--r--globals_apbs.patch69
-rw-r--r--globals_bem.patch318
4 files changed, 493 insertions, 32 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b267fb78caf3..e8c1094e53af 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,18 +1,29 @@
pkgbase = apbs
pkgdesc = Electrostatic and solvation properties for complex molecules
- pkgver = 1.5
- pkgrel = 4
+ pkgver = 3.0.0
+ pkgrel = 1
url = http://www.poissonboltzmann.org/
arch = x86_64
- arch = i686
- license = MIT
- makedepends = cmake
+ license = custom
+ makedepends = cmake>=3.12
+ makedepends = make
makedepends = git
- makedepends = gcc
+ makedepends = wget
+ depends = python
+ depends = boost
+ depends = eigen
+ depends = termcap
depends = swig
- depends = python2
- source = git+https://github.com/Electrostatics/apbs-pdb2pqr.git#commit=aa353941cfadc09ccd113075d261a427864c2979
- md5sums = SKIP
+ provides = apbs
+ conflicts = apbs-bin
+ options = !makeflags
+ options = !buildflags
+ source = https://github.com/Electrostatics/apbs/releases/download/v3.0.0/APBS-3.0.0_Source-Code.tar.gz
+ source = globals_apbs.patch
+ source = globals_bem.patch
+ sha256sums = 3cf8b227a205cdcbd13246489427606f256f2356343fc954734fd39975e5cbdb
+ sha256sums = 6bc1f2dc7a454aa8b0799641f78ee571ba04795821a9bcac356cbe496bdb3df6
+ sha256sums = 3d8cc3d052a60a36d79ab95b8c89c03d79bdcca9958c2936513d92c23acb097b
pkgname = apbs
diff --git a/PKGBUILD b/PKGBUILD
index 4318981be1cb..77b96abd0616 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,39 +1,102 @@
# Maintainer: Viktor Drobot (aka dviktor) linux776 [at] gmail [dot] com
+
pkgname=apbs
-pkgver=1.5
-pkgrel=4
+pkgver=3.0.0
+pkgrel=1
pkgdesc="Electrostatic and solvation properties for complex molecules"
-arch=(x86_64 i686)
+arch=(x86_64)
url="http://www.poissonboltzmann.org/"
-license=('MIT')
-depends=('swig' 'python2')
-makedepends=('cmake' 'git' 'gcc')
-source=("git+https://github.com/Electrostatics/apbs-pdb2pqr.git#commit=aa353941cfadc09ccd113075d261a427864c2979")
-md5sums=('SKIP')
+license=(custom)
+depends=(python boost eigen termcap swig)
+makedepends=('cmake>=3.12' make git wget)
+provides=(apbs)
+conflicts=(apbs-bin)
+source=("https://github.com/Electrostatics/apbs/releases/download/v3.0.0/APBS-3.0.0_Source-Code.tar.gz"
+ "globals_apbs.patch"
+ "globals_bem.patch")
+sha256sums=('3cf8b227a205cdcbd13246489427606f256f2356343fc954734fd39975e5cbdb'
+ '6bc1f2dc7a454aa8b0799641f78ee571ba04795821a9bcac356cbe496bdb3df6'
+ '3d8cc3d052a60a36d79ab95b8c89c03d79bdcca9958c2936513d92c23acb097b')
+options=(!makeflags !buildflags)
+
+prepare() {
+ # patch APBS building issues
+ cd "${srcdir}/${pkgname}-${pkgver}/apbs"
+ patch -Np0 -i "${srcdir}/globals_apbs.patch"
+
+ # get external modules
+ cd "${srcdir}/${pkgname}-${pkgver}/apbs/externals"
+
+ # mesh_routines
+ mkdir -p mesh_routines/NanoShaper/Linux64
+ mkdir -p mesh_routines/msms/msms_i86_64Linux2_2.6.1
+ wget https://github.com/lwwilson1/mesh_routines/releases/download/v1.5/NanoShaper_Linux64 -O mesh_routines/NanoShaper/Linux64/NanoShaper
+ wget https://github.com/lwwilson1/mesh_routines/releases/download/v1.5/msms.x86_64Linux2.2.6.1.staticgcc -O mesh_routines/msms/msms_i86_64Linux2_2.6.1/msms.x86_64Linux2.2.6.1.staticgcc
+
+ # PBAM/PBSAM
+ git clone https://github.com/Electrostatics/pb_solvers.git pb_s_am
+ cd pb_s_am
+ git checkout 7ca2a8a491c0cf746074053005fcae026acc4da5
+ cd ..
+
+ # FETK
+ git clone https://github.com/Electrostatics/FETK.git fetk
+ cd fetk
+ git checkout 0c6fdeabe8929acea7481cb1480b5706b343b7e0
+ cd ..
+
+ # Geometric Flow
+ git clone https://github.com/Electrostatics/geoflow_c.git geoflow_c
+ cd geoflow_c
+ git checkout 99446ec841647419411d23bad632d50405913a06
+ cd ..
+
+ # TABI-PB (BEM)
+ git clone https://github.com/Electrostatics/TABIPB.git bem
+ cd bem
+ git checkout de187a41720887d667edcfb6c23bb61fbbe06b5b
+
+ # patch BEM building issues
+ patch -Np0 -i "${srcdir}/globals_bem.patch"
+ cd ..
+}
build() {
- cd ${srcdir}/apbs-pdb2pqr
+ cd "${srcdir}/${pkgname}-${pkgver}/apbs"
- git submodule init
- git submodule update
+ mkdir build
+ cd build
- cd apbs
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DENABLE_GEOFLOW=ON \
+ -DENABLE_BEM=ON \
+ -DENABLE_FETK=ON \
+ -DENABLE_OPENMP=ON \
+ -DENABLE_PBAM=ON \
+ -DENABLE_PBSAM=ON \
+ -DENABLE_PYTHON=ON \
+ -DENABLE_TESTS=OFF \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_DOC=OFF \
+ -Wno-dev \
+ ..
- cmake -Wno-dev -DCMAKE_EXE_LINKER_FLAGS="" -DCMAKE_MODULE_LINKER_FLAGS="" -DCMAKE_SHARED_LINKER_FLAGS="" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so -DPYTHON_LIBRARIES=/usr/lib/libpython2.7.so -DENABLE_PYTHON=ON -DBUILD_SHARED_LIBS=ON .
- make
+ make
}
package() {
- cd ${srcdir}/apbs-pdb2pqr/apbs
+ cd "${srcdir}/${pkgname}-${pkgver}/apbs/build"
+
+ # install base components
+ make DESTDIR="$pkgdir" install
- make DESTDIR=$pkgdir install
+ # install license
+ install -Dm644 "${srcdir}/${pkgname}-${pkgver}/apbs/LICENSE.md" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- # fix python versions in scripts
- sed -i 's|/bin/python|/usr/bin/python2|g' ${pkgdir}/usr/share/apbs/examples/protein-rna/apbs_unix_dx.py
- sed -i 's|/usr/bin/env python|/usr/bin/python2|g' ${pkgdir}/usr/share/apbs/examples/protein-rna/fit.py
- sed -i 's|/usr/bin/env python|/usr/bin/python2|g' ${pkgdir}/usr/share/apbs/tools/manip/psize.py
- sed -i 's|/usr/bin/python|/usr/bin/python2|g' ${pkgdir}/usr/share/apbs/tools/python/noinput.py
+ # cleanup conflicting symlinks
+ cd "${pkgdir}/usr/lib"
- find "${pkgdir}/usr/share/apbs/tests" -name '*.py' -type f -exec \
- sed -i 's|/usr/bin/env python|/usr/bin/python2|g' {} \;
+ rm -f libamd.so libblas.so libsuperlu.so libumfpack.so
}
diff --git a/globals_apbs.patch b/globals_apbs.patch
new file mode 100644
index 000000000000..b5756c7747a2
--- /dev/null
+++ b/globals_apbs.patch
@@ -0,0 +1,69 @@
+--- src/pmgc/mgsubd.c 2020-05-30 04:47:30.000000000 +0300
++++ src/pmgc/mgsubd.c 2020-08-19 13:08:27.503698756 +0300
+@@ -52,10 +52,12 @@
+ * @endverbatim
+ */
+
+ #include "mgsubd.h"
+
++double bf, oh, cputme;
++
+ VPUBLIC void Vbuildops(
+ int *nx, int *ny, int *nz,
+ int *nlev, int *ipkey, int *iinfo,
+ int *ido, int *iz,
+ int *mgprol, int *mgcoar, int *mgsolv, int *mgdisc, int *ipc,
+--- src/pmgc/mgsubd.h 2020-05-30 04:47:30.000000000 +0300
++++ src/pmgc/mgsubd.h 2020-08-19 13:08:54.266813098 +0300
+@@ -253,11 +253,11 @@
+ int n3 ///< The third grid size
+ );
+
+
+ /// @todo Get rid of these globals in refactor
+-double bf, oh, cputme;
++extern double bf, oh, cputme;
+
+ /** @brief This routine prints out some info and such from inside multigrid.
+ * @author Tucker Beck [C Translation], Michael Holst [Original]
+ * @note Replaces prtstp from mgsubd.f
+ */
+--- src/pmgc/mypdec.c 2020-05-30 04:47:30.000000000 +0300
++++ src/pmgc/mypdec.c 2020-08-19 13:09:34.939813105 +0300
+@@ -52,10 +52,15 @@
+ * @endverbatim
+ */
+
+ #include "mypdec.h"
+
++double v1, v2, v3, conc1, conc2, conc3, vol, relSize;
++int nion;
++double charge[MAXIONS];
++double sconc[MAXIONS];
++
+ VPUBLIC void Vmypdefinitlpbe(int *tnion, double *tcharge, double *tsconc) {
+
+ int i;
+
+ nion = *tnion;
+--- src/pmgc/mypdec.h 2020-05-30 04:47:30.000000000 +0300
++++ src/pmgc/mypdec.h 2020-08-19 13:09:56.172972195 +0300
+@@ -65,14 +65,14 @@
+ #define ZLARGE 1.0e20
+ #define SINH_MIN -85.0
+ #define SINH_MAX 85.0
+
+ /// @todo Remove dependencies on global variables
+-double v1, v2, v3, conc1, conc2, conc3, vol, relSize;
+-int nion;
+-double charge[MAXIONS];
+-double sconc[MAXIONS];
++extern double v1, v2, v3, conc1, conc2, conc3, vol, relSize;
++extern int nion;
++extern double charge[MAXIONS];
++extern double sconc[MAXIONS];
+
+ #define Na 6.022045000e-04
+
+ /** @brief Set up the ionic species to be used in later calculations. This
+ * must be called before any other of the routines in this file.
diff --git a/globals_bem.patch b/globals_bem.patch
new file mode 100644
index 000000000000..66e10342d59c
--- /dev/null
+++ b/globals_bem.patch
@@ -0,0 +1,318 @@
+--- src/gl_variables.c 1970-01-01 03:00:00.000000000 +0300
++++ src/gl_variables.c 2020-08-25 15:55:39.806472450 +0300
+@@ -0,0 +1,39 @@
++/*
++ * C source file for global variables definition of tabipb
++ *
++ * C version authored by:
++ * Jiahui Chen, Southern Methodist University, Dallas, TX
++ *
++ * Additional modifications and updates by:
++ * Leighton Wilson, University of Michigan, Ann Arbor, MI
++ *
++ * Based on package originally written in FORTRAN by:
++ * Weihua Geng, Southern Methodist University, Dallas, TX
++ * Robery Krasny, University of Michigan, Ann Arbor, MI
++ *
++ * Last modified by Viktor Drobot, 08/25/2020
++ */
++
++#include "gl_variables.h"
++
++/*constant variables */
++double pi, one_over_4pi, kcal2j, bulk_coef, units_coef, epsw, epsp, eps;
++double bulk_strength, kappa2, kappa;
++
++
++/*global scalar variables*/
++int nface, nspt, natm;
++
++
++/*dynamic allocated variables*/
++int **extr_v; //[3][nspt]
++int **extr_f; //[2][nface]
++int **face;//[3][nface]
++
++double **vert, **snrm; //[3][nspt];
++double *tr_xyz, *tr_q; //[3]*[nface]
++double *tr_area, *bvct, *xvct; //[nface];
++double *atmrad, *atmchr, *chrpos; //[natm],[3][nface];
++
++/* GMRes variables */
++double *work, *h;
+--- src/gl_variables.h 2020-08-25 16:31:43.073197652 +0300
++++ src/gl_variables.h 2020-08-25 16:31:45.386509224 +0300
+@@ -9,38 +9,38 @@
+ *
+ * Based on package originally written in FORTRAN by:
+ * Weihua Geng, Southern Methodist University, Dallas, TX
+ * Robery Krasny, University of Michigan, Ann Arbor, MI
+ *
+- * Last modified by Leighton Wilson, 06/20/2016
++ * Last modified by Viktor Drobot, 08/25/2020
+ */
+
+ #ifndef H_GLVARS_H
+ #define H_GLVARS_H
+
+ #include "TABIPBstruct.h"
+
+
+ /*constant variables */
+-double pi, one_over_4pi, kcal2j, bulk_coef, units_coef, epsw, epsp, eps;
+-double bulk_strength, kappa2, kappa;
++extern double pi, one_over_4pi, kcal2j, bulk_coef, units_coef, epsw, epsp, eps;
++extern double bulk_strength, kappa2, kappa;
+
+
+ /*global scalar variables*/
+-int nface, nspt, natm;
++extern int nface, nspt, natm;
+
+
+ /*dynamic allocated variables*/
+-int **extr_v; //[3][nspt]
+-int **extr_f; //[2][nface]
+-int **face;//[3][nface]
+-
+-double **vert, **snrm; //[3][nspt];
+-double *tr_xyz, *tr_q; //[3]*[nface]
+-double *tr_area, *bvct, *xvct; //[nface];
+-double *atmrad, *atmchr, *chrpos; //[natm],[3][nface];
++extern int **extr_v; //[3][nspt]
++extern int **extr_f; //[2][nface]
++extern int **face;//[3][nface]
++
++extern double **vert, **snrm; //[3][nspt];
++extern double *tr_xyz, *tr_q; //[3]*[nface]
++extern double *tr_area, *bvct, *xvct; //[nface];
++extern double *atmrad, *atmchr, *chrpos; //[natm],[3][nface];
+
+ /* GMRes variables */
+-double *work, *h;
++extern double *work, *h;
+
+
+ #endif /* H_GLVARS_H */
+--- src/treecode.c 2020-08-25 16:40:07.671844382 +0300
++++ src/treecode.c 2020-08-25 16:41:23.934469576 +0300
+@@ -9,11 +9,11 @@
+ *
+ * Based on package originally written in FORTRAN by:
+ * Weihua Geng, Southern Methodist University, Dallas, TX
+ * Robery Krasny, University of Michigan, Ann Arbor, MI
+ *
+- * Last modified by Leighton Wilson, 06/20/2016
++ * Last modified by Viktor Drobot, 08/25/2020
+ */
+
+ #include <time.h>
+ #include <stdio.h>
+ #include <math.h>
+@@ -21,10 +21,75 @@
+
+ #include "gl_variables.h"
+ #include "treecode.h"
+
+
++/* runtime parameters */
++int numpars, order, maxparnode, iflag, forcedim;
++double theta;
++double center[3], r0[3], v0[3];
++
++
++/* arrays for coordinates, charge, potential & force */
++double *x, *y, *z, *q;
++double *x_copy, *y_copy, *z_copy, *q_copy;
++double **tforce, **dforce;
++int *orderind, *n_clst;
++
++
++/* timing variables */
++double timebeg, timeend;
++
++
++/* local variables */
++double xyzminmax[6];
++double t1, abserr, relerr, adsinf_err, relinf_err;
++double f_inferr[3], f_relinferr[3], t[3];
++
++double ***tchg, ***schg;
++double ****der_cof;
++int kk[16][3];
++
++
++/* global variables for taylor expansions */
++int torder, torder2, torderlim;
++double *cf, *cf1, *cf2, *cf3;
++double ***a, ***b;
++
++
++/* global variables to track tree levels */
++int minlevel, maxlevel;
++
++
++/* global variables used when computing potential/force */
++int orderoffset;
++double tarpos[3], tarq[3];
++double tarchr;
++
++
++/* global variables for position and charge storage */
++/* arrays are not copied in this version!! orderarr is till valid*/
++int *orderarr;
++double *xcopy,*ycopy,*zcopy,*qcopy;
++
++
++/* node pointer and node struct declarations */
++typedef struct tnode{
++ int node_idx;
++ int numpar, ibeg, iend;
++ double x_min, y_min, z_min;
++ double x_max, y_max, z_max;
++ double x_mid, y_mid, z_mid;
++ double radius, aspect;
++ int level, num_children, exist_ms;
++ double ****ms;
++ struct tnode** child;
++}tnode;
++
++tnode* troot;
++
++
+ int treecode_initialization(int main_order,int main_maxparnode,double main_theta) {
+ /* set up variables used in treecode */
+ /* local variables*/
+ int level, ierr, err, i, j, k, mm, nn, idx, ijk[3];
+
+--- src/treecode.h 2020-08-25 16:40:07.675177684 +0300
++++ src/treecode.h 2020-08-25 16:40:43.728176389 +0300
+@@ -9,79 +9,16 @@
+ *
+ * Based on package originally written in FORTRAN by:
+ * Weihua Geng, Southern Methodist University, Dallas, TX
+ * Robery Krasny, University of Michigan, Ann Arbor, MI
+ *
+- * Last modified by Leighton Wilson, 06/20/2016
++ * Last modified by Viktor Drobot, 08/25/2020
+ */
+
+ #ifndef H_TREECODE_H
+ #define H_TREECODE_H
+
+
+-/* runtime parameters */
+-int numpars, order, maxparnode, iflag, forcedim;
+-double theta;
+-double center[3], r0[3], v0[3];
+-
+-
+-/* arrays for coordinates, charge, potential & force */
+-double *x, *y, *z, *q;
+-double *x_copy, *y_copy, *z_copy, *q_copy;
+-double **tforce, **dforce;
+-int *orderind, *n_clst;
+-
+-
+-/* timing variables */
+-double timebeg, timeend;
+-
+-
+-/* local variables */
+-double xyzminmax[6];
+-double t1, abserr, relerr, adsinf_err, relinf_err;
+-double f_inferr[3], f_relinferr[3], t[3];
+-
+-double ***tchg, ***schg;
+-double ****der_cof;
+-int kk[16][3];
+-
+-
+-/* global variables for taylor expansions */
+-int torder, torder2, torderlim;
+-double *cf, *cf1, *cf2, *cf3;
+-double ***a, ***b;
+-
+-
+-/* global variables to track tree levels */
+-int minlevel, maxlevel;
+-
+-
+-/* global variables used when computing potential/force */
+-int orderoffset;
+-double tarpos[3], tarq[3];
+-double tarchr;
+-double ***tchg, ***schg;
+-
+-
+-/* global variables for position and charge storage */
+-/* arrays are not copied in this version!! orderarr is till valid*/
+-int *orderarr;
+-double *xcopy,*ycopy,*zcopy,*qcopy;
+-
+-
+-/* node pointer and node struct declarations */
+-typedef struct tnode{
+- int node_idx;
+- int numpar, ibeg, iend;
+- double x_min, y_min, z_min;
+- double x_max, y_max, z_max;
+- double x_mid, y_mid, z_mid;
+- double radius, aspect;
+- int level, num_children, exist_ms;
+- double ****ms;
+- struct tnode** child;
+-}tnode;
+-
+-tnode* troot;
++extern int *orderarr;
+
+
+ #endif /* H_TREECODE_H */
+--- CMakeLists.txt 2020-08-25 16:40:07.671844382 +0300
++++ CMakeLists.txt 2020-08-25 17:01:51.382985737 +0300
+@@ -51,10 +51,11 @@
+ src/drot.c
+ src/drotg.c
+ src/dscal.c
+ src/dtrsv.c
+ src/f2c.h
++ src/gl_variables.c
+ src/gl_variables.h
+ src/gmres.c
+ src/readin.c
+ src/tabipb.c
+ src/TABIPBstruct.h
+@@ -92,17 +93,17 @@
+ # C code for standalone; don't include pp_timer.c in Windows version
+ if(WIN32)
+ add_executable(tabipb
+ src/main.c src/tabipb.c src/gmres.c src/daxpy.c src/dcopy.c src/ddot.c
+ src/dgemv.c src/dnrm2.c src/drot.c src/drotg.c src/dscal.c src/d_sign.c
+- src/dtrsv.c src/readin.c src/treecode.c
++ src/dtrsv.c src/readin.c src/treecode.c src/gl_variables.c
+ src/xmalloc.c)
+ else()
+ add_executable(tabipb
+ src/main.c src/tabipb.c src/gmres.c src/daxpy.c src/dcopy.c src/ddot.c
+ src/dgemv.c src/dnrm2.c src/drot.c src/drotg.c src/dscal.c src/d_sign.c
+- src/dtrsv.c src/readin.c src/pp_timer.c src/treecode.c
++ src/dtrsv.c src/readin.c src/pp_timer.c src/treecode.c src/gl_variables.c
+ src/xmalloc.c)
+ endif()
+
+
+ ################################################
+@@ -145,11 +146,11 @@
+ endif ()
+
+ set (LIBFILES
+ src/TABIPBWrap.c src/tabipb.c src/gmres.c src/daxpy.c src/dcopy.c src/ddot.c
+ src/dgemv.c src/dnrm2.c src/drot.c src/drotg.c src/dscal.c src/d_sign.c
+- src/dtrsv.c src/readin.c src/treecode.c src/xmalloc.c)
++ src/dtrsv.c src/readin.c src/treecode.c src/gl_variables.c src/xmalloc.c)
+
+ message(***** ${CMAKE_INSTALL_PREFIX} *****)
+
+ if(NOT DEFINED ${CMAKE_INSTALL_PREFIX})
+ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})