Cabbage Logo
Back to Cabbage Site

Installing Cabbage on Debian Linux Jessie (resolved)

I had some problems installing cabbage, though I got it done in the end.

First I downloaded the recommended version 1.0.0 and tried running the buildCabbage script, and my machine froze. I found out that it was running out of memory, as it was trying to run too many compiling jobs at once. I got around this problem by deleting all the -j8 options from the buildCabbage script

Next was the VST SDK. I got it and renamed it and put it in what seemed the right place, but the build script couldn’t find it. I had a look at the makefiles and found this in MakefilePluginEffect and MakefilePluginSynth:

ifndef VST_SDK
VST_SDK ?= “/home/rory/SDKs/vstsdk2.4/”
endif

Seemed like an error but I got round it by passing parameters to the script instead

Cabbage then compiled fine, however on the preferences menu the file dialog for the location of the Csound manual was broken. I downloaded the develop version of cabbage and compiled that and then that worked too.

Next I found that cabbage couldn’t find the cabbage manual file. By trial and error I found that Cabbage was looking for [whatever]/Builds/Linux/CabbageBuild/Docs/_book/index.html. I got round this by copying the _book folder across and then it was fine

Another thing was that the icon link .desktop file for CabbageStudio was pointing to a non-existent file, so that no icon appeared on the desktop. Again, finding the right file and copying it across solved the problem.

The only other thing was that when make ran MakefilePluginSynth it reported that it was cleaning and linking CabbagePluginEffect instead. I checked in the makefile and it was fine, just printing out the wrong message.

Anyway it all worked fine eventually. I posted this in case any of it is helpful to anyone.

Thanks for posting. I’ll try to sort those things out. You probably need to build the manual too? Do any of the Linux users know anything about packaging software for Ubuntu based distros? It would be really nice to be able to apt-get Cabbage!

I compiled the manual OK, though I had to install node.js first. I couldn’t get it to work with Debian Wheezy but once I’d updated my OS to Debian Jessie it was OK.

I using ubuntu 15.10, but I’m fighting the SDK thing. I’ve got it downloaded and extracted in /home/spencer/other_programs/VST3SDK but neither absolute or relative paths are working for it. I get

../../JuceLibraryCode/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:49:44: fatal error: pluginterfaces/vst2.x/aeffectx.h: No such file or directory
#include "pluginterfaces/vst2.x/aeffectx.h"

I’m using the command
./buildCabbage “/usr/include/csound” “/usr/lib” “/home/spencer/other_projects/VST3SDK”

anything else I should try?

It would be great if somebody knew how to package this.

                                        ^

I’ll download the VST3 SDK tomorrow and update the build instructions. Are you using the latest dev tip? There were some changes made to the build script since the last release.

I’ve updated the makefiles so that the default location for the VST SDK to ${HOME}/SDKs/VST3SDK. I can’t seem to pass the values to the makefiles. My lack of makefiel knowledge is tarting to show. Perhaps @gsenna can help? In the mean time your best bet is to simply edit the two plugin makefiles so that the VST_SDK points to the VST3 folder. I will try to get this sorted soon.

I just downloaded the release, I’ll try dev. Thanks.

I’m no Makefile expert either. But I was able to spot a few things. Is there a reason why you are using both (ifndef) and (?=) ? I commented out the ifndef and it seems to be working. I can’t test with default arguments because I don’t have Csound installed in the usual place.

The other thing I noticed is some hard-coded paths pointing to vstsdk2.4. I changed those and it seems to be working now. Can anyone try buildCabbage with default arguments? Do we agree that the best thing to do is to have the VST3 path as the default one?

Makefiles.zip (17.6 KB)


Regarding the .deb thing, I’ve created one following a tutorial once. It’s not a difficult thing to do. The problem is going to be Csound. Last time I checked the version of Csound in the Ubuntu repos was 6.02, and it didn’t work with Cabbage (you explained to me that there were some changes in the API after that version).

So, we would need to have a repo with Cabbage and our own Csound package too or provide the .so files in Linux as you do with the .dll files in Windows.

Cheers.

Last time I checked the version of Csound in the Ubuntu repos was 6.02, and it didn't work with Cabbage (you explained to me that there were some changes in the API after that version).

well, my ubuntu 15.10 install has csound 6.04 and with the new 16.04 LTS release in a few weeks hopefully more users will have a recent version.
If we work with falktx from kxstudio we might be able to get it in his repos and a majority of audio users in linux are already using those…
I’ll talk to him and find out what that would take.

Cool! I have 14.04.4 and apt-cache still says 6.02. Ubuntu 16.04 will have Csound 6.05 in its repos according to Launchpad.

It’s also worth checking the new snap packages system! Those will be self-contained, sandboxed apps (apparently).

ya I heard about those snap packages. not sure I love the idea of having every plugin or app bringing a new copy of a library I already have, but thats another thing.

falktx said he just needs a regular deb if you want to put it in kxstudio. Though he did mention that he’d like it to use his distrho fork of juce for consistency.

If falktx only needs a .deb file we can use checkinstall. We would need to decouple buildCabbage into two different scripts (buildCabbage/installCabbage) and sort out where do we want each file to be placed in the system hierarchy. We would then need to replace the JuceLibraryCode folder with his fork. After that it’s just a single command to build the .deb.

I can set that up, but could you ask falktx if it’s ok to use checkinstall? Should we upload v1.0.0 or the most recent beta?

EDIT: falktx uses launchpad so I bet we’ll need to use the appropriate Debian/Ubuntu tools. I’ll read about what are the proper ways of doing it.

falktx later made the point that we could maybe just get this into Debian which would really be a better solution, more widely applicable when its official rather than a PPA. I really know little of packaging, but its a good point.
Bravo, gsenna for looking into it!

If we want to distribute Cabbage via Launchpad we’ll have to change all hard-coded paths inside the code. I’m talking about IntroScreen, opcodes.txt and Examples.

As a workaround I’ve managed to create a .deb using checkinstall. It doesn’t follow the traditional rules for placing files in Linux. Basically it places a Cabbage folder (equals to the CabbageBuild folder) inside /usr/local. Then it copies the .desktop files into /usr/share/applications/. I’ve checked and lilypond does something similar.

This .deb doesn’t have the Docs included because I can’t figure out what Docs/_book is.

It appears to work fine. We could refine the process and distribute these .deb packages through the Downloads page or the Forum. Of course it will be better if we could create proper .deb files in the future.

I had to put my name in the Maintainer’s field. I don’t think it’s fair because the Ubuntu Software Center displays the text as I was the creator of Cabbage. Would you like to create these .deb Rory?

The good thing is that newbies can install Cabbage using the Ubuntu software center or dpkg -i. Then you can remove with apt-get purge.

Let me know what do you think about this approach and test the .deb if you can. It’s a 64-bit installer and I used the development branch to build it. As you can’t use characters for the version’s text field I filled it with v1.0.4.

First off, thanks for running with this guys. I’ve just now updated the makefiles so they should work Ok, between the ones @gsenna contributed, and fixing the mistakes I had in my own, I think there are now good to go.

Please use the latest dev branch. I’m about to push it to the master branch anyway.

You will need gitbook to bild the docs. It’s pretty simple to install. Once installed cd to the Docs dir, run “gitbook init” and then gitbook build. It will create html docs in a folder called “_book”

Just one thing, does your .deb also include Csound? Or does it have a way to check for the existence of Csound? I look forward to adding it to the downloads page. I don’t see any problem with having the Cabbage directory placed into usr/local, it might not be very PC correct but it’s clean and easy to maintain right?

Thanks again for this!

I installed the deb without issue. Great work!

However due to the unconventional install location I’d try to make it clear in the docs or when you download or something how to use it from that location. Just the .desktop file doesn’t work in my case because I use a minimal WM with no launcher (i3wm).

OK. So I’ll use the development branch. But I’ll need a way to specify the development version with dot-decimal notation. What convention should we adopt for that?

I went mad trying to figure out what was _book yesterday! I should have asked…

It seems that I can pass something like –requires=“csound (>= 6.03)” that will cause dpkg to make the installation fail if the dependency is not met. The other thing we could do is place a copy of Csound’s shared libraries and the plugins64-6.0 folder in /usr/local/Cabbage, like the Windows installer does. What would be best?

Rory, can I put your name and e-mail in the maintainer’s info? Both things are required by Debian. Oh, and another thing, I don’t use fedora but checkinstall can create RPM packages too. If there’s someone willing to test, I can try to create them.

Maybe a symbolic link in /usr/local/bin would be a good idea then.

I’ll just go ahead and merge the dev branch with the master and we can release v1.01, that will satisfy the dot.decimal naming scheme right?

I think it might be best to have a dep on Csound rather than include it. I don’t really like the idea of multiple copies of the same libraries being placed about the file system.

I’m happy for your name to go there considering you are the one who is doing all the work on this! Actually, can one put down a web address too? Maybe http://cabbageaudio.com?

I think it will, yes.

OK. What should be the minimum version of Csound demanded as a dependency?

I can put it in the description and there’s a Source field also which should point to your github repo maybe.

I’ll try to document the process whenever I’ve some free time.