home

Jun 10, 2020

Build a JBoss Liferay 6.2.5 GA6 bundle with security patches

Ok, I hope the title scares you at least a little, otherwise it’s safe to assume that you are not as normal as you think.

Jokes apart, I had to build a Liferay 6.2 JBoss bundle with security patches for a project in my current company, so I searched a little on the web and found nearly nothing, official forums included[1].

One article that pointed me in a direction is this one from Dominik Marks.

So, armed with the Oracle JDK 1.7 with JCE, and ant 1.9 (using tom to handle tool switching), I went and did the damn thing.

Get the sources

git clone https://github.com/community-security-team/liferay-portal.git
cd liferay-portal
git checkout 5f3601ccfbfa2eece97211bc36e4f2fbba4592ba

Easy enough.

The commit is the last 6.2.5-cumulative as of today, on which I hacked to get the bundle.

Hack some source files

If you try and run ant all you get a tomcat bundle. It’s Liferay default.

  1. Change app.server.properties commenting line 18 and uncommenting line 14. This way you set jboss as the application server you want to use.

  2. Change line 73 of app.server.properties from this:
    app.server.jboss.dir=${app.server.parent.dir}/jboss-${app.server.jboss.version}
    to this:
    app.server.jboss.dir=${app.server.parent.dir}/jboss-as-${app.server.jboss.version}.Final
    because the url to download jboss is wrong and so is the download dir.

  3. Comment lines from 114 to 117 of file build-dist.xml, there was some incorrect versions defined.

Build the bundle

ant -f build-dist.xml build-dist-jboss-eap
ant all

With this you first get the jboss 7.1.1 zip from RedHat, and then you build and add the Liferay stuff to it.

Weird enough it save the output in a bundles directory at the same level of the liferay-portal directory of the cloned git repo.
That’s annoying.

Add the ibm module

Ok, here maybe there was some flip I didn’t switch, or some config I didn’t set, but it seems that the bundle I created is missing a jboss module that is present in the official 6.2.5-GA6 JBoss bundle.

If I start the jboss server, ROOT.war (that is Liferay) fails to deploy.

Well, I’m a practical guy, so I grabbed the official bundle here and copied the ibm module to the bundle I just compiled.

Conclusions

It kinda sucked, so I hope this log helps you guys if you are working with this stuff.


[1] Ok, maybe I didn’t search well enough, but, you know, it’s boring.

Have any comments?
Send me an email mapperr@sdf.ee
or post on my public mailing list ~mapperr/public-inbox@lists.sr.ht