aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2022-10-04 01:34:24 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2022-10-04 01:35:25 +0000
commit8a36560387ba1080e185f6e3cd73e1cc45fddf2e (patch)
treea2f3f9515eb01033242b8290a9c769f877444ce3
parent742c1c0610e0154cf6625a013961beacb72077bd (diff)
downloadports-8a36560387ba1080e185f6e3cd73e1cc45fddf2e.tar.gz
ports-8a36560387ba1080e185f6e3cd73e1cc45fddf2e.zip
science/{,py-}gemmi: New ports: Macromolecular crystallography library and utilities
-rw-r--r--science/Makefile2
-rw-r--r--science/gemmi/Makefile24
-rw-r--r--science/gemmi/distinfo3
-rw-r--r--science/gemmi/pkg-descr7
-rw-r--r--science/gemmi/pkg-plist231
-rw-r--r--science/py-gemmi/Makefile29
-rw-r--r--science/py-gemmi/distinfo3
-rw-r--r--science/py-gemmi/files/patch-CMakeLists.txt46
-rw-r--r--science/py-gemmi/pkg-descr7
9 files changed, 352 insertions, 0 deletions
diff --git a/science/Makefile b/science/Makefile
index 867b6c39971c..58336e34e8a4 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -98,6 +98,7 @@
SUBDIR += gbtolib
SUBDIR += gchemutils
SUBDIR += gdma
+ SUBDIR += gemmi
SUBDIR += getdp
SUBDIR += ghemical
SUBDIR += ghmm
@@ -303,6 +304,7 @@
SUBDIR += py-eccodes
SUBDIR += py-esda
SUBDIR += py-fresnel
+ SUBDIR += py-gemmi
SUBDIR += py-geolinks
SUBDIR += py-geomet
SUBDIR += py-geometer
diff --git a/science/gemmi/Makefile b/science/gemmi/Makefile
new file mode 100644
index 000000000000..584b8a9b14fc
--- /dev/null
+++ b/science/gemmi/Makefile
@@ -0,0 +1,24 @@
+PORTNAME= gemmi
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.5.7
+CATEGORIES= science
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Macromolecular crystallography library and utilities
+WWW= https://gemmi.readthedocs.io/en/latest/
+
+LICENSE= MPL20
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+USES= cmake:testing compiler:c++17-lang # tests don't run, see https://github.com/project-gemmi/gemmi/issues/231
+
+USE_GITHUB= yes
+GH_ACCOUNT= project-gemmi
+
+OPTIONS_DEFINE= FORTRAN
+
+FORTRAN_USES= fortran
+FORTRAN_CMAKE_BOOL= USE_FORTRAN
+FORTRAN_BROKEN= project option doesn't do anything, see https://github.com/project-gemmi/gemmi/issues/232
+
+.include <bsd.port.mk>
diff --git a/science/gemmi/distinfo b/science/gemmi/distinfo
new file mode 100644
index 000000000000..dc0844f594ee
--- /dev/null
+++ b/science/gemmi/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1664834213
+SHA256 (project-gemmi-gemmi-v0.5.7_GH0.tar.gz) = dede98c52920dac4a86dd77f38daa20bc8a1449ce16833815f5b563f4e8384a0
+SIZE (project-gemmi-gemmi-v0.5.7_GH0.tar.gz) = 1677695
diff --git a/science/gemmi/pkg-descr b/science/gemmi/pkg-descr
new file mode 100644
index 000000000000..2b26292904f3
--- /dev/null
+++ b/science/gemmi/pkg-descr
@@ -0,0 +1,7 @@
+Gemmi is a library, accompanied by a set of programs, developed primarily for
+use in macromolecular crystallography (MX). For working with:
+* macromolecular models (content of PDB, PDBx/mmCIF and mmJSON files),
+* refinement restraints (CIF files),
+* reflection data (MTZ and mmCIF formats),
+* data on a 3D grid (electron density maps, masks, MRC/CCP4 format)
+* crystallographic symmetry.
diff --git a/science/gemmi/pkg-plist b/science/gemmi/pkg-plist
new file mode 100644
index 000000000000..df1ef9df2ca2
--- /dev/null
+++ b/science/gemmi/pkg-plist
@@ -0,0 +1,231 @@
+bin/gemmi
+include/gemmi/addends.hpp
+include/gemmi/align.hpp
+include/gemmi/assembly.hpp
+include/gemmi/asudata.hpp
+include/gemmi/asumask.hpp
+include/gemmi/atof.hpp
+include/gemmi/atox.hpp
+include/gemmi/bessel.hpp
+include/gemmi/binner.hpp
+include/gemmi/blob.hpp
+include/gemmi/c4322.hpp
+include/gemmi/calculate.hpp
+include/gemmi/ccp4.hpp
+include/gemmi/cellred.hpp
+include/gemmi/chemcomp.hpp
+include/gemmi/chemcomp_xyz.hpp
+include/gemmi/cif.hpp
+include/gemmi/cif2mtz.hpp
+include/gemmi/cifdoc.hpp
+include/gemmi/contact.hpp
+include/gemmi/crd.hpp
+include/gemmi/dencalc.hpp
+include/gemmi/dirwalk.hpp
+include/gemmi/eig3.hpp
+include/gemmi/elem.hpp
+include/gemmi/enumstr.hpp
+include/gemmi/fail.hpp
+include/gemmi/fileutil.hpp
+include/gemmi/floodfill.hpp
+include/gemmi/formfact.hpp
+include/gemmi/fourier.hpp
+include/gemmi/fprime.hpp
+include/gemmi/fstream.hpp
+include/gemmi/grid.hpp
+include/gemmi/gz.hpp
+include/gemmi/input.hpp
+include/gemmi/interop.hpp
+include/gemmi/it92.hpp
+include/gemmi/iterator.hpp
+include/gemmi/json.hpp
+include/gemmi/levmar.hpp
+include/gemmi/linkhunt.hpp
+include/gemmi/math.hpp
+include/gemmi/merge.hpp
+include/gemmi/metadata.hpp
+include/gemmi/mmcif.hpp
+include/gemmi/mmcif_impl.hpp
+include/gemmi/mmread.hpp
+include/gemmi/model.hpp
+include/gemmi/modify.hpp
+include/gemmi/monlib.hpp
+include/gemmi/mtz.hpp
+include/gemmi/mtz2cif.hpp
+include/gemmi/neighbor.hpp
+include/gemmi/neutron92.hpp
+include/gemmi/numb.hpp
+include/gemmi/pdb.hpp
+include/gemmi/pirfasta.hpp
+include/gemmi/placeh.hpp
+include/gemmi/polyheur.hpp
+include/gemmi/qcp.hpp
+include/gemmi/read_cif.hpp
+include/gemmi/read_coor.hpp
+include/gemmi/read_map.hpp
+include/gemmi/recgrid.hpp
+include/gemmi/reciproc.hpp
+include/gemmi/refln.hpp
+include/gemmi/reindex.hpp
+include/gemmi/remarks.hpp
+include/gemmi/resinfo.hpp
+include/gemmi/scaling.hpp
+include/gemmi/select.hpp
+include/gemmi/seqalign.hpp
+include/gemmi/seqid.hpp
+include/gemmi/sfcalc.hpp
+include/gemmi/small.hpp
+include/gemmi/smcif.hpp
+include/gemmi/solmask.hpp
+include/gemmi/span.hpp
+include/gemmi/sprintf.hpp
+include/gemmi/symmetry.hpp
+include/gemmi/third_party/fast_float.h
+include/gemmi/third_party/pocketfft_hdronly.h
+include/gemmi/third_party/sajson.h
+include/gemmi/third_party/stb_sprintf.h
+include/gemmi/third_party/tao/LICENSE
+include/gemmi/third_party/tao/NOTES
+include/gemmi/third_party/tao/pegtl.hpp
+include/gemmi/third_party/tao/pegtl/analysis/analyze_cycles.hpp
+include/gemmi/third_party/tao/pegtl/analysis/counted.hpp
+include/gemmi/third_party/tao/pegtl/analysis/generic.hpp
+include/gemmi/third_party/tao/pegtl/analysis/grammar_info.hpp
+include/gemmi/third_party/tao/pegtl/analysis/insert_guard.hpp
+include/gemmi/third_party/tao/pegtl/analysis/insert_rules.hpp
+include/gemmi/third_party/tao/pegtl/analysis/rule_info.hpp
+include/gemmi/third_party/tao/pegtl/analysis/rule_type.hpp
+include/gemmi/third_party/tao/pegtl/analyze.hpp
+include/gemmi/third_party/tao/pegtl/apply_mode.hpp
+include/gemmi/third_party/tao/pegtl/argv_input.hpp
+include/gemmi/third_party/tao/pegtl/ascii.hpp
+include/gemmi/third_party/tao/pegtl/buffer_input.hpp
+include/gemmi/third_party/tao/pegtl/config.hpp
+include/gemmi/third_party/tao/pegtl/cstream_input.hpp
+include/gemmi/third_party/tao/pegtl/eol.hpp
+include/gemmi/third_party/tao/pegtl/eol_pair.hpp
+include/gemmi/third_party/tao/pegtl/file_input.hpp
+include/gemmi/third_party/tao/pegtl/input_error.hpp
+include/gemmi/third_party/tao/pegtl/internal/action.hpp
+include/gemmi/third_party/tao/pegtl/internal/action_input.hpp
+include/gemmi/third_party/tao/pegtl/internal/alnum.hpp
+include/gemmi/third_party/tao/pegtl/internal/alpha.hpp
+include/gemmi/third_party/tao/pegtl/internal/any.hpp
+include/gemmi/third_party/tao/pegtl/internal/apply.hpp
+include/gemmi/third_party/tao/pegtl/internal/apply0.hpp
+include/gemmi/third_party/tao/pegtl/internal/apply0_single.hpp
+include/gemmi/third_party/tao/pegtl/internal/apply_single.hpp
+include/gemmi/third_party/tao/pegtl/internal/at.hpp
+include/gemmi/third_party/tao/pegtl/internal/bof.hpp
+include/gemmi/third_party/tao/pegtl/internal/bol.hpp
+include/gemmi/third_party/tao/pegtl/internal/bump_help.hpp
+include/gemmi/third_party/tao/pegtl/internal/bump_impl.hpp
+include/gemmi/third_party/tao/pegtl/internal/bytes.hpp
+include/gemmi/third_party/tao/pegtl/internal/control.hpp
+include/gemmi/third_party/tao/pegtl/internal/cr_crlf_eol.hpp
+include/gemmi/third_party/tao/pegtl/internal/cr_eol.hpp
+include/gemmi/third_party/tao/pegtl/internal/crlf_eol.hpp
+include/gemmi/third_party/tao/pegtl/internal/cstream_reader.hpp
+include/gemmi/third_party/tao/pegtl/internal/cstring_reader.hpp
+include/gemmi/third_party/tao/pegtl/internal/demangle.hpp
+include/gemmi/third_party/tao/pegtl/internal/demangle_cxxabi.hpp
+include/gemmi/third_party/tao/pegtl/internal/demangle_nop.hpp
+include/gemmi/third_party/tao/pegtl/internal/demangle_sanitise.hpp
+include/gemmi/third_party/tao/pegtl/internal/disable.hpp
+include/gemmi/third_party/tao/pegtl/internal/discard.hpp
+include/gemmi/third_party/tao/pegtl/internal/dusel_mode.hpp
+include/gemmi/third_party/tao/pegtl/internal/duseltronik.hpp
+include/gemmi/third_party/tao/pegtl/internal/enable.hpp
+include/gemmi/third_party/tao/pegtl/internal/endian.hpp
+include/gemmi/third_party/tao/pegtl/internal/endian_gcc.hpp
+include/gemmi/third_party/tao/pegtl/internal/endian_win.hpp
+include/gemmi/third_party/tao/pegtl/internal/eof.hpp
+include/gemmi/third_party/tao/pegtl/internal/eol.hpp
+include/gemmi/third_party/tao/pegtl/internal/eolf.hpp
+include/gemmi/third_party/tao/pegtl/internal/file_mapper.hpp
+include/gemmi/third_party/tao/pegtl/internal/file_opener.hpp
+include/gemmi/third_party/tao/pegtl/internal/file_reader.hpp
+include/gemmi/third_party/tao/pegtl/internal/has_apply.hpp
+include/gemmi/third_party/tao/pegtl/internal/has_apply0.hpp
+include/gemmi/third_party/tao/pegtl/internal/identifier.hpp
+include/gemmi/third_party/tao/pegtl/internal/if_apply.hpp
+include/gemmi/third_party/tao/pegtl/internal/if_must.hpp
+include/gemmi/third_party/tao/pegtl/internal/if_must_else.hpp
+include/gemmi/third_party/tao/pegtl/internal/if_then_else.hpp
+include/gemmi/third_party/tao/pegtl/internal/input_pair.hpp
+include/gemmi/third_party/tao/pegtl/internal/integer_sequence.hpp
+include/gemmi/third_party/tao/pegtl/internal/istream_reader.hpp
+include/gemmi/third_party/tao/pegtl/internal/istring.hpp
+include/gemmi/third_party/tao/pegtl/internal/iterator.hpp
+include/gemmi/third_party/tao/pegtl/internal/lf_crlf_eol.hpp
+include/gemmi/third_party/tao/pegtl/internal/lf_eol.hpp
+include/gemmi/third_party/tao/pegtl/internal/list.hpp
+include/gemmi/third_party/tao/pegtl/internal/list_must.hpp
+include/gemmi/third_party/tao/pegtl/internal/list_tail.hpp
+include/gemmi/third_party/tao/pegtl/internal/list_tail_pad.hpp
+include/gemmi/third_party/tao/pegtl/internal/marker.hpp
+include/gemmi/third_party/tao/pegtl/internal/minus.hpp
+include/gemmi/third_party/tao/pegtl/internal/must.hpp
+include/gemmi/third_party/tao/pegtl/internal/not_at.hpp
+include/gemmi/third_party/tao/pegtl/internal/one.hpp
+include/gemmi/third_party/tao/pegtl/internal/opt.hpp
+include/gemmi/third_party/tao/pegtl/internal/pad.hpp
+include/gemmi/third_party/tao/pegtl/internal/pad_opt.hpp
+include/gemmi/third_party/tao/pegtl/internal/peek_char.hpp
+include/gemmi/third_party/tao/pegtl/internal/peek_utf16.hpp
+include/gemmi/third_party/tao/pegtl/internal/peek_utf32.hpp
+include/gemmi/third_party/tao/pegtl/internal/peek_utf8.hpp
+include/gemmi/third_party/tao/pegtl/internal/pegtl_string.hpp
+include/gemmi/third_party/tao/pegtl/internal/plus.hpp
+include/gemmi/third_party/tao/pegtl/internal/raise.hpp
+include/gemmi/third_party/tao/pegtl/internal/range.hpp
+include/gemmi/third_party/tao/pegtl/internal/ranges.hpp
+include/gemmi/third_party/tao/pegtl/internal/rep.hpp
+include/gemmi/third_party/tao/pegtl/internal/rep_min.hpp
+include/gemmi/third_party/tao/pegtl/internal/rep_min_max.hpp
+include/gemmi/third_party/tao/pegtl/internal/rep_opt.hpp
+include/gemmi/third_party/tao/pegtl/internal/require.hpp
+include/gemmi/third_party/tao/pegtl/internal/result_on_found.hpp
+include/gemmi/third_party/tao/pegtl/internal/rule_conjunction.hpp
+include/gemmi/third_party/tao/pegtl/internal/rules.hpp
+include/gemmi/third_party/tao/pegtl/internal/seq.hpp
+include/gemmi/third_party/tao/pegtl/internal/skip_control.hpp
+include/gemmi/third_party/tao/pegtl/internal/sor.hpp
+include/gemmi/third_party/tao/pegtl/internal/star.hpp
+include/gemmi/third_party/tao/pegtl/internal/star_must.hpp
+include/gemmi/third_party/tao/pegtl/internal/state.hpp
+include/gemmi/third_party/tao/pegtl/internal/string.hpp
+include/gemmi/third_party/tao/pegtl/internal/trivial.hpp
+include/gemmi/third_party/tao/pegtl/internal/try_catch_type.hpp
+include/gemmi/third_party/tao/pegtl/internal/until.hpp
+include/gemmi/third_party/tao/pegtl/istream_input.hpp
+include/gemmi/third_party/tao/pegtl/memory_input.hpp
+include/gemmi/third_party/tao/pegtl/mmap_input.hpp
+include/gemmi/third_party/tao/pegtl/normal.hpp
+include/gemmi/third_party/tao/pegtl/nothing.hpp
+include/gemmi/third_party/tao/pegtl/parse.hpp
+include/gemmi/third_party/tao/pegtl/parse_error.hpp
+include/gemmi/third_party/tao/pegtl/position.hpp
+include/gemmi/third_party/tao/pegtl/read_input.hpp
+include/gemmi/third_party/tao/pegtl/rewind_mode.hpp
+include/gemmi/third_party/tao/pegtl/rules.hpp
+include/gemmi/third_party/tao/pegtl/string_input.hpp
+include/gemmi/third_party/tao/pegtl/tracking_mode.hpp
+include/gemmi/third_party/tao/pegtl/utf16.hpp
+include/gemmi/third_party/tao/pegtl/utf32.hpp
+include/gemmi/third_party/tao/pegtl/utf8.hpp
+include/gemmi/third_party/tao/pegtl/version.hpp
+include/gemmi/third_party/tinydir.h
+include/gemmi/to_chemcomp.hpp
+include/gemmi/to_cif.hpp
+include/gemmi/to_json.hpp
+include/gemmi/to_mmcif.hpp
+include/gemmi/to_mmdb.hpp
+include/gemmi/to_pdb.hpp
+include/gemmi/topo.hpp
+include/gemmi/twin.hpp
+include/gemmi/unitcell.hpp
+include/gemmi/utf.hpp
+include/gemmi/util.hpp
+include/gemmi/version.hpp
+include/gemmi/xds_ascii.hpp
diff --git a/science/py-gemmi/Makefile b/science/py-gemmi/Makefile
new file mode 100644
index 000000000000..15f4946eaa81
--- /dev/null
+++ b/science/py-gemmi/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= gemmi
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.5.7
+CATEGORIES= science
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Macromolecular crystallography library and utilities
+WWW= https://gemmi.readthedocs.io/en/latest/
+
+LICENSE= MPL20
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \
+ pybind11>=2.6:devel/pybind11
+
+USES= cmake compiler:c++17-lang python
+
+USE_GITHUB= yes
+GH_ACCOUNT= project-gemmi
+
+CMAKE_ON= USE_PYTHON
+
+PLIST_FILES= ${PYTHON_SITELIBDIR}/gemmi${PYTHON_EXT_SUFFIX}.so
+
+do-test:
+ @cd ${WRKSRC} && ${PYTHON_CMD} -m unittest discover -v tests/
+
+.include <bsd.port.mk>
diff --git a/science/py-gemmi/distinfo b/science/py-gemmi/distinfo
new file mode 100644
index 000000000000..dc0844f594ee
--- /dev/null
+++ b/science/py-gemmi/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1664834213
+SHA256 (project-gemmi-gemmi-v0.5.7_GH0.tar.gz) = dede98c52920dac4a86dd77f38daa20bc8a1449ce16833815f5b563f4e8384a0
+SIZE (project-gemmi-gemmi-v0.5.7_GH0.tar.gz) = 1677695
diff --git a/science/py-gemmi/files/patch-CMakeLists.txt b/science/py-gemmi/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..74cb0c82e534
--- /dev/null
+++ b/science/py-gemmi/files/patch-CMakeLists.txt
@@ -0,0 +1,46 @@
+--- CMakeLists.txt.orig 2022-09-21 17:17:09 UTC
++++ CMakeLists.txt
+@@ -274,6 +274,7 @@ add_executable(gemmi-wcn EXCLUDE_FROM_ALL $<TARGET_OBJ
+ src/wcn.cpp $<TARGET_OBJECTS:input>)
+ support_gz(gemmi-wcn)
+
++if (FALSE)
+ add_executable(program
+ src/align.cpp src/blobs.cpp
+ src/cif2mtz.cpp src/cif2json.cpp src/contact.cpp
+@@ -290,15 +291,16 @@ add_executable(program
+ $<TARGET_OBJECTS:options>)
+ support_gz(program)
+ target_compile_definitions(program PRIVATE GEMMI_ALL_IN_ONE=1)
+-set_target_properties(program PROPERTIES OUTPUT_NAME gemmi)
++#set_target_properties(program PROPERTIES OUTPUT_NAME gemmi)
+ if (WIN32 AND USE_WMAIN)
+ # _UNICODE=1 is now set globally
+- #target_compile_definitions(program PRIVATE _UNICODE=1)
++ target_compile_definitions(program PRIVATE _UNICODE=1)
+ if(MINGW)
+ # target_link_options were added in cmake 3.13
+ set_target_properties(program PROPERTIES LINK_FLAGS "-municode")
+ endif()
+ endif()
++endif()
+
+ ### tests and examples ###
+
+@@ -416,12 +418,12 @@ else()
+ message(STATUS "Skipping Python module. Add -D USE_PYTHON=1 to build it.")
+ endif()
+
+-install(TARGETS program DESTINATION bin)
+-install(DIRECTORY include/gemmi DESTINATION include)
++#install(TARGETS program DESTINATION bin)
++#install(DIRECTORY include/gemmi DESTINATION include)
+ if (USE_PYTHON AND DEFINED PYTHON_INSTALL_DIR)
+ install(TARGETS py DESTINATION ${PYTHON_INSTALL_DIR})
+- install(DIRECTORY examples/ DESTINATION ${PYTHON_INSTALL_DIR}/gemmi-examples
+- FILES_MATCHING PATTERN "*.py")
++ #install(DIRECTORY examples/ DESTINATION ${PYTHON_INSTALL_DIR}/gemmi-examples
++ # FILES_MATCHING PATTERN "*.py")
+ if (INSTALL_EGG_INFO)
+ install(CODE
+ "execute_process(COMMAND \"${PYTHON_EXECUTABLE}\" setup.py install_egg_info --install-dir \"\$ENV{DESTDIR}${PYTHON_INSTALL_DIR}\"
diff --git a/science/py-gemmi/pkg-descr b/science/py-gemmi/pkg-descr
new file mode 100644
index 000000000000..2b26292904f3
--- /dev/null
+++ b/science/py-gemmi/pkg-descr
@@ -0,0 +1,7 @@
+Gemmi is a library, accompanied by a set of programs, developed primarily for
+use in macromolecular crystallography (MX). For working with:
+* macromolecular models (content of PDB, PDBx/mmCIF and mmJSON files),
+* refinement restraints (CIF files),
+* reflection data (MTZ and mmCIF formats),
+* data on a 3D grid (electron density maps, masks, MRC/CCP4 format)
+* crystallographic symmetry.