[vlc-devel] Re: My experience building VLC 0.7.2 from source RPMs on FC2

Derk-Jan Hartman hartman at videolan.org
Thu Jul 1 00:00:35 CEST 2004

On 30 jun 2004, at 18:56, Gabriel L. Somlo wrote:
> Hi,
> Mainly because I wanted the --enable-pvr flag turned on, but also just
> to see if I could do it, I decided to build VLC 0.7.2
> <http://download.videolan.org/pub/vlc/0.7.2/rpm/fedora/fc2/vlc/> from
> source RPMs, including all other packages it depends on.
> Now, since the canonical places to get extra rpms for Fedora Core 2
> <http://fedora.redhat.com> are Fedora.us
> <http://download.fedora.us/fedora/fedora/2/i386/> and Livna.org
> <http://rpm.livna.org/fedora/2/i386/> in that order, I decided to try
> and use those RPMs instead of the ones provided with VLC, whenever
> available.

It personally encourage this. Though some libs might not have ALL the  
features enabled that some of our rpm's have (i suspect).

> Here's the list of what I needed:
>     * Fedora.US (stable)
>       <http://download.fedora.us/fedora/fedora/2/i386/SRPMS.stable/>:
>       aalib-1.4.0-0.fdr.0.8.rc5.2.src.rpm
>       libmodplug-0.7-0.fdr.1.2.src.rpm
>       graphviz-1.10-0.fdr.3.2.src.rpm
>       libsndfile-1.0.4-0.fdr.1.2.src.rpm
>       id3lib-3.8.3-0.fdr.9.2.src.rpm
>       imlib2-1.0.6-0.fdr.3.2.src.rpm
>       libtar-1.2.11-0.fdr.3.2.src.rpm
>       libebml-0.6.5-0.fdr.1.2.src.rpm
>       lzo-1.08-0.fdr.2.2.src.rpm
>       openslp-1.0.11-0.fdr.6.1.90.src.rpm
>       libid3tag-0.15.1-0.fdr.1.b.2.src.rpm
>       wxGTK-2.4.2-0.fdr.1.2.src.rpm
>       libmatroska-0.6.3-0.fdr.3.2.src.rpm
>       xosd-2.2.7-0.fdr.1.2.src.rpm

some of these have to be secondary dependencies of packages in use by  
vlc i guess. wtf is graphviz?

>     * Livna.ORG (stable)
>       <http://rpm.livna.org/fedora/2/i386/SRPMS.stable/>:
>       a52dec-0.7.4-0.lvn.6.2.src.rpm
>       libdvdnav-0.1.9-0.lvn.2.2.src.rpm
>       djbfft-0.76-0.lvn.1.2.src.rpm
>       libdvdplay-1.0.1-0.lvn.3.2.src.rpm
>       faad2-2.0-0.lvn.0.2.rc1.2.src.rpm
>       libdvdread-0.9.4-0.lvn.1.2.src.rpm
>       ffmpeg-0.4.8-0.lvn.5.2.src.rpm
>       libmad-0.15.1-0.lvn.1.b.2.src.rpm
>       libdvbpsi-0.1.3-0.lvn.4.2.src.rpm
>       mpeg2dec-0.4.0-0.lvn.2.2.src.rpm
>       libdvdcss-1.2.8-0.lvn.5.2.src.rpm

all vlc required stuff yes.

>     * Livna.ORG (testing)
>       <http://rpm.livna.org/fedora/2/i386/SRPMS.testing/>:
>       lame-3.96-0.lvn.1.2.src.rpm
>       xvidcore-1.0.1-0.lvn.1.2.src.rpm

lame is required by ffmpeg (and vlc) for mp3 encoding
our xvid module isn't being updated anymore, and we use ffmpeg for that  
now. I guess it could be done with....

>     * Then, here's the list of packages that I couldn't find anywhere
>       else and had to take from VLC's 0.7.2 download site
>       <http://download.videolan.org/pub/vlc/0.7.2/rpm/fedora/fc2/vlc/>:
>       faac-1.24-1.1.fc2.fr.src.rpm
>       flac-1.1.0-4.fr.src.rpm
>       libcddb-0.9.4-1.src.rpm
>       libdts-0.0.2-1.src.rpm
>       lirc-0.6.6-2.1.fc2.fr.src.rpm
>       speex-1.1.5-1.src.rpm

there is no lirc package for fedora? how lame.
I'm actually missing things like faad, ogg, vorbis, caca, liveMedia  
(live.com), mad, theora, freetype, sdl, fribidi, alsa, ncurses, goom,  
slp, mozilla

Some of them may be installed on fc by default i guess.

> The packages listed so far were build without any kind of trouble.
> Now, here's the list of things where I had some (minor) trouble:
> live
> ----
> The VLC 0.7.2 download site
> <http://download.videolan.org/pub/vlc/0.7.2/rpm/fedora/fc2/vlc/> does
> not provide sources for libpostproc. This is a byproduct of the
> mplayer source RPM, which requires the live package. The only place
> I could find this was Axel Thimm's atrpms.net <http://www.atrpms.net>
> site. I grabbed live-2004.04.09-6.rhfc2.at.src.rpm
> <http://download.atrpms.net/production/sources/fedora-2-i386/atrpms/ 
> live-2004.04.09-6.rhfc2.at.src.rpm>
> from there but couldn't build it because Axel uses some proprietary rpm
> build macros. So I created the modified live-2004.04.09-6gls.src.rpm
> package with the atrpm macros removed so I could build it on my own  
> box.

first of all, though mplayer provides the postproc header, it is  
actually part of ffmpeg now. The ffmpeg package needs to be adapted (or  
split) to provide this lib correctly.

Second, VLC can use liveMedia as well, however liveMedia is only  
release in a 'daily' snapshot manner. Also VLC needs a link to the  
source dir of this package i think, I don't think it will work if it is  

> mplayer (for libpostproc)
> -------------------------
> When I tried to build mplayer-1.0-0.lvn.0.10.pre4.2.src.rpm
> <http://rpm.livna.org/fedora/2/i386/SRPMS.unstable/mplayer-1.0 
> -0.lvn.0.10.pre4.2.src.rpm>
> from Livna.org's unstable, there were two problems. First, the build
> barfed on my hyperthreaded P4 which thinks it's an SMP machine. I had  
> to
> remove the -j2 argument to make to get around this. More troubling, the
> resulting libpostproc package had an undefined reference to
> fast_memcpy. To fix this, I had to add --disable-fastmemcpy to the
> list of configure flags, to make it use glibc's memcpy routine. The
> modified source RPM is here: mplayer-1.0-0.lvn.0.10.pre4.2gls.src.rpm.

The libpostproc problem (still being provided by mplayer, though it's  
part of ffmpeg now, yet not yet provided by ffmpeg installs) is  
something that really should be fixed. It took a long time before it  
was fixed in Gentoo as well, but now finally is.

> vcdimager and libcdio
> ---------------------
> There were no source packages for vcdimager-0.7.20 and libcdio. For
> the former, I grabbed vcdimager-0.7.20-0.pm.1.src.rpm
> <http://packman.iu-bremen.de/suse/8.1/SRPMS/vcdimager-0.7.20 
> -0.pm.1.src.rpm>
> from packman.iu-bremen.de. For the latter, I grabbed an old source RPM
> form VLC 0.7.1 and used its spec file with the libcdio-0.69.tar.gz
> <http://ftp.gnu.org/gnu/libcdio/libcdio-0.69.tar.gz> source tarball.
> These two packages have a circular dependency going on, so I had to
> install the binaries from VLC first, in order to build them both from
> source. Then, I removed both packages and reinstalled the new stuff I
> had built myself. This was some sort of primitive bootstrap operation,
> but it was a fast and easy way to deal with the circular dependency :)
> Before I could build these two, I had to add a small fix to both of  
> them
> that resolved a conflict with the /usr/share/info/dir file. The cdinfo
> package also had to be told to install binaries as root -- I build my
> packages as a regular user, and this user ended up owning the binaries
> after the RPM got installed :) The fixed packages are available here:
> libcdio-0.69-2gls.src.rpm, and vcdimager-0.7.20-0.pm.1gls.src.rpm.

Ah. well fortunately you only need this for vcd menu support which  
isn't used by a lot yet. Good though that you could work around it.

> vlc itself
> ----------
> Finally, the vlc package itself. The specfile as shipped causes the
> mozilla plugin to be installed in /usr/lib/mozilla-1.6/plugins. I'd
> rather have it go into /usr/lib/mozilla/plugins, where it would
> survive an upgrade of Mozilla to a new version.

Unfortunately in the past the Mozilla headers have proven to be SO  
instable that any oldder plugin is mostly useless after an upgrade, so  
until this all stabilizes, it's not that big a thing.

> Also, the build kept failing due to linking errors against libpostproc.
> I had to add a patch that explicitly added --lpostproc to the linker
> command line.
> The modified source RPM for VLC 0.7.2 is here: vlc-0.7.2-2gls.src.rpm.

This is strange, since VLC depends on this functionality quite badly,  
I'm unsure why this problem exists on FC and not elsewhere. Maybe when  
i see the spec later i will see.

> In conclusion, after using stock fedora.us and livna.org packages  
> first,
> and videolan.org packages as a last resort, I got away with most of it,
> except that I had to tweak the following packages:
>     * live-2004.04.09-6gls.src.rpm
>     * mplayer-1.0-0.lvn.0.10.pre4.2gls.src.rpm
>     * libcdio-0.69-2gls.src.rpm
>     * vcdimager-0.7.20-0.pm.1gls.src.rpm
>     * vlc-0.7.2-2gls.src.rpm
> This whole story (in HTML with downloadable links :) can be viewed at
> http://www.cs.colostate.edu/~somlo/vlc/

Nice work. I hope the maintainer will use part of your experiments.

Videolan - VLC media player
Derk-Jan Hartman (hartman at videolan dot org)

This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html
If you are in trouble, please contact <postmaster at videolan.org>

More information about the vlc-devel mailing list