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

Gabriel L. Somlo somlo at acns.colostate.edu
Wed Jun 30 18:56:02 CEST 2004


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.

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

    * 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

    * 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

    * 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

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.

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.

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.

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.
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.

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/

Hope this isn't too off-topic for this list...

Cheers,
Gabriel

-- 
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