git: 8a36560387ba - main - science/{,py-}gemmi: New ports: Macromolecular crystallography library and utilities
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 04 Oct 2022 01:35:38 UTC
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=8a36560387ba1080e185f6e3cd73e1cc45fddf2e commit 8a36560387ba1080e185f6e3cd73e1cc45fddf2e Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2022-10-04 01:34:24 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2022-10-04 01:35:25 +0000 science/{,py-}gemmi: New ports: Macromolecular crystallography library and utilities --- science/Makefile | 2 + science/gemmi/Makefile | 24 +++ science/gemmi/distinfo | 3 + science/gemmi/pkg-descr | 7 + science/gemmi/pkg-plist | 231 ++++++++++++++++++++++++++++ science/py-gemmi/Makefile | 29 ++++ science/py-gemmi/distinfo | 3 + science/py-gemmi/files/patch-CMakeLists.txt | 46 ++++++ science/py-gemmi/pkg-descr | 7 + 9 files changed, 352 insertions(+) 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.