On Wed, 15 Feb 2017, Stephan Kulow wrote:
On 15.02.2017 13:39, Michal Kubecek wrote:
On Wednesday, 15 February 2017 13:29 Stephan Kulow wrote:
Take ant-antlr.spec - its source rpm has License: Apache-2.0, but it has a ant-javamail sub-package with CDDL-1.0. So the bot will not accept this package, because the sub-package has a license not part of the sources license.
The proper fix is to have License: Apache-2.0 AND CDDL-1.0
Wouldn't that cause this to be propagated to _all_ subpackages (including the main binary one) unless each of them (except the CDDL one) has its own "License: Apache-2.0"?
Yes. And so the spec-cleaner will multipy the main license into all subpackages if they don't already have one - and you should correct it if it's *not* the combination.
If your licenses are so complicated, you better don't build a main package - as rpm has to my knowledge no way to express different licenses between the main rpm and the source rpm.
grep 'Name:\|%package\|License' gcc6.spec Name: gcc6 License: GPL-3.0+ %package -n gcc6-32bit License: GPL-3.0+ %package -n gcc6-64bit License: GPL-3.0+ %package devel License: GPL-3.0+ %package locale License: GPL-3.0+ %package c++ License: GPL-3.0+ %package c++-32bit License: GPL-3.0+ %package c++-64bit License: GPL-3.0+ %package -n libstdc++%{libstdcxx_sover}-devel%{libdevel_suffix} License: GPL-3.0-with-GCC-exception %package -n libstdc++%{libstdcxx_sover}-devel%{libdevel_suffix}-32bit License: GPL-3.0-with-GCC-exception %package -n libstdc++%{libstdcxx_sover}-devel%{libdevel_suffix}-64bit License: GPL-3.0-with-GCC-exception %package -n libgcc_s%{libgcc_s}%{libgcc_s_suffix} License: GPL-3.0-with-GCC-exception %package -n libgcc_s%{libgcc_s}%{libgcc_s_suffix}-32bit License: GPL-3.0-with-GCC-exception %package -n libgcc_s%{libgcc_s}%{libgcc_s_suffix}-64bit License: GPL-3.0-with-GCC-exception %package -n libgomp%{libgomp_sover}%{libgomp_suffix} License: GPL-3.0-with-GCC-exception %package -n libgomp%{libgomp_sover}%{libgomp_suffix}-32bit License: GPL-3.0-with-GCC-exception %package -n libgomp%{libgomp_sover}%{libgomp_suffix}-64bit License: GPL-3.0-with-GCC-exception %package -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix} License: GPL-3.0-with-GCC-exception %package -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}-32bit License: GPL-3.0-with-GCC-exception %package -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}-64bit License: GPL-3.0-with-GCC-exception %package -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}-locale License: GPL-3.0-with-GCC-exception %package info License: GFDL-1.2 %package objc License: GPL-3.0+ %package objc-32bit License: GPL-3.0+ %package objc-64bit License: GPL-3.0+ %package -n libobjc%{libobjc_sover}%{libobjc_suffix} License: GPL-3.0-with-GCC-exception %package -n libobjc%{libobjc_sover}%{libobjc_suffix}-32bit License: GPL-3.0-with-GCC-exception %package -n libobjc%{libobjc_sover}%{libobjc_suffix}-64bit License: GPL-3.0-with-GCC-exception %package obj-c++ License: GPL-3.0+ %package obj-c++-32bit License: GPL-3.0+ %package obj-c++-64bit License: GPL-3.0+ %package -n cpp6 License: GPL-3.0+ %package ada License: GPL-3.0+ %package ada-32bit License: GPL-3.0+ %package ada-64bit License: GPL-3.0+ %package -n libada6 License: GPL-3.0-with-GCC-exception %package -n libada6-32bit License: GPL-3.0-with-GCC-exception %package -n libada6-64bit License: GPL-3.0-with-GCC-exception %package fortran License: GPL-3.0+ %package fortran-32bit License: GPL-3.0+ %package fortran-64bit License: GPL-3.0+ %package -n libgfortran%{libgfortran_sover}%{libgfortran_suffix} License: GPL-3.0-with-GCC-exception %package -n libgfortran%{libgfortran_sover}%{libgfortran_suffix}-32bit License: GPL-3.0-with-GCC-exception %package -n libgfortran%{libgfortran_sover}%{libgfortran_suffix}-64bit License: GPL-3.0-with-GCC-exception %package -n libquadmath%{libquadmath_sover}%{libquadmath_suffix} License: LGPL-2.1 %package -n libquadmath%{libquadmath_sover}%{libquadmath_suffix}-32bit License: LGPL-2.1 %package -n libquadmath%{libquadmath_sover}%{libquadmath_suffix}-64bit License: LGPL-2.1 %package -n libitm%{libitm_sover}%{libitm_suffix} License: MIT %package -n libitm%{libitm_sover}%{libitm_suffix}-32bit License: MIT %package -n libitm%{libitm_sover}%{libitm_suffix}-64bit License: MIT %package -n libasan%{libasan_sover}%{libasan_suffix} License: MIT %package -n libasan%{libasan_sover}%{libasan_suffix}-32bit License: MIT %package -n libasan%{libasan_sover}%{libasan_suffix}-64bit License: MIT %package -n libtsan%{libtsan_sover}%{libtsan_suffix} License: MIT %package -n libtsan%{libtsan_sover}%{libtsan_suffix}-32bit License: MIT %package -n libtsan%{libtsan_sover}%{libtsan_suffix}-64bit License: MIT %package -n libatomic%{libatomic_sover}%{libatomic_suffix} License: GPL-3.0-with-GCC-exception %package -n libatomic%{libatomic_sover}%{libatomic_suffix}-32bit License: GPL-3.0-with-GCC-exception %package -n libatomic%{libatomic_sover}%{libatomic_suffix}-64bit License: GPL-3.0-with-GCC-exception %package -n libcilkrts%{libcilkrts_sover}%{libcilkrts_suffix} License: MIT %package -n libcilkrts%{libcilkrts_sover}%{libcilkrts_suffix}-32bit License: MIT %package -n libcilkrts%{libcilkrts_sover}%{libcilkrts_suffix}-64bit License: MIT %package -n liblsan%{liblsan_sover}%{liblsan_suffix} License: MIT %package -n liblsan%{liblsan_sover}%{liblsan_suffix}-32bit License: MIT %package -n liblsan%{liblsan_sover}%{liblsan_suffix}-64bit License: MIT %package -n libubsan%{libubsan_sover}%{libubsan_suffix} License: MIT %package -n libubsan%{libubsan_sover}%{libubsan_suffix}-32bit License: MIT %package -n libubsan%{libubsan_sover}%{libubsan_suffix}-64bit License: MIT %package -n libvtv%{libvtv_sover}%{libvtv_suffix} License: MIT %package -n libvtv%{libvtv_sover}%{libvtv_suffix}-32bit License: MIT %package -n libvtv%{libvtv_sover}%{libvtv_suffix}-64bit License: MIT %package -n libmpx%{libmpx_sover}%{libmpx_suffix} License: BSD-3-Clause %package -n libmpx%{libmpx_sover}%{libmpx_suffix}-32bit License: BSD-3-Clause %package -n libmpx%{libmpx_sover}%{libmpx_suffix}-64bit License: BSD-3-Clause %package -n libmpxwrappers%{libmpxwrappers_sover}%{libmpxwrappers_suffix} License: BSD-3-Clause %package -n
Ick.
For example take gcc6:
libmpxwrappers%{libmpxwrappers_sover}%{libmpxwrappers_suffix}-32bit
License: BSD-3-Clause
%package -n
libmpxwrappers%{libmpxwrappers_sover}%{libmpxwrappers_suffix}-64bit
License: BSD-3-Clause
%package -n libgcj%{libdevel_suffix}
License: GPL-2.0-with-classpath-exception
%package -n gcc6-java
License: GPL-3.0+
%package -n libgcj_bc%{libgcj_bc_sover}%{libgcj_bc_suffix}
License: GPL-2.0-with-classpath-exception
%package -n libgcj-jar%{libdevel_suffix}
License: GPL-2.0-with-classpath-exception
%package -n libgcj-devel%{libdevel_suffix}
License: GPL-2.0-with-classpath-exception
%package -n gcc6-gij
License: GPL-2.0-with-classpath-exception
%package -n libstdc++%{libstdcxx_sover}%{libdevel_suffix}-doc
License: GPL-3.0+
%package -n libffi%{libffi_sover}%{libffi_suffix}
License: BSD-3-Clause
%package -n libffi%{libffi_sover}%{libffi_suffix}-32bit
License: BSD-3-Clause
%package -n libffi%{libffi_sover}%{libffi_suffix}-64bit
License: BSD-3-Clause
%package -n libffi-devel%{libdevel_suffix}
License: BSD-3-Clause
%package -n libffi-devel%{libdevel_suffix}-32bit
License: BSD-3-Clause
%package -n libffi-devel%{libdevel_suffix}-64bit
License: BSD-3-Clause
%package go
License: GPL-3.0+
%package go-32bit
License: GPL-3.0+
%package go-64bit
License: GPL-3.0+
%package -n libgo%{libgo_sover}%{libgo_suffix}
License: BSD-3-Clause
%package -n libgo%{libgo_sover}%{libgo_suffix}-32bit
License: BSD-3-Clause
%package -n libgo%{libgo_sover}%{libgo_suffix}-64bit
License: BSD-3-Clause
%package -n gcc6-testresults
License: SUSE-Public-Domain
that will be "fun" to fix. gcc6 is also a "real" package and we have
multiple .spec files (gcc6-testresults is a source package as well
as a real package).
But given gcc6 License (GPL-3.0+) is compatible with all the other
licenses why bother?
Currently it works just fine (all licenses of all subpackages are
correct), but indeed the source package license is GPL-3.0+ only.
But rather than trying to fix the .spec file why not (f***) fix
RPM to put all licenses into the SPM license field?! It's clearly
a RPM bug (IMHO).
Richard.
--
Richard Biener