< Back to IRCAM Forum

trying om 6.9 on ubuntu 14.04 64bits..

hello,
I wanted to run om on above platform.
first of all, It would be nice to add a sentence to Linux download page why a 64bits version is not available. Lispworks’s restrictions are not known by everyone. While there is a 64bit enterprise edition now, I suspect there is no 64bits binary because of issues.

I tried to convert the rpm with alien, but this does not work on 64bit. So I made my own package by hand, which was kind of a troublesome experience, because of many libraries needed to get Lispworks satisfied, which you do not mention on download site. From my experience, Lispworks needs libgtk2 and murrine, libcanberra-gtk-module so my debian control file’s Depends line looks like: libsndfile1, libportmidi0, libjack-jackd2-0 | libjack0, libsamplerate0, sdif, libgtk2.0-0, gtk2-engines-murrine, libcanberra-gtk-module.

You state sdif 32bits can be found on your website. did not find it, but this:

http://linuxmusicians.com/viewtopic.php?f=4&t=12600&start=15#p53585
"
You may have to change these setting in your Makefile.in (inside the examples sub-directory):
PTHREAD_LIBS = -lpthread

list-types: list-types.c $(libsdif)
gcc $(LDFLAGS) -I…/include -g -o $@ $^ $(PTHREAD_LIBS)

ist-nvt: list-nvt.c $(libsdif)
gcc $(LDFLAGS) -I…/include -g -o $@ $^ $(PTHREAD_LIBS)

./configure --verbose --target=i686-pc-linux-gnu CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32
sudo ln -s /usr/include/asm-generic /usr/include/asm
make
"
So I made a 32bits sdif deb package, which I provide with this post

On Linuxmusicians is also stated that I need libfluidsynth too, is this correct?

anyways, with problems installing some of the i386 libs mentioned above on my system, namely libsndfile1, libportmidi0, I put the om binary to /opt/openmusic
created a lib folder there, put the conflicting libraries inside and hanged it into LD_LIBRARY_PATH.

This is my startup script in /usr/bin/openmusic:

cd /opt/openmusic
export LD_LIBRARY_PATH=/opt/openmusic/lib:$LD_LIBRARY_PATH
./openmusic “$@”

Now I am kind of interested why it is not possible to go that approach all the way. Hence, it should be enough to have libc6-i386 as the only dependency and put all the required libraries into /opt/openmusic/lib, which should make it run nicely on 64bit and 32bit without going into dependency hell.
And this is just one way to package it up under linux, there are more ways, e.g similar to osx

Well seems like my journey is not yet over, because I get this error on startup, and do not know what to do next:

“Initializing cl-jack…”

"ERROR: Illegal :UTF-8 character starting at position 963.

Call to OM-LISP::OM-ERROR-HANDLER
Call to INVOKE-DEBUGGER
Call to ERROR
Call to (SUBFUNCTION (LABELS BABEL-ENCODINGS::UTF-8-CODE-POINT-COUNTER) (DEFVAR CFFI::FOREIGN-STRING-MAPPINGS))
Call to CFFI:FOREIGN-STRING-TO-LISP
Call to (METHOD CFFI:TRANSLATE-FROM-FOREIGN (T CFFI::FOREIGN-STRING-TYPE))
Call to CL-JACK::CL-JACK-CONNECT-AUDIO-CLIENT-TO-SYSTEM-OUTPUT
Interpreted call to CL-JACK::CL-JACK-INIT-EVERYTHING
Call to OM-API:OM-INIT-FUNCALL
Interpreted call to INIT-OM
Call to DELIVERY::MAYBE-RYB-TOP-LEVEL
Call to MP::PROCESS-SG-FUNCTION
"

I can see the CL-JACK ports in JACK, so this part is working. The error is shown as a popup, too.
The program stops here, no workspace selector shows up so far…

hope someone could help me out

While there is a 64bit enterprise edition now, I suspect there is no 64bits binary because of issues.
Indeed, the real problem here is lacking a 64-bit lw (the "enterprise edition"), costing 3 times the 32-bit version, which i unfortunately can't afford myself. If someone provides me access to a 64-bit lw, i'd be happy to build binaries for 64-bit linux.

Vs. dependencies, its a no-go to include these dependencies with OM, as this in most cases will either be uncompatible with existing installations, or depend on further packages, which might not be around. I did this for some days (for the 32-bit libjack.so), only to find it didn’t work even on different versions of the same distro.

If you’ve got a robust way of packaging and distributing this for ubuntu and deb-based distros, it would be great for other users. Please send a clear list of instructions. And of course, if you have a lw-pro license, i’ll be very happy to guide you through building OM and delivering a binary if necessary.

On Linuxmusicians is also stated that I need libfluidsynth too, is this correct?

Not any more. We used to have an integrated fluidsynth, but found it better (partly because of the troubles you are observing) to just let users set up whatever synth they prefer to playback midi. The expected way to get midi-playback now is booting an external synth, with support for portmidi (e.g. fluidsynth).

“Initializing cl-jack…”

“ERROR: Illegal :UTF-8 character starting at position 963.

Haven't seen this one before. It's breaking inside #'CL-JACK-CONNECT-AUDIO-CLIENT-TO-SYSTEM-OUTPUT. Not sure why this should choke on utf-8 string (in portnames?). Try sending me the output of jack_lsp after OM breaks, perhaps there's a clue there.

" I tried to convert the rpm with alien, but this does not work on 64bit. So I made my own package by hand…"

I can compile a test image which perhaps fixes the issue you see vs. utf-8. But need to know what you need to get it tested: .rpm, sources, tar-ball?

jack_lsp -clptAL

system:capture_1  
   alsa_pcm:hw:0:out1  
	port latency = 2048 frames  
	port playback latency = [ 0 0 ] frames  
	port capture latency = [ 2048 2048 ] frames  
	total latency = 2048 frames  
	properties: output,physical,terminal,  
	32 bit float mono audio  
system:capture_2  
   alsa_pcm:hw:0:out2  
	port latency = 2048 frames  
	port playback latency = [ 0 0 ] frames  
	port capture latency = [ 2048 2048 ] frames  
	total latency = 2048 frames  
	properties: output,physical,terminal,  
	32 bit float mono audio  
system:playback_1  
   alsa_pcm:hw:0:in1  
	port latency = 8192 frames  
	port playback latency = [ 8192 8192 ] frames  
	port capture latency = [ 0 0 ] frames  
	total latency = 8192 frames  
	properties: input,physical,terminal,  
	32 bit float mono audio  
system:playback_2  
   alsa_pcm:hw:0:in2  
	port latency = 8192 frames  
	port playback latency = [ 8192 8192 ] frames  
	port capture latency = [ 0 0 ] frames  
	total latency = 8192 frames  
	properties: input,physical,terminal,  
	32 bit float mono audio  
CLJack:in_0  
	port latency = 0 frames  
	port playback latency = [ 0 0 ] frames  
	port capture latency = [ 0 0 ] frames  
	total latency = 0 frames  
	properties: input,  
	32 bit float mono audio  
CLJack:in_1  
	port latency = 0 frames  
	port playback latency = [ 0 0 ] frames  
	port capture latency = [ 0 0 ] frames  
	total latency = 0 frames  
	properties: input,  
	32 bit float mono audio  
CLJack:out_0  
	port latency = 0 frames  
	port playback latency = [ 0 0 ] frames  
	port capture latency = [ 0 0 ] frames  
	total latency = 0 frames  
	properties: output,  
	32 bit float mono audio  
CLJack:out_1  
	port latency = 0 frames  
	port playback latency = [ 0 0 ] frames  
	port capture latency = [ 0 0 ] frames  
	total latency = 0 frames  
	properties: output,  
	32 bit float mono audio  

what you need to get it tested
rpm is fine, I can simply unpack it and repack it to .deb

a robust way of packaging and distributing
well if you have had so many problems then it is best to stick to debian package way, so with this control file:

  
Package: openmusic  
Version: 6.9.6-1  
Architecture: i386  
Maintainer: Flo Schneider   
Installed-Size: 143048  
Pre-Depends: multiarch-support  
Depends: libsndfile1, libportmidi0, libjack-jackd2-0 | libjack0, libsamplerate0, sdif, libgtk2.0-0, gtk2-engines-murrine,  libcanberra-gtk-module  
Section: gnome  
Priority: optional  
Homepage: http://repmus.ircam.fr/openmusic/home  
Description:  an object-oriented visual programming environment for musical composition based on Common Lisp.   
 .  
 It may also be used as an all-purpose visual interface to Lisp programming.  
 .  
 An object-oriented visual programming environment for musical composition based on Common Lisp. It may also be used as an all-purpose visual interface to Lisp programming.  
 .  
 Programs in OpenMusic are created by connecting together (a process known as 'patching') either pre-defined or user-defined modules, in a similar manner to graphical signal-processing environments such as Max/MSP or Pd. Unlike such environments, however, the result of an OpenMusic computation will typically be displayed in conventional music notation, which can then be directly manipulated, if so required, via an editor. A substantial body of specialized libraries has been contributed by users, which extends OpenMusic's functionality into such areas as constraint programming, aleatoric composition, spectral music, minimalist music, music theory, fractals, music information retrieval, sound synthesis etc.  

the already built sdif package, and the /usr folder from rpm, it’s ready to go for my opinion.

make a folder called openmusic_6.9.6-1_i386, with subfolder DEBIAN inside, put the control file there, put the /usr Folder into openmusic_6.9.6-1_i386, then change the owner of all files and folders inside to root, and do sudo dpkg -b /path/to/openmusic_6.9.6-1_i386 - that’s it. If the debain/ubuntu system is sane (mine seems to be not), it should work fine, first installing sdif with libc6-i386 as dependency and then openmusic deb which should in turn install all it’s needed dependencies - hopefully these I have tracked down are enough.

I will get myself a 32bit ubuntu 14.04 image to try this out on 32bit the first place - so we can see if there is an issue with the 64bit or not…

There’s a new .rpm on the download page:

https://forge.ircam.fr/p/OM/downloads/get/openmusic-6.9.14-1.i686.rpm

which might fix one issue. Please tell me how this works out with your setup.

".... so with this control file:..."  

I’m afraid i can’t help people running ubuntu myself, and thus far, nobody has stepped forward and offered to build ubuntu packages of OM. If your package will function with other ubuntu’s that’s great, and please consider making it available through the forge. (Put it somewhere where i can pick it up, and i’ll upload it.)

Thanks for the bug-report.

fwiw, there’s a section here about getting OM up on deb-based distros (look down in the section about installing binaries):

http://forumnet.ircam.fr/user-groups/openmusic/forum/topic/trying-om-6-9-on-ubuntu-14-04-64bits/#post-12550

fwiw, there’s a section here about getting OM up on deb-based distros (look down in the section about installing binaries):

http://www.linuxmao.org/OpenMusic

fakeroot alien -t openmusic-6.7-10.i686.rpm
fakeroot alien -d openmusic-6.7.tgz

well the only thing this does, despite of creating a .deb with _all architecture with md5sums calculated, is producing following control file:

Package: openmusic  
Version: 6.9.6-2  
Architecture: all  
Maintainer: hero   
Installed-Size: 130601  
Depends: libc6-i386 (>= 2.3.2)  
Section: alien  
Priority: extra  
Description: Converted tgz package  
 Converted tgz package  
 .  
 (Converted from a tgz package by alien version 8.90.)

where only libc6-i386 (>= 2.3.2) in the depends line is definitely not what we want.

So while this could work for some people who have installed these libraries by default, it won’t work for the others.

It would be really great if you could set up a .deb for OM, or send me some well-behaving scripts (i might have access to a Ubuntu on a vm, but no clues about how to package things). Thanks for all help!

ok, ive got me a virtual ubuntu running 14.04 (64-bit) - time to check things.

Could you please send me your sdif.deb package, and i’ll do a check here. If all goes well i’ll be able to distribute .deb’s from this VM as new releases of OM comes along.

I attached sdif deb package to this post…does your forum mechanism for that work?

anyways, I reposted it here, alongside with the om package I have made and some helper scripts I use:
http://openartist.org/om/

Now for your asking about scripts: there is not much more to do than stated above. If you already have the packages, just unpack them, they can act as blueprint; file-roller (“extrect here” in nautilus right-click menu) should handle them well so that you end up with a folder called e.g openmusic_6.9.6-1_i386 and with the before-mentioned DEBIAN and usr dirs in it.

There is really only that control file in the DEBIAN folder which is from interest, and now that the dependencies are set right in den Depends line, the only thing to do for you to make a new package is to change version number in folder name and control file, copy over your usr folder which you use to package the rpms, eventually do a du -k over the folder to get its new size and enter that into Installed-Size column, change folder’s owner to root (sudo chown -R root /path/to/folder; sudo chgrp -R root /path/to/folder;) , then package it with sudo dpkg -b /path/to/folder. If you already have your virtual ubuntu machine, file-roller, dpkg are installed by default, and that’s a all you need; probably a good idea is to install gdebi on stock ubuntu, as it allows to install the package with it’s dependencies.

Scripting that should not be a big problem, but maybe it’s a better idea to look into the opensuse build service, which can build packages for all majour rpm and deb based distros in one go, and provide a repository for all of them as well, with signed packages and so on; Slightly more effort, which you would have to tackle once, but then the release-work for Linux would be super streamlined, quasi automated.

I for my part use so-called nautilus-Actions which allow me to have these little scripts (ownroot, builddeb etc.; more like snippets than scripts actually…) in the right-click menu of the nautilus file manager.
there is also one more important script, called inspect (/path/to/executable), which collects infos of what .so libs a program needs to run, if they are installed, in which deb are they in etc. which actually failed in om case, because (I guess) compiled-in Lispworks does not provide that info transparently.

All these scripts are also in http://openartist.org/om/ folder, maybe they are useful for you.

openmusic-6.9.14-1.i686.rpm
I found the error (yay!), it looks like adding LD_LIBRARY_PATH did cause the error. Not sure how that could happen…I again suspect Lispworks…
I sorted out my repository problems as well, but this remains: If I install ubuntu14.04 libportmidi0 32bits, the 64bit gets version gets uninstalled (not good).

A solution would be to add libportmidi to the om package and place it into /usr/local/lib, there it would not interfere with 64bit libportmidi and its still in LD_LIBRARY_PATH without explicitly stating so… and users of 64bit deb-based distros could enjoy om. ( that libportmidi thing is definitely an error I will report upstream - I do not think this behavior is intended; if you encounter the same with your 14.04 64bit installation, tell me!)

I also got this:
"Loading PortMIDI library: libportmidi.so"ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib seq.c:935:(snd_seq_open_noupdate) Unknown SEQ default

So I had to add libasound2-plugins to the Depends: line…

I’m afraid i can’t help people running ubuntu myself, and thus far, nobody has stepped forward and offered to build ubuntu >packages of OM. If your package will function with other ubuntu’s that’s great, and please consider making it available >through the forge.
grab my package for now.
I know ircam is rpm based, so please consider opensuse buildserver, it can solve all your distribution problems. As an inspiration, there is the wonderful website of dispcalgui from florian hoech, http://dispcalgui.hoech.net/; He uses the buildserver, but his software also works on windows, osx, he even provides zeroinstall packages for non-deb&rpm based systems.

I have now packed my package accordingly
I tried on and old 32bit debian squeeze, there my package worked.

Thanks for the bug-report.
no prob, happy to have this running

thanks for making such a fine piece of software.

ps:I also added an extensive comment line to your OM.desktop file, maybe it’s worth a read if I have missed something.

Thanks for all hints vs. .deb-based installation. This issue finally got me to set up some virtual machines to build .debs and .rpms, and check the various deps etc. with.

Based on your suggestions i’ve built packages for OM-6.9.14, as well as sdif-3.11.4, both as .deb and .rpm packages. They’re tested on Ubuntu and Fedora vm’s, by double-clicking the installers (first sdif, then OM), and work well here.

The packages are available from the download page: https://forge.ircam.fr/p/OM/downloads/.

Please check, and send suggestions and bug-reports.

Thanks again for all help!

Hello Anders and Cellstorm.

Just succeded in installing the debian wheezy (stable) version on a PC 64 bit based.
Unfortunately i didn’t succeed in installing neither the SDIF and OM on the forge since they are apparently 32 bits and my debian refuses to install them :

karim@p2510:~/Downloads$ sudo dpkg -i SDIF-3.11.4-1_i386.deb
[sudo] password for karim:
dpkg: error processing SDIF-3.11.4-1_i386.deb (–install):
package architecture (i386) does not match system (amd64)
Errors were encountered while processing:
SDIF-3.11.4-1_i386.deb
karim@p2510:~/Downloads$ sudo dpkg -i openmusic-6.9.14-4_i386.deb
dpkg: error processing openmusic-6.9.14-4_i386.deb (–install):
package architecture (i386) does not match system (amd64)
Errors were encountered while processing:
openmusic-6.9.14-4_i386.deb
karim@p2510:~/Downloads$

So maybe i am missing something here ?
Any clues guys ? Should I install all dependencies in 32 bit ? Which ones ?

BEst

K

Hi Karim. You’ll get a hint on the dependencies by ‘dpkg -I pkg.deb’ and have a look at “Depends:” (however Debian might use other package names, search for something close).

From the warning you get i’m guessing you’ll have to enable multiarch support explicitly.

I’m afraid i can’t help much, but grab someone using Debian around where you are.

Cheers,

Anders

I checked on a vm debian just now, and things run fine after a rush of ‘dpkg’ things (this is really clumsy). Anyways, here’s a recipe:

dpkg --add-architecture i386
apt-get install libc6:i386
dpkg -i SDIF.deb
dpkg -i openmusic.deb
apt-get -f install
dpkg -i openmusic.deb (again)

dpkg complained also about some missing jackd2 package, just install the default one (64bit) for your system

OM works fine on this debian now. Good luck!

-anders

Dear Anders,

Unfortunately, no success.
I followed your steps one by one. That’s what i got :
atr the last step :

arim@p2510:~/OM$ sudo dpkg -i openmusic-6.9.14-4_i386.deb
Selecting previously unselected package openmusic.
(Reading database … 184903 files and directories currently installed.)
Unpacking openmusic (from openmusic-6.9.14-4_i386.deb) …
dpkg: dependency problems prevent configuration of openmusic:
openmusic depends on libportmidi0.
openmusic depends on mime-support.
openmusic depends on desktop-file-utils.

dpkg: error processing openmusic (–install):
dependency problems - leaving unconfigured
Processing triggers for desktop-file-utils …
Processing triggers for gnome-menus …
Processing triggers for fontconfig …
Errors were encountered while processing:
openmusic

Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
jack_port_register called with a NULL client

"ERROR: CL-jack-audio-input-ports not allocated

Call to OM-LISP::OM-ERROR-HANDLER
Call to INVOKE-DEBUGGER
Call to ERROR
Call to CERROR
Call to CL-JACK::CL-JACK-INIT-AUDIO
Interpreted call to CL-JACK::CL-JACK-INIT-EVERYTHING
Call to OM-API:OM-INIT-FUNCALL
Interpreted call to INIT-OM
Call to DELIVERY::MAYBE-RYB-TOP-LEVEL
Call to MP::PROCESS-SG-FUNCTION

Then while launching OM :

ERROR: Could not register handle for external module “libportmidi.so”:
/usr/lib/libportmidi.so: wrong ELF class: ELFCLASS64

Is it 32 bit on 64 libs ?

I am running this natively not on a vm…

Thanx
K

try ‘apt-get install -f’ once in a while, it seems to be able to tidy up leftovers after dpkg -i fails.

Yes, libportmidi.so must be 32bit to make any sense with OM (32-bit). By default, OM loads whatever libportmidi.so it finds in your LD_LIBRARY_PATH, ie: /usr/lib/ or /usr/lib32 or whatever.

Sorry to be of little or no help with the dpkg/apt things, i haven’t worked with those since 2003.

Thanx Anders,

But unfortunately still dependencies problems.
I will try again and will let you know.

Best
K

using dpkg is a nogo. does not do dependency tracking at all.

Use gdebi instead, if you install packages. Gdebi tracks depencencies, and installs them with the package.

gdebi can be used on commandline (gdebi packagename.deb) and gui (e.g. gdebi-gtk)

btw,
debian wheezy by default is a nogo, too.
Problem is: it has no multiarch support, activated by default. hence it does not support i386 and amd64 packages side by side out of the box.

dpkg --add-architecture i386 fixes that.

@anders" best thing to circumvent that all would be to make a debian repository, which is absolutely a nobrainer, if you do not need to have signed packages. It obviously also removes the burden of installing two packages by hand, in the right oder.

In your vm, make a folder called debian, put the debs into a new folder e.g called om inside of debian. Make sure you have dpkg-dev installed, then, in commandline, issue this command inside of the debian folder: dpkg-scanpackages om /dev/null | gzip -9c > om/Packages.gz
And that’s it. This generates a Packages.gz file in om folder. now upload the whole debian folder to your webspace.

People who want to use om repository then just have to add the debian repository like this:

echo “deb http://yourhost.com/debian om/” | sudo tee /etc/apt/sources.list.d/om.list

and then issue a sudo apt-get update && sudo apt-get install openmusic

You could make this process even more easy if you make a debian package which adds the repository automatically (I could provide a blueprint package for that if whished). People then just have to download the deb file, and this one would also work with dpkg :wink:

Only thing which happens here is that packages are not signed ( single debs downloaded from sourceforge are also not signed btw…), thus the package manager tells you so with a warning that you install unsigned packages. If you want to get this right, I can also help, though it’s a bit more work.

Cheapest way would be for now to add the info in the readme of sourceforge why the 64bit package does not exist, and that you still can install the 32bit package on 64bit, but some systems do not have multiarch support (enabled and how to do that) and adding the info that installing packages with gdebi (in the right order) is a good idea.

Hi Anders,

Just to let you know :

Still no luck. I have upgraded to Debian testing.
The install process seems to be troubled by this :

libportmidi0:i386

When I try installing it , here is the output of apt-get :

The following packages have unmet dependencies:
libportmidi0 : Conflicts: libportmidi0:i386 but 1:184-2.2 is to be installed
libportmidi0:i386 : Conflicts: libportmidi0 but 1:184-2.2 is to be installed

Maybe should I try unstable ?
It’s too bad not to have an original 64 bit OM

Best
K