On 22 July 2016 at 20:10, Benjamin TERRIER <b.terr...@gmail.com> wrote: > Hi, > > My personal experience is that it will depend on the countries in > which you develop > and distribute your software. > > In France for instance software are protected by "author's rights" which > implies > that to be protected a piece of code must have some kind of creativity and/or > originality. So my guess would be that according to French laws qFuzzyCompare > cannot be protected and thus can be copy-pasted without infringing > neither the law nor the LGPL. > Note that this is only a guess as only judges can rule if a piece of > code is original enough to be protected.
Hi Benjamin, I was thinking along these lines too, now the thing is I'm French too... ;) But I'm currently working in New Zealand for a US based company that sell their products in quite a few countries. To emphasize a bit more, my opinion was based on the fact that qFuzzyCompare is both very small and that is not innovative (prior-art). Citing Qt source code was just a way to justify a choice amoong all the possibilities, plus as well i was trying to sensibilise people to the Qt framework, hoping to raise some attention to it. Since it not always a joy to have to re-invent the wheel all the time.... thx, Chris > > If you want to be sure your best move is to contact the FSF or a > lawyer specializing in copyright. > > BR, > > Benjamin > > 2016-07-22 5:00 GMT+02:00 Ch'Gans <chg...@gna.org>: >> Hi there, >> >> I've recently added a "bool FuzzyCompare(float f1, float f2)" function >> to a proprietary software I'm currently paid to work on (this is plain >> C++ project, it doesn't use the Qt framework at all). >> Being a more-than-happy Qt user in my spare time I decided that I >> would first checkout the qFuzzyCompare implementation since I consider >> Qt developers as top-of-the-notch C++ wizards (no kidding and no >> attempt to be nice with them). >> >> I have added a comment to "my" implementation referring to the >> implementation of "qFuzzyCompare" in Qt5 source code (along with [1]). >> The 2 implementations look alike indeed (apart from using std::fabsf, >> std::min, etc.. in place of qAbs, qMin, ...), since the fuzzy compare >> is a well-known algorithm. >> My reference to Qt5 was there to justify the use of the "magic >> constant" 100000.f. >> >> I was pointed out that there's a potential LGPLv3 license >> infringement, although I understand where the FUD is coming from, I >> think that it is OK to read LGPLv3 source code to get inspired as long >> as you don't blindly copy/paste code (In my case i checked out quite a >> few articles and forum threads before choosing the Qt way as the best >> way to do it for my application). >> >> So my question is actually very serious, in this particular case, >> would this be considered as a LGPLv3 infringement of Qt5 to add this >> to a piece of proprietary software: >> // Taken from Qt5 source code, see >> http://doc.qt.io/qt-5/qtglobal.html#qFuzzyCompare-1 and >> // >> https://code.woboq.org/qt5/qtbase/src/corelib/global/qglobal.h.html#_ZL13qFuzzyCompareff >> // And for the insomniacs: >> https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ >> bool FuzzyCompare(float f1, float f2) >> { >> return (::fabsf(f1 - f2) * 100000.0f <= std::min(::fabsf(f1), >> ::fabsf(f2))); >> } >> >> For comparison purpose, here is the Qt source code: >> Q_DECL_CONSTEXPR static inline bool qFuzzyCompare(float p1, float p2) >> { >> return (qAbs(p1 - p2) * 100000.f <= qMin(qAbs(p1), qAbs(p2))); >> } >> >> You can find many more implementations of this algorithm on >> stack-overflow and other forums. >> >> At the end, I proposed to change the comments to refer to wikipedia >> instead of Qt5 source code and saying that 100000.0f is the right >> value for epsilon. >> >> I know this is a drop in an ocean (we're talking 1 line of C++), but i >> think the question is indeed interesting. Thanks for shedding light on >> this particular issue. >> >> Chris >> >> >> [1] >> https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ >> _______________________________________________ >> Interest mailing list >> Interest@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest