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: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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))
Expand Down
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
31 changes: 31 additions & 0 deletions THIRD-PARTY-NOTICES.md
Original file line number Diff line number Diff line change
@@ -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
<https://www.gnu.org/licenses/lgpl-3.0.html> 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 <https://opensource.org/license/mit> 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/`.
18 changes: 3 additions & 15 deletions xdf.cpp
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
//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"
Expand Down
18 changes: 3 additions & 15 deletions xdf.h
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
//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
Expand Down