diff --git a/CHANGELOG.md b/CHANGELOG.md index e94081e..2feee1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## [UNRELEASED] · YYYY-MM-DD +### 🔧 Fixed +- Fix `xdf.h`/`xdf.cpp` license headers that still said GPL-3.0 despite the project being BSD-2-Clause since 2020, and add `THIRD-PARTY-NOTICES.md` documenting the separate licenses of bundled smarc (LGPL-3.0) and pugixml (MIT) ([#65](https://github.com/xdf-modules/libxdf/pull/65) by [Clemens Brunner](https://github.com/cbrnr)) + ## [1.0.3] · 2026-07-14 ### 🔧 Fixed - `libxdfConfig.cmake` no longer unconditionally requires system `pugixml` for library consumers ([#64](https://github.com/xdf-modules/libxdf/pull/64) by [Clemens Brunner](https://github.com/cbrnr)) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bf30f4..b1460e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,6 +84,13 @@ install( COMPONENT ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) +install( + FILES + ${CMAKE_CURRENT_LIST_DIR}/LICENSE + ${CMAKE_CURRENT_LIST_DIR}/THIRD-PARTY-NOTICES.md + COMPONENT ${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${PROJECT_NAME} +) set(CPACK_PACKAGE_CONTACT "yida.lin@outlook.com") if(APPLE) diff --git a/README.md b/README.md index e91360d..4f0e542 100644 --- a/README.md +++ b/README.md @@ -86,3 +86,8 @@ If you use libXDF in your project, please consider citing the following [confere > Yida Lin, Clemens Brunner, Paul Sajda and Josef Faller. *SigViewer: Visualizing Multimodal Signals Stored in XDF (Extensible Data Format) Files.* The 39th Annual International Conference of the IEEE Engineering in Medicine and Biology Society. LibXDF depends on third party libraries [pugixml](http://pugixml.org/) for XML parsing and [Smarc](http://audio-smarc.sourceforge.net/) for resampling. + + +## License + +LibXDF's own source code is licensed under the [BSD 2-Clause License](LICENSE). See [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) for details on the bundled third-party libraries. diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md new file mode 100644 index 0000000..9c5d336 --- /dev/null +++ b/THIRD-PARTY-NOTICES.md @@ -0,0 +1,31 @@ +# Third-party notices + +libxdf's own source code is distributed under the BSD 2-Clause License (see +[LICENSE](LICENSE)). It bundles two third-party libraries, each of which +keeps its own original license — bundling them does not relicense them, and +they are not covered by libxdf's own BSD 2-Clause terms. + +## smarc (`smarc/`) + +Copyright (c) 2009-2011 Institut Télécom - Télécom ParisTech, dept. TSI +Authors: Benoit Mathieu, Jacques Prado + +Licensed under the **GNU Lesser General Public License, version 3 or later** +(LGPL-3.0-or-later). See the header of any file under `smarc/` or + for the full license text. + +smarc's `.c`/`.h` files are compiled directly into the `xdf` library target. +Because libxdf is distributed as complete, buildable source (including the +unmodified smarc sources), anyone receiving libxdf already has everything +needed to modify smarc and relink it against the rest of the library, which +satisfies the LGPLv3 §4 requirements for this kind of static combination. + +## pugixml (`pugixml/`) + +Copyright (c) 2006-2025 Arseny Kapoulkine + +Licensed under the **MIT License**. See the header of `pugixml/pugixml.hpp` +or for the full license text. + +pugixml is used either as a system package (`find_package(pugixml)`) or, if +unavailable, built from the bundled copy in `pugixml/`. diff --git a/xdf.cpp b/xdf.cpp index 17fff7a..0cec085 100644 --- a/xdf.cpp +++ b/xdf.cpp @@ -1,19 +1,7 @@ //libxdf is a static C++ library to load XDF files -//Copyright (C) 2017 Yida Lin - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. - -//You should have received a copy of the GNU General Public License -//along with this program. If not, see . -//If you have questions, contact author at yida.lin@outlook.com +//Copyright (c) 2017-2020, Yida Lin, Clemens Brunner, Paul Sajda, Josef Faller +// +//Distributed under the BSD 2-Clause License. See LICENSE for details. #include "xdf.h" diff --git a/xdf.h b/xdf.h index 47e73a1..6dd2b0c 100644 --- a/xdf.h +++ b/xdf.h @@ -1,19 +1,7 @@ //libxdf is a static C++ library to load XDF files -//Copyright (C) 2017 Yida Lin - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. - -//You should have received a copy of the GNU General Public License -//along with this program. If not, see . -//If you have questions, contact author at yida.lin@outlook.com +//Copyright (c) 2017-2020, Yida Lin, Clemens Brunner, Paul Sajda, Josef Faller +// +//Distributed under the BSD 2-Clause License. See LICENSE for details. /*! \file xdf.h * \brief The header file of Xdf class