lsp-plugins / lsp-dsp-lib

DSP library for signal processing
GNU Lesser General Public License v3.0
68 stars 18 forks source link

LGPL3 or LGPL3+ ? #6

Closed alex-tee closed 4 years ago

alex-tee commented 4 years ago

At the current state, it looks like the library is LGPL3 only. Is this intended?

from the license:

 Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation.

If you want to make it LGPL3+, it would be best to specify somewhere that this is licensed under "LGPL version 3, or any later version"

I also found some optimized SSE and AVX code in the Ardour code base, but it's licensed under GPLv2+. would you be interested in porting it and adding a configuration flag to enable compilation of the GPL code? (this would mean that effectively this library will be covered by the GPL if you enable that, or LGPL otherwise)

Under libs/ardour

alex-tee commented 4 years ago

I'm especially interested in finding peaks from a buffer (https://github.com/Ardour/ardour/blob/master/libs/ardour/sse_functions_avx_linux.cc#L157). I couldn't find some API for this in lsp-dsp-lib

alex-tee commented 4 years ago

also some useful code in pipewire that could be ported: https://gitlab.freedesktop.org/pipewire/pipewire/-/tree/master/spa/plugins/audioconvert https://gitlab.freedesktop.org/pipewire/pipewire/-/tree/master/spa/plugins/audiomixer

it's MIT/Expat so it can be included in LGPL without problems

sadko4u commented 4 years ago

DSP library already has their alternatives for Ardour's ones:

alex-tee commented 4 years ago

ah i missed a couple of those, thanks!

sadko4u commented 4 years ago

If you want to make it LGPL3+, it would be best to specify somewhere that this is licensed under "LGPL version 3, or any later version"

I just don't know where I am required to specify this. The quoted text doesn't tell this.

alex-tee commented 4 years ago

the standard way to do this is to add license headers to every file, like:

/*
 * Copyright (C) 2020 sadko
 *
 * This file is part of lsp-dsp-lib
 *
 * lsp-dsp-lib is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * lsp-dsp-lib 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 Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with lsp-dsp-lib.  If not, see <https://www.gnu.org/licenses/>.
 */

you could also use SPDX headers if you don't want to have that whole text, like:

// SPDX-License-Identifier: LGPL-3.0-or-later
// SPDX-FileCopyrightText: <year> <name of author> <e-mail>

I personally prefer adding a full license header to every file because it's more explicit

sadko4u commented 4 years ago

OK, I'll change headers soon.

sadko4u commented 4 years ago

Changes are available in github-issue-7 branch, too.

sadko4u commented 4 years ago

Merged changes to master: c9b146141ec68797d35bd070328ab2e436f2bd0f