Thursday, March 31, 2011

Installing fluxus on Ubuntu 10.10 Maverick Meercat

I've found and organized most of this information from various forums including the fluxus mailing list archives.  I am trying to write a tutorial as concise and accurate as possible, for beginners and up.  But I had troubles as well and some things I did to fix it were days ago and I may forget little tweaks here and there... I'll try to cover everything to the best of my abilities!

Commentary:  I know that some people have used Racket 5.0.1 to build fluxus on Ubuntu 10.10.  I couldn't get it to work.  I reverted to PLT 4.2.2 and the build runs like a charm.

Steps:
-------------------------------------------
(1) apt-get required dependencies... copy&paste these commands into the terminal

Here is a list of commands to get dependencies you will need to compile fluxus and PLT on Ubuntu 10.10:

Basic dependencies
sudo apt-get install build-essential git-core
 
Scheme Dependencies 
sudo apt-get install libxaw7-dev
 
Fluxus Dependencies.
sudo apt-get install scons libtiff4-dev libode-dev libfftw3-dev libsndfile1-dev 
liblo0-dev libglew1.5-dev libfreetype6-dev libasound2-dev libglut3-dev libopenal-dev 
libjack-jackd2-dev libpng12-dev
 
Fluxus-video dependencies.
sudo apt-get install libgstreamer0.10-dev ibgstreamer0.10-dev libunicap2-dev libavformat-
dev libswscale-dev 
                
Audio (JACK):
sudo apt-get install jackd2 libjack-jack2-dev pulseaudio-module-jack 
(you might install jack from the Ubuntu Software Center as well) 
 
Note: you may need other dependencies, so watch your terminal and logfiles!  I had a few pop up during the PLT make so keep an eye out.


-------------------------------------------
(2) Download from internet

 -------------------------------------------
(3) Install PLT:
-To install fluxus in Ubuntu 10.10 we need to compile the source for PLT Scheme and install.  For 32bit Ubuntu 10.10, download the Unix source of PLT 4.2.2.  It is important that you download this version of the source as I tried with later versions (Racket 5.1) with some very cryptic compiler errors.

Terminal:

cd ~
cd plt-4.2.2
cd src
mkdir build
cd build
../configure --enable-shared --prefix=/usr/local    (this is a crucial step!)
make
sudo make install 
 
Note: This will take a while, but afterward PLT should be properly installed.  If you are missing dependencies during the make: get them from the synaptic package manager, go back to your /plt-4.2.2/src/ and delete /build/.  Then repeat the commands above.

-------------------------------------------
(4) Install fluxus with scons:
cd ~
cd fluxus-0.17rc5
scons
sudo scons install 
 
If you are missing dependencies during the install:
1) get the packages from synaptic or apt-get
2) scons -c (the clean command)
3) repeat above steps
 
-------------------------------------------
Note: A common error I got when building fluxus with scons was "'UINT64_C' was not declared in this scope"

Commentary: Mind you, this was when I built Racket 5.0.1 instead of PLT 4.2.2 Apparently there is a CXXFLAGS workaround for this type of error... but requires a ./configure command.  fluxus has no ./configure file because it is installed with scons.  Maybe you know what to do with it... and tried to build fluxus.  I'm not sure if the scope is an issue with 4.2.2, but the patch was already in when I successfully build fluxus from 4.2.2.

My Solution:
To remedy this I had to remove "video" from this part of the code in /addons/SConscript (it's not really needed to build fluxus):

CHANGED

SConscript(dirs = env.Split("video artkp"),
        exports = ["env", "CollectsInstall", "DataInstall", "BinaryModulesLocation", "MZDYN", "static_modules"])


TO

SConscript(dirs = env.Split("artkp"),
        exports = ["env", "CollectsInstall", "DataInstall", "BinaryModulesLocation", "MZDYN", "static_modules"])


-------------------------------------------
(5) Look for libmzscheme3m-4.2.2.so, most likely in (your prefix)/lib, but you can find out using:

$ whereis libmzscheme3m-4.2.2.so
put the path to directory that contains it in your /etc/ld.so.conf file and then issue
        
         $ sudo ldconfig
 
so that fluxus may find the library it needs.
        
-------------------------------------------

Good luck!  This should get you most of the way, if not all the way, through the install!  Keep at it!

2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. In dependencies, you need to change a couple things.
    -remove "ibgstreamer0.10-dev" which is a typo and a duplicate.
    -replace "libjack-jack2-dev" with "libjack-jackd2-dev"
    -"liblo0-dev" should be "liblo-dev" (but apt-get figures this one out)
    Otherwise cheers and thanks for the guide

    Oh and racket is what you use instead of plt-scheme in the event that you are building from git. Version 17.5 of fluxus uses plt.

    ReplyDelete