CPAS Linux install failure after custom build

LabKey Support Forum (Inactive)
CPAS Linux install failure after custom build aschwin.vanderwoude  2007-03-16 09:03
Status: Closed
 
Hi,

It seems I bumped into another problem. :-(
Altough the debian build succeeded, I couldn't find a directory or file that resembled the cpas binary package that is distributed on the cpas website. As I wanted to follow the install instruction found from the cpas website.

Therefore I looked through the ant targets and found dist_standard, dist_cpas and two others. Trying to run these resulted in a complaint of a missing installer/build.xml file.
Fortunately I found this directory from the svn repository, and after downloading it, I happily tried to continue building a binary package.
Unfortunately, it failed with the following error:

---- start error ----
installer-withjre:

BUILD FAILED
/root/CPAS1.7-5431-src/modules/build.xml:1029: The following error occurred while executing this line:
/root/CPAS1.7-5431-src/modules/build.xml:1011: The following error occurred while executing this line:
/root/CPAS1.7-5431-src/installer/build.xml:20: The following error occurred while executing this line:
/root/CPAS1.7-5431-src/installer/build.xml:52: Execute failed: java.io.IOException: java.io.IOException: /root/CPAS1.7-5431-src/installer/nsis/makensis.exe: cannot execute
---- end error ----

Apparently it tries to execute a windows binary, and 'file' happily tells me it is.

---- shell output ----
# file ../installer/nsis/makensis.exe
../installer/nsis/makensis.exe: MS-DOS executable PE for MS Windows (console) Intel 80386 32-bit
---- end shell output ----

As it was seemingly a console app, I tried to run it with wine, which worked and gave a me a nice help text. So I renamed the exe file and created a shell wrapper to execute the binary with any arguments using wine.
For some reason argument parsing got messed up and the build fails once more.

What I wonder is whether makensis.exe is really needed, as you explained in a previous posts that others have succeeded in building cpas on Linux.

I did also find the target 'bin-tarball' in the installer/build.xml file and I did end up with a binary package after retrieving the sampledata directory from svn. But the created binary package seemed incomplete as some files where reported to be missing when running cpas under Tomcat. After manually copying the files to the reported location, I got tomcat so far as to tell me the cpas application was running.
But when accessing the cpas uri, it produced the exception at the end of my post.

Once again, I hope you will be able to provide me with some hints on how to resolve this installation problem. If needed I can provide more information about my setup, but I also refer to my previous post for some of those details.

Thanks in advance for any pointers,

-Aschwin


An error has occurred:
javax.servlet.error.exception :

java.lang.NullPointerException
       at org.fhcrc.cpas.data.PropertyManager.getSiteConfigProperties(PropertyManager.java:110)
       at org.fhcrc.cpas.util.AppProps.lookupStringValue(AppProps.java:127)
       at org.fhcrc.cpas.util.AppProps.lookupIntValue(AppProps.java:115)
       at org.fhcrc.cpas.util.AppProps.getMemoryUsageDumpInterval(AppProps.java:335)
       at org.fhcrc.cpas.util.MemTracker.logMemoryUsage(MemTracker.java:106)
       at org.fhcrc.cpas.view.ViewServlet.service(ViewServlet.java:69)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.fhcrc.cpas.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.fhcrc.cpas.module.ModuleLoader.doFilter(ModuleLoader.java:834)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.fhcrc.cpas.security.AuthFilter.doFilter(AuthFilter.java:82)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Thread.java:595)


request attributes
javax.servlet.forward.request_uri = /cpas/admin/startupFailure.view
javax.servlet.forward.context_path = /cpas
javax.servlet.forward.servlet_path = /admin/startupFailure.view
javax.servlet.forward.path_info = /error.gm
javax.servlet.error.servlet_name = ViewServlet
javax.servlet.error.message =
javax.servlet.error.exception = java.lang.NullPointerException
javax.servlet.error.request_uri = /cpas/admin/startupFailure.view
javax.servlet.error.status_code = 500

core schema database configuration
Server URL jdbc:postgresql://localhost/cpas
Product Name PostgreSQL
Product Version 7.4.16
Driver Name PostgreSQL Native Driver
Driver Version PostgreSQL 8.1 JDBC3 with SSL (build 407)
 
 
jeckels responded:  2007-03-16 10:33
Aschwin,

As you can probably guess, to date we've only built our redistributables (.exe, .zip, and .tar.gz) on a Windows machine.

Additionally, we didn't consider building the redistributables from the source distribution. This is a valid thing to want to do, so I entered https://cpas.fhcrc.org/Issues/home/issues/details.view?issueId=3049 to track that request.

I'd recommend commenting the call to the installers target in the "build" target in installers/build.xml. That should prevent it from trying to build the Windows .exe installers using makensis.exe and should let you generate a full .tar.gz distribution.
 
aschwin.vanderwoude responded:  2007-03-19 07:27
I indeed already guessed you have mostly developed CPAS on Windows.
I hope when I get passed all these little problems, I might be able to supply some patches to make it easier for the next person that attempts the same.
 
jeckels responded:  2007-03-19 11:01
We'd welcome any contributions.

For 2.0, I've made it so that the dist_* targets work under *nix and so that the source distributions can build full binary and source distributions.