Building with Travis CL

Can we confirm that the projucer doesn’t need to download a license to operate as if it was licensed from the command line?

Some of my build setups don’t really have a UI as an option…

Or maybe a command line parameter that’ll just take a serial number would work

Or is it okay to use the GPL option when one has a license anyway …? :slight_smile:

It’s fine to use the GPL option if you have a JUCE license.

Alternatively, if you’re aware of the legal ramifications, you can set

#define JUCE_DISPLAY_SPLASH_SCREEN 0
#define JUCE_REPORT_APP_USAGE 0

in the USER_CODE_SECTION of your product’s AppConfig.h. This will effectively disable the code in the following SECTION A:

   In accordance with the terms of the JUCE 5 End-Use License Agreement, the
   JUCE Code in SECTION A cannot be removed, changed or otherwise rendered
   ineffective unless you have a JUCE Indie or Pro license, or are using JUCE
   under the GPL v3 license.

   End User License Agreement: www.juce.com/juce-5-licence
1 Like

Hello, is it still the case that Projucer can not be used without X Server? I’d like to be able to just run it only to --resave a project.

1 Like

My only experience with this was with Travis, and I was able to sort it using the instructions I posted above. Sorry, I couldn’t say for other environments.

1 Like

In case it may be relevant to this discussion, proposals have been done regarding the possibility to remove the dependency upon X even for Linux audio plug-ins that don’t need it:

Setting the DISPLAY variable with the sleep hack actually isn’t necessary. You can simply do:

xvfb-run <path to executable>

There’s an easier way to do this now in Travis:

      services:
        - xvfb

Is this something, that can be fixed?

Are you still finding this a problem with Travis specifically or do you have another environment without an X server?

I am running Jenkins, which had no problem on Mac and Windows virtual machines, but the linux it wouldn’t run.
I installed xvfb after posting and added the xvfb-run call, that @jamiebullock posted, so that works now.

I still feel for a tool I would prefer not to depend on an xserver, but for the moment it’s fine. I just would love to understand, what makes the Projucer with almost 20 command line options relying on a GUI.

Actually it is not really working:
It works once, but I have more than one projects that I want to build, and the identical call fails for the second project. Is there a limitation on xvfb-run?

+ xvfb-run JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer --resave VideoPlayer/VideoPlayer.jucer
JUCE v5.4.3

**********************************************************
Projucer 5.4.3  ---  Build date: Jun 10 2019
Log started: 10 Jun 2019 2:02:24pm

Linux
CPU: 3702MHz  Cores: 8  32045MB
Loading project: /var/lib/jenkins/workspace/Video-Linux_feature_jenkins/VideoPlayer/VideoPlayer.jucer
+ xvfb-run JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer --resave VideoEditor/VideoEditor.jucer
xvfb-run: error: Xvfb failed to start

What’s your Jenkins running on?

Ubuntu 18.04.2 LTS

My problem is not so much about having the XServer installed, but to configure jenkins to use/access it. I had the same problem with pluginval in the mac/windows instances as well…

And that doesn’t have X11 running by default?

sorry, was still editing… yes it has

I’m not sure I understand the problem then.
I’ve never actually run a Ubuntu 18 Jenkins system but I have set up several Ubuntu 16 Jenkins systems and I never had to explicitly start X or run xvfb to get the PJ to resave projects?

Well, I can only say lucky you.
I installed jenkins using this recipe: https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-18-04

And set up a multibranch pipeline just standard, but the command I wrote earlier (Projucer --resave foo.jucer) fails with “Couldn’t connect to display”, and it is able to perform once using the xvfb-run, but fails, if I call it twice.

It could also be, because those two projects are parallel stages… maybe xvfb-run needs to be called sequential… I will try removing the parallel…

Reporting back, removing the parallel build fixes the issue. Calling two instances of xvfb-run in parallel seemed to be the culprit.

So in order to be able to build in parallel, and out of curiosity:
What is it, that makes Projucer CLI not able to run without a display?

JUCE uses X’s event loop. So it’s not really a “display” that’s required, just the event loop bit.