Message ID | 20230606173127.4050254-3-ardb@kernel.org |
---|---|
State | New |
Headers | show |
Series | crypto - some SPDX cleanups for arch code | expand |
[also Cc'ing Richard] On Tue, Jun 06, 2023 at 07:31:26PM +0200, Ard Biesheuvel wrote: > Add some missing SPDX headers, and drop the associated boilerplate > license text to/from the ARM implementations of ChaCha, CRC-32 and > CRC-T10DIF. > > Signed-off-by: Ard Biesheuvel <ardb@kernel.org> > --- > arch/arm/crypto/chacha-neon-core.S | 10 +---- > arch/arm/crypto/crc32-ce-core.S | 30 ++------------- > arch/arm/crypto/crct10dif-ce-core.S | 40 +------------------- > 3 files changed, 5 insertions(+), 75 deletions(-) > > diff --git a/arch/arm/crypto/chacha-neon-core.S b/arch/arm/crypto/chacha-neon-core.S > index 13d12f672656bb8d..46d708118ef948ec 100644 > --- a/arch/arm/crypto/chacha-neon-core.S > +++ b/arch/arm/crypto/chacha-neon-core.S > @@ -1,21 +1,13 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > /* > * ChaCha/XChaCha NEON helper functions > * > * Copyright (C) 2016 Linaro, Ltd. <ard.biesheuvel@linaro.org> > * > - * This program is free software; you can redistribute it and/or modify > - * it under the terms of the GNU General Public License version 2 as > - * published by the Free Software Foundation. > - * > * Based on: > * ChaCha20 256-bit cipher algorithm, RFC7539, x64 SSE3 functions > * > * Copyright (C) 2015 Martin Willi > - * > - * 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 2 of the License, or > - * (at your option) any later version. > */ I think above makes sense, since I had to pick the most restrictive one to satisfy both license option (GPL-2.0+ or GPL-2.0-only). > > /* > diff --git a/arch/arm/crypto/crc32-ce-core.S b/arch/arm/crypto/crc32-ce-core.S > index 3f13a76b9066e0f6..228a1f298f24d3d0 100644 > --- a/arch/arm/crypto/crc32-ce-core.S > +++ b/arch/arm/crypto/crc32-ce-core.S > @@ -1,37 +1,13 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > /* > * Accelerated CRC32(C) using ARM CRC, NEON and Crypto Extensions instructions > * > * Copyright (C) 2016 Linaro Ltd <ard.biesheuvel@linaro.org> > - * > - * This program is free software; you can redistribute it and/or modify > - * it under the terms of the GNU General Public License version 2 as > - * published by the Free Software Foundation. > - */ > - > -/* GPL HEADER START > - * > - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > - * > - * This program is free software; you can redistribute it and/or modify > - * it under the terms of the GNU General Public License version 2 only, > - * as published by the Free Software Foundation. > - * > - * 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 version 2 for more details (a copy is included > - * in the LICENSE file that accompanied this code). > - * > - * You should have received a copy of the GNU General Public License > - * version 2 along with this program; If not, see http://www.gnu.org/licenses > - * > - * Please visit http://www.xyratex.com/contact if you need additional > - * information or have any questions. > - * > - * GPL HEADER END > */ Removing second boilerplate for which the text says it musn't be removed? > > /* > + * Derived from the x86 SSE version: > + * > * Copyright 2012 Xyratex Technology Limited > * > * Using hardware provided PCLMULQDQ instruction to accelerate the CRC32 > diff --git a/arch/arm/crypto/crct10dif-ce-core.S b/arch/arm/crypto/crct10dif-ce-core.S > index 46c02c518a300ab0..5d24448fae1ccacb 100644 > --- a/arch/arm/crypto/crct10dif-ce-core.S > +++ b/arch/arm/crypto/crct10dif-ce-core.S > @@ -1,13 +1,10 @@ > +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause */ > // > // Accelerated CRC-T10DIF using ARM NEON and Crypto Extensions instructions > // > // Copyright (C) 2016 Linaro Ltd <ard.biesheuvel@linaro.org> > // Copyright (C) 2019 Google LLC <ebiggers@google.com> > // > -// This program is free software; you can redistribute it and/or modify > -// it under the terms of the GNU General Public License version 2 as > -// published by the Free Software Foundation. > -// > > // Derived from the x86 version: > // > @@ -21,41 +18,6 @@ > // James Guilford <james.guilford@intel.com> > // Tim Chen <tim.c.chen@linux.intel.com> > // > -// This software is available to you under a choice of one of two > -// licenses. You may choose to be licensed under the terms of the GNU > -// General Public License (GPL) Version 2, available from the file > -// COPYING in the main directory of this source tree, or the > -// OpenIB.org BSD license below: > -// > -// Redistribution and use in source and binary forms, with or without > -// modification, are permitted provided that the following conditions are > -// met: > -// > -// * Redistributions of source code must retain the above copyright > -// notice, this list of conditions and the following disclaimer. > -// > -// * Redistributions in binary form must reproduce the above copyright > -// notice, this list of conditions and the following disclaimer in the > -// documentation and/or other materials provided with the > -// distribution. > -// > -// * Neither the name of the Intel Corporation nor the names of its > -// contributors may be used to endorse or promote products derived from > -// this software without specific prior written permission. > -// > -// > -// THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY > -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR > -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, > -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, > -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR > -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF > -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING > -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS > -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > -// This dual BSD/GPL one LGTM. Thanks.
On Sat, Jun 10, 2023 at 3:31 AM Bagas Sanjaya <bagasdotme@gmail.com> wrote: > > [also Cc'ing Richard] > > On Tue, Jun 06, 2023 at 07:31:26PM +0200, Ard Biesheuvel wrote: > > Add some missing SPDX headers, and drop the associated boilerplate > > license text to/from the ARM implementations of ChaCha, CRC-32 and > > CRC-T10DIF. > > > > Signed-off-by: Ard Biesheuvel <ardb@kernel.org> > > --- > > arch/arm/crypto/chacha-neon-core.S | 10 +---- > > arch/arm/crypto/crc32-ce-core.S | 30 ++------------- > > arch/arm/crypto/crct10dif-ce-core.S | 40 +------------------- > > 3 files changed, 5 insertions(+), 75 deletions(-) > > > > diff --git a/arch/arm/crypto/chacha-neon-core.S b/arch/arm/crypto/chacha-neon-core.S > > index 13d12f672656bb8d..46d708118ef948ec 100644 > > --- a/arch/arm/crypto/chacha-neon-core.S > > +++ b/arch/arm/crypto/chacha-neon-core.S > > @@ -1,21 +1,13 @@ > > +/* SPDX-License-Identifier: GPL-2.0-only */ > > /* > > * ChaCha/XChaCha NEON helper functions > > * > > * Copyright (C) 2016 Linaro, Ltd. <ard.biesheuvel@linaro.org> > > * > > - * This program is free software; you can redistribute it and/or modify > > - * it under the terms of the GNU General Public License version 2 as > > - * published by the Free Software Foundation. > > - * > > * Based on: > > * ChaCha20 256-bit cipher algorithm, RFC7539, x64 SSE3 functions > > * > > * Copyright (C) 2015 Martin Willi > > - * > > - * 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 2 of the License, or > > - * (at your option) any later version. > > */ > > I think above makes sense, since I had to pick the most restrictive one > to satisfy both license option (GPL-2.0+ or GPL-2.0-only). I am not sure "had to pick the most restrictive one" is necessarily correct - the kernel could adopt that approach but I don't think there's any reason why you can't have multiple SPDX-License-Identifier: lines in a single source file, and it is also syntactically valid to use SPDX-License-Identifier: GPL-2.0-only AND GPL-2.0-or-later Richard
On Tue, 20 Jun 2023 at 05:50, Richard Fontana <rfontana@redhat.com> wrote: > > On Sat, Jun 10, 2023 at 3:31 AM Bagas Sanjaya <bagasdotme@gmail.com> wrote: > > > > [also Cc'ing Richard] > > > > On Tue, Jun 06, 2023 at 07:31:26PM +0200, Ard Biesheuvel wrote: > > > Add some missing SPDX headers, and drop the associated boilerplate > > > license text to/from the ARM implementations of ChaCha, CRC-32 and > > > CRC-T10DIF. > > > > > > Signed-off-by: Ard Biesheuvel <ardb@kernel.org> > > > --- > > > arch/arm/crypto/chacha-neon-core.S | 10 +---- > > > arch/arm/crypto/crc32-ce-core.S | 30 ++------------- > > > arch/arm/crypto/crct10dif-ce-core.S | 40 +------------------- > > > 3 files changed, 5 insertions(+), 75 deletions(-) > > > > > > diff --git a/arch/arm/crypto/chacha-neon-core.S b/arch/arm/crypto/chacha-neon-core.S > > > index 13d12f672656bb8d..46d708118ef948ec 100644 > > > --- a/arch/arm/crypto/chacha-neon-core.S > > > +++ b/arch/arm/crypto/chacha-neon-core.S > > > @@ -1,21 +1,13 @@ > > > +/* SPDX-License-Identifier: GPL-2.0-only */ > > > /* > > > * ChaCha/XChaCha NEON helper functions > > > * > > > * Copyright (C) 2016 Linaro, Ltd. <ard.biesheuvel@linaro.org> > > > * > > > - * This program is free software; you can redistribute it and/or modify > > > - * it under the terms of the GNU General Public License version 2 as > > > - * published by the Free Software Foundation. > > > - * > > > * Based on: > > > * ChaCha20 256-bit cipher algorithm, RFC7539, x64 SSE3 functions > > > * > > > * Copyright (C) 2015 Martin Willi > > > - * > > > - * 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 2 of the License, or > > > - * (at your option) any later version. > > > */ > > > > I think above makes sense, since I had to pick the most restrictive one > > to satisfy both license option (GPL-2.0+ or GPL-2.0-only). > > I am not sure "had to pick the most restrictive one" is necessarily > correct - the kernel could adopt that approach but I don't think > there's any reason why you can't have multiple > SPDX-License-Identifier: lines in a single source file, and it is also > syntactically valid to use > SPDX-License-Identifier: GPL-2.0-only AND GPL-2.0-or-later > For the record, my reasoning was that my code (which is a rewrite of the algorithm using a completely different ISA) is the derived work, and I am permitted to exercise my right granted by the original work to redistribute it under the GPLv2. So this is why the 'outer' license (as well a the SPDX header) is GPLv2 only. I didn't expect there to be a requirement for SPDX to describe the original licenses of all the constituent parts. In any case, I am going to take Greg's advice and not pursue this any further - if anyone needs this cleaned up, they can do it themselves. Thanks for the education on this topic, I'll know better next time :-)
diff --git a/arch/arm/crypto/chacha-neon-core.S b/arch/arm/crypto/chacha-neon-core.S index 13d12f672656bb8d..46d708118ef948ec 100644 --- a/arch/arm/crypto/chacha-neon-core.S +++ b/arch/arm/crypto/chacha-neon-core.S @@ -1,21 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * ChaCha/XChaCha NEON helper functions * * Copyright (C) 2016 Linaro, Ltd. <ard.biesheuvel@linaro.org> * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * * Based on: * ChaCha20 256-bit cipher algorithm, RFC7539, x64 SSE3 functions * * Copyright (C) 2015 Martin Willi - * - * 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 2 of the License, or - * (at your option) any later version. */ /* diff --git a/arch/arm/crypto/crc32-ce-core.S b/arch/arm/crypto/crc32-ce-core.S index 3f13a76b9066e0f6..228a1f298f24d3d0 100644 --- a/arch/arm/crypto/crc32-ce-core.S +++ b/arch/arm/crypto/crc32-ce-core.S @@ -1,37 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Accelerated CRC32(C) using ARM CRC, NEON and Crypto Extensions instructions * * Copyright (C) 2016 Linaro Ltd <ard.biesheuvel@linaro.org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -/* GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * 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 version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see http://www.gnu.org/licenses - * - * Please visit http://www.xyratex.com/contact if you need additional - * information or have any questions. - * - * GPL HEADER END */ /* + * Derived from the x86 SSE version: + * * Copyright 2012 Xyratex Technology Limited * * Using hardware provided PCLMULQDQ instruction to accelerate the CRC32 diff --git a/arch/arm/crypto/crct10dif-ce-core.S b/arch/arm/crypto/crct10dif-ce-core.S index 46c02c518a300ab0..5d24448fae1ccacb 100644 --- a/arch/arm/crypto/crct10dif-ce-core.S +++ b/arch/arm/crypto/crct10dif-ce-core.S @@ -1,13 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause */ // // Accelerated CRC-T10DIF using ARM NEON and Crypto Extensions instructions // // Copyright (C) 2016 Linaro Ltd <ard.biesheuvel@linaro.org> // Copyright (C) 2019 Google LLC <ebiggers@google.com> // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License version 2 as -// published by the Free Software Foundation. -// // Derived from the x86 version: // @@ -21,41 +18,6 @@ // James Guilford <james.guilford@intel.com> // Tim Chen <tim.c.chen@linux.intel.com> // -// This software is available to you under a choice of one of two -// licenses. You may choose to be licensed under the terms of the GNU -// General Public License (GPL) Version 2, available from the file -// COPYING in the main directory of this source tree, or the -// OpenIB.org BSD license below: -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the -// distribution. -// -// * Neither the name of the Intel Corporation nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// -// THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// // Reference paper titled "Fast CRC Computation for Generic // Polynomials Using PCLMULQDQ Instruction" // URL: http://www.intel.com/content/dam/www/public/us/en/documents
Add some missing SPDX headers, and drop the associated boilerplate license text to/from the ARM implementations of ChaCha, CRC-32 and CRC-T10DIF. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> --- arch/arm/crypto/chacha-neon-core.S | 10 +---- arch/arm/crypto/crc32-ce-core.S | 30 ++------------- arch/arm/crypto/crct10dif-ce-core.S | 40 +------------------- 3 files changed, 5 insertions(+), 75 deletions(-)