Re: Issues with portmaster

2008-06-23 Thread Doug Barton

Alex Dupre wrote:

Peter Jeremy wrote:

Firstly, I have jdk-1.5.0.14p8,1 installed and this needs updating.
portmaster has decided that doing so requires java/diablo-jdk15 to be
installed - which is wrong because I already have a suitable jdk
installed.


You are right, but the port has the following line:

BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:${PORTSDIR}/java/diablo-jdk15

So, even if it correctly find the installed
/usr/local/jdk1.5.0/bin/javac binary, it adds the diablo dependency.
Portmaster checks all the dependencies, even if the binary file exists,
and so try to install the diablo jdk. All java ports should be fixed
regarding this issue.


Portmaster uses CONFLICTS to avoid this issue. This isn't the first time 
I've heard this complaint about the java ports. I'm wondering if glewis 
could shed some light on why they don't have proper CONFLICTS set.


Meanwhile, the only other alternative is for portmaster to essentially 
adopt the same functionality as the ports infrastructure itself in order 
to handle these kinds of dependency issues. That's a step I'd really 
like to avoid since my goal has always been to make portmaster a sort of 
wrapper that ties together existing ports functionality rather than 
replacing it. And of course there is the obvious objection to doing this 
that it would make the script a lot more complicated.


For the most part, relying on CONFLICTS has worked well to solve this 
problem, I'm hoping it will continue to be a reliable solution.


Finally, I'm glad to hear that overall your experience has been 
favorable Peter. :)



Doug

--

This .signature sanitized for your protection
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Dominic Fandrey

Doug Barton wrote:

Alex Dupre wrote:

Peter Jeremy wrote:

Firstly, I have jdk-1.5.0.14p8,1 installed and this needs updating.
portmaster has decided that doing so requires java/diablo-jdk15 to be
installed - which is wrong because I already have a suitable jdk
installed.


You are right, but the port has the following line:

BUILD_DEPENDS+= 
${BOOTSTRAPJDKDIR}/bin/javac:${PORTSDIR}/java/diablo-jdk15


So, even if it correctly find the installed
/usr/local/jdk1.5.0/bin/javac binary, it adds the diablo dependency.
Portmaster checks all the dependencies, even if the binary file exists,
and so try to install the diablo jdk. All java ports should be fixed
regarding this issue.


Portmaster uses CONFLICTS to avoid this issue. This isn't the first time 
I've heard this complaint about the java ports. I'm wondering if glewis 
could shed some light on why they don't have proper CONFLICTS set.


Because they don't conflict. /usr/local/bin/javac is a script that selects
one of the installed JAVA VMs, dependant on what is available, environment
settings and a make variable that can be changed in make.conf.
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Doug Barton

Dominic Fandrey wrote:

Doug Barton wrote:


Portmaster uses CONFLICTS to avoid this issue. This isn't the first 
time I've heard this complaint about the java ports. I'm wondering if 
glewis could shed some light on why they don't have proper CONFLICTS set.


Because they don't conflict. /usr/local/bin/javac is a script that selects
one of the installed JAVA VMs, dependant on what is available, environment
settings and a make variable that can be changed in make.conf.


AFAICT, javac isn't relevant to the issue of whether the various jdk 
ports conflict with each other. It's just a convenient way to handle the 
dependency question within the ports framework.


Doug

--

This .signature sanitized for your protection
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Dominic Fandrey

Doug Barton wrote:

Dominic Fandrey wrote:

Doug Barton wrote:


Portmaster uses CONFLICTS to avoid this issue. This isn't the first 
time I've heard this complaint about the java ports. I'm wondering if 
glewis could shed some light on why they don't have proper CONFLICTS 
set.


Because they don't conflict. /usr/local/bin/javac is a script that 
selects
one of the installed JAVA VMs, dependant on what is available, 
environment

settings and a make variable that can be changed in make.conf.


AFAICT, javac isn't relevant to the issue of whether the various jdk 
ports conflict with each other. It's just a convenient way to handle the 
dependency question within the ports framework.


JDK Ports don't conflict. None of them. And because many Java developers
have several JDKs installed, noone will ever put a CONFLICT line into
JDK port.

The only way to resolve this is to detect weather a dependency is required
in the same way as a port does.

I suggest to check for the existence of the file and when the file is
from a different port, 'pkg_info -W' should be called and whatever turns
out to be the origin, should be entered as a dependency in /var/db/pkg.
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Alex Dupre

Doug Barton ha scritto:

Portmaster uses CONFLICTS to avoid this issue.


I can't see how CONFLICTS could solve this issue: we can install all the 
JDKs together without problems (this is different from original bison 
problem). The issue here is that the jdk port directory is not a 
variable parameter, based on which javac binary is selected.


--
Alex Dupre
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Alexey Shuvaev
Hello!

On Mon, Jun 23, 2008 at 12:49:22AM -0700, Doug Barton wrote:
 Alex Dupre wrote:
 Doug Barton ha scritto:
 Portmaster uses CONFLICTS to avoid this issue.

 I can't see how CONFLICTS could solve this issue: we can install all 
 the JDKs together without problems

It seems I don't understand something here. Can someone explain why
jdk ports need to set BUILD_DEPENDS on diablo-jdk15 unconditionally?
Why it is not possible to define it inside 'if !defined(BOOTSTRAPJDKDIR)'?
(See attached patch.)

Just curious,
Alexey.
--- Makefile.orig   2008-06-23 10:33:59.0 +0200
+++ Makefile2008-06-23 10:34:36.0 +0200
@@ -108,9 +108,8 @@
 # if no valid jdk found, set dependency
 .if !defined(BOOTSTRAPJDKDIR)
 BOOTSTRAPJDKDIR?=  ${LOCALBASE}/diablo-jdk1.5.0
-.endif
-
 BUILD_DEPENDS+=
${BOOTSTRAPJDKDIR}/bin/javac:${PORTSDIR}/java/diablo-jdk15
+.endif
 
 .if defined(WITHOUT_WEB)
 MAKE_ENV+= DONT_BUILD_DEPLOY=YES
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]

Re: Issues with portmaster

2008-06-23 Thread Alex Dupre

Alexey Shuvaev ha scritto:

It seems I don't understand something here. Can someone explain why
jdk ports need to set BUILD_DEPENDS on diablo-jdk15 unconditionally?


(nearly) every JDK port needs an already usable/installed JDK to 
bootstrap the compilation. This is the reason of the BUILD_DEPENDS on 
javac that you cannot remove. But the port providing the javac binary 
could not be the diablo-jdk.


--
Alex Dupre
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Alexey Shuvaev
On Mon, Jun 23, 2008 at 10:57:41AM +0200, Alex Dupre wrote:
 Alexey Shuvaev ha scritto:
 It seems I don't understand something here. Can someone explain why
 jdk ports need to set BUILD_DEPENDS on diablo-jdk15 unconditionally?

 (nearly) every JDK port needs an already usable/installed JDK to  
 bootstrap the compilation. This is the reason of the BUILD_DEPENDS on  
 javac that you cannot remove. But the port providing the javac binary  
 ^
 could not be the diablo-jdk.

Mmmm... why not???
In a nutshell, from the user point of view the reason to set BUILD_DEPENDS is
to ensure that some port (java here) is installed prior to build.
However, if the port checks against installed java in a more complicated manner
than BUILD_DEPENDS mechanism can provide, I see no reason to set
BUILD_DEPENDS to something just for its own sake.
And from the build cluster point of view, the port will be built in a clean
environment, so port will not detect any installed java and will set
BUILD_DEPENDS *conditionally* (.if !defiend(BOOTSTRAPJDKDIR)).

I have a feeling that the way BUILD_DEPENDS is set now is overkill, and
one can put it under .if !defined(BOOTSTRAPJDKDIR) without any functional
change. Of course, the Right Way To Do This would be to set the whole
correct BUILD_DEPENDS line based on detected java. Maybe this is even not
so complicated. Or I miss something?

Just 0.02$,
Alexey.
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread RW
On Mon, 23 Jun 2008 10:57:41 +0200
Alex Dupre [EMAIL PROTECTED] wrote:

 Alexey Shuvaev ha scritto:
  It seems I don't understand something here. Can someone explain why
  jdk ports need to set BUILD_DEPENDS on diablo-jdk15 unconditionally?
 
 (nearly) every JDK port needs an already usable/installed JDK to 
 bootstrap the compilation. This is the reason of the BUILD_DEPENDS on 
 javac that you cannot remove. But the port providing the javac binary 
 could not be the diablo-jdk.

The thing is that, IIRC, it doesn't have to create a dependency at
all, unless the functionality is missing. It's not simply a case of it
creating a normally dependency in the sense of: install this port if
that file is not found. 

The makefile has logic to detect which java ports are installed, so it
doesn't build a second bootstap port, but it doesn't carry it through
to removing the dependency once bootstrapping is no longer required.

I reported this problem a long time ago after I spotted that
portmanager was reinstalling a linux java version. I thought the
maintainer was going to fix it. 
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread RW
On Mon, 23 Jun 2008 00:06:38 -0700
Doug Barton [EMAIL PROTECTED] wrote:

 Portmaster uses CONFLICTS to avoid this issue. This isn't the first
 time I've heard this complaint about the java ports. I'm wondering if
 glewis could shed some light on why they don't have proper CONFLICTS
 set.
 
 Meanwhile, the only other alternative is for portmaster to
 essentially adopt the same functionality as the ports infrastructure
 itself in order to handle these kinds of dependency issues. That's a
 step I'd really like to avoid since my goal has always been to make
 portmaster a sort of wrapper that ties together existing ports
 functionality rather than replacing it. And of course there is the
 obvious objection to doing this that it would make the script a lot
 more complicated.

In this case I think it's pure logic problem in the makefile.

More generally though I wonder if it would be possible to create a more
useful missing target, i.e. show which first-level dependencies
would actually be installed if the given port were rebuilt. That way
build tools would have enough information to determine which ports need
to be built without having to parse the makefiles. 

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Doug Barton

Alexey Shuvaev wrote:

On Mon, Jun 23, 2008 at 10:57:41AM +0200, Alex Dupre wrote:

Alexey Shuvaev ha scritto:

It seems I don't understand something here. Can someone explain why
jdk ports need to set BUILD_DEPENDS on diablo-jdk15 unconditionally?
(nearly) every JDK port needs an already usable/installed JDK to  
bootstrap the compilation. This is the reason of the BUILD_DEPENDS on  
javac that you cannot remove. But the port providing the javac binary  

 ^

could not be the diablo-jdk.


Mmmm... why not???
In a nutshell, from the user point of view the reason to set BUILD_DEPENDS is
to ensure that some port (java here) is installed prior to build.
However, if the port checks against installed java in a more complicated manner
than BUILD_DEPENDS mechanism can provide, I see no reason to set
BUILD_DEPENDS to something just for its own sake.
And from the build cluster point of view, the port will be built in a clean
environment, so port will not detect any installed java and will set
BUILD_DEPENDS *conditionally* (.if !defiend(BOOTSTRAPJDKDIR)).

I have a feeling that the way BUILD_DEPENDS is set now is overkill, and
one can put it under .if !defined(BOOTSTRAPJDKDIR) without any functional
change. Of course, the Right Way To Do This would be to set the whole
correct BUILD_DEPENDS line based on detected java. Maybe this is even not
so complicated. Or I miss something?


Thanks for the discussion on this. Since I don't use java I'm relying 
an the users here. Hopefully glewis can weigh in at some point.


Doug

--

This .signature sanitized for your protection

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-23 Thread Greg Lewis
On Mon, Jun 23, 2008 at 12:28:08PM -0700, Doug Barton wrote:
 Alexey Shuvaev wrote:
 On Mon, Jun 23, 2008 at 10:57:41AM +0200, Alex Dupre wrote:
 Alexey Shuvaev ha scritto:
 It seems I don't understand something here. Can someone explain why
 jdk ports need to set BUILD_DEPENDS on diablo-jdk15 unconditionally?
 (nearly) every JDK port needs an already usable/installed JDK to  
 bootstrap the compilation. This is the reason of the BUILD_DEPENDS on  
 javac that you cannot remove. But the port providing the javac binary  
  ^
 could not be the diablo-jdk.
 
 Mmmm... why not???
 In a nutshell, from the user point of view the reason to set BUILD_DEPENDS 
 is
 to ensure that some port (java here) is installed prior to build.
 However, if the port checks against installed java in a more complicated 
 manner
 than BUILD_DEPENDS mechanism can provide, I see no reason to set
 BUILD_DEPENDS to something just for its own sake.
 And from the build cluster point of view, the port will be built in a clean
 environment, so port will not detect any installed java and will set
 BUILD_DEPENDS *conditionally* (.if !defiend(BOOTSTRAPJDKDIR)).
 
 I have a feeling that the way BUILD_DEPENDS is set now is overkill, and
 one can put it under .if !defined(BOOTSTRAPJDKDIR) without any functional
 change. Of course, the Right Way To Do This would be to set the whole
 correct BUILD_DEPENDS line based on detected java. Maybe this is even not
 so complicated. Or I miss something?
 
 Thanks for the discussion on this. Since I don't use java I'm relying 
 an the users here. Hopefully glewis can weigh in at some point.

Its probably not that complicated for the port to stop cheating on the
way it sets up BUILD_DEPENDS.  At the moment it knows the potential
bootstrap JDKs install paths, but it doesn't know where they live in
ports, so it cheats and sets the requirement to the detected javac but
then hardcodes the dependency as Diablo.  This works from a ports point
of view in that the dependency isn't installed if the requirement is
found, but it obviously confuses portsmaster.

From a partial reading of the email thread, it looks like the simplest
thing to do is to just not set BUILD_DEPENDS if it finds an appropriately
installed JDK.  That way it will only set it if it can't find a bootstrap
JDK and it needs one installed.

-- 
Greg Lewis  Email   : [EMAIL PROTECTED]
Eyes Beyond Web : http://www.eyesbeyond.com
Information Technology  FreeBSD : [EMAIL PROTECTED]
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Issues with portmaster

2008-06-22 Thread Alex Dupre
Peter Jeremy wrote:
 Firstly, I have jdk-1.5.0.14p8,1 installed and this needs updating.
 portmaster has decided that doing so requires java/diablo-jdk15 to be
 installed - which is wrong because I already have a suitable jdk
 installed.

You are right, but the port has the following line:

BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:${PORTSDIR}/java/diablo-jdk15

So, even if it correctly find the installed
/usr/local/jdk1.5.0/bin/javac binary, it adds the diablo dependency.
Portmaster checks all the dependencies, even if the binary file exists,
and so try to install the diablo jdk. All java ports should be fixed
regarding this issue.

--
Alex Dupre
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to [EMAIL PROTECTED]


Issues with portmaster

2008-06-21 Thread Peter Jeremy
I recently installed portmaster on a old/slow box to handle upgrading
ports without the overheads of installing portupgrade (which I have
been using elsewhere).  That seemed to go fairly well so I then tried
it on some of my other machines and have run into some issues.

Firstly, I have jdk-1.5.0.14p8,1 installed and this needs updating.
portmaster has decided that doing so requires java/diablo-jdk15 to be
installed - which is wrong because I already have a suitable jdk
installed.  I can't find any reference to this on the mailing lists
so I suspect it's something I've done or am not doing but I can't see
what the problem is.  If I do a build-depends-list in java/jdk15
then I get java/diablo-jdk15 so portmaster isn't being totally
unreasonable but I can't see how to resolve the problem.  Relevant
output from portmaster -v is:

=== Launching child to update jdk-1.5.0.14p8,1

=== Port directory: /usr/ports/java/jdk15
=== Launching 'make checksum' for java/jdk15 in background
=== Gathering dependency list for java/jdk15 from ports
=== Starting recursive 'make config' check
=== Checking dependency: /usr/ports/archivers/unzip
=== Checking dependency: /usr/ports/archivers/zip
=== Checking dependency: /usr/ports/converters/libiconv
=== Checking dependency: /usr/ports/devel/desktop-file-utils
=== Checking dependency: /usr/ports/devel/gio-fam-backend
=== Checking dependency: /usr/ports/devel/glib20
=== Checking dependency: /usr/ports/devel/gmake
=== Checking dependency: /usr/ports/devel/m4
=== Checking dependency: /usr/ports/devel/nspr
=== Checking dependency: /usr/ports/devel/pkg-config
=== Checking dependency: /usr/ports/java/diablo-jdk15
=== Launching child to update java/diablo-jdk15
jdk-1.5.0.14p8,1  java/diablo-jdk15

=== Port directory: /usr/ports/java/diablo-jdk15
=== This port is marked IGNORE
=== :
 Because of licensing restrictions, you must fetch the distribution
 manually.

 Please access
 
 
http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd6-amd64-1.5.0_07-b01.tar.bz2
 
 with a web browser and Accept the End User License Agreement for
 Caffe Diablo 1.5.0.  Please place the downloaded
 diablo-caffe-freebsd6-amd64-1.5.0_07-b01.tar.bz2 in /usr/ports/distfiles.



=== If you are sure you can build it, remove the
   IGNORE line in the Makefile and try again.

=== Update for /usr/ports/java/diablo-jdk15 failed
=== Aborting update

=== Update for jdk-1.5.0.14p8,1 failed
=== Aborting update

Secondly, I notice 'DEPRECATED' is treated as a fatal error.  Some of
the ports I use have DEPRECATED dependencies but I don't maintain
those ports so I'm not directly responsible for resolving that.
Shouldn't there be an easier way for me to treat DEPRECATED as a
non-fatal condition than editing my ports tree?

-- 
Peter Jeremy
Please excuse any delays as the result of my ISP's inability to implement
an MTA that is either RFC2821-compliant or matches their claimed behaviour.


pgpOzTz35zJvw.pgp
Description: PGP signature