diff --git a/.gitignore b/.gitignore index f5c581c..85ecb73 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ apbs-1.2.1-source.tar.gz /apbs-1.3-source.tar.gz /APBS-1.4-source.tar.gz /apbs-1.5.tar.gz +/apbs-pdb2pqr-dfb858d32674438fb8c21421acc86e21667eb8cb.tar.gz +/apbs-pdb2pqr-vAPBS-3.0.0.tar.gz +/apbs-3.0.0.tar.gz diff --git a/LGPL_V2 b/apbs-LGPL_V2 similarity index 100% rename from LGPL_V2 rename to apbs-LGPL_V2 diff --git a/apbs-c99.patch b/apbs-c99.patch new file mode 100644 index 0000000..4a5b282 --- /dev/null +++ b/apbs-c99.patch @@ -0,0 +1,23 @@ +Partial backport of this commit, to avoid an implicit declaration of +getpid and future build failures: + +Author: Noah Oblath +Date: Mon Jan 24 15:33:56 2022 -0800 + + Nsoblath/issue 163 (#171) + +diff -ur apbs-3.0.0.orig/contrib/iapbs/src/apbs_driver.c apbs-3.0.0/contrib/iapbs/src/apbs_driver.c +--- apbs-3.0.0.orig/contrib/iapbs/src/apbs_driver.c 2020-05-30 03:47:30.000000000 +0200 ++++ apbs-3.0.0/contrib/iapbs/src/apbs_driver.c 2023-02-06 07:58:46.215007012 +0100 +@@ -18,6 +18,11 @@ + + #include "apbs_driver.h" + ++#ifdef WIN32 ++#include ++#else ++#include ++#endif + + /*! \def MAX_BUF_SIZE + \brief Buffer size for internal APBS string input. diff --git a/apbs-cmake.patch b/apbs-cmake.patch index c801f77..c457571 100644 --- a/apbs-cmake.patch +++ b/apbs-cmake.patch @@ -1,12 +1,21 @@ ---- CMakeLists.txt_orig 2018-05-20 13:00:17.451341064 -0400 -+++ CMakeLists.txt 2018-05-20 13:00:47.917440250 -0400 +--- a/apbs/CMakeLists.txt_orig 2018-05-20 13:00:17.451341064 -0400 ++++ b/apbs/CMakeLists.txt 2018-05-20 13:00:47.917440250 -0400 @@ -1,4 +1,5 @@ - cmake_minimum_required (VERSION 2.8.7) +-cmake_minimum_required (VERSION 3.12) ++cmake_minimum_required(VERSION 3.13...4.0) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) ################################################################################ # TODO: Add licensing and authorship information -@@ -63,10 +64,10 @@ +@@ -7,7 +8,6 @@ + # (configure.ac:1306) + ################################################################################ + set(CMAKE_VERBOSE_MAKEFILE true) +-cmake_policy(SET CMP0054 OLD) + cmake_policy(SET CMP0042 NEW) + set(CMAKE_MACOSX_RPATH 1) + +@@ -70,10 +71,10 @@ set(TOOLS_PATH ${APBS_BUILD}/tools) set(APBS_BINARY ${EXECUTABLE_OUTPUT_PATH}/apbs) @@ -20,109 +29,109 @@ set(APBS_LIBS) set(APBS_LIB_DIRS) -@@ -78,7 +79,7 @@ - DOC "The path to the external git submodules" - ) +@@ -85,7 +86,7 @@ + PATHS "${APBS_ROOT}" + DOC "The path to the external git submodules") -set(SYS_LIBPATHS /usr/lib64) +#set(SYS_LIBPATHS /usr/lib64) #list(APPEND SYS_LIBPATHS /usr/lib64) - ################################################################################ -@@ -105,9 +106,9 @@ +@@ -139,11 +140,6 @@ + ################################################################################ message(STATUS "Setting lookup paths for headers and libraries") -set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}") -list(APPEND CMAKE_INCLUDE_PATH /usr/include) -list(APPEND CMAKE_INCLUDE_PATH /usr/local/include) -+#set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}") -+#list(APPEND CMAKE_INCLUDE_PATH /usr/include) -+#list(APPEND CMAKE_INCLUDE_PATH /usr/local/include) - - - -@@ -259,11 +260,11 @@ - +- +- + ################################################################################ + # Enable ansi pedantic compiling # + ################################################################################ +@@ -307,12 +303,12 @@ + ################################################################################ if(NOT ENABLE_FETK) - # We'll use autotools to build MALOC if FETK is enabled. -- set(MALOC_ROOT ${EXTERNALS_PATH}/fetk/maloc) -- add_subdirectory(${MALOC_ROOT}) -- include_directories(${MALOC_ROOT}/src/base ${MALOC_ROOT}/src/vsys -- ${MALOC_ROOT}/src/vsh ${MALOC_ROOT}/src/psh) -- list(APPEND APBS_LIB_DIRS ${EXTERNALS_PATH}/fetk/maloc/lib) -+ #set(MALOC_ROOT ${EXTERNALS_PATH}/fetk/maloc) -+ # add_subdirectory(${MALOC_ROOT}) -+ #include_directories(${MALOC_ROOT}/src/base ${MALOC_ROOT}/src/vsys -+ # ${MALOC_ROOT}/src/vsh ${MALOC_ROOT}/src/psh) -+ #list(APPEND APBS_LIB_DIRS ${EXTERNALS_PATH}/fetk/maloc/lib) - list(APPEND APBS_LIBS maloc) + # We'll use autotools to build MALOC if FETK is enabled. +- add_subdirectory(${EXTERNALS_PATH}/fetk/maloc) +- include_directories(${EXTERNALS_PATH}/fetk/maloc/src/base +- ${EXTERNALS_PATH}/fetk/maloc/src/vsys +- ${EXTERNALS_PATH}/fetk/maloc/src/vsh +- ${EXTERNALS_PATH}/fetk/maloc/src/psh) +- list(APPEND APBS_LIB_DIRS ${EXTERNALS_PATH}/fetk/maloc/lib) ++ #add_subdirectory(${EXTERNALS_PATH}/fetk/maloc) ++ #include_directories(${EXTERNALS_PATH}/fetk/maloc/src/base ++ # ${EXTERNALS_PATH}/fetk/maloc/src/vsys ++ # ${EXTERNALS_PATH}/fetk/maloc/src/vsh ++ # ${EXTERNALS_PATH}/fetk/maloc/src/psh) ++ #list(APPEND APBS_LIB_DIRS ${EXTERNALS_PATH}/fetk/maloc/lib) + list(APPEND APBS_LIBS maloc) endif() -@@ -736,12 +737,12 @@ +@@ -778,10 +774,10 @@ + ################################################################################ # Set up additional directories to install # ################################################################################ - --install( -- DIRECTORY ${APBS_ROOT}/doc -- DESTINATION ${SHARE_INSTALL_PATH} -- PATTERN "programmer" EXCLUDE -- PATTERN "CMakeLists.txt" EXCLUDE --) -+#install( -+# DIRECTORY ${APBS_ROOT}/doc -+# DESTINATION ${SHARE_INSTALL_PATH} -+# PATTERN "programmer" EXCLUDE -+# PATTERN "CMakeLists.txt" EXCLUDE -+#) +-install(DIRECTORY ${APBS_ROOT}/doc +- DESTINATION ${SHARE_INSTALL_PATH} +- PATTERN "programmer" EXCLUDE +- PATTERN "CMakeLists.txt" EXCLUDE) ++#install(DIRECTORY ${APBS_ROOT}/doc ++# DESTINATION ${SHARE_INSTALL_PATH} ++# PATTERN "programmer" EXCLUDE ++# PATTERN "CMakeLists.txt" EXCLUDE) if(BUILD_DOC) - install( -@@ -753,24 +754,24 @@ - ) + install(DIRECTORY ${APBS_BUILD}/doc/programmer +@@ -791,27 +787,11 @@ + PATTERN "mainpage.h" EXCLUDE) endif() --install( -- DIRECTORY ${APBS_ROOT}/examples -- DESTINATION ${SHARE_INSTALL_PATH} --) +-install(DIRECTORY ${APBS_ROOT}/examples +- DESTINATION ${SHARE_INSTALL_PATH}) - --install( -- DIRECTORY ${APBS_ROOT}/tests -- DESTINATION ${SHARE_INSTALL_PATH} -- FILES_MATCHING +-install(DIRECTORY ${APBS_ROOT}/tests +- DESTINATION ${SHARE_INSTALL_PATH} +- FILES_MATCHING - PATTERN "*.py" -- PATTERN "README" --) +- PATTERN "README") - --install( -- DIRECTORY ${APBS_ROOT}/tools -- DESTINATION ${SHARE_INSTALL_PATH} -- PATTERN "CMakeLists.txt" EXCLUDE --) -+#install( -+# DIRECTORY ${APBS_ROOT}/examples -+# DESTINATION ${SHARE_INSTALL_PATH} -+#) -+ -+#install( -+# DIRECTORY ${APBS_ROOT}/tests -+# DESTINATION ${SHARE_INSTALL_PATH} -+# FILES_MATCHING -+# PATTERN "*.py" -+# PATTERN "README" -+#) -+ -+#install( -+# DIRECTORY ${APBS_ROOT}/tools -+# DESTINATION ${SHARE_INSTALL_PATH} -+# PATTERN "CMakeLists.txt" EXCLUDE -+#) +-if(BUILD_TOOLS) +- install(DIRECTORY ${APBS_ROOT}/tools +- DESTINATION ${SHARE_INSTALL_PATH} +- USE_SOURCE_PERMISSIONS +- PATTERN "CMakeLists.txt" +- PATTERN "matlab" EXCLUDE) +- +- if(NOT "${APBS_ROOT}" STREQUAL "${APBS_BUILD}") +- install(DIRECTORY ${APBS_BUILD}/tools/bin ++if(NOT "${APBS_ROOT}" STREQUAL "${APBS_BUILD}") ++ install( ++ DIRECTORY ${APBS_BUILD}/tools/bin + DESTINATION ${SHARE_INSTALL_PATH}/tools + USE_SOURCE_PERMISSIONS) +- endif() + endif() + + ################################################################################ +@@ -880,7 +860,7 @@ + set(CPACK_PACKAGE_NAME "${PACKAGE_NAME}") + set(CPACK_PACKAGE_DESCRIPTION "APBS - Adaptive Poisson Boltzmann Solver") + +-set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/../LICENSE.md") ++set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.md") + set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md") + + set(CPACK_SOURCE_IGNORE_FILES "${PROJECT_BINARY_DIR};/.git/;.gitignore;/tools/matlab/") +--- a/apbs/src/CMakeLists.txt_orig 2018-05-20 13:00:20.518351049 -0400 ++++ b/apbs/src/CMakeLists.txt 2018-05-20 13:00:47.917440250 -0400 +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8) ++cmake_minimum_required(VERSION 3.13...4.0) + + macro(add_items TYPE) - if(NOT "${APBS_ROOT}" STREQUAL "${APBS_BUILD}") - install( ---- src/CMakeLists.txt_orig 2018-05-20 13:00:20.518351049 -0400 -+++ src/CMakeLists.txt 2018-05-20 13:00:47.917440250 -0400 @@ -32,11 +32,11 @@ message(STATUS "With external header files ${EXTERNAL_HEADERS}") message(STATUS "With internal header files ${INTERNAL_HEADERS}") @@ -138,7 +147,7 @@ list(APPEND APBS_INTERNAL_LIBS ${LIBRARY_NAME}) set(APBS_INTERNAL_LIBS ${APBS_INTERNAL_LIBS} PARENT_SCOPE) message(STATUS "Added ${LIBRARY_NAME}") -@@ -47,6 +47,11 @@ +@@ -45,6 +45,11 @@ add_subdirectory(generic) add_subdirectory(pmgc) add_subdirectory(mg) @@ -150,26 +159,26 @@ if(ENABLE_FETK) add_subdirectory(fem) -@@ -57,7 +62,7 @@ - - message(STATUS ${EXTERNAL_HEADERS}) +@@ -56,7 +61,7 @@ + message(STATUS "External Headers: ${EXTERNAL_HEADERS}") + #add_executable(apbs main.c routines.c) -add_executable(apbs main.c apbs.h routines.c routines.h) +add_executable(apbs-bin main.c apbs.h routines.c routines.h) - message(***************************) message(STATUS " ") message(STATUS "APBS Libraries: ${APBS_LIBS}") -@@ -66,7 +71,8 @@ - message(***************************) + message(STATUS "Internal Libraries: ${APBS_INTERNAL_LIBS}") +@@ -64,7 +69,8 @@ #add_dependencies(apbs ${BEM_LIB}) + #target_include_directories(apbs PRIVATE apbs.h routines.h) -target_link_libraries(apbs ${APBS_LIBS} ${APBS_INTERNAL_LIBS} ${APBS_LIBS}) +target_link_libraries(apbs-bin ${APBS_LIBS} apbs) +SET_TARGET_PROPERTIES(apbs-bin PROPERTIES OUTPUT_NAME apbs) #add_dependencies(apbs ${APBS_LIBS} ${APBS_INTERNAL_LIBS} ${APBS_LIBS}) configure_file( -@@ -81,6 +87,6 @@ +@@ -79,6 +85,6 @@ endif() INSTALL(FILES apbs.h routines.h DESTINATION ${HEADER_INSTALL_PATH}) @@ -177,8 +186,8 @@ +INSTALL(TARGETS apbs-bin DESTINATION ${EXECUTABLE_INSTALL_PATH}) message(STATUS ${CMAKE_C_FLAGS}) ---- tools/manip/CMakeLists.txt_orig 2018-05-20 13:00:31.831387880 -0400 -+++ tools/manip/CMakeLists.txt 2018-05-20 13:07:07.742714938 -0400 +--- a/apbs/tools/manip/CMakeLists.txt_orig 2018-05-20 13:00:31.831387880 -0400 ++++ b/apbs/tools/manip/CMakeLists.txt 2018-05-20 13:07:07.742714938 -0400 @@ -1,9 +1,10 @@ message(STATUS "Building manip") @@ -205,8 +214,8 @@ +target_link_libraries(born ${LIBS} ${APBS_LIBS}) + +INSTALL(TARGETS coulomb born DESTINATION ${EXECUTABLE_INSTALL_PATH}) ---- tools/mesh/CMakeLists.txt_orig 2018-05-20 13:00:26.966372042 -0400 -+++ tools/mesh/CMakeLists.txt 2018-05-20 13:00:47.917440250 -0400 +--- a/apbs/tools/mesh/CMakeLists.txt_orig 2018-05-20 13:00:26.966372042 -0400 ++++ b/apbs/tools/mesh/CMakeLists.txt 2018-05-20 13:00:47.917440250 -0400 @@ -1,9 +1,10 @@ message(STATUS "Building mesh") @@ -285,3 +294,32 @@ +target_link_libraries(uhbd_asc2bin ${LIBS} ${APBS_LIBS}) + +INSTALL(TARGETS mgmesh smooth dxmath mergedx mergedx2 value multivalue benchmark similarity analysis dx2mol dx2uhbd del2dx tensor2dx uhbd_asc2bin DESTINATION ${EXECUTABLE_INSTALL_PATH}) +--- a/a/tools/python/CMakeLists.orig.txt 2020-05-30 03:47:30.000000000 +0200 ++++ b/b/tools/python/CMakeLists.txt 2025-07-24 20:56:31.152039088 +0200 +@@ -1,3 +1,4 @@ ++cmake_minimum_required(VERSION 3.13...4.0) + if (${CMAKE_VERSION} VERSION_GREATER "3.13") + CMAKE_POLICY(SET CMP0078 OLD) + CMAKE_POLICY(SET CMP0086 OLD) +@@ -23,18 +24,16 @@ + SET(CMAKE_SWIG_FLAGS "") + + SWIG_ADD_LIBRARY(apbslib +- #TYPE USE_BUILD_SHARED_LIBS ++ TYPE USE_BUILD_SHARED_LIBS + TYPE SHARED + LANGUAGE python + SOURCES apbslib.i) + + # Hack to get the correct shared library extensions. Why does Python suck so hard wrt to this? +-if(APPLE) +- set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") +-endif(APPLE) ++set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") + + # Another hack to get SWIG to use the the correct library extension! +-#SET_TARGET_PROPERTIES(${SWIG_MODULE_apbslib_REAL_NAME} PROPERTIES SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) ++SET_TARGET_PROPERTIES(${SWIG_MODULE_apbslib_REAL_NAME} PROPERTIES SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) + + SWIG_LINK_LIBRARIES(apbslib ${APBS_LIBS} ${APBS_INTERNAL_LIBS} ${Python3_LIBRARIES}) + diff --git a/apbs-exclude_tests.patch b/apbs-exclude_tests.patch new file mode 100644 index 0000000..5f64696 --- /dev/null +++ b/apbs-exclude_tests.patch @@ -0,0 +1,60 @@ +--- a/tests/test_cases.orig.cfg 2020-05-30 03:47:30.000000000 +0200 ++++ b/tests/test_cases.cfg 2021-11-01 11:30:08.175043842 +0100 +@@ -74,57 +74,3 @@ + apbs-mol : 1.847663548071E+03 1.883912182952E+03 2.732623683321E+03 3.123035854133E+03 -3.624863445503E+01 -3.904121297757E+02 -3.541635359318E+02 + apbs-smol : 1.847860440020E+03 1.885436377745E+03 2.734040568569E+03 3.125279428954E+03 -3.757593797629E+01 -3.912388198513E+02 -3.536628818750E+02 + +- +-[geoflow] +-input_dir : ../examples/geoflow +-imidazole : -1.030222099963E+01 5.417419E-01 +- +- +-[bem] +-input_dir : ../examples/bem +-451c_order1 : -1.172906546441e+03 +-451c_order5 : -1.175936034727E+03 +- +-[bem-pKa] +-input_dir : ../examples/bem-pKa +-ASH66 : -9.954199102140E-01 +-2LZT-ASH66 : -8.620097356247E+01 +-2LZT-noASH66 : -8.601110775968E+01 +- +-[bem-binding-energy] +-input_dir : ../examples/bem-binding-energy +-1d30 : -5.249027161163E+03 +-1d30_monomer1 : -6.232145066905E+03 +-1d30_monomer2 : -1.821470879387E+02 +- +- +-[pbam] +-input_dir : ../examples/pbam +-toy_energyforce : -4.965018552290E+01 -4.965018552290E+01 +- +-[pbsam] +-input_dir : ../examples/pbsam-gly +-gly_energyforce : 6.176608555569E-05 6.210593742215E-05 +- +- +-[protein-rna] +-input_dir : ../examples/protein-rna +-setup : python apbs_dx.py +-apbs-0.025 : 3.186122223752E+04 3.662855899462E+04 8.477786964834E+03 1.000545153104E+04 2.329205982055E+04 2.653636629928E+04 8.674116429353E+01 +-apbs-0.050 : 3.184763478312E+04 3.661493366846E+04 8.475252516617E+03 1.000292179294E+04 2.327168361816E+04 2.651594350839E+04 9.606836713866E+01 +-apbs-0.075 : 3.184033569905E+04 3.660761530545E+04 8.473669396547E+03 1.000134276339E+04 2.326088212207E+04 2.650511882057E+04 1.011537214883E+02 +-apbs-0.100 : 3.183548000794E+04 3.660274809589E+04 8.472507235893E+03 1.000018407412E+04 2.325372656922E+04 2.649794981016E+04 1.046142116108E+02 +-apbs-0.125 : 3.183190100647E+04 3.659916161996E+04 8.471585837513E+03 9.999265654586E+03 2.324845847155E+04 2.649267328362E+04 1.072226817610E+02 +-apbs-0.150 : 3.182909678356E+04 3.659635228953E+04 8.470821300868E+03 9.998503715551E+03 2.324433086171E+04 2.648854016160E+04 1.093084123761E+02 +-apbs-0.175 : 3.182680817429E+04 3.659406006570E+04 8.470167484600E+03 9.997852199372E+03 2.324096101131E+04 2.648516662194E+04 1.110412443877E+02 +-apbs-0.200 : 3.182488501939E+04 3.659213428941E+04 8.469596195763E+03 9.997282974485E+03 2.323812822097E+04 2.648233134327E+04 1.125199716537E+02 +-apbs-0.225 : 3.182323306491E+04 3.659048040133E+04 8.469088900775E+03 9.996777552566E+03 2.323569434544E+04 2.647989580221E+04 1.138070465620E+02 +-apbs-0.250 : 3.182178954360E+04 3.658903543806E+04 8.468632740499E+03 9.996323108319E+03 2.323356752071E+04 2.647776789284E+04 1.149444369078E+02 +-apbs-0.275 : 3.182051070674E+04 3.658775551975E+04 8.468218414737E+03 9.995910367297E+03 2.323168374787E+04 2.647588345522E+04 1.159616972338E+02 +-apbs-0.300 : 3.181936493519E+04 3.658660893678E+04 8.467838971928E+03 9.995532397856E+03 2.322999676177E+04 2.647419611346E+04 1.168804254687E+02 +-apbs-0.325 : 3.181832869046E+04 3.658557208654E+04 8.467489074881E+03 9.995183878464E+03 2.322847209567E+04 2.647267132259E+04 1.177168854906E+02 +-apbs-0.400 : 3.181571629593E+04 3.658295870300E+04 8.466578740909E+03 9.994277216885E+03 2.322463613929E+04 2.646883588223E+04 1.198456038803E+02 +-apbs-0.500 : 3.181302243781E+04 3.658026461575E+04 8.465598755475E+03 9.993301332440E+03 2.322070101887E+04 2.646490251594E+04 1.220607673699E+02 +-apbs-0.600 : 3.181090090954E+04 3.657814345443E+04 8.464799341688E+03 9.992505379555E+03 2.321762631365E+04 2.646183001839E+04 1.238080564885E+02 +-apbs-0.700 : 3.180915789156E+04 3.657640108752E+04 8.464126109756E+03 9.991835140855E+03 2.321512352191E+04 2.645932953757E+04 1.252364090878E+02 +-apbs-0.800 : 3.180768241803E+04 3.657492640520E+04 8.463546035019E+03 9.991257699113E+03 2.321302636223E+04 2.645723464562E+04 1.264340604647E+02 diff --git a/apbs-python311.patch b/apbs-python311.patch new file mode 100644 index 0000000..adf7420 --- /dev/null +++ b/apbs-python311.patch @@ -0,0 +1,11 @@ +--- a/tools/manip/inputgen.orig.py 2020-05-30 03:47:30.000000000 +0200 ++++ b/tools/manip/inputgen.py 2021-12-26 12:13:08.819979543 +0100 +@@ -266,7 +266,7 @@ + file (string) + """ + nproc = 0 +- file = open(filename, 'rU') ++ file = open(filename) + text = "" + while 1: + line = file.readline() diff --git a/apbs.spec b/apbs.spec index 1b3600d..b3c0c36 100644 --- a/apbs.spec +++ b/apbs.spec @@ -1,24 +1,43 @@ -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +# Workaround for GCC-10 +%define _legacy_common_support 1 + +%global commit %{nil} +%global shortcommit %{nil} +%global datecommit %{nil} + +# To perform all tests, APBS needs to be compiled together additional sub-modules +%bcond_without check Name: apbs Summary: Adaptive Poisson Boltzmann Solver -Version: 1.5 -Release: 1%{?dist} -# License of pmgZ, aqua and contrib/blas/mblasd.f is LGPLv2+, the rest is BSD. -License: LGPLv2+ and BSD -Group: Applications/Engineering -URL: http://apbs.sourceforge.net/ -Source0: https://github.com/Electrostatics/apbs-pdb2pqr/archive/apbs-%{version}.tar.gz -Patch0: apbs-cmake.patch -BuildRequires: cmake +Version: 3.0.0 +Release: 32%{datecommit}%{shortcommit}%{?dist} +# iAPBS looks licensed with a LGPLv2+, APBS is released under BSD license. +License: LGPL-2.0-or-later AND BSD-3-Clause +URL: https://www.poissonboltzmann.org/ +Source0: https://github.com/Electrostatics/apbs/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz +Source1: %{name}-LGPL_V2 + +Patch0: %{name}-cmake.patch + +# Exclude tests because they are for features inactivated +Patch1: %{name}-exclude_tests.patch + +# Porting to Python-3.11 +Patch2: %{name}-python311.patch + +Patch3: apbs-c99.patch + +BuildRequires: gcc-c++ +BuildRequires: cmake3 +BuildRequires: chrpath +BuildRequires: make BuildRequires: doxygen BuildRequires: graphviz -BuildRequires: arpack-devel -BuildRequires: atlas-devel -BuildRequires: blas-devel BuildRequires: maloc-devel -BuildRequires: tex(latex) BuildRequires: zlib-devel +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: python3-%{name} %description APBS is a software package for the numerical solution of the @@ -31,74 +50,144 @@ tens to millions of atoms. It is also widely used in molecular visualization (in such applications as PyMOL). %package tools -Summary: utility programs that utilize the APBS package -Group: Applications/Engineering -Requires: %{name} = %{version}-%{release} - +Summary: Utility programs that utilize the APBS package +Requires: %{name}%{?_isa} = %{version}-%{release} %description tools - The apbs-tools package contains several utility programs for conversion, analysis and preparation of files that use the adaptive poisson boltzmann solver library. +%package libs +Summary: Libraries for APBS +%description libs +APBS solver libraries. + %package devel Summary: Libraries and header files for the APBS package -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} - +Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel - The apbs-devel package contains the header files and libraries necessary for developing programs using the adaptive poisson boltzmann (APBS) solver library. %package doc Summary: Documentation for the APBS package -Group: Applications/Engineering -Requires: %{name} = %{version}-%{release} - +BuildRequires: tex(latex) +BuildRequires: texlive-multirow +BuildRequires: texlive-hanging +BuildRequires: texlive-adjustbox +BuildRequires: texlive-stackengine +BuildRequires: texlive-sectsty +BuildRequires: texlive-etoc +BuildRequires: texlive-tocloft +BuildRequires: texlive-ulem +BuildRequires: texlive-newunicodechar +BuildRequires: texlive-wasy +BuildRequires: texlive-wasysym +BuildArch: noarch %description doc - The apbs-doc package contains API reference inforemation for development using the adaptive poisson boltzmann (APBS) solver library. +%package -n python3-apbs +Summary: Python interface of APBS +BuildRequires: python3-devel +BuildRequires: python3-numpy +BuildRequires: python3-sphinx +BuildRequires: swig +%{?python_provide:%python_provide python3-%{name}} +Obsoletes: %{name}-libs < 0:3.0.0-11 +%description -n python3-apbs +Python interface of APBS. + %prep -%setup -q -n %{name}-pdb2pqr-apbs-%{version} -cd apbs -%patch0 -p0 +%autosetup -n %{name}-%{version} -N +%patch -P 0 -p2 -b .apbs-cmake +%patch -P 1 -p1 -b .exclude_tests + +%if 0%{?python3_version_nodots} >= 311 +%patch -P 2 -p1 -b .python311 +%endif + +%patch -P 3 -p1 + +cp -p contrib/iapbs/COPYING contrib/iapbs/iapbs-COPYING +cp -p %{SOURCE1} contrib/iapbs/iapbs-LGPLv2 %build -cd apbs -# %cmake -D BUILD_DOC:BOOL=ON . -%cmake -D BUILD_DOC:BOOL=OFF . -make %{?_smp_mflags} -cd doc/programmer -doxygen +export CFLAGS="%{build_cflags} -fopenmp -lm" +export CXXFLAGS="%{build_cxxflags} -fopenmp -lm" +%cmake -DCMAKE_BUILD_TYPE:STRING=Release \ + -DENABLE_iAPBS:BOOL=ON -DENABLE_OPENMP:BOOL=ON -DENABLE_VERBOSE_DEBUG:BOOL=OFF \ + -DENABLE_FETK:BOOL=OFF -DCMAKE_C_FLAGS:STRING="%{build_cflags} -fopenmp -lm -DNDEBUG" \ + -DCMAKE_CXX_FLAGS:STRING="%{build_cxxflags} -fopenmp -lm -DNDEBUG" \ + -DENABLE_PYTHON:BOOL=ON -DBUILD_DOC:BOOL=ON \ + -DBUILD_TESTING:BOOL=ON -DENABLE_TESTS:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ + -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \ + -DLIB_INSTALL_DIR:PATH=%{_libdir} \ + -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} + +%cmake_build %install -rm -rf %{buildroot} +%cmake_install -cd apbs -make install DESTDIR=%{buildroot} - -# tools -for bin in %{buildroot}%{_bindir}/{coulomb,born,mgmesh,dxmath,mergedx2,mergedx,value,uhbd_asc2bin,smooth,dx2mol,dx2uhbd,similarity,multivalue,benchmark,analysis,del2dx,tensor2dx} tools/manip/psize.py; do - mv $bin %{buildroot}%{_bindir}/apbs-`basename $bin` +# Tools +for bin in %{buildroot}%{_bindir}/{coulomb,born,mgmesh,dxmath,mergedx2,mergedx,value,uhbd_asc2bin,smooth,dx2mol,dx2uhbd,similarity,multivalue,benchmark,analysis,del2dx,tensor2dx}; do + cp -p $bin %{buildroot}%{_bindir}/apbs-`basename $bin` + rm -f $bin done -%post -p /sbin/ldconfig +# Remove rpaths +for bin in %{buildroot}%{_bindir}/apbs-{coulomb,born,mgmesh,dxmath,mergedx2,mergedx,value,uhbd_asc2bin,smooth,dx2mol,dx2uhbd,similarity,multivalue,benchmark,analysis,del2dx,tensor2dx}; do + chrpath -d $bin + chrpath -d %{buildroot}%{_bindir}/apbs +done -%postun -p /sbin/ldconfig +chrpath -d %{buildroot}%{_libdir}/libapbs.so.1 + +# Move Python libraries under Python's tree directories +mkdir -p %{buildroot}%{python3_sitearch}/apbs +install -pm 755 tools/manip/psize.py %{buildroot}%{python3_sitearch}/apbs/ +%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" %{buildroot}%{python3_sitearch}/apbs/psize.py +ln -s %{python3_sitearch}/apbs/psize.py %{buildroot}%{_bindir}/apbs-psize.py +install -pm 755 %_vpath_builddir/lib/_apbslib.so %{buildroot}%{python3_sitearch}/apbs/ + +# Remove redundant tools binary files in /usr/share +rm -rf %{buildroot}%{_datadir}/apbs + +# Remove static libraries +for i in `find %{buildroot} -type f \( -name "*.a" \)`; do + rm -f $i +done + +%if %{with check} +%check +pushd tests +export LD_LIBRARY_PATH=%{buildroot}%{_libdir} +export PATH=%{buildroot}%{_bindir} +%{__python3} ./apbs_tester.py +%endif %files -%defattr(-,root,root,-) -%doc apbs/doc/license/LICENSE.txt apbs/doc/README apbs/doc/ChangeLog.md %{_bindir}/apbs -%{_libdir}/libapbs*.so.* + +%files libs +%license LICENSE.md COPYING contrib/iapbs/iapbs-COPYING contrib/iapbs/iapbs-LGPLv2 +%doc README.md +%{_libdir}/libapbs.so.1 + +%files -n python3-apbs +%{python3_sitearch}/apbs/ + +%files devel +%{_libdir}/libapbs.so +%{_includedir}/iapbs/ +%{_includedir}/apbs %files tools -%defattr(-,root,root,-) %{_bindir}/apbs-psize.py %{_bindir}/apbs-coulomb %{_bindir}/apbs-born @@ -118,16 +207,132 @@ done %{_bindir}/apbs-del2dx %{_bindir}/apbs-tensor2dx -%files devel -%defattr(-,root,root,-) -%{_libdir}/libapbs*.so -%{_includedir}/apbs - %files doc -%defattr(-,root,root,-) -%doc apbs/doc/programmer/html +%license LICENSE.md +%doc %_vpath_builddir/doc %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 3.0.0-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Sep 19 2025 Python Maint - 3.0.0-31 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 3.0.0-30 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Thu Jul 24 2025 Antonio Trande - 3.0.0-29 +- Fix rhbz#2380463 + +* Wed Jul 23 2025 Fedora Release Engineering - 3.0.0-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 03 2025 Python Maint - 3.0.0-27 +- Rebuilt for Python 3.14 + +* Thu Jan 16 2025 Fedora Release Engineering - 3.0.0-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 3.0.0-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jun 08 2024 Python Maint - 3.0.0-24 +- Rebuilt for Python 3.13 + +* Sat May 25 2024 Antonio Trande - 3.0.0-23 +- Fix patch commands + +* Mon Jan 22 2024 Fedora Release Engineering - 3.0.0-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 3.0.0-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 3.0.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Python Maint - 3.0.0-19 +- Rebuilt for Python 3.12 + +* Mon Feb 06 2023 Florian Weimer - 3.0.0-18 +- Fix C99 compatibility issue + +* Wed Jan 18 2023 Fedora Release Engineering - 3.0.0-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 3.0.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 3.0.0-15 +- Rebuilt for Python 3.11 + +* Wed Jan 19 2022 Fedora Release Engineering - 3.0.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Jan 04 2022 Antonio Trande - 3.0.0-13 +- Patched for Python-3.11 + +* Mon Nov 01 2021 Antonio Trande - 3.0.0-12 +- Re-enable tests + +* Mon Nov 01 2021 Antonio Trande - 3.0.0-11 +- Fix installation conflict of python package + +* Sun Oct 31 2021 Antonio Trande - 3.0.0-10 +- Compile from a new source archive + +* Wed Jul 21 2021 Fedora Release Engineering - 3.0.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 3.0.0-8 +- Rebuilt for Python 3.10 + +* Tue Jan 26 2021 Fedora Release Engineering - 3.0.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 01 2021 Antonio Trande - 3.0.0-6 +- Use cmake3 options + +* Sat Aug 01 2020 Fedora Release Engineering - 3.0.0-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 3.0.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jun 17 2020 Antonio Trande - 3.0.0-3 +- Use cmake3 macro + +* Wed Jun 17 2020 Antonio Trande - 3.0.0-2 +- Use cmake3 + +* Sun May 31 2020 Antonio Trande - 3.0.0-1 +- Release 3.0.0 + +* Tue May 26 2020 Miro HronĨok - 3.0.0-0.3.20200512gitdfb858d +- Rebuilt for Python 3.9 + +* Wed May 13 2020 Antonio Trande - 3.0.0-0.2.20200512gitdfb858d +- Fix release tag + +* Wed May 13 2020 Antonio Trande - 3.0.0-0.1.20200512.gitdfb858d +- Pre-release 3.0.0 (rhbz#1752306, rhbz#1799157) +- Add libs sub-package +- Add workaround for GCC-10 +- Use Python3 + +* Tue Jan 28 2020 Fedora Release Engineering - 1.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 1.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 1.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Sat May 19 2018 Tim Fenn - 1.5-1 - update to 1.5 diff --git a/sources b/sources index 5010b5a..2e522a3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (apbs-1.5.tar.gz) = 4a117054653a738082f9a25a35c5a0605a1f225e682ff57ed4393689aefe1beffe4fe2364c164d07eb524a26add002b50e29eb297d690494448dac1cef72634d +SHA512 (apbs-3.0.0.tar.gz) = 9107acf5fb591cd7a822dc3cb0be58b5d3142e85951585749068e748459bceb0c7503ecfd95b6b4370378d619c30aedb04f5e3ca5c1ad15683533171cb7208fb