Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 416205 - media-plugins/mediastreamer-silk-0.0.1 - SILK (Skype codec) plugin for mediastreamer (see comment #24)
Summary: media-plugins/mediastreamer-silk-0.0.1 - SILK (Skype codec) plugin for medias...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Andrew Savchenko
URL:
Whiteboard:
Keywords: EBUILD, PATCH
Depends on: 399737
Blocks:
  Show dependency tree
 
Reported: 2012-05-16 05:35 UTC by Andrew Savchenko
Modified: 2018-11-04 13:35 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
mediastreamer-silk-0.0.1.ebuild (mediastreamer-silk-0.0.1.ebuild,996 bytes, text/plain)
2012-05-16 05:36 UTC, Andrew Savchenko
Details
mediastreamer-silk-0.0.1-sdk.patch (mediastreamer-silk-0.0.1-sdk.patch,1.53 KB, patch)
2012-05-16 05:39 UTC, Andrew Savchenko
Details | Diff
mediastreamer-silk-0.0.1.ebuild (mediastreamer-silk-0.0.1.ebuild,999 bytes, patch)
2012-05-17 05:27 UTC, Andrew Savchenko
Details | Diff
mediastreamer-silk-0.0.1.ebuild (mediastreamer-silk-0.0.1.ebuild,1.32 KB, text/plain)
2012-06-02 00:49 UTC, Andrew Savchenko
Details
skype sources license (skype.code.license,308 bytes, text/plain)
2013-01-13 07:09 UTC, Andrew Savchenko
Details
skype patent license (skype.patent.license,10.02 KB, text/plain)
2013-01-13 07:10 UTC, Andrew Savchenko
Details
License from source file headers in SILK_SDK zipball (SILK,1.59 KB, text/plain)
2013-01-13 13:39 UTC, Ulrich Müller
Details
build.log for mediastreamer-silk-1.0.0 (build.log,10.52 KB, text/plain)
2013-10-28 09:12 UTC, Sergey Popov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Savchenko gentoo-dev 2012-05-16 05:35:12 UTC
Hello,

This package is SILK (skype codec) plugin for mediastreamer. This is as a part of mediastreamer-2.8.2 update, required for linphone-3.5.2 update.

Well, it has some peculiarities: during the build original build system downloads(!!) SILK SDK from skype, it is needed for a build process. I unbundled this process, now download is controlled by portage.

Anothe peculiarity is SILK license, it is free in terms of money, but for non-private or commercial use requires signing a patent license. I restricted this package from mirroring and added bindist check. This should do it. The plugin itself is GPL-3.

Plugin works with linphone <-> linphone local communication.
Comment 1 Andrew Savchenko gentoo-dev 2012-05-16 05:36:06 UTC
Created attachment 311963 [details]
mediastreamer-silk-0.0.1.ebuild
Comment 2 Andrew Savchenko gentoo-dev 2012-05-16 05:39:14 UTC
Created attachment 311965 [details, diff]
mediastreamer-silk-0.0.1-sdk.patch

This patch fixes SILK SDK handling:

1) Removes bundled download tools and fixes build process to use portage-unpacked data.
2) Fixes installation, removes unneeded static libs, and fixes sandbox violation.
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2012-05-16 13:57:45 UTC
The DESCRIPTION in the attached ebuild is wrong.
Comment 4 Andrew Savchenko gentoo-dev 2012-05-17 05:27:01 UTC
Created attachment 312077 [details, diff]
mediastreamer-silk-0.0.1.ebuild

Oops, fixed.
Comment 5 Andrew Savchenko gentoo-dev 2012-06-02 00:49:06 UTC
Created attachment 313899 [details]
mediastreamer-silk-0.0.1.ebuild

This update fixes .la file installed not to include static skype library.

Probably unbundling silk as a separate package is a good idea, but I'm not sure about licensing issues.
Comment 6 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2012-11-19 21:30:56 UTC
Committed.
Comment 7 Ulrich Müller gentoo-dev 2013-01-12 12:32:43 UTC
Reopening. We're currently cleaning up "as-is", so please don't commit _new_ packages that are labelled such. Besides, as-is is considered as a free software license and doesn't go together with mirror restriction.

As far as I can see, mssilk is distributed under GPL-2+ (not GPL-3).
For SILK, a new license file should be added, instead of as-is.
Comment 8 Andrew Savchenko gentoo-dev 2013-01-12 18:25:55 UTC
(In reply to comment #7)
> Reopening. We're currently cleaning up "as-is", so please don't commit _new_
> packages that are labelled such.

O tempora! O mores! Some time ago I filed a new packages request together with new license and it was changed to "as-is" with "we don't need any more similar licenses" clause.

BTW, it is already committed.

> As far as I can see, mssilk is distributed under GPL-2+ (not GPL-3).

From what sources you can see this? COPYING file from http://download.savannah.gnu.org/releases/linphone/plugins/sources/mssilk-0.0.1.tar.gz clearly says:

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

> For SILK, a new license file should be added, instead of as-is.

Agreed, probably with EULA license restriction class.
Comment 9 Ulrich Müller gentoo-dev 2013-01-12 18:44:39 UTC
(In reply to comment #8)
> O tempora! O mores! Some time ago I filed a new packages request together
> with new license and it was changed to "as-is" with "we don't need any more
> similar licenses" clause.

That may well be, but we have ACCEPT_LICENSE now, so we care a bit more about the LICENSE variable being correct. Especially, the distinction between free and non-free software is important.

The status of "as-is" is nicely summarised in bug 440638 comment #4: "This license has been abused as a 'we take as-is everytime we don't know what to put into LICENSE, no matter if it makes any sense' by too many devs over a very long time." It is completely useless for filtering, so the goal is to clean it up and move all 700 packages that are using it to more specific licenses.

> > As far as I can see, mssilk is distributed under GPL-2+ (not GPL-3).
> 
> From what sources you can see this? COPYING file [...]

It doesn't matter so much what COPYING file is included. All source files (it's only two of them, silk_{enc,dec}.c) carry a notice saying GPL version 2 or any later version.

> > For SILK, a new license file should be added, instead of as-is.
> 
> Agreed, probably with EULA license restriction class.

Can you attach it to this bug, please?
Comment 10 Andrew Savchenko gentoo-dev 2013-01-13 07:08:19 UTC
Hello,

(In reply to comment #9)
> > > As far as I can see, mssilk is distributed under GPL-2+ (not GPL-3).
> > 
> > From what sources you can see this? COPYING file [...]
> 
> It doesn't matter so much what COPYING file is included. All source files
> (it's only two of them, silk_{enc,dec}.c) carry a notice saying GPL version
> 2 or any later version.

*.c files are not the only copyrightable ones. *.ac, *.am, *.mk are also subjected as copyrightable material (even if we don't use some of them, they're still shipped within the package).

So this packages should have at least dual license. GPL-3 only will not be an error either, because *.c headers explicitly allow use of any higher license. 

> > > For SILK, a new license file should be added, instead of as-is.
> > 
> > Agreed, probably with EULA license restriction class.
> 
> Can you attach it to this bug, please?

It's not that simple. There are two licenses in fact: a software license and a patent license, the latter is required for "any purpose other than internal evaluation and testing". 

The software license is taken from http://developer.skype.com/silk , and the patent license requires signing an online form to be accepted: http://developer.skype.com/silk/license

Both licenses are attached.

In my POW it will be better to create a separate package for SILK.
Comment 11 Andrew Savchenko gentoo-dev 2013-01-13 07:09:50 UTC
Created attachment 335426 [details]
skype sources license
Comment 12 Andrew Savchenko gentoo-dev 2013-01-13 07:10:43 UTC
Created attachment 335428 [details]
skype patent license
Comment 13 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2013-01-13 09:22:55 UTC
(In reply to comment #10)
> In my POW it will be better to create a separate package for SILK.

For the SILK API, you mean? I agree. Feel free to provide ebuilds. By the way, do you maybe want to proxy-maintain it?
Comment 14 Ulrich Müller gentoo-dev 2013-01-13 13:36:17 UTC
(In reply to comment #10)
> *.c files are not the only copyrightable ones. *.ac, *.am, *.mk are also
> subjected as copyrightable material (even if we don't use some of them,
> they're still shipped within the package).

Neither of them has a GPL license notice. Also, LICENSE only applies to things that are installed on the user's system.

> So this packages should have at least dual license. GPL-3 only will not be
> an error either, because *.c headers explicitly allow use of any higher
> license.

It's not entirely wrong, but isn't accurate either. The license notices say GPL-2+.

> It's not that simple. There are two licenses in fact: a software license and
> a patent license, the latter is required for "any purpose other than
> internal evaluation and testing". 
> 
> The software license is taken from http://developer.skype.com/silk , and the
> patent license requires signing an online form to be accepted:
> http://developer.skype.com/silk/license
> 
> Both licenses are attached.

(In reply to comment #11)
> Created attachment 335426 [details]
> skype sources license

This isn't a license, but just a license notice. The real license seems to be what is included in the source files' headers in the SILK_SDK zipball. It basically is a 3-clause BSD license, with the following additional clause (hidden in the disclaimer, what do these people think? :-( ).

   NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
   BY THIS LICENSE.
Comment 15 Ulrich Müller gentoo-dev 2013-01-13 13:39:00 UTC
Created attachment 335462 [details]
License from source file headers in SILK_SDK zipball
Comment 16 Ulrich Müller gentoo-dev 2013-01-13 18:24:19 UTC
(In reply to comment #15)
> Created attachment 335462 [details]
> License from source file headers in SILK_SDK zipball

As I just learned, this is called the "Clear BSD" license, and it is approved by the FSF as GPL compatible: <http://www.gnu.org/licenses/license-list.html#clearbsd>
Comment 17 Ulrich Müller gentoo-dev 2013-01-16 09:04:07 UTC
I've committed the copyright license as "Clear-BSD" and the patent license as "SILK-patent-license". The Clear-BSD license is in the GPL-COMPATIBLE group (as it is approved by the FSF).

(In reply to comment #8)
> > For SILK, a new license file should be added, instead of as-is.
> 
> Agreed, probably with EULA license restriction class.

(In reply to comment #10)
> It's not that simple. There are two licenses in fact: a software license and
> a patent license, the latter is required for "any purpose other than
> internal evaluation and testing". 

@Licenses team: Should this be added to the EULA license group? Its language (e.g. "By clicking 'I agree' below you indicate that you understand this license agreement and agree to all of its terms.") is somewhat suggestive of that.

On the other hand, the patent license can be ignored by private users in many countries. For example, in countries of the European Union, patent rights don't extend to "acts done privately and for non-commercial purposes". (I'm not sure about the situation in the U.S. though.)
Comment 18 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2013-01-19 10:30:09 UTC
Is there a consensus of what should I apply to the ebuild? @ulm, if you like, feel free to commit it yourself.
Comment 19 Ulrich Müller gentoo-dev 2013-01-19 11:04:31 UTC
(In reply to comment #18)
> Is there a consensus of what should I apply to the ebuild? @ulm, if you
> like, feel free to commit it yourself.

I've changed LICENSE to "GPL-2+ Clear-BSD SILK-patent-license".

Should this bug be left open for the package split mentioned in comment #10?
Comment 20 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2013-01-19 11:09:44 UTC
@voip, @Andrew: please take it from this point. I was merely committing the new version of linphone but I don't want to decide about its future.
Comment 21 Andrew Savchenko gentoo-dev 2013-01-20 09:13:43 UTC
(In reply to comment #20)
> @voip, @Andrew: please take it from this point. I was merely committing the
> new version of linphone but I don't want to decide about its future.

Michał, I`ll take care of that and will create a separate package to SILK SDK. Results will be in the voip overlay.

But please wait for at least several days. Unfortunately, I'm too busy right now IRL.
Comment 22 Andrew Savchenko gentoo-dev 2013-10-13 14:44:15 UTC
Hello,

I separated silk codec to a media-libs/silk package.
Updated versions are in voip overlay:
media-libs/silk-1.0.9
media-plugins/mediastreamer-silk-1.0.0

All patent and license issues are now goes to media-libs/silk.
Comment 23 Nikoli 2013-10-13 14:55:15 UTC
Should not this bug be open until fixed in tree?
Comment 24 Andrew Savchenko gentoo-dev 2013-10-13 15:32:05 UTC
Ok, pending till someone will push this to tree.
Comment 25 Pacho Ramos gentoo-dev 2013-10-27 10:32:05 UTC
(In reply to Andrew Savchenko from comment #22)
> Hello,
> 
> I separated silk codec to a media-libs/silk package.
> Updated versions are in voip overlay:
> media-libs/silk-1.0.9
> media-plugins/mediastreamer-silk-1.0.0
> 
> All patent and license issues are now goes to media-libs/silk.
Comment 26 Sergey Popov gentoo-dev 2013-10-28 09:12:58 UTC
Created attachment 362114 [details]
build.log for mediastreamer-silk-1.0.0

(In reply to Andrew Savchenko from comment #22)
> Hello,
> 
> I separated silk codec to a media-libs/silk package.
> Updated versions are in voip overlay:
> media-libs/silk-1.0.9
> media-plugins/mediastreamer-silk-1.0.0
> 
> All patent and license issues are now goes to media-libs/silk.

Unfortunately mediastreamer-silk-1.0.0 from voip overlay fails with error:

silk_dec.c:187:4: error: 'MS_DECODER_HAVE_PLC' undeclared here (not in a function)

build.log attached

phantom ~ # emerge --info mediastreamer
Portage 2.2.1 (default/linux/amd64/13.0/developer, gcc-4.7.3, glibc-2.15-r3, 3.10.7-gentoo-BADO x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.10.7-gentoo-BADO-x86_64-Intel-R-_Core-TM-_i7_CPU_950_@_3.07GHz-with-gentoo-2.2
KiB Mem:    12282400 total,   6721684 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Sat, 26 Oct 2013 21:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.1
ccache version 3.1.9 [enabled]
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r2, 3.2.5-r2
dev-util/ccache:          3.1.9
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.12.6
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo pinkbyte
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/bound/distfiles"
EMERGE_DEFAULT_OPTS=""
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms sign splitdebug strict test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles"
LANG="ru_RU.UTF-8"
LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9"
PKGDIR="/bound/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/bound/portage"
PORTDIR_OVERLAY="/bound/overlays/pinkbyte"
USE="a52 aac acl acpi alsa amd64 bzip2 cairo cdda cdr cli cracklib crypt cxx dbus dri dts dvd dvdr emboss encode exif fam firefox flac fortran gif gpm iconv ipv6 jpeg lcms mad mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl ogg openmp pam pango pcre pdf png policykit ppds qt3support readline sdl session snmp spell sse sse2 ssl startup-notification svg tcpd threads truetype udev udisks unicode upower usb vorbis wxwidgets x264 xcb xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="ru ru_RU" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
USE_PYTHON="2.7"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC

=================================================================
                        Package Settings
=================================================================

media-libs/mediastreamer-2.8.2 was built with the following:
USE="alsa ipv6 (multilib) silk speex x264 -X -amr -bindist (-coreaudio) -debug -doc -examples -g726 -g729 -gsm -ilbc -oss -portaudio -pulseaudio -sdl -static-libs -theora -v4l -video" ABI_X86="64"


Version 0.0.1 from main portage tree builds fine.
Comment 27 Dennis Schridde 2015-06-23 08:14:55 UTC
(In reply to Sergey Popov from comment #26)
> Version 0.0.1 from main portage tree builds fine.

Note anymore, see bug #529610.