quinta-feira, 17 de dezembro de 2009

Compilar a versão de desenvolvimento do Audacious

Este post tem contra-indicações para os fracos de estômago!

As versões supostamente estáveis do Audacious têm por tradição (pelo menos pela minha experiência) ser menos estáveis do que algumas das suas versões de desenvolvimento. Para ajudar a reportar bugs e usar de imediato uma versão com alguns desses bugs corrigidos, a equipa recomenda que se instale e use a versão mais recente de desenvolvimento.

Aqui fica um guião "rápido":

  1. Instalar as dependências para compilar o audacious e todos os plugins que se pretendem:
    # apt-get build-dep audacious audacious-plugins audacious-plugins-extra [click!]
    NOTA: é preciso haver linhas iniciadas com deb-src no ficheiro /etc/apt/sources.list.

    • audacious (base) - podem ser necessários mais pacotes, estes são só os que eu não tinha e precisei de instalar:
      autoconf automake autotools-dev diffstat imagemagick liblqr-1-0 libmagickcore2 libmagickwand2 libsamplerate0-dev m4 quilt

    • audacious-plugins:
      libasound2-dev libmad0-dev libflac-dev libogg-dev libmowgli-dev libmcs-dev libdbus-1-dev libdbus-glib-1-dev libcurl4-gnutls-dev audacious-dev comerr-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev libbinio-dev libcddb2-dev libcdio-cdda-dev libcdio-dev libcurl4-gnutls-dev libesd0-dev libfluidsynth-dev libgcrypt11-dev libgif-dev libgl1-mesa-dev libglu1-mesa-dev libgnutls-dev libgpg-error-dev libgssrpc4 libidn11-dev libimlib2 libimlib2-dev libjack-dev libkadm5srv6 libkdb5-4 libkrb5-dev liblash-dev libldap2-dev liblircclient-dev libltdl-dev libmms-dev libmtp-dev libmusicbrainz4-dev libmusicbrainz4c2a libneon27-gnutls-dev libprojectm-dev libpulse-browse0 libpulse-dev libreadline5-dev libresid-builder-dev libsdl1.2-dev libshout3-dev libsidplay2-dev libsndfile1-dev libspeex-dev libtag1-dev libtagc0 libtagc0-dev libtasn1-3-dev libtheora-dev libtiff4-dev libtiffxx0c2 libusb-dev libvorbis-dev libwavpack-dev libxt-dev mesa-common-dev uuid-dev libxml2-utils libfaad-dev libavcodec-dev libavformat-dev libavutil-dev libcue-dev libcue1



  2. [Mostrar tempos]
    $ whoami
    <USER>
    # adduser <USER> src
    # mkdir /opt; chown <USER>.<USER> /opt
    $ cd /usr/src/
    $ aria2c http://hg.atheme.org/audacious/audacious/archive/tip.tar.bz2
    $ aria2c http://hg.atheme.org/audacious-plugins/audacious-plugins/archive/tip.tar.bz2
    $ mkdir audacious/; cd audacious/
    $ tar -xf ../audacious-*.tar.bz2
    $ cd audacious-XPTO/
    $ ./autogen.sh
    $ time ./configure --prefix=/opt/audacious/
    Configuration: [Mostrar/Esconder]

    Install path: /opt/audacious
    Use one plugin dir:
    Allow user plugin dir: yes

    Automatic character code detection: yes
    Sample rate conversion: no
    D-Bus support: yes
    Session management (eggsm) yes
    XSPF playlists yes

    SSE2: yes
    AltiVec: no


    real 0m13.509s
    user 0m4.708s
    sys 0m1.712s

    $ time make -j 2

    real 1m4.673s
    user 1m29.454s
    sys 0m9.981s

    $ time make -j 2 install

    real 0m2.414s
    user 0m1.144s
    sys 0m0.184s

  3. [Mostrar tempos]
    $ export PKG_CONFIG_PATH=/opt/audacious/lib/pkgconfig/:$PKG_CONFIG_PATH
    $ export LD_LIBRARY_PATH=/opt/audacious/lib/:$LD_LIBRARY_PATH
    $ cd ../audacious-plugins-XPTO/
    $ ./autogen.sh
    $ time ./configure --prefix=/opt/audacious/
    Configuration: [Mostrar/Esconder]

    Install path:

    Output Plugins
    --------------
    Open Sound System (oss): yes
    Open Sound System v4 (oss4): no
    Advanced Linux Sound Arch. (alsa): yes
    PulseAudio (pulse): yes
    Enlightenment Sound Daemon (esd): yes
    Jack Audio Connection Kit (jack): yes
    BSD/SUN audio output (sun): no
    Mac OS X sound support (CoreAudio): no
    FileWriter: yes
    -> FileWriter MP3 output part: no
    -> FileWriter Vorbis output part: yes
    -> FileWriter FLAC output part: yes
    Icecast audio output (icecast): yes
    Null Audio output (null): yes

    Input Plugins
    -------------
    MPEG 1/2/3 (madplug): yes
    MPEG 4 Audio (AAC): yes
    FFaudio (ffaudio): yes
    Module decoder (modplug): yes
    MIDI modular plugin (amidi-plug): yes
    -> ALSA backend: yes
    -> FluidSynth backend: yes
    -> dummy backend: yes
    CD Digital Audio (cdaudio_ng): yes
    sndfile extensions: yes
    Tone Generator: yes
    Ogg Vorbis (vorbis): yes
    Free Lossless Audio Codec (flacng): yes
    Commodore 64 audio (SID): yes (old style API)
    -> libSIDPlay1 support: no
    -> libSIDPlay2 support: yes
    -> distortion patched libSIDPlay2: no
    Game music (spc, nsf & gbs): yes
    PlayStation (psf/psf2) audio (psf): yes
    Nintendo DS audio (xsf): yes experimental
    AdLib synthesizer (adplug): yes
    Apple Lossless Audio Codec (alac): yes
    WavPack 4.31+ (wavpack): yes
    Metronom: yes

    General
    -------
    Alarm: yes
    Song Change: yes
    Status Icon: yes
    Audacious OSD: yes
    -> X Composite support: yes
    Control via event device (evdev-plug): yes
    Global Hotkey Plugin: yes
    Gnome Shortcuts Plugin: yes
    LIRC: yes
    AudioScrobbler Client: yes
    Upload to MTP device: yes
    Bluetooth audio support: no
    MacOS Dock Album Art plugin: no
    Streambrowser: yes

    Effect
    ------
    AudioCompressor (AGC): yes
    LADSPA effects host (ladspa): yes
    Voice Removal: yes
    Extra Stereo: yes
    Echo/Surround: yes
    SndStretch: yes
    Crystalizer: yes
    Icecast effect plugin (icecast): yes
    Bauer stereophonic-to-binaural (bs2b): no

    Visualization
    -------------
    Blur Scope: yes
    Spectrum Analyzer: yes
    Paranormal Visualization Library: yes
    projectM 0.x (GL milkdrop): no
    projectM 1.x (GL milkdrop): no

    Transport
    ---------
    gio transport: yes
    neon-based http/https: yes
    libmms-based mms: yes
    lastfm transport: yes

    Container
    ---------
    Winamp PLS playlist format (pls): yes
    M3U playlist format (m3u): yes
    XML Sharable Playlist Format (xspf): yes
    CUE playlist format (cue): yes


    real 0m13.482s
    user 0m5.776s
    sys 0m2.160s

    $ time make -j 2

    real 6m44.552s
    user 9m0.478s
    sys 0m54.663s

    $ time make -j 2 install

    real 0m24.868s
    user 0m17.537s
    sys 0m1.044s



O audacious ficará arrumadinho em /opt/audacious, sem tocar nos ficheiros do sistema. Para o iniciar basta fazer /opt/audacious/bin/audacious2.
Para desinstalar tudo basta fazer:
$ cd /usr/src/audacious/audacious-plugins-XPTO/
$ make uninstall
$ cd ../audacious-XPTO/
$ make uninstall
$ rm -rf /opt/audacious
$ cd /usr/src/; rm -rf audacious/

...e remover os pacotes instalados pelo build-dep.

Sem comentários: