Deciding if this is a good idea
The following list contains valid reasons for going to the trouble of installing IDJC from source.
- IDJC is absent from the repository.
- The repository version is ancient but functional.
- The repository version has features removed for fear of legal action.
- The repository version has a minimum set of features generally.
- The repository version is broken.
Removing old versions
It's a good idea to remove any old versions of IDJC at this point.
Installing dependencies
The following software is required to build IDJC or is used by IDJC at run-time.
There should be similarly named binary packages in your package management system for all of these of
which you typically want the library development packages whose names carry the -dev or -devel suffix.
Project name | Version | Comment |
libshout-idjc | 2.3.1 | Required—A specially modified version of libshout |
Python | 2.7+, not 3 | Required—probably installed already |
mutagen | 1.18+ | Required |
Jack Audio Connection Kit | 0.116.0+ | Required—need library and server |
PyGTK | 2.18+ | Required |
vorbis-tools | 1.2.0+ | Required |
libsndfile | 1.0.12+ | Required |
libsamplerate | 0.1.4+ | Required |
GLib2 | 2.0.0+ | Required |
mpg123 | 1.13+ | Required—provides support for mp2/mp3 playback |
TwoLAME | 0.3+ | Required—provides support for streaming/recording in the mp2 format |
Lame | 3.97+ | Recommended—provides support for streaming/recording in the mp3 format |
FFmpeg's libav… | 0.10/0.8+ | Recommended—provides support for mp4/m4a, ape, mpc, aac(+) |
FLAC | 1.1.3+ | Recommended—provides support for FLAC playback, recording, and streaming |
Speex | 1.2rc1+ | Recommended—provides support for Speex playback and streaming |
Opus | 1.0+ | Recommended—provides support for Opus playback and streaming |
For Ubuntu users, this command should be enough to satisfy nearly all of the above.
$ sudo apt-get install build-essential libc6-dev libglib2.0-dev libjack-dev jackd libvorbis-dev libsamplerate0-dev libsndfile1-dev python-gtk2-dev libmpg123-dev libavcodec-dev libavformat-dev libtwolame-dev libmp3lame-dev libflac-dev python-mutagen libspeex-dev
For Fedora users, use this instead.
$ su -c "yum install gcc-c++ libvorbis-devel glib2-devel libsamplerate-devel libsndfile-devel jack-audio-connection-kit-devel pygtk2-devel libmpg123-devel lame-devel twolame-devel flac-devel ffmpeg-devel speex-devel python-mutagen opus-devel"
If during the execution of the above command you are asked whether to configure your system for JACK/realtime the sensible choice is yes.
Obtaining the IDJC source code
There are two options available to you. One is to get the official release (recommended), the other is to
obtain the development sources which are only casually tested.
Option 1: Build the latest official release
Click the relevant link above to download libshout-idjc, then in a console type the following.
$ cd Downloads
$ tar xzvf libshout-idjc-[version].tar.gz
$ cd libshout-idjc-[version]/
$ ./configure CFLAGS="-O2" --prefix=/usr
$ make
$ sudo make install
$ sudo ldconfig
Navigate to http://sourceforge.net/projects/idjc/.
Hit the big green Download button and wait for the download to finish. Make a note of the version number.
$ cd Downloads
$ tar xzvf idjc-[version].tar.gz
$ cd idjc-[version]/
$ ./configure CFLAGS="-O2" --prefix=/usr
$ make
$ sudo make install
Option 2: Build from the development sources
Build dependencies for Ubuntu users.
$ sudo apt-get install git-core autoconf libtool autopoint imagemagick
For Fedora users.
$ su -c "yum install git-core autoconf libtool gettext-devel ImageMagick"
The build process.
$ git clone git://idjc.git.sourceforge.net/gitroot/idjc/idjc
$ cd idjc/
$ ./bootstrap
$ cd libshout-idjc
$ ./configure CFLAGS="-O2" --prefix=/usr
$ make
$ sudo make install
$ sudo ldconfig
$ cd ..
$ ./configure CFLAGS="-O2" --prefix=/usr
$ make
$ sudo make install
For systems that don't have sudo configured, use the following form instead.
su -c "make install"
Finally
At this stage it's installed but see the First run section
as further configuration is very likely needed.
|