Bug 178529

Summary: net/hornetq: uses home directory during build, not allowed
Product: Ports & Packages Reporter: John Marino <draco>
Component: Individual Port(s)Assignee: John Marino <marino>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description John Marino 2013-05-12 10:01:49 UTC
>Number:         178529
>Category:       ports
>Synopsis:       net/hornetq: uses home directory during build, not allowed
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun May 12 09:10:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     John Marino
>Release:        
>Organization:
>Environment:
>Description:
net/hornetq uses $HOME during the install, apparently assuming the builder is the user.  This obviously isn't true for ports, so at the very least hornetq isn't getting installed as expected.

Ports are not supposed to use $HOME at all.

Proof can be seen when $HOME is set to read-only:
maven-install:
     [java] [INFO] Scanning for projects...
     [java] [INFO] ------------------------------------------------------------------------
     [java] [INFO] Building HornetQ
     [java] [INFO]    task-segment: [initialize]
     [java] [INFO] ------------------------------------------------------------------------
     [java] Downloading: https://repository.jboss.org/nexus/content/groups/public/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmag
     [java] [WARNING] Unable to get resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' from repository jboss.release (https://reposi
     [java] Downloading: http://repo1.maven.org/maven2/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmagic-thirdparty-plugin-2.2.1.
     [java] [INFO] Unable to find resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' in repository central (http://repo1.maven.org/m
     [java] Downloading: https://repository.jboss.org/nexus/content/groups/public//org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildma
     [java] [WARNING] Unable to get resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' from repository jboss.release (https://reposi
     [java] Downloading: http://repo1.maven.org/maven2/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmagic-thirdparty-plugin-2.2.1.
     [java] [INFO] Unable to find resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' in repository central (http://repo1.maven.org/m
     [java] [INFO] ------------------------------------------------------------------------
     [java] [ERROR] BUILD ERROR
     [java] [INFO] ------------------------------------------------------------------------
     [java] [INFO] Error building POM (may not be this project's POM).
    
>How-To-Repeat:

>Fix:
I tried to fix this with the following patch, but it didn't work.
I suspect the final solution will be similar, but there is probably more than one spot where M2_HOME is defined with this illegal default.

--- tools/maven/bin/m2.conf.orig	2012-11-12 19:20:57.000000000 +0000
+++ tools/maven/bin/m2.conf
@@ -1,6 +1,6 @@
 main is org.apache.maven.cli.compat.CompatibleMain from plexus.core
 
-set maven.home default ${user.home}/m2
+set maven.home default /tmp/m2
 
 [plexus.core]
 load ${maven.home}/lib/*.jar


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
freebsd-ports-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports-bugs
To unsubscribe, send any mail to "freebsd-ports-bugs-unsubscribe@freebsd.org"
Comment 1 John Marino 2013-05-12 10:10:00 UTC
net/hornetq uses $HOME during the install, apparently assuming the builder is the user.  This obviously isn't true for ports, so at the very least hornetq isn't getting installed as expected.

Ports are not supposed to use $HOME at all.

Proof can be seen when $HOME is set to read-only:
maven-install:
     [java] [INFO] Scanning for projects...
     [java] [INFO] ------------------------------------------------------------------------
     [java] [INFO] Building HornetQ
     [java] [INFO]    task-segment: [initialize]
     [java] [INFO] ------------------------------------------------------------------------
     [java] Downloading: https://repository.jboss.org/nexus/content/groups/public/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmag
     [java] [WARNING] Unable to get resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' from repository jboss.release (https://reposi
     [java] Downloading: http://repo1.maven.org/maven2/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmagic-thirdparty-plugin-2.2.1.
     [java] [INFO] Unable to find resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' in repository central (http://repo1.maven.org/m
     [java] Downloading: https://repository.jboss.org/nexus/content/groups/public//org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildma
     [java] [WARNING] Unable to get resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' from repository jboss.release (https://reposi
     [java] Downloading: http://repo1.maven.org/maven2/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmagic-thirdparty-plugin-2.2.1.
     [java] [INFO] Unable to find resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' in repository central (http://repo1.maven.org/m
     [java] [INFO] ------------------------------------------------------------------------
     [java] [ERROR] BUILD ERROR
     [java] [INFO] ------------------------------------------------------------------------
     [java] [INFO] Error building POM (may not be this project's POM).

Fix: I tried to fix this with the following patch, but it didn't work.
I suspect the final solution will be similar, but there is probably more than one spot where M2_HOME is defined with this illegal default.
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2013-05-12 10:10:06 UTC
Maintainer of net/hornetq,

Please note that PR ports/178529 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/178529

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 3 Edwin Groothuis freebsd_committer freebsd_triage 2013-05-12 10:10:07 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 4 Radim Kolar 2013-05-13 23:46:23 UTC
you need to create maven settings.xml with cache directory to be in WORKDIR
then call maven with -s <your custom config>

i have no plans to do this because it builds fine here, but i am willing 
to pass maintenance of this package to you.
Comment 5 John Marino 2013-05-14 00:29:35 UTC
On 5/14/2013 00:46, Radim Kolar wrote:
> you need to create maven settings.xml with cache directory to be in WORKDIR
> then call maven with -s <your custom config>
>
> i have no plans to do this because it builds fine here, but i am willing
> to pass maintenance of this package to you.

I have provided proof this packages is writing in the $HOME directory 
which considered an error, BROKEN even.  You are free to get 
confirmation from portmgr about that.

OBVIOUSLY if you build with r/w permissions on your home directory, it 
will "build fine".  You are simply masking the problem.

I have plenty of my own packages to maintain, thanks.
Please do not close this ticket.  Regardless if you choose not to fix 
it, it's still an error.

btw, ports/178020 had a similar issue with writing to $HOME and jgh just 
fixed it, especially after portmgr said it needed to be fixed.
Comment 6 Radim Kolar 2013-05-16 01:10:08 UTC
> I have provided proof this packages is writing in the $HOME directory 
> which considered an error, BROKEN even.  You are free to get 
> confirmation from portmgr about that.
i belive you. You seems to be person with lot of experience in this 
area. Then make deal with portmgr to do this: mark port as broken and 
remove me as port maintainer.
Comment 7 Jason Helfman freebsd_committer freebsd_triage 2013-05-16 07:20:27 UTC
On Wed, May 15, 2013 at 5:20 PM, Radim Kolar <hsn@filez.com> wrote:

> The following reply was made to PR ports/178529; it has been noted by
> GNATS.
>
> From: Radim Kolar <hsn@filez.com>
> To: John Marino <draco@marino.st>
> Cc: bug-followup@FreeBSD.org
> Subject: Re: ports/178529: net/hornetq: uses home directory during build,
>  not allowed
> Date: Thu, 16 May 2013 02:10:08 +0200
>
>  > I have provided proof this packages is writing in the $HOME directory
>  > which considered an error, BROKEN even.  You are free to get
>  > confirmation from portmgr about that.
>  i belive you. You seems to be person with lot of experience in this
>  area. Then make deal with portmgr to do this: mark port as broken and
>  remove me as port maintainer.


By creating a local tar/zip archive of .m2/repository on a clean build, and
then extracting this into
the work directory. You can in theory run maven in offline mode and point
it to this repository for
building by editing:
${WRKSRC}/build-maven.xml

build-maven.xml:        <!-- <arg
value="-Dmaven.repo.local=/work/eap-51/maven-repository"/> -->
build-maven.xml:        <!-- arg
value="-Dmaven.repo.local=/work/eap/maven-repository"/ -->

Please refer to the work I've done in databases/jasperserver as a guide to
this.
I am trying to get this to work for another port, as well.

I do think the bigger solution is to modify where maven is storing it's
data per m2.conf from the distribution, itself.

Thanks!
-jgh


-- 
--
Jason Helfman          | FreeBSD Committer
jgh@FreeBSD.org     | http://people.freebsd.org/~jgh  | The Power to Serve
Comment 8 John Marino 2013-05-16 07:48:30 UTC
On 5/16/2013 02:10, Radim Kolar wrote:
>
>> I have provided proof this packages is writing in the $HOME directory
>> which considered an error, BROKEN even. You are free to get
>> confirmation from portmgr about that.
> i belive you. You seems to be person with lot of experience in this
> area. Then make deal with portmgr to do this: mark port as broken and
> remove me as port maintainer.

Just do that yourself.
Since your first reaction to a bug report was to try to offer to give 
maintainership of the port to the submitter, you seem to be the 
maintainer in name only.

I have zero interest in this port; I don't use it.  I found the problem 
and I spent my time writing out a PR.

Now it's up to you to disposition the report.
If that causes you to want to resign, then resign.
I am not a committer so I couldn't do what you ask even if I wanted to.
Comment 9 Jason Helfman freebsd_committer freebsd_triage 2013-05-16 08:03:36 UTC
On Wed, May 15, 2013 at 11:50 PM, John Marino <draco@marino.st> wrote:

> The following reply was made to PR ports/178529; it has been noted by
> GNATS.
>
> From: John Marino <draco@marino.st>
> To: Radim Kolar <hsn@filez.com>
> Cc: bug-followup@FreeBSD.org
> Subject: Re: ports/178529: net/hornetq: uses home directory during build,
>  not allowed
> Date: Thu, 16 May 2013 08:48:30 +0200
>
>  On 5/16/2013 02:10, Radim Kolar wrote:
>  >
>  >> I have provided proof this packages is writing in the $HOME directory
>  >> which considered an error, BROKEN even. You are free to get
>  >> confirmation from portmgr about that.
>  > i belive you. You seems to be person with lot of experience in this
>  > area. Then make deal with portmgr to do this: mark port as broken and
>  > remove me as port maintainer.
>
>  Just do that yourself.
>  Since your first reaction to a bug report was to try to offer to give
>  maintainership of the port to the submitter, you seem to be the
>  maintainer in name only.
>
>  I have zero interest in this port; I don't use it.  I found the problem
>  and I spent my time writing out a PR.
>
>  Now it's up to you to disposition the report.
>  If that causes you to want to resign, then resign.
>  I am not a committer so I couldn't do what you ask even if I wanted to.


This may be worth a look as well to build in offline mode with a local repo:
http://repository.jboss.org/org/hornetq/messaging/2.2.0.GA-brew/src/hornetq-maven-offline.patch

-jgh

--
Jason Helfman          | FreeBSD Committer
jgh@FreeBSD.org     | http://people.freebsd.org/~jgh  | The Power to Serve
Comment 10 John Marino 2013-05-16 08:19:46 UTC
On 5/16/2013 09:03, Jason Helfman wrote:
> This may be worth a look as well to build in offline mode with a local repo:
> http://repository.jboss.org/org/hornetq/messaging/2.2.0.GA-brew/src/hornetq-maven-offline.patch

Hi Jason,
Just to be clear, are you asking me to test this patch?
That won't be a problem.

Thanks,
John
Comment 11 John Marino 2013-06-18 11:58:02 UTC
It seems that the maintainer can't be bothered to request to mark this 
port broken and to give up maintainership (his own suggestion).

Perhaps somebody *should* mark it broken as he suggested.  He still 
needs to drop it himself though.
Comment 12 John Marino freebsd_committer freebsd_triage 2013-07-21 20:53:10 UTC
State Changed
From-To: feedback->open

maintainer declined to fix
Comment 13 John Marino freebsd_committer freebsd_triage 2013-07-21 20:53:46 UTC
Responsible Changed
From-To: freebsd-ports-bugs->marino

Will be marked broken
Comment 14 dfilter service freebsd_committer freebsd_triage 2013-07-22 07:55:41 UTC
Author: marino
Date: Mon Jul 22 06:55:34 2013
New Revision: 323432
URL: http://svnweb.freebsd.org/changeset/ports/323432

Log:
  net/hornetq: Mark BROKEN, builds outside $WRKDIR
  
  The port downloads to $HOME directory, violating the rule to constrain the
  build to the $WRKDIR.  Reset maintainership per maintainer request.
  
  PR:		ports/178529
  submitted by:	marino
  Approved by:	bapt (mentor), former maintainer

Modified:
  head/net/hornetq/Makefile

Modified: head/net/hornetq/Makefile
==============================================================================
--- head/net/hornetq/Makefile	Mon Jul 22 06:51:24 2013	(r323431)
+++ head/net/hornetq/Makefile	Mon Jul 22 06:55:34 2013	(r323432)
@@ -8,7 +8,7 @@ CATEGORIES=	net java
 #MASTER_SITES=	http://downloads.jboss.org/hornetq/
 #DISTNAME=	${PORTNAME}-${PORTVERSION}.Final
 
-MAINTAINER=	hsn@sendmail.cz
+MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Multi-protocol asynchronous messaging system
 
 LICENSE=	LGPL21
@@ -16,6 +16,7 @@ LICENSE=	LGPL21
 BUILD_DEPENDS=	${MAVEN3}:${PORTSDIR}/devel/maven3 \
 		ant:${PORTSDIR}/devel/apache-ant
 
+BROKEN=		Uses home directory during build (PR ports/178529)
 PORTDOCS=	quickstart-guide api rest-api user-manual \
 		rest-interface-manual README.html
 
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 15 John Marino freebsd_committer freebsd_triage 2013-07-22 08:09:26 UTC
State Changed
From-To: open->closed

Committed. Thanks!