Subject: [Pljava-dev] mvn clean install fails for PL/Java on Postgres 9.5

From: Dan Bikle <[email-masked]>
Date: Wed, 6 Jul 2016 19:26:46 -0700

Hello world,

I am working on installing PL/Java on Postgres 9.5.

My setup is Postgres 9.5 on Centos 6.5 with Oracle-Java JDK 1.8.0_92

My install of Postgres was done from these yum-packages:

    postgresql95
    postgresql95-devel
    postgresql95-libs
    postgresql95-server

I list below a summary of my steps so far:

    su - postgres
    git clone https://github.com/tada/pljava
    git checkout V1_5_0
    mvn clean install

That seemed to work until I saw this:

    [INFO]
------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO]
    [INFO] PostgreSQL PL/Java ................................. SUCCESS [
16.707 s]
    [INFO] PL/Java API ........................................ SUCCESS [
8.771 s]
    [INFO] PL/Java backend Java code .......................... SUCCESS [
4.000 s]
    [INFO] PL/Java backend native code ........................ FAILURE [
13.560 s]
    [INFO] PL/Java Deploy ..................................... SKIPPED
    [INFO] PL/Java Ant tasks .................................. SKIPPED
    [INFO] PL/Java examples ................................... SKIPPED
    [INFO] PL/Java packaging .................................. SKIPPED
    [INFO]
------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO]
------------------------------------------------------------------------
    [INFO] Total time: 52.707 s
    [INFO] Finished at: 2016-07-06T18:09:40-07:00
    [INFO] Final Memory: 38M/222M
    [INFO]
------------------------------------------------------------------------

    [ERROR] Failed to execute goal
    com.github.maven-nar:nar-maven-plugin:3.2.3:nar-compile
    (default-nar-compile) on project pljava-so: NAR: Compile failed: gcc
    failed with return code 1 -> [Help 1]

    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with
the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions,
please read the following articles:
    [ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with
the command
    [ERROR]   mvn <goals> -rf :pljava-so

I would welcome any clues and/or opinions about how to best debug this so
that mvn clean install will run error free.
_______________________________________________
Pljava-dev mailing list
[email-masked]
http://lists.pgfoundry.org/mailman/listinfo/pljava-dev

---

From: Dan Bikle <[email-masked]>
Date: Wed, 6 Jul 2016 19:31:18 -0700

Hello world,

    postgresql95
    postgresql95-devel
    postgresql95-libs
    postgresql95-server

    su - postgres

    [INFO]

    [ERROR]

On Wed, Jul 6, 2016 at 7:26 PM, Dan Bikle <[email-masked]> wrote:

>     [INFO] ------------------------------------------------------------
> ------------
>     [INFO] Reactor Summary:
>     [INFO]
>     [INFO] PL/Java API ........................................ SUCCESS
> [  8.771 s]
>     [INFO] ------------------------------------------------------------
> ------------
>     [INFO] BUILD FAILURE
>     [INFO] ------------------------------------------------------------
> ------------
>     [INFO] ------------------------------------------------------------
> ------------
>

---

From: Dan Bikle <[email-masked]>
Date: Wed, 6 Jul 2016 19:34:09 -0700

I tried this:

rm -rf target
mvn -X clean install

I saw this:

[INFO] Core 1 interrupted
[INFO] 51 files were compiled.
[INFO] 51 files were compiled.
[INFO]
------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] PostgreSQL PL/Java ................................. SUCCESS [
0.960 s]
[INFO] PL/Java API ........................................ SUCCESS [
2.045 s]
[INFO] PL/Java backend Java code .......................... SUCCESS [
1.868 s]
[INFO] PL/Java backend native code ........................ FAILURE [
10.254 s]
[INFO] PL/Java Deploy ..................................... SKIPPED
[INFO] PL/Java Ant tasks .................................. SKIPPED
[INFO] PL/Java examples ................................... SKIPPED
[INFO] PL/Java packaging .................................. SKIPPED
[INFO]
------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 15.799 s
[INFO] Finished at: 2016-07-06T19:32:26-07:00
[INFO] Final Memory: 35M/222M
[INFO]
------------------------------------------------------------------------
[ERROR] Failed to execute goal
com.github.maven-nar:nar-maven-plugin:3.2.3:nar-compile
(default-nar-compile) on project pljava-so: NAR: Compile failed: gcc failed
with return code 1 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-compile
(default-nar-compile) on project pljava-so: NAR: Compile failed
    at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: NAR: Compile
failed
    at
com.github.maven_nar.NarCompileMojo.createLibrary(NarCompileMojo.java:452)
    at
com.github.maven_nar.NarCompileMojo.narExecute(NarCompileMojo.java:122)
    at
com.github.maven_nar.AbstractNarMojo.execute(AbstractNarMojo.java:302)
    at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 20 more
Caused by: gcc failed with return code 1
    at
com.github.maven_nar.cpptasks.compiler.CommandLineCompiler.compile(CommandLineCompiler.java:222)
    at
com.github.maven_nar.cpptasks.compiler.CommandLineCompilerConfiguration.compile(CommandLineCompilerConfiguration.java:148)
    at com.github.maven_nar.cpptasks.CCTask$Core.run(CCTask.java:946)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the
command
[ERROR]   mvn <goals> -rf :pljava-so
-bash-4.1$

On Wed, Jul 6, 2016 at 7:31 PM, Dan Bikle <[email-masked]> wrote:

>>     [INFO] PostgreSQL PL/Java ................................. SUCCESS
>> [ 16.707 s]
>>     [INFO] PL/Java backend Java code .......................... SUCCESS
>> [  4.000 s]

---

From: Chapman Flack <[email-masked]>
Date: Wed, 6 Jul 2016 23:06:58 -0400

Hi,

If you run

  mvn -X clean install >mvnlog 2>&1

and then look through mvnlog for a line containing 'fatal error'
you will probably find that a required dependency is missing, often
a .h file for something like openssl. The requirement may be found
in an additional package from your OS distro repository (often with
a name that ends in -devel ... you may have, for example, the openssl
package installed, but not openssl-devel).  I use openssl by way of
example; it will be finding the error message in your mvn -X output
that tells you what exactly is missing in your case. This is becoming
a bit of a FAQ...

Regards,
-Chap

---

From: Dan Bikle <[email-masked]>
Date: Wed, 6 Jul 2016 23:32:11 -0700

I found the fix.

I ran a shell command from root:

yum install openssl-devel
_______________________________________________
Pljava-dev mailing list
[email-masked]
http://lists.pgfoundry.org/mailman/listinfo/pljava-dev

---

From: John R Pierce <[email-masked]>
Date: Thu, 7 Jul 2016 01:24:14 -0700

> yum install openssl-devel

yup, thats a thing with redhat/centos/fedora, if you're going to build 
something that requires some library, you need the -devel packages for 
that library/package.     if you install via yum, then all the 
dependencies get installed automatically, but if you're working from git 
or tarball or whatever, you're on your own.  it generally takes trial 
and error to determine what packages you need for some custom build.

-- 
john r pierce, recycling bits in santa cruz

---

From: Chapman Flack <[email-masked]>
Date: Thu, 7 Jul 2016 07:05:40 -0400

On 07/07/16 04:24, John R Pierce wrote:
> if you're working from git or tarball or
> whatever, you're on your own.  it generally takes trial and error to
> determine what packages you need for some custom build.

Or in pljava's case, if trial-and-error feels too chancy, there will
generally be a 'fatal error' line in mvn -X's output that gives the
name of the file that couldn't be found ... it's just easiest to save
the output in a file and grep it for 'fatal error' because that line's
buried in such a volume of other verbosity.

-Chap

---

From: John R Pierce <[email-masked]>
Date: Thu, 7 Jul 2016 04:19:32 -0700

> buried in such a volume of other verbosity.

yeah, thats the 'error' part of trial and error :)