Bug 486804
Summary: | Review Request: libferrisloki - customized build of Loki library from Modern C++ Design for libferris | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Ben Martin <monkeyiq> |
Component: | Package Review | Assignee: | Nobody's working on this, feel free to take it <nobody> |
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | low | ||
Version: | rawhide | CC: | fedora-package-review, mtasaka, notting |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2010-11-02 00:55:53 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 201449 |
Description
Ben Martin
2009-02-22 06:01:56 UTC
Might be that I've caught all issues, but a lot of work is needed to bring this into shape: * Run "rpmlint -i" on your src.rpm and also on all built packages. Try to fix as many Warnings and Errors as plausible. > License: GPL This is not just an invalid value for the "License" tag, it is inaccurate. Some source files mention "GPLv2+", some the "Boost Software License 1.0". Others contain a "Copyright Only" header: https://fedoraproject.org/wiki/Licensing/CopyrightOnly The "macros/ferrismacros.m4" file contains pieces licenced under the "LGPLv2+". https://fedoraproject.org/wiki/Licensing > Source: http://prdownloads.sourceforge.net/witme/%{name}-%{version}.tar.bz2 There are special guidelines for Sourceforge.net download locations: https://fedoraproject.org/wiki/Packaging/SourceURL#Sourceforge.net > Packager: Ben Martin <monkeyiq.net> Don't set this tag. The build-system will do it. In general, be careful with hardcoding "Packager"/"Vendor" tags in spec files you release. There are people who build broken binary rpms, which would appear as if they have been built by you, because they contain your name in the "Packager" tag. The spec %changelog is less of a problem in case you wonder. > BuildRequires: gcc-c++ Redundant, as the C++ compiler is available in the minimal build environment: https://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2 > if [ "$SMP" != "" ]; then > (make "MAKE=make -k -j $SMP"; exit 0) > make > else > make > fi At least with Fedora, you can replace this with just: make %{?_smp_mflags} > %install > %makeinstall First command in %install section must be: rm -rf $RPM_BUILD_ROOT (or "rm -rf %buildroot" if you prefer the lower case macro everywhere) make DESTDIR="$RPM_BUILD_ROOT" install or: make DESTDIR="$RPM_BUILD_ROOT" INSTALL="install -p" shall be preferred over %makeinstall. > %files > %defattr(-,root,root,0755) Doesn't %defattr(-,root,root,-) work? > %doc AUTHORS README COPYING ChangeLog INSTALL Typically, the standard file "INSTALL" is irrelevant to RPM package users. Here it is empty even. > %{_libdir}/* > %{_includedir}/* Package must be split into a main library pkg and a ferrisloki-devel sub-package, which contains the files needed only for software development (i.e. the *.so symlink and the headers). %{_libdir}/* includes too many files it must not include (e.g. the debuginfo files). Use at most %{_libdir}/*.so.* for the main pkg and %{_libdir}/*.so for the -devel subpkg. > -rw-r--r-- /usr/lib/libferrisloki.a > -rwxr-xr-x /usr/lib/libferrisloki.la Don't build/include these. https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries > -rw-r--r-- /usr/include/FerrisLoki/Extensions.cpp > -rw-r--r-- /usr/include/FerrisLoki/OrderedStatic.cpp > -rw-r--r-- /usr/include/FerrisLoki/SafeFormat.cpp > -rw-r--r-- /usr/include/FerrisLoki/Singleton.cpp > -rw-r--r-- /usr/include/FerrisLoki/SmallObj.cpp > -rw-r--r-- /usr/include/FerrisLoki/SmartPtr.cpp > -rw-r--r-- /usr/include/FerrisLoki/StrongPtr.cpp Hmm? * The pkgconfig file ferrisloki.pc is questionable, because it is tuned for static linking and does a few bad things: > Libs: -L${libdir} -lferrisloki -lsigc-2.0 The shared library is linked with libsigc-2.0 already. No need to link again. > Requires: The pkgconfig dependency on "sigc++-2.0" is missing in this field if you really want it to be a strict dependency - I doubt you want it. It would also add the proper libsigc++20 CFLAGS and LDFLAGS automatically when running pkg-config, and you would not need to add them to your .pc file manually. For platforms older than Fedora 11, the ferrisloki-devel subpackage must "Requires: libsigc++20-devel", however see below. > Cflags: -I${includedir} -I${includedir}/FerrisLoki > -I${includedir}/FerrisLoki/loki -I/usr/include/sigc++-2.0 > -I/usr/lib/sigc++-2.0/include Why do add two search paths for FerrisLoki and FerrisLoki/loki? There are several files which include <loki/...>, so the extra search path is not needed. The sigc++-2.0 related Cflags are redundant, if you would fill in the Requires field correctly. However, only the boost extension uses sigc++20 headers. And that extension would need "Requires: boost-devel" in the spec file. In other words, I don't see why the sigc++ stuff is in the .pc file at all. > make DESTDIR="$RPM_BUILD_ROOT" install
> or:
> make DESTDIR="$RPM_BUILD_ROOT" INSTALL="install -p"
Cut'n'paste error from a file where I made that typo before. Second line must read:
make DESTDIR="$RPM_BUILD_ROOT" INSTALL="install -p" install
Firstly, thank you for your indepth and very informative comments! A few issues like not having split out a -devel package I forgot to do before submitting and apologize for that. I should mention up front that I've been using this spec on the openSUSE build system (OBS) to make rpms for Fedora and openSUSE. If possible I'd like to continue using the same spec in Fedora and in the OBS to make openSUSE rpms too. I'm not sure if this is possible or not, but I can always hope. I've updated the spec file and src.rpm file with changes from your comments. This should also make the next spec less of a hassle because I'll have already addressed these comments. > Might be that I've caught all issues, but a lot of work is needed to bring this > into shape: > > > * Run "rpmlint -i" on your src.rpm and also on all built packages. Try to fix > as many Warnings and Errors as plausible. > There are still a few issues rpmlint picks up. The main one is how to use multiple licenses properly. > > > License: GPL > > This is not just an invalid value for the "License" tag, it is inaccurate. Some > source files mention "GPLv2+", some the "Boost Software License 1.0". Others > contain a "Copyright Only" header: > https://fedoraproject.org/wiki/Licensing/CopyrightOnly > The "macros/ferrismacros.m4" file contains pieces licenced under the "LGPLv2+". > > https://fedoraproject.org/wiki/Licensing OK, I've taken a look at these to see if I could consolidate things (if I owned copyright on the file & code) but it looks like we'll need these three liceneses unless I plan to rewrite some already working code. So now we have: License: LGPLv2+, Boost, Copyright only I'm not sure how to chain them though. rpmlint doesn't seem to like comma separated and rpmbuild doesn't like multiple tags. > > > > > Source: http://prdownloads.sourceforge.net/witme/%{name}-%{version}.tar.bz2 > > There are special guidelines for Sourceforge.net download locations: > https://fedoraproject.org/wiki/Packaging/SourceURL#Sourceforge.net Excellent. The above URL was one I came up with ages ago, though it is surprisingly close to the Fedora recommendation. I've updated to fix this inline with the URL above. > > > > Packager: Ben Martin <monkeyiq.net> > > Don't set this tag. The build-system will do it. In general, be careful with > hardcoding "Packager"/"Vendor" tags in spec files you release. There are people > who build broken binary rpms, which would appear as if they have been built by > you, because they contain your name in the "Packager" tag. The spec %changelog > is less of a problem in case you wonder. Removed. Though I also plan to try to use the same .spec with OBS to make openSUSE rpms, so I might have to add it back conditionally. > > > > BuildRequires: gcc-c++ > > Redundant, as the C++ compiler is available in the minimal build environment: > https://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2 Ah, if this redundancy is OK can we leave it? To build with OBS you have to include the compiler too so I need that redundant line for the spec to with on OBS too. > > > > if [ "$SMP" != "" ]; then > > (make "MAKE=make -k -j $SMP"; exit 0) > > make > > else > > make > > fi > > At least with Fedora, you can replace this with just: > > make %{?_smp_mflags} > Done. If openSUSE doesn't actually set _smp_mflags I might add some glue in the header of the spec to set it properly on OBS. > > > %install > > %makeinstall > > First command in %install section must be: rm -rf $RPM_BUILD_ROOT > (or "rm -rf %buildroot" if you prefer the lower case macro everywhere) > > make DESTDIR="$RPM_BUILD_ROOT" install > or: > make DESTDIR="$RPM_BUILD_ROOT" INSTALL="install -p" > > shall be preferred over %makeinstall. This is one area where I thought using the macro was the golden thing to do. Changed to the second version with the modification you included. > > > > %files > > %defattr(-,root,root,0755) > > Doesn't %defattr(-,root,root,-) work? > > > %doc AUTHORS README COPYING ChangeLog INSTALL > > Typically, the standard file "INSTALL" is irrelevant to RPM package users. Here > it is empty even. Fixed. > > > %{_libdir}/* > > %{_includedir}/* > > Package must be split into a main library pkg and a ferrisloki-devel > sub-package, which contains the files needed only for software development > (i.e. the *.so symlink and the headers). > > %{_libdir}/* includes too many files it must not include (e.g. the debuginfo > files). Use at most %{_libdir}/*.so.* for the main pkg and %{_libdir}/*.so > for the -devel subpkg. > > > > -rw-r--r-- /usr/lib/libferrisloki.a > > -rwxr-xr-x /usr/lib/libferrisloki.la > > Don't build/include these. > https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries > > > > -rw-r--r-- /usr/include/FerrisLoki/Extensions.cpp > > -rw-r--r-- /usr/include/FerrisLoki/OrderedStatic.cpp > > -rw-r--r-- /usr/include/FerrisLoki/SafeFormat.cpp > > -rw-r--r-- /usr/include/FerrisLoki/Singleton.cpp > > -rw-r--r-- /usr/include/FerrisLoki/SmallObj.cpp > > -rw-r--r-- /usr/include/FerrisLoki/SmartPtr.cpp > > -rw-r--r-- /usr/include/FerrisLoki/StrongPtr.cpp > > Hmm? OK I split the package to include a -devel package and distribute the libdir stuff as mentioned. The strange .cpp files are no longer packaged. > > > * The pkgconfig file ferrisloki.pc is questionable, because it is tuned for > static linking and does a few bad things: > > > Libs: -L${libdir} -lferrisloki -lsigc-2.0 > The shared library is linked with libsigc-2.0 already. No need to link again. > > > Requires: > > The pkgconfig dependency on "sigc++-2.0" is missing in this field if you really > want it to be a strict dependency - I doubt you want it. It would also add the > proper libsigc++20 CFLAGS and LDFLAGS automatically when running pkg-config, > and you would not need to add them to your .pc file manually. > > For platforms older than Fedora 11, the ferrisloki-devel subpackage must > "Requires: libsigc++20-devel", however see below. > > > Cflags: -I${includedir} -I${includedir}/FerrisLoki > > -I${includedir}/FerrisLoki/loki -I/usr/include/sigc++-2.0 > > -I/usr/lib/sigc++-2.0/include > > Why do add two search paths for FerrisLoki and FerrisLoki/loki? There are > several files which include <loki/...>, so the extra search path is not needed. > > The sigc++-2.0 related Cflags are redundant, if you would fill in the Requires > field correctly. However, only the boost extension uses sigc++20 headers. And > that extension would need "Requires: boost-devel" in the spec file. > > In other words, I don't see why the sigc++ stuff is in the .pc file at all. > Updated to remove the sigc++ stuff from the cflags and libs in the .pc and use Requires for both sigc++ and boost instead. The problem that lead to this is that I have added some extensions to the libferrisloki library beyond what the mainline Loki library has. These extensions are in %{_includedir}/FerrisLoki/*.hh and over time have grown to include sigc++ and boost support to make all the higher level libraries that use libferrisloki easier to write. Of course, if you don't #include any of these extensions then sigc++ and boost are not strictly needed by libferrisloki. On the other hand, since I'm the main (sole?) user of libferrisloki just adding both sigc++ and boost to the requires should make things cleaner. Haven't had a look at the update rpms yet, so just some answers: > If possible I'd like to continue using the same spec in Fedora > and in the OBS to make openSUSE rpms too. I'm not aware of any policy that disallows this. However, history has shown that it's more convenient to keep spec files distribution-specific and clean. Often distribution-independent spec files are expanded with many conditional sections, which reduce readability and sometime even cause side-effects. This can get really ugly in places where you must use Fedora-specific macros or scriptlet fragments. And also in the %changelog. > License: LGPLv2+, Boost, Copyright only > > I'm not sure how to chain them though. https://fedoraproject.org/wiki/Packaging/LicensingGuidelines#Multiple_Licensing_Scenarios > %makeinstall https://fedoraproject.org/wiki/Packaging:Guidelines#Why_the_.25makeinstall_macro_should_not_be_used Please point to the updated src.rpm. Sorry about the delay. I moved them to my fuuko subdomain: http://fuuko.libferris.com/fedora/ Also, since Extensions.cpp/hh are GPLv2+ I added that and metadata comment to the specfile. * Currently doesn't even build, because the %files section is unmaintained: error: Installed (but unpackaged) file(s) found: /usr/include/FerrisLoki/Extensions.cpp /usr/include/FerrisLoki/OrderedStatic.cpp /usr/include/FerrisLoki/SafeFormat.cpp /usr/include/FerrisLoki/Singleton.cpp /usr/include/FerrisLoki/SmallObj.cpp /usr/include/FerrisLoki/SmartPtr.cpp /usr/include/FerrisLoki/StrongPtr.cpp /usr/lib/libferrisloki.a /usr/lib/libferrisloki.la * It would be extremely helpful (not just during review) if you maintained the spec %changelog and increased the "Release" value with every update of your package. It's something you would need to do for future updates anyway, so early practice would be beneficial. The latest package (from April 13th) is still ferrisloki-3.0.2-50021.src.rpm with only two changelog entries from 2001 and 2004. What exactly does the 50021 release value mean? * Fedora's optflags are used, but duplicated, and an appended -O3 -DNDEBUG overrides them. https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags * https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag * https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package * https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries_2 * https://fedoraproject.org/wiki/Packaging:ReviewGuidelines * https://fedoraproject.org/wiki/PackageMaintainers It's been over a month since the last comment with no response from the submitter; I'll close this soon if there's no further progress. I have updated the sources and spec file, now available at http://fuuko.libferris.com/fedora/ These are release xxx30. The high starting release number as just what I happened to be using as the base OBS spec number when I started. The forced -O3... cflagss should not happen now. Some notes: * Versioning - Well, I cannot understand why your spec file has excessively large release number and I don't think this large release number is needed. If this release number comes from some reasons unrelated to Fedora, please reset this. - Also, please consider to use %{?_dist} tag. https://fedoraproject.org/wiki/Packaging/DistTag * Licensing - The license tag should simply be "GPLv2+". src/Extensions.cpp is under GPLv2+, libferrisloki.so uses .libs/Extensions.o, which renders libferrisloki.so to be under GPLv2+, so other license tag is useless. -------------------------------------------------------------------- 192 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I. -I. -I.. -I.. -I/usr/include -I./../include/FerrisLoki -I/usr/local/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -MT Extensions.lo -MD -MP -MF .deps/Extensions.Tpo -c Extensions.cpp -fPIC -DPIC -o .libs/Extensions.o 213 libtool: link: g++ -shared -nostdlib /usr/lib/gcc/i686-redhat-linux/4.4.1/../../../crti.o /usr/lib/gcc/i686-redhat-linux/4.4.1/crtbeginS.o .libs/Extensions.o .libs/OrderedStatic.o .libs/SafeFormat.o .libs/Singleton.o .libs/SmallObj.o .libs/SmartPtr.o .libs/StrongPtr.o -lsigc-2.0 -L/usr/lib/gcc/i686-redhat-linux/4.4.1 -L/usr/lib/gcc/i686-redhat-linux/4.4.1/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/i686-redhat-linux/4.4.1/crtendS.o /usr/lib/gcc/i686-redhat-linux/4.4.1/../../../crtn.o -m32 -march=i686 -mtune=atom -Wl,-O1 -Wl,--hash-style=both -Wl,-soname -Wl,libferrisloki.so.3 -o .libs/libferrisloki.so.3.0.0 -------------------------------------------------------------------- * BuildRoot - BuildRoot currently used in your spec file is not valid on Fedora: https://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag ! Note On currently supported Fedora version (Fedora 10/11/12), you can simply BuildRoot line completely. * URL - Perhaps http://witme.sourceforge.net/ is better? * BuildRequires - BR: gcc-c++ is redundant: https://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 * About %build - From build.log: ------------------------------------------------------------------- 44 + ./configure --build=i386-redhat-linux-gnu --host=i386-redhat-linux-gnu --target=i686-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-sigcxx-2x=yes 45 configure: WARNING: unrecognized options: --with-sigcxx-2x ------------------------------------------------------------------- is "--with-sigcxx-2x" needed? - tarball contains include/FerrisLoki/loki/, i.e. this package uses internal copy of loki, however on Fedora loki is already packaged: https://admin.fedoraproject.org/pkgdb/packages/name/loki-lib http://koji.fedoraproject.org/koji/packageinfo?packageID=4740 This package (ferrisloki) should be patched to use system-wide loki-lib and include/FerrisLoki/loki/ should be removed at %prep. * %files - Fedora strongly suggests not to include static archives (.a files) https://fedoraproject.org/wiki/Packaging/Guidelines#Packaging_Static_Libraries - The directory %{_includedir}/FerrisLoki itself is not owned by any packages: https://fedoraproject.org/wiki/Packaging/Guidelines#File_and_Directory_Ownership https://fedoraproject.org/wiki/Packaging/UnownedDirectories#Forgetting_to_Include_a_Toplevel_Directory * pkgconfig file - ferrisloki.pc says (on i686, rawhide): --------------------------------------------------- 6 Name: ferrisloki 7 Description: Version of standard loki library with extensions. 8 Version: 3.0.2 9 Requires: 10 Libs: -L${libdir} -lferrisloki -lsigc-2.0 11 Cflags: -I${includedir} -I${includedir}/FerrisLoki -I${includedir}/FerrisLoki/loki -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include --------------------------------------------------- This should be changed to: --------------------------------------------------- Name: ferrisloki Description: Version of standard loki library with extensions. Version: 3.0.2 Requires: sigc++-2.0 Libs: -L${libdir} -lferrisloki Cflags: -I${includedir}/FerrisLoki -I${includedir}/FerrisLoki/loki --------------------------------------------------- * Requires (for -devel subpackage) - For example FerrisLoki/BoostExtensions.hh contains: --------------------------------------------------- 53 #include <boost/config.hpp> 54 #include <boost/mpl/integral_c.hpp> 55 #include <boost/mpl/integral_c_tag.hpp> --------------------------------------------------- This package means that ferrisloki-devel should have "Requires: boost-devel". * Requires between subpackages - Usually the dependency between packages rebuilt from the same srpm should have exact EVR (Epoch-Version-Release). i.e. ferrislock-devel should have "Requires: %{name} = %{version}-%{release}", not just "Requires: %{name} >= %{version}": https://fedoraproject.org/wiki/Packaging/Guidelines#Requiring_Base_Package Once again, haven't had another look at the pkg since previously mentioned issues are still present and Mamoru has added a review. Just about the licensing: > * Licensing > - The license tag should simply be "GPLv2+". > src/Extensions.cpp is under GPLv2+, libferrisloki.so uses > .libs/Extensions.o, which renders libferrisloki.so to be under GPLv2+, > so other license tag is useless. * Relicensing of source files to GPLv2+ is neither automatic nor implicit. It would be best to make the GPLv2+ licensing explicit in all source files where license conversion is possible. Even the copied LGPLv2+ m4 macros could be converted to GPLv2+ by following the instructions in the LGPL appendix. However: * The BoostExtensions.hh file, which applies its own license, is included in the built rpms. Hence: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#Multiple_Licensing_Scenarios * About the several C++ source files with very short licensing terms or just copyright messages (e.g. LockingPtr.h), please don't take these issues lightly. See what is included in the built rpms. Some of the files (albeit from Loki lib) explicitly refer to "MIT" licensing. Several other files, used in ferrisloki (e.g. SmallObj.cpp) apply terms that look like https://fedoraproject.org/wiki/Licensing/MIT#Old_Style instead, i.e. more than a "Copyright Only" header even if it doesn't mention "MIT" anywhere. Simply ignoring such licensing issues in the Fedora package "License:" tag would be wrong. In particular, what I don't feel good about is this: | provided that [...] both that copyright notice and this | permission notice appear in supporting documentation. The 2nd example on the linked "Copyright Only" Fedora Licensing page wants copyright notices "to remain" in documentation. Vague enough already. These terms, however, can be read as requiring them to appear in supporting documentation. Compare with the MIT#Old_Style pointed at above. That is more than what the GPL requires. Those files could not be converted to GPL without the permission of the original authors, as the requirement where to put copyright notices and additional terms would be some sort of sublicensing, which would be illegal with the GPL. (In reply to comment #11) > Once again, haven't had another look at the pkg since previously mentioned > issues are still present and Mamoru has added a review. > > Just about the licensing: > > > * Licensing > > - The license tag should simply be "GPLv2+". > > src/Extensions.cpp is under GPLv2+, libferrisloki.so uses > > .libs/Extensions.o, which renders libferrisloki.so to be under GPLv2+, > > so other license tag is useless. > > * Relicensing of source files to GPLv2+ is neither automatic nor implicit. It > would be best to make the GPLv2+ licensing explicit in all source files where > license conversion is possible. - We always can it and there is no problem. > Even the copied LGPLv2+ m4 macros could be > converted to GPLv2+ by following the instructions in the LGPL appendix. > However: > > * The BoostExtensions.hh file, which applies its own license, is included in > the built rpms. Hence: > http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#Multiple_Licensing_Scenarios > > * About the several C++ source files with very short licensing terms or just > copyright messages (e.g. LockingPtr.h), please don't take these issues lightly. > See what is included in the built rpms. Some of the files (albeit from Loki > lib) explicitly refer to "MIT" licensing. Several other files, used in > ferrisloki (e.g. SmallObj.cpp) apply terms that look like > > https://fedoraproject.org/wiki/Licensing/MIT#Old_Style > > instead, i.e. more than a "Copyright Only" header even if it doesn't mention > "MIT" anywhere. https://fedoraproject.org/wiki/Packaging/LicensingGuidelines#Multiple_Licensing_Scenarios Quoted: If your package contains files which are under multiple, distinct, and *independent* licenses, then the spec must reflect this by using "and" as a separator. The relation between MIT and GPL is not independent. > Simply ignoring such licensing issues in the Fedora package "License:" tag > would be wrong. In particular, what I don't feel good about is this: > > | provided that [...] both that copyright notice and this > | permission notice appear in supporting documentation. > > The 2nd example on the linked "Copyright Only" Fedora Licensing page wants > copyright notices "to remain" in documentation. Vague enough already. https://fedoraproject.org/wiki/Licensing/MIT#Old_Style_with_legal_disclaimer Quoted: and that both that copyright notice and this permission notice appear in supporting documentation, > We always can it and there is no problem. We can always do what? > https://fedoraproject.org/wiki/Licensing/MIT#Old_Style_with_legal_disclaimer Such a legal disclaimer is not found in the files. As I pointed out before: https://fedoraproject.org/wiki/Licensing/MIT#Old_Style (In reply to comment #13) > Such a legal disclaimer is not found in the files. > As I pointed out before: > https://fedoraproject.org/wiki/Licensing/MIT#Old_Style If you insist that the license you quoted is not MIT, ask spot. I have no idea what you're talking about. To not answer my brief question doesn't help. [...] In comment 11, I've mentioned that _some_ of the source file headers in the build rpm explicitly give the licensing the name "MIT License", $ grep MIT * CachedFactory.h:// Code covered by the MIT License DataGenerators.h:// Code covered by the MIT License Factory.h:// Code covered by the MIT License Key.h:// Code covered by the MIT License SPCachedFactory.h:// Code covered by the MIT License StrongPtr.h:// The copyright on this file is protected under the terms of the MIT license. while other files apply a nameless license as in: https://fedoraproject.org/wiki/Licensing/MIT#Old_Style Due to even different licenses applied to other files in the binary rpm, currently the following guideline applies: https://fedoraproject.org/wiki/Packaging/LicensingGuidelines#Multiple_Licensing_Scenarios ==> License: GPLv2+ and MIT and Boost Compatibility with GPL is given by both MIT and Boost, but there is no automatic/implict conversion of the licensing of either The Program or individual files included in the binary rpms. Further, MIT#Old_Style does not explicitly permit sublicensing. And with that we're back at older comments in this ticket. There were several constructive comments made before the licensing discussion broke out, and it's been well over a year with no response from the submitter, so I'm just going to go ahead and close this. |