SPEC: http://www.symetrix.com/~bjohnson/projects/rpmfusion/tivodecode.spec SRPM: http://www.symetrix.com/~bjohnson/projects/rpmfusion/tivodecode-0.2-0.pre4.1.fc10.src.rpm Description: This software converts a .TiVo file (produced by the TiVoToGo functionality on recent TiVo software releases) to a normal MPEG file. This has the same functionality as using TiVo's supplied DirectShow DLL on Windows with a tool such as DirectShowDump, but is portable to different architectures and operating systems, and runs on the command line using files or pipes. The conversion still requires the valid MAK of the TiVo which recorded the file, so it cannot be used to circumvent their protection, simply to provide the same level of access as is already available on Windows. Why Not Fedora? Patent encumbered. $ rpmlint *rpm tivodecode.i386: W: invalid-license QUALCOMM tivodecode.src: W: invalid-license QUALCOMM tivodecode-debuginfo.i386: W: invalid-license QUALCOMM 3 packages and 0 specfiles checked; 0 errors, 3 warnings. $ QUALCOMM license is not on the fedora licensing page: https://fedoraproject.org/wiki/Licensing, although it appears to be a variation on a BSD license.
The QUALCOMM license is essentially the SSLeay license: http://www.sdisw.com/openssl.htm (I recognized the wording of clause 4 of the QUALCOMM license, including the incorrect reference to a nonexistent "GNU Public License" - there's a "GNU General Public License", but no "GNU Public License"), with the "Windows specific code" clause (clause 4 of the SSLeay license) removed and with a patent license added (clause 5 of the QUALCOMM license). I'm not sure about the freeness of the patent license (does the wording "A free and irrevocable license is hereby granted for the use of such patents to the extent required to utilize the Turing family of encryption algorithms for any purpose" include derivative algorithms or is this one of the typical non-Free "only licensed if you comply to my standard" clauses?), but my non-lawyer reading of the license is that this is independent of the copyright license, so the software is Free where software patents do not apply (and thus suitable for the free section here at RPM Fusion), given that the terms other than that patent license are definitely Free (or OpenSSL wouldn't be Free). Is this the only patent-encumbered code or is there other stuff (e.g. MPEG compression/decompression) too? If it's the only patent-encumbered code, it may be worth trying to ask spot about that patent license, to see if it's acceptable for Fedora. (If you already did that, ignore this paragraph.)
(In reply to comment #1) > The QUALCOMM license is essentially the SSLeay license: I could have looked for ages and never found that! :) > but my non-lawyer > reading of the license is that this is independent of the copyright license, so > the software is Free where software patents do not apply (and thus suitable for > the free section here at RPM Fusion), That was my interpretation as well. > Is this the only patent-encumbered code or is there other stuff (e.g. MPEG > compression/decompression) too? If it's the only patent-encumbered code, it may > be worth trying to ask spot about that patent license, to see if it's > acceptable for Fedora. (If you already did that, ignore this paragraph.) My understanding of information that I've read about tivodecode is that it has code that understands the MPEG program stream, but not the compression/decompression. tivodecode works by undecrypting frames of MPEG data from the program stream. I had assumed that anything that was written to even understand the MPEG program stream would be patent encumbered.
It's not, see https://bugzilla.redhat.com/show_bug.cgi?id=213597 . So it's the QUALCOMM patent which may be an issue depending on how their patent license is to be interpreted, I guess you should ask on the fedora-legal-list.
Thanks, I posted to fedora-legal for comments.
And it was denied: > I need a ruling on whether tivodecode can be accepted into Fedora. It's > > currently submitted to rpmfusion, but Kevin Koffler thought it might be > > able to be accepted into Fedora proper. > > > > There were three things under consideration: > > * Freeness of QUALCOMM software license - appears to be free software > > * QUALCOMM encryption patents (free?) > > * MPEG program stream decoding (not decompression) Well, there really is a fourth: this is possibly a DMCA violation. Upon consultation with counsel, we decided that we're much happier with this living in RPMFusion as a result.
May I ask, what is this for? %exclude %{_includedir}/%{name} %exclude %{_libdir} Also, please obey the versioning guidelines for pre-release packages: http://fedoraproject.org/wiki/Packaging/NamingGuidelines#Pre-Release_packages
(In reply to comment #6) > May I ask, what is this for? > %exclude %{_includedir}/%{name} > %exclude %{_libdir} I'm not including devel files. If you think this is a problem, I can, but I don't know of any application that builds against libtivodecode.a (a static library). > Also, please obey the versioning guidelines for pre-release packages: > > http://fedoraproject.org/wiki/Packaging/NamingGuidelines#Pre-Release_packages Looks like I left out a number. I will fix it to be compliant as tivodecode-0.2-0.1.pre4.1.
(In reply to comment #7) > (In reply to comment #6) > > May I ask, what is this for? > > %exclude %{_includedir}/%{name} > > %exclude %{_libdir} > > I'm not including devel files. If you think this is a problem, I can, but I > don't know of any application that builds against libtivodecode.a (a static > library). > There are two options: 1) Ask the upstream if they have the API stabilized. If yes, then patch the Makefile etc to build shared library with proper soname. The tivodecode executable has to link to this library dynamically. The library file goes to the libs subpackage and the header files go to the devel subpackage. Then both the main package and the devel subpackage will require the libs subpackage. 2) If the API is unstable, then put the static library and the header files in devel subpackage and add "Provides: %{name}-static = %{version}-%{release}" to the devel subpackage. > > Also, please obey the versioning guidelines for pre-release packages: > > > > http://fedoraproject.org/wiki/Packaging/NamingGuidelines#Pre-Release_packages > > Looks like I left out a number. I will fix it to be compliant as > tivodecode-0.2-0.1.pre4.1. > I think it should go like tivodecode-0.2-0.1.pre4 tivodecode-0.2-0.2.pre4 (minor packaging fix) tivodecode-0.2-0.3.pre5 (another prerelease) tivodecode-0.2-1 (final release) ...
(In reply to comment #8) > 1) Ask the upstream if they have the API stabilized. Sounds like the API is stable. This is what I received from upstream: "The API is stable. I wrote an mplayer demuxer prototype that used it (but I never managed to solve my seeking issues), and also a COM interface wrapper for Windows (which someone else used to write a .NET application). One of these days I'll have to release 0.2. The reason I didn't was I never figured out how exactly I wanted the command line options to save metadata to work. And I was going to make another program to build a TiVo file (to allow modifying the metadata and sending the file back to the TiVo or the TiVo Desktop software)." So I'll work on shared library route. Any advice for soname to avoid conflicts with upstream in the future? Just start with libtivodecode.so.0? > I think it should go like > tivodecode-0.2-0.1.pre4 > tivodecode-0.2-0.2.pre4 (minor packaging fix) > tivodecode-0.2-0.3.pre5 (another prerelease) > tivodecode-0.2-1 (final release) > ... Oops, yes, I'll fix that.
(In reply to comment #9) > > Any advice for soname to avoid conflicts with upstream in the future? Just > start with libtivodecode.so.0? > Sounds good
SPEC: http://fedorapeople.org/~bjohnson/tivodecode.spec SRPM: http://fedorapeople.org/~bjohnson/tivodecode-0.2-0.2.pre4.fc11.src.rpm Here is the version with a shared library. $ rpmlint *rpm tivodecode.i586: W: invalid-license QUALCOMM tivodecode.src: W: invalid-license QUALCOMM tivodecode-debuginfo.i586: W: invalid-license QUALCOMM tivodecode-devel.i586: W: invalid-license QUALCOMM tivodecode-devel.i586: W: no-documentation tivodecode-libs.i586: W: invalid-license QUALCOMM tivodecode-libs.i586: W: shared-lib-calls-exit /usr/lib/libtivodecode.so.0.0.0 exit@GLIBC_2.0 tivodecode-libs.i586: W: no-documentation 5 packages and 0 specfiles checked; 0 errors, 8 warnings. I looked into the shared-lib-calls-exit complaint and it is an exist following a failed malloc and perror in tivo-parse.c. I guess I would have handled it differently, but I'm reluctant to change it. I'm not aware of any other issues.
I reviewed this package. I have some questions and comments: ? What part of the code is Public Domain? Remember that, if a public domain code gets compiled with a more restrictive license (well, any license is more restrictive than public domain), the resulting binary will have the restrictive license. * I believe that the COPYING file must go to the libs package because that is the base package (the other packages require it), so if someone installs any tivodecode-X package we make sure that he gets a COPYING file. ! About the rpmlints, the license and documentation ones can be ignored. shared-libs-calls-exit is not nice. But for the time being there are not so many applications that depend on this library. So we can ignore this for now, and come back to it later if it causes problems. * This looks like free software. But the license contains the phrases: All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by QUALCOMM Incorporated. ... any commercial product utilising any of the Turing family of encryption algorithms should show the words "Encryption by QUALCOMM" either on the product or in the associated documentation. These make me think that the software might be considered nonfree. So Fedora Legal denies this package due to patent issues but what did Fedora Legal say about the freedom of this software? Is it free or nonfree?
(In reply to comment #12) > ? What part of the code is Public Domain? Remember that, if a public domain > code gets compiled with a more restrictive license (well, any license is more > restrictive than public domain), the resulting binary will have the restrictive > license. sha1.c is public domain. Because the package should reflect the license of the resulting binary, I have changed the license to "BSD and QUALCOMM". > * I believe that the COPYING file must go to the libs package because that is > the base package (the other packages require it), so if someone installs any > tivodecode-X package we make sure that he gets a COPYING file. Agreed. > * This looks like free software. But the license contains the phrases: > > All advertising materials mentioning features or use of this > software must display the following acknowledgement: This product > includes software developed by QUALCOMM Incorporated. > > ... any commercial product utilising any of the Turing family of encryption > algorithms should show the words "Encryption by QUALCOMM" either on the > product or in the associated documentation. > > These make me think that the software might be considered nonfree. > So Fedora Legal denies this package due to patent issues but what did Fedora > Legal say about the freedom of this software? Is it free or nonfree? There was no comment regarding free vs non-free by Fedora Legal - simply that they didn't want tivodecode in Fedora because of other concerns. That comment is here: http://www.mail-archive.com/fedora-legal-list@redhat.com/msg00225.html Is it the "any commercial product..." phrase that you are concerned about? An additional restriction for commercial software?
The software is modifiable and re-distributable. These are musts of free software and this software complies with these requirements. But part where it says "...must display the following acknowledgement: This product includes software developed by QUALCOMM Incorporated." makes me suspicious. The package is good to go after the above two fixes but I don't know if it should go to the free repo or to the nonfree repo. Shall we consult spot?
Nevermind, there is a BSD license with advertising which has a similar phrase and it is accepted by Fedora: https://fedoraproject.org/wiki/Licensing/BSD#Original_BSD_License_.28BSD_with_advertising.29 It is just GPL incompatible, which is okay. This software is free. Please make an update on the SPEC file with the fixes.
SPEC: http://fedorapeople.org/~bjohnson/tivodecode.spec SRPM: http://fedorapeople.org/~bjohnson/tivodecode-0.2-0.3.pre4.fc12.src.rpm * Sat Nov 29 2009 Bernard Johnson <bjohnson@symetrix.com> - 0.2-0.3.pre4 - License should be BSD and QUALCOMM only - moved COPYING file to libs package $ rpmlint *rpm tivodecode.src: W: invalid-license QUALCOMM tivodecode.x86_64: W: invalid-license QUALCOMM tivodecode-debuginfo.x86_64: W: invalid-license QUALCOMM tivodecode-devel.x86_64: W: invalid-license QUALCOMM tivodecode-devel.x86_64: W: no-documentation tivodecode-libs.x86_64: W: invalid-license QUALCOMM tivodecode-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libtivodecode.so.0.0.0 exit@GLIBC_2.2.5 5 packages and 0 specfiles checked; 0 errors, 7 warnings.
Thanks! I think we are done with this one. ---------------------------------------------------------------- This package (tivodecode) is APPROVED by oget for rpmfusion-free ---------------------------------------------------------------- Since you are a Fedora packager we don't need to ask you for more proof of eligibility. Besides your other review request seems in good shape. Thus you are now sponsored in RPMFusion. Go ahead and ask for CVS for the package following the guidelines at http://rpmfusion.org/Contributors#head-8354059095aca6ccb5494f9dac8815b732cfe2fd Let me know if you have other questions.
Thanks Orcan! Package CVS request ====================== Package Name: tivodecode Short Description: Convert a .TiVo file from TiVoToGo to a normal MPEG Owners: bjohnson Branches: F-11, F-12, EL-5 InitialCC: ---------------------- License tag: free
(In reply to comment #18) > Package CVS request done
built
Moving to RF_ACCEPT.