Dear APBS users --

We are pleased to announce the release of APBS 1.4.  This version of APBS includes a massive rewrite to eliminate FORTRAN from the software code base to improve portability and facilitate planned optimization and parallelization activities.  Furthermore, the build system for APBS has been changed from Autotools to CMake.  This change enables easier extension and maintenance while reducing the overhead of build scripts and configuration files.  A more detailed list of changes is provided below.

Starting with this release, we have created separate installation packages for the APBS binaries, examples, and documentation.  This change is in response to user requests and recognition of the large size of the examples and documentation directories.

Another feature of this release is the ability to build shared libraries instead of static libraries.  This allows increased portability and access to the routines in APBS.

As usual, APBS can be freely downloaded from http://www.poissonboltzmann.org/apbs/downloads.

Thank you for your continued support of APBS.

Sincerely,

The APBS Development Team

#####################################################################
Please see http://www.poissonboltzmann.org/apbs/release-history for the complete change log

# These are notes for the current version of APBS
* Removed FORTRAN dependency from APBS
    - Direct line by line translation of all source from contrib/pmgZ
    - Functions replaced and tested incrementally to ensure code congruence
    - Created new subfolder src/pmgc for translated pmg library
    - Created new macros for 2d, 3d matrix access
        > In src/generic/vmatrix.h
        > Simulate native FORTRAN 2 and 3 dimensional arrays
        > Use 1-indexed, column-major ordering
        > Allowed direct 1-1 translation from FORTRAN to ensurre code congruence
* Added additional debugging and output macros to src/generic/vhal.h
    - Added message, error message, assertion, warning, and abort macros
    - Macro behavior modified by enabling debug mode during build
        > Non-error messages directed to stderr in debug, io.mc otherwise
        > All error messages are directed to stdout
        > In debug mode, verbose location information is provided
* Added additional capabilities during configure stage
    - FETK_PATH
        > Specifies location of fetk libraries
        > Used for Finite Element builds
        > Used to search for external maloc library
    - BUILD_DOC
        > Allows optional generation of documentation (requires doxygen)
    - BUILD_TOOLS
        > Allows optional compilation of APBS supplemental tools
    - ENABLE_DEBUG
        > Eliminates compilation optimization
        > Includes line number and file information in warnings / debug messages
    - ENABLE_VERBOSE_DEBUG
        > Prints too much debugging information for functions
* Transitioned to git version control from subversion
    - Code is still hosted on sourceforge
    - Past revision information also converted to git
    - Repository for Read/Write maintenance located:
      ssh://tuckerbeck@apbs.git.sourceforge.net/gitroot/apbs/apbs 
    - Repository for Read-only access located:
      git://apbs.git.sourceforge.net/gitroot/apbs/apbs
* Converted build system from Automake to CMake
    - All autotools configuration/build files and directories removed
        > Makefile.am, Makefile.im, configure.ac, config/, etc
    - Converted functionality to CMake native scripts
        > CMakeLists.txt
    - Converted contributed maloc module to CMake as well
        > Source bundled as a tarball in contrib/
        > If maloc is not detected on the system during configuration:
            ~ contrib/maloc.tar.gz is extracted and built
            ~ libmaloc.so installed with apbs during install
    - Removed extraneous bundled libraries from contrib
        > pmgZ/
            ~ Replaced by conversion of fortran and inclusion of src/pmgc
            ~ Now native to APBS
        > blas/
            ~ Originally used to bundle routines for fortran code
            ~ Functionality now utilized by linking against native blas library
        > zlib/
            ~ Necessary for APBS to read from zipped input files
            ~ zlib functionality is optional.  Enabled at configure time
            ~ If enabled, configure searches for external zlib
            ~ The zlib library is easily obtained for any platform, so inclusion
              in contrib deemed unneccessary.
        > opal/
            ~ Necessary for web based interface
            ~ Opal interface is experimental, not fully supported
            ~ Further work is scheduled for web interface and refactoring
            ~ If needed, dependencies are left to user to acquire/install
    - If requested, documentation is built using Doxygen at build time
    - All libraries are now built as shared by default istead of static
    - Added build subfolder.  It is recommended to run cmake from this subfolder
* Minor refactor of code structure
    - APBS components built as independent shared libraries
        > subfolders in src each built as a shared library
            ~ src/generic --> libapbs_generic
            ~ src/fem     --> libapbs_fem
            ~ src/mg      --> libapbs_mg
            ~ src/pmgc    --> libapbs_pmgc
        > Libraries deployed at install time to selected install prefix/lib
    - APBS header files moved into directories with source files
        > "apbs" no longer used as prefix within apbs code
        > Include paths within APBS require inclusion of library name
            ~ #include "apbs/vhal.h"  -->  #include "generic/vhal.h"
        > Include paths external to APBS requre inclusion of "abps" and library
            ~ #include "apbs/vhal.h"  -->  #include "apbs/generic/vhal.h"
    - All source files moved out of bin folder
        > The bin folder will now hold only compiled binaries
        > Source files from bin have been moved to src/
        > apbs.c renamed to main.c
* Major refactor of examples & test structure
    - Scattered test scripts unified into a single test program
    - Added a tests/ subfolder
        > Rewrote tests in python.  Test program is tests/apbs_tester.py
        > APBS inputs and expected results described in tests/test_cases.cfg
        > Individual tests run by specifying their names on the command line
          $ python apbs_tester.py -t actin-dimer
    - Removed all scripts from examples/ subfolder
        > Eliminated scattered test.sh, runme.sh scripts
        > Removed autotools and Makefile* scripts
    - The examples/ subfolder now includes only example APBS inputs and pdb/pqr
    - Future tests may be added simply by modifying tests/test_cases.cfg
* Install bundle modified slightly
    - Install prefix specified during CMake configuration stage
      apbs/build$ cmake .. -DCMAKE_INSTALL_PREFIX=prefix
    - APBS libraries are installed to prefix/lib/
    - If contrib/maloc was required, it is installed to prefix/lib
    - APBS binaries are installed to prefix/bin/
    - APBS includes are installed to prefix/include/apbs/
    - doc, examples, tets, tools installed to prefix/share/apbs/
 
#####################################################################

