Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 320817

Summary: [new package] media-libs/libvpx
Product: Gentoo Linux Reporter: Nikoli <nikoli>
Component: Current packagesAssignee: Gentoo Media-video project <media-video>
Status: RESOLVED FIXED    
Severity: enhancement CC: alecm_88, daggs, floppym, ford_prefect, spatz, uzytkownik2, voyageur, zmedico
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://code.google.com/p/webm/downloads/list
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: ebuild
ebuild
ebuild for webm gstreamer
upstream fixed some issues
ffmpeg supports vp8
libvpx.ver for libvpx.so*
Upstream addressed other issues
cleanup 233233
do not force psnr packets
update to add shared library support

Description Nikoli 2010-05-21 02:23:20 UTC
VP8 SDK, encoder, decoder, etc.

Reproducible: Always
Comment 1 Nikoli 2010-05-21 02:24:25 UTC
Created attachment 232299 [details]
ebuild
Comment 2 Nikoli 2010-05-21 02:24:42 UTC
Created attachment 232301 [details]
ebuild
Comment 3 Steve Dibb (RETIRED) gentoo-dev 2010-05-21 14:36:17 UTC
(In reply to comment #2)
> Created an attachment (id=232301) [details]
> ebuild
> 

Nicely done, Nikoli
Comment 4 fkhp 2010-05-22 06:48:20 UTC
(In reply to comment #2)
> Created an attachment (id=232301) [details]
> ebuild
> 
http://lardbucket.org/blog/archives/2010/05/19/vp8-webm-and-ffmpeg/

pointed out these should be added :

sudo cp vp8/*.h /usr/include/
sudo cp vpx_codec/*.h /usr/include/
sudo cp vpx_ports/*.h /usr/include/
sudo cp libvpx.a /usr/lib/

in addition, a gcc CFLAG -fPIC is needed to be set to compile the lib with gcc 4.5, other wise ffmpeg(9999r1) could not use it.
Comment 5 fkhp 2010-05-22 06:51:55 UTC
> in addition, a gcc CFLAG -fPIC is needed to be set to compile the lib with gcc
> 4.5, other wise ffmpeg(9999r1) could not use it.
> 
it seems the --enable-pic is not work/enough for gcc4.5.

Comment 6 fkhp 2010-05-23 00:18:50 UTC
(In reply to comment #4)
> (In reply to comment #2)
> > Created an attachment (id=232301) [details] [details]
> > ebuild
> > 
> http://lardbucket.org/blog/archives/2010/05/19/vp8-webm-and-ffmpeg/
> 
> pointed out these should be added :
> 
> sudo cp vp8/*.h /usr/include/
> sudo cp vpx_codec/*.h /usr/include/
> sudo cp vpx_ports/*.h /usr/include/
> sudo cp libvpx.a /usr/lib/
> 
> in addition, a gcc CFLAG -fPIC is needed to be set to compile the lib with gcc
> 4.5, other wise ffmpeg(9999r1) could not use it.
> 

remove --disable-install-libs  from ebuild file seems will do install head and lib files, with 2 sudo cp head files left not installed:

/usr/include/vpx_timer.h
/usr/include/vpxtypes.h

if these 2 files are required, still need sudo cp in ebuild
Comment 7 Arun Raghavan (RETIRED) gentoo-dev 2010-05-24 17:36:45 UTC
Please note that (at least) gst-plugins-bad will look for the vpx headers in vpx/, so you should install it to /usr/include/vpx (this is cleaner than dumping them in the top-level /usr/include anyway).
Comment 8 fkhp 2010-05-25 05:46:51 UTC
Created attachment 232821 [details]
ebuild for webm gstreamer

--- libvpx-0.9.0.ebuild.old	2010-05-22 11:36:36.000000000 +0800
+++ libvpx-0.9.0.ebuild	2010-05-25 12:27:32.000000000 +0800
@@ -3,7 +3,7 @@
 # $Header: $
 
 EAPI=2
-inherit eutils multilib toolchain-funcs git
+inherit eutils multilib toolchain-funcs flag-o-matic git
 
 EGIT_REPO_URI="git://review.webmproject.org/libvpx.git"
 
@@ -41,7 +41,14 @@
 }
 
 src_install() {
+	append-flags "-fPIC"
 	emake DIST_DIR="${D}usr" install || die
+	sudo mkdir /usr/include/vpx
+	sudo cp vp8/*.h /usr/include/vpx
+	sudo cp vpx_codec/*.h /usr/include/vpx
+	sudo cp vpx_ports/*.h /usr/include/vpx
+	sudo cp libvpx.a /usr/lib/
+
 
 	dodoc AUTHORS CHANGELOG LICENSE README || die
Comment 9 Luca Barbato gentoo-dev 2010-05-25 12:30:13 UTC
keep in mind that now there is a proper install target, still I'd like upstream to sync properly with ffmpeg build system and avoid reinventing square wheels...
Comment 10 Nikoli 2010-05-25 12:37:51 UTC
Created attachment 232877 [details]
upstream fixed some issues
Comment 11 Nikoli 2010-05-25 12:42:47 UTC
Current problems are:
1) econf does not work with this configure
2) only static lib is built
3) multilib support

fkhp, obsolete your ebuild, it is usefull as spam.
Never use sudo and cp in ebuilds, doins exist, read http://devmanual.gentoo.org/ebuild-writing/ and libvpx git log
Comment 12 Nikoli 2010-05-25 13:11:09 UTC
Created attachment 232879 [details]
ffmpeg supports vp8

ffmpeg builds fine against libvpx, ffplay shows webm well.
Comment 13 Luca Barbato gentoo-dev 2010-05-25 14:12:28 UTC
(In reply to comment #11)
> Current problems are:
> 1) econf does not work with this configure

the configure doesn't even support --prefix, econf could be used with autoconf compatible script anyway


Comment 14 fkhp 2010-05-26 17:24:13 UTC
(In reply to comment #10)
> Created an attachment (id=232877) [details]
> upstream fixed some issues
> 
patches for webm gstreamer git master
to genterate /usr/lib64/libvpx.so* and cp *.h to /usr/include/vpx

--- libvpx-0.9.0.ebuild.old	2010-05-22 11:36:36.000000000 +0800
+++ libvpx-0.9.0.ebuild	2010-05-27 00:29:40.000000000 +0800
@@ -3,7 +3,7 @@
 # $Header: $
 
 EAPI=2
-inherit eutils multilib toolchain-funcs git
+inherit eutils multilib toolchain-funcs flag-o-matic git
 
 EGIT_REPO_URI="git://review.webmproject.org/libvpx.git"
 
@@ -41,7 +41,20 @@
 }
 
 src_install() {
+	append-flags "-fPIC"
 	emake DIST_DIR="${D}usr" install || die
+	sudo mkdir /usr/include/vpx
+	sudo cp vp8/*.h /usr/include/vpx
+	sudo cp vpx_codec/*.h /usr/include/vpx
+	sudo cp vpx_ports/*.h /usr/include/vpx
+	sudo cp libvpx.a /usr/lib/
+	mkdir tmp
+	cd tmp
+	ar x ../libvpx_g.a || die
+	cd ..
+	cp ${FILESDIR}/libvpx.ver .
+	gcc -fPIC -shared -pthread -lm -Wl,--no-undefined -Wl,-soname,libvpx.so.0 -Wl,--version-script,libvpx.ver -z noexecstack -o libvpx.so.0.0.0 tmp/*.o || die
+	sudo cp libvpx.so* /usr/lib64
 
 	dodoc AUTHORS CHANGELOG LICENSE README || die
Comment 16 fkhp 2010-05-27 00:37:01 UTC
Created attachment 233065 [details]
libvpx.ver for libvpx.so*
Comment 17 Luca Barbato gentoo-dev 2010-05-28 08:09:52 UTC
(In reply to comment #16)
> Created an attachment (id=233065) [details]
> libvpx.ver for libvpx.so*
> 

What would be it's usage now?
Comment 18 Luca Barbato gentoo-dev 2010-05-28 08:12:08 UTC
Created attachment 233233 [details]
Upstream addressed other issues

Now we are missing the actual .so =)
Comment 19 Luca Barbato gentoo-dev 2010-05-28 09:06:45 UTC
Created attachment 233241 [details]
cleanup 233233

there were a stray line...
Comment 20 Luca Barbato gentoo-dev 2010-05-28 16:52:32 UTC
Created attachment 233299 [details]
do not force psnr packets

As pointed in https://bugzilla.gnome.org/show_bug.cgi?id=619916 and http://code.google.com/p/webm/issues/detail?id=35
Comment 21 fkhp 2010-05-29 03:11:00 UTC
(In reply to comment #17)
> (In reply to comment #16)
> > Created an attachment (id=233065) [details] [details]
> > libvpx.ver for libvpx.so*
> > 
> 
> What would be it's usage now?
following fc13 spec file to create the libvpx.so* files

 src_install() {
 	emake DESTDIR="${D}" install || die
+	mkdir tmp
+	cd tmp
+	ar x ../libvpx_g.a || die
+	cd ..
+	cp ${FILESDIR}/libvpx.ver .
+	gcc -fPIC -shared -pthread -lm -Wl,--no-undefined -Wl,-soname,libvpx.so.0 -Wl,--version-script,libvpx.ver -z noexecstack -o libvpx.so.0.0.0 tmp/*.o || die
+	dolib.so libvpx.so*
 
 	dodoc AUTHORS CHANGELOG LICENSE README || die
 }
Comment 22 Luca Barbato gentoo-dev 2010-05-29 16:15:38 UTC
(In reply to comment #21)
> following fc13 spec file to create the libvpx.so* files
> 
>  src_install() {
>         emake DESTDIR="${D}" install || die
> +       mkdir tmp
> +       cd tmp
> +       ar x ../libvpx_g.a || die
> +       cd ..
> +       cp ${FILESDIR}/libvpx.ver .
> +       gcc -fPIC -shared -pthread -lm -Wl,--no-undefined
> -Wl,-soname,libvpx.so.0 -Wl,--version-script,libvpx.ver -z noexecstack -o
> libvpx.so.0.0.0 tmp/*.o || die
> +       dolib.so libvpx.so*

I'm not so fond of that, but if you _need_ libvpx this badly in portage I'll consider adding an ebuild with this.
Comment 23 fkhp 2010-05-30 04:06:33 UTC
(In reply to comment #22)
> (In reply to comment #21)
> > following fc13 spec file to create the libvpx.so* files
> > 
> >  src_install() {
> >         emake DESTDIR="${D}" install || die
> > +       mkdir tmp
> > +       cd tmp
> > +       ar x ../libvpx_g.a || die
> > +       cd ..
> > +       cp ${FILESDIR}/libvpx.ver .
> > +       gcc -fPIC -shared -pthread -lm -Wl,--no-undefined
> > -Wl,-soname,libvpx.so.0 -Wl,--version-script,libvpx.ver -z noexecstack -o
> > libvpx.so.0.0.0 tmp/*.o || die
> > +       dolib.so libvpx.so*
> 
> I'm not so fond of that, but if you _need_ libvpx this badly in portage I'll
> consider adding an ebuild with this.
> 

the latest ebuild works well, and this patch for  libvpx.so* is not needed, as  ffmpeg and gstreamer git master could compiled without the libvpx.so*.
Comment 24 fkhp 2010-05-30 04:12:22 UTC
the latest ebuild could be put in the portage.
Comment 25 Luca Barbato gentoo-dev 2010-06-06 19:51:13 UTC
Not yet please wait another couple of days (or use with w/out having outside LDFLAGS)
Comment 26 Luca Barbato gentoo-dev 2010-06-10 08:46:19 UTC
Created attachment 234837 [details]
update to add shared library support

Yet another update, greetings from the LinuxTAG
Comment 27 Luca Barbato gentoo-dev 2010-06-10 16:03:57 UTC
the 9999 ebuild is in, hopefully an up to date release will appear, 0.9.0 SHOULD NOT HIT PORTAGE IN ANY FORM.
Comment 28 Zac Medico gentoo-dev 2010-06-10 16:54:50 UTC
We should probably apply ffmpeg-9999-r1.ebuild.diff in the tree, since libvpx is there to satisfy the dependency now.
Comment 29 Nikoli 2010-06-10 17:09:21 UTC
mplayer-9999 too now supports libvpx.
Comment 30 Dror Levin (RETIRED) gentoo-dev 2010-06-12 17:43:44 UTC
*** Bug 323607 has been marked as a duplicate of this bug. ***
Comment 31 Dror Levin (RETIRED) gentoo-dev 2010-06-12 17:48:35 UTC
Added a snapshot to the tree, please test and open new bugs for problems. Thanks to all people who helped.
Comment 32 DaggyStyle 2010-06-16 13:07:27 UTC
I get a sandbox violation access error when installing version 0.9.0_p20100612

here is the snip:
>>> Emerging (1 of 3) media-libs/libvpx-0.9.0_p20100612
>>> Downloading 'ftp://mirror.isoc.org.il/gentoo/distfiles/libvpx-0.9.0_p20100612.tar.bz2'
--2010-06-16 10:49:31--  ftp://mirror.isoc.org.il/gentoo/distfiles/libvpx-0.9.0_p20100612.tar.bz2
           => `/usr/portageTree/portage/distfiles/libvpx-0.9.0_p20100612.tar.bz2'
Resolving mirror.isoc.org.il... 192.115.211.70
Connecting to mirror.isoc.org.il|192.115.211.70|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /gentoo/distfiles ... done.
==> SIZE libvpx-0.9.0_p20100612.tar.bz2 ... 1184266
==> PASV ... done.    ==> RETR libvpx-0.9.0_p20100612.tar.bz2 ... done.
Length: 1184266 (1.1M) (unauthoritative)

100%[===================================================>] 1,184,266   1.06M/s   in 1.1s   

2010-06-16 10:49:33 (1.06 MB/s) - `/usr/portageTree/portage/distfiles/libvpx-0.9.0_p20100612.tar.bz2' saved [1184266]

 * libvpx-0.9.0_p20100612.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                     [ ok ]
 * checking ebuild checksums ;-) ...                                                  [ ok ]
 * checking auxfile checksums ;-) ...                                                 [ ok ]
 * checking miscfile checksums ;-) ...                                                [ ok ]
 * CPV:  media-libs/libvpx-0.9.0_p20100612
 * REPO: gentoo
 * USE:  amd64 elibc_glibc kernel_linux mmx multilib sse sse2 sse3 ssse3 threads userland_GNU
>>> Unpacking source...
>>> Unpacking libvpx-0.9.0_p20100612.tar.bz2 to /var/tmp/portage/media-libs/libvpx-0.9.0_p20100612/work
>>> Source unpacked in /var/tmp/portage/media-libs/libvpx-0.9.0_p20100612/work
>>> Preparing source in /var/tmp/portage/media-libs/libvpx-0.9.0_p20100612/work/libvpx-0.9.0_p20100612 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/media-libs/libvpx-0.9.0_p20100612/work/libvpx-0.9.0_p20100612 ...
Configuring selected codecs
  enabling vp8_encoder
  enabling vp8_decoder
Configuring for target 'x86_64-linux-gcc'
  enabling x86_64
  enabling runtime_cpu_detect
  enabling mmx
  enabling sse
  enabling sse2
  enabling sse3
  enabling ssse3
Creating makefiles for x86_64-linux-gcc libs
Creating makefiles for x86_64-linux-gcc examples
Creating makefiles for x86_64-linux-gcc docs
>>> Source configured.
--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE "/var/log/sandbox/sandbox-6306.log"

VERSION 1.0
FORMAT: F - Function called
FORMAT: S - Access Status
FORMAT: P - Path as passed to function
FORMAT: A - Absolute Path (not canonical)
FORMAT: R - Canonical Path
FORMAT: C - Command Line

F: open_wr
S: deny
P: /usr/share/snmp/mibs/.index
A: /usr/share/snmp/mibs/.index
R: /usr/share/snmp/mibs/.index
C: php -v
--------------------------------------------------------------------------------

>>> Failed to emerge media-libs/libvpx-0.9.0_p20100612, Log file:

>>>  '/var/tmp/portage/media-libs/libvpx-0.9.0_p20100612/temp/build.log' 

any hints?
Comment 33 Dror Levin (RETIRED) gentoo-dev 2010-06-16 14:37:21 UTC
(In reply to comment #32)
> I get a sandbox violation access error when installing version 0.9.0_p20100612
> 
> ... snip ...
> 
> any hints?

Please file new bugs for problems you encounter instead of commenting on this bug.
Comment 34 DaggyStyle 2010-06-16 15:30:14 UTC
(In reply to comment #33)
> (In reply to comment #32)
> > I get a sandbox violation access error when installing version 0.9.0_p20100612
> > 
> > ... snip ...
> > 
> > any hints?
> 
> Please file new bugs for problems you encounter instead of commenting on this
> bug.
> 

right
Comment 35 Gianluca Mazzini 2010-06-23 04:37:18 UTC
(In reply to comment #34)
> (In reply to comment #33)
> > (In reply to comment #32)

I have a similar problem and I am not able to solve

--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE "/var/log/sandbox/sandbox-3150.log"

VERSION 1.0
FORMAT: F - Function called
FORMAT: S - Access Status
FORMAT: P - Path as passed to function
FORMAT: A - Absolute Path (not canonical)
FORMAT: R - Canonical Path
FORMAT: C - Command Line

F: unlink
S: deny
P: /session_mm_cli250.sem
A: /session_mm_cli250.sem
R: /session_mm_cli250.sem
C: php -v 

F: open_wr
S: deny
P: /session_mm_cli250.sem
A: /session_mm_cli250.sem
R: /session_mm_cli250.sem
C: php -v 

F: unlink
S: deny
P: /session_mm_cli250.sem
A: /session_mm_cli250.sem
R: /session_mm_cli250.sem
C: php -v 
--------------------------------------------------------------------------------

>>> Failed to emerge media-libs/libvpx-0.9.0_p20100612, Log file:

>>>  '/var/tmp/portage/media-libs/libvpx-0.9.0_p20100612/temp/build.log'
Comment 36 DaggyStyle 2010-06-23 05:40:02 UTC
(In reply to comment #35)
> (In reply to comment #34)
> > (In reply to comment #33)
> > > (In reply to comment #32)
> 
> I have a similar problem and I am not able to solve
> 
> --------------------------- ACCESS VIOLATION SUMMARY
> ---------------------------
> LOG FILE "/var/log/sandbox/sandbox-3150.log"
> 
> VERSION 1.0
> FORMAT: F - Function called
> FORMAT: S - Access Status
> FORMAT: P - Path as passed to function
> FORMAT: A - Absolute Path (not canonical)
> FORMAT: R - Canonical Path
> FORMAT: C - Command Line
> 
> F: unlink
> S: deny
> P: /session_mm_cli250.sem
> A: /session_mm_cli250.sem
> R: /session_mm_cli250.sem
> C: php -v 
> 
> F: open_wr
> S: deny
> P: /session_mm_cli250.sem
> A: /session_mm_cli250.sem
> R: /session_mm_cli250.sem
> C: php -v 
> 
> F: unlink
> S: deny
> P: /session_mm_cli250.sem
> A: /session_mm_cli250.sem
> R: /session_mm_cli250.sem
> C: php -v 
> --------------------------------------------------------------------------------
> 
> >>> Failed to emerge media-libs/libvpx-0.9.0_p20100612, Log file:
> 
> >>>  '/var/tmp/portage/media-libs/libvpx-0.9.0_p20100612/temp/build.log'
> 

check which package is problematic, unmerge it, emerge libvpx and emerge that package again.