Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This pull request fixes issue #?

* I confirm that I have merged the latest version of `devel` into this branch before issuing this pull request (e.g. by running `git pull origin devel`): [y/n]
* I confirm that I have added a changelog entry to the changelog (we will add a link to this PR as part of the review): [y/n]
* I confirm that I have permission to release this code under the LGPLv3+ license: [y/n]
* I confirm that I have permission to release this code under the MIT license (the Python API) or the LGPLv3+ license (everything else), as described in the `LICENSE` file: [y/n]

## If this introduces new functionality...

Expand All @@ -16,7 +16,7 @@ Changes proposed in this pull request:
* I confirm that I have added a test for any new functionality in this pull request: [y/n]
* I confirm that I have added documentation (e.g. a new tutorial page or detailed guide) for any new functionality in this pull request: [y/n]
* I confirm that I have added a changelog entry to the changelog (we will add a link to this PR as part of the review): [y/n]
* I confirm that I have permission to release this code under the LGPLv3+ license: [y/n]
* I confirm that I have permission to release this code under the MIT license (the Python API) or the LGPLv3+ license (everything else), as described in the `LICENSE` file: [y/n]

## Suggested reviewers:
@chryswoods, @lohedges
Expand Down
40 changes: 37 additions & 3 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,41 @@
Sire is licensed under the GNU Lesser General Public License, version 3
or (at your option) any later version. The LGPL is a set of additional
Sire is distributed under two licenses.

The Python API is licensed under the MIT License. This covers the Python
source in the src directory, plus the following files that implement the
OpenMM layer used by the Python API:

wrapper/Convert/SireOpenMM/_perturbablemol.py
wrapper/Convert/SireOpenMM/_sommcontext.py

Everything else, including the C++ libraries and their Python wrappers,
is licensed under the GNU Lesser General Public License, version 3 or
(at your option) any later version. The LGPL is a set of additional
permissions on top of the GNU General Public License, version 3, so the
full text of both licenses is included below.
full text of both licenses is included below, after the MIT License.

------------------------------------------------------------------------

MIT License

Copyright (c) The Sire contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

------------------------------------------------------------------------

Expand Down
20 changes: 20 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,26 @@ This is intended as a local development tweak only and shouldn't be committed,
since ``actions/generate_recipe.py`` reads the ``[dependencies]`` section when
generating the conda recipe, so the pin would also end up in our packages.

License
=======

Sire is distributed under two licenses:

* The Python API is licensed under the
`MIT License <https://opensource.org/license/mit>`__. This covers the
Python source in ``src/``, plus
``wrapper/Convert/SireOpenMM/_perturbablemol.py`` and
``wrapper/Convert/SireOpenMM/_sommcontext.py``. You are free to adapt,
extend, or include this code in your own projects, provided the copyright
and license notice is kept.
* Everything else, including the C++ libraries and their Python wrappers, is
licensed under the
`GNU Lesser General Public License, version 3 or later <https://www.gnu.org/licenses/lgpl-3.0.en.html>`__
(LGPLv3+). You can use Sire as a library from software under any license,
but changes to these parts of Sire must be shared under the LGPL.

See the `LICENSE <LICENSE>`__ file for the full terms.

Support and Development
=======================

Expand Down
2 changes: 1 addition & 1 deletion actions/generate_recipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ def generate_recipe(data, features, git_remote, git_branch, git_version, git_num
# About
lines.append("about:")
lines.append(" homepage: https://github.com/openbiosim/sire")
lines.append(" license: LGPL-3.0-or-later")
lines.append(" license: LGPL-3.0-or-later AND MIT")
lines.append(" license_file: LICENSE")
lines.append(' summary: "An advanced molecular modelling framework."')
lines.append(" repository: https://github.com/openbiosim/sire")
Expand Down
7 changes: 4 additions & 3 deletions doc/source/acknowledgements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,10 @@ which can be found below. The software will be installed automatically
as part of the installing the :mod:`sire` conda package, so you shouldn't
have to do anything yourself.

:mod:`sire` is itself distributed under the terms of the GNU Lesser
General Public License, version 3 or (at your option) any later version
(LGPLv3+). Some optional dependencies are licensed differently, e.g.
:mod:`sire` itself is distributed under the terms of the MIT License (the
Python API) and the GNU Lesser General Public License, version 3 or (at your
option) any later version (everything else). See the :doc:`license <license>`
page for details. Some optional dependencies are licensed differently, e.g.
`emle-engine <https://github.com/chemle/emle-engine>`__ (GPLv2), which is
conditionally imported for QM/MM calculations if it is installed. These are
not distributed with :mod:`sire` and are used under their own license terms.
Expand Down
4 changes: 4 additions & 0 deletions doc/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ organisation on `GitHub <https://github.com/openbiosim/sire>`__.

* Fixed reading a DCD frame reading the coordinates, space and time from the file twice.

* Relicensed the Python API, i.e. the Python source in ``src`` and the two Python files in
``wrapper/Convert/SireOpenMM`` that implement its OpenMM layer, from the LGPLv3+ to the MIT
License. The rest of :mod:`sire` remains LGPLv3+.

`2026.2.0 <https://github.com/openbiosim/sire/compare/2026.1.0...2026.2.0>`__ - September 2026
----------------------------------------------------------------------------------------------

Expand Down
8 changes: 8 additions & 0 deletions doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,14 @@ Changelog

changelog

License
=======

.. toctree::
:maxdepth: 1

license

Acknowledgements
================
.. toctree::
Expand Down
24 changes: 24 additions & 0 deletions doc/source/license.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
=======
License
=======

:mod:`sire` is distributed under two licenses:

* The Python API is licensed under the
`MIT License <https://opensource.org/license/mit>`__. This covers the
Python source in ``src/``, plus
``wrapper/Convert/SireOpenMM/_perturbablemol.py`` and
``wrapper/Convert/SireOpenMM/_sommcontext.py``. You are free to adapt,
extend, or include this code in your own projects, provided the copyright
and license notice is kept.
* Everything else, including the C++ libraries and their Python wrappers, is
licensed under the
`GNU Lesser General Public License, version 3 or later <https://www.gnu.org/licenses/lgpl-3.0.en.html>`__
(LGPLv3+). You can use :mod:`sire` as a library from software under any
license, but changes to these parts of :mod:`sire` must be shared under the
LGPL.

The full terms are in the
`LICENSE <https://github.com/OpenBioSim/sire/blob/main/LICENSE>`__ file.
Details of the licenses of the third party software that :mod:`sire` depends
on can be found in the :doc:`acknowledgements <acknowledgements>`.
40 changes: 37 additions & 3 deletions recipes/sire/LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,41 @@
Sire is licensed under the GNU Lesser General Public License, version 3
or (at your option) any later version. The LGPL is a set of additional
Sire is distributed under two licenses.

The Python API is licensed under the MIT License. This covers the Python
source in the src directory, plus the following files that implement the
OpenMM layer used by the Python API:

wrapper/Convert/SireOpenMM/_perturbablemol.py
wrapper/Convert/SireOpenMM/_sommcontext.py

Everything else, including the C++ libraries and their Python wrappers,
is licensed under the GNU Lesser General Public License, version 3 or
(at your option) any later version. The LGPL is a set of additional
permissions on top of the GNU General Public License, version 3, so the
full text of both licenses is included below.
full text of both licenses is included below, after the MIT License.

------------------------------------------------------------------------

MIT License

Copyright (c) The Sire contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

------------------------------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,7 @@ def install(ncores: int = 1, npycores: int = 1):
"build_number": 0,
"channel": "local",
"size": 0,
"license": "LGPL-3.0-or-later",
"license": "LGPL-3.0-or-later AND MIT",
"subdir": platform_string,
}
metadata_file = os.path.join(
Expand Down
2 changes: 2 additions & 0 deletions src/sire/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

from . import config

import os as _os
Expand Down
2 changes: 2 additions & 0 deletions src/sire/_colname.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["colname", "colnames"]

_col_funcs = None
Expand Down
2 changes: 2 additions & 0 deletions src/sire/_lazy_import.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

"""
A minimal, standard-library-only replacement for the third-party
`lazy_import` package (GPLv3), used to defer importing submodules until
Expand Down
2 changes: 2 additions & 0 deletions src/sire/_load.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

from typing import Union as _Union
from typing import List as _List

Expand Down
2 changes: 2 additions & 0 deletions src/sire/_match.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["match_atoms"]


Expand Down
2 changes: 2 additions & 0 deletions src/sire/_measure.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["measure", "minimum_distance"]


Expand Down
2 changes: 2 additions & 0 deletions src/sire/_parallel.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"get_max_num_threads",
"set_default_num_threads",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/_pythonize.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["use_old_api", "use_new_api", "use_mixed_api"]


Expand Down
2 changes: 2 additions & 0 deletions src/sire/analysis/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = []

# Need to import the module to pythonize it
Expand Down
2 changes: 2 additions & 0 deletions src/sire/base/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"create_map",
"wrap",
Expand Down
3 changes: 2 additions & 1 deletion src/sire/base/_pagecache.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["PageCache"]

from ..legacy.Base import PageCache
Expand All @@ -24,7 +26,6 @@ def __fetch__(obj):
"""
Fetch the object from the cache and return it
"""
from ..legacy.Qt import QByteArray
from pickle import loads

data = obj.__orig__fetch__()
Expand Down
2 changes: 2 additions & 0 deletions src/sire/base/_progressbar.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["ProgressBar"]

from ..legacy.Base import ProgressBar as _ProgressBar
Expand Down
2 changes: 2 additions & 0 deletions src/sire/cas/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["Expression", "lam", "Symbol", "x", "y", "LambdaSchedule"]

from ..legacy import CAS as _CAS
Expand Down
2 changes: 2 additions & 0 deletions src/sire/cluster/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = []

# Need to import so it is pythonized
Expand Down
2 changes: 2 additions & 0 deletions src/sire/config/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"binary_directory",
"include_directory",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/convert/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"biosimspace_to_sire",
"gemmi_to_sire",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/convert/openmm/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"LambdaLever",
"OpenMMMetaData",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/convert/openmm/_pme.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["tune_pme"]


Expand Down
2 changes: 2 additions & 0 deletions src/sire/error/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"disable_backtrace_exceptions",
"enable_backtrace_exceptions",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/ff/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = []

# Need to import so the module is pythonized
Expand Down
2 changes: 2 additions & 0 deletions src/sire/id/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["CaseInsensitive", "CaseSensitive"]

from ..legacy import ID as _ID
Expand Down
2 changes: 2 additions & 0 deletions src/sire/io/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = ["get_coords_array", "resolve_path"]

from ..legacy import IO as _IO
Expand Down
2 changes: 2 additions & 0 deletions src/sire/io/parser/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"DCD",
"G87",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/maths/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"align",
"create_quaternion",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/maths/_sphere.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

from ..legacy.Maths import Sphere as _Sphere


Expand Down
2 changes: 2 additions & 0 deletions src/sire/maths/_vector.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

from ..legacy.Maths import Vector as _Vector


Expand Down
2 changes: 2 additions & 0 deletions src/sire/mm/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"AmberBond",
"AmberAngle",
Expand Down
2 changes: 2 additions & 0 deletions src/sire/mol/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT

__all__ = [
"get_alignment",
"is_water",
Expand Down
Loading
Loading