Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Aug 2005 10:33:33 -0400 (EDT)
From:      Bill Fenner <fenner@research.att.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/84644: Java port lies about what files to fetch
Message-ID:  <200508071433.j77EXXaI094532@chongo.dyndns.org>
Resent-Message-ID: <200508071440.j77Ee9NT035496@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         84644
>Category:       ports
>Synopsis:       Java port lies about what files to fetch
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 07 14:40:08 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Bill Fenner
>Release:        FreeBSD 5.4-RELEASE i386
>Organization:
AT&T Labs -- Research
>Environment:
System: FreeBSD chongo.hsd1.pa.comcast.net 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Sun May 8 10:21:06 UTC 2005 root@harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386


>Description:
	
When trying to build jdk14 on a fresh system, it first says
"You have the source, but have to fetch the patches."
Then it says "You have to fetch the binary stuff."
Then it says "You have to fetch the source stuff."
If you find the manual fetching annoying in the first
place, you're likely to get even more annoyed by the
fact that it first lies ("You have the source...") and
then forces you to try building 3 times before it
works.

>How-To-Repeat:
	
rm /usr/ports/distfiles/jdk14* /usr/ports/distfiles/bsd*jdk14*
cd /usr/ports/java/jdk14
make
<fetch patch file, wonder why it says you have the sources
 when you clearly don't>
make
<fetch binary file, wonder why it didn't say that you would
 have to fetch this one too>
make
<fetch source file, wonder why in the world the port is written
 this way>
make
<success>

>Fix:

	

Here's my proposed fix.  I've tested it with several combinations
of files present or not.

It also updates the wording to reflect the current organization
of the Sun download page more closely.

Note that this problem appears to exist with all of the java ports;
I've only fixed jdk14 because this was the one that pissed me off,
but obviously the others could use the fix too.


--- Makefile.orig	Sun Aug  7 10:21:06 2005
+++ Makefile	Sun Aug  7 10:25:13 2005
@@ -142,42 +142,39 @@
 
 LD_LIBRARY_PATH_FILES=	../../hotspot/src/os/bsd/vm/os_bsd.cpp
 
-# Check for JDK sources
-.if !exists(${DISTDIR}/${SCSL_SRCFILE}) && !defined(PACKAGE_BUILDING)
+# Check for JDK sources and patch file
+.if !defined(PACKAGE_BUILDING) && (!exists(${DISTDIR}/${SCSL_SRCFILE}) || !exists(${DISTDIR}/${SCSL_BINFILE}) || !exists(${DISTDIR}/${PATCHSETFILE}))#{
 ECHO_MSG=/usr/bin/printf
 IGNORE= :\n\
-Because of licensing restrictions, you must fetch the source distribution\n\
-manually.  Please access http://www.sun.com/software/java2/download.html\n\
+Because of licensing restrictions, you must fetch the certain files\n\
+manually.
+.if !exists(${DISTDIR}/${SCSL_SRCFILE}) || !exists(${DISTDIR}/${SCSL_BINFILE})#{
+IGNORE += Please access http://www.sun.com/software/java2/download.html\n\
 with a web browser and follow the \"Download\" link for the\n\
-\"Java(TM) SDK ${JDK_VERSION}\". You will be required to log in and register,\n\
+\"Java(TM) 2 SDK ${JDK_VERSION}\". You will be required to log in and register,\n\
 but you can create an account on this page.  After registration and\n\
-accepting the Sun Community Source License, select \"J2SESDK\" and\n\
-download the source file, ${SCSL_SRCFILE}.  Please place this file in\n\
-${DISTDIR}.\n
-.endif
-.if !exists(${DISTDIR}/${SCSL_BINFILE}) && !defined(PACKAGE_BUILDING)
-ECHO_MSG=/usr/bin/printf
-IGNORE= :\n\
-Because of licensing restrictions, you must fetch the source distribution\n\
-manually.  Please access http://www.sun.com/software/java2/download.html\n\
-with a web browser and follow the \"Download\" link for the\n\
-\"Java(TM) SDK ${JDK_VERSION}\". You will be required to log in and register,\n\
-but you can create an account on this page.  After registration and\n\
-accepting the Sun Community Source License, select \"J2SESDK\" and\n\
-download the source file, ${SCSL_BINFILE}.  Please place this file in\n\
-${DISTDIR}.\n
-.endif
-
-# Check for patchset
-.if !exists(${DISTDIR}/${PATCHSETFILE}) && !defined(PACKAGE_BUILDING)
-ECHO_MSG=/usr/bin/printf
-IGNORE= :\n\
-The source distribution exists on your system, but due to\n\
-licensing restrictions you still need to download the\n\
+accepting the Sun Community Source License, download the\n
+.if !exists(${DISTDIR}/${SCSL_SRCFILE})#{
+IGNORE += SCSL Source file, ${SCSL_SRCFILE}
+.endif#}
+.if !exists(${DISTDIR}/${SCSL_BINFILE})#{
+.if !exists(${DISTDIR}/${SCSL_SRCFILE})#{
+IGNORE += and the\n
+.endif#}
+IGNORE += SCSL Binaries file, ${SCSL_BINFILE}
+.endif#}
+IGNORE += .\n
+.if !exists(${DISTDIR}/${PATCHSETFILE})#{
+IGNORE += In addition,
+.endif#}
+.endif#}
+.if !exists(${DISTDIR}/${PATCHSETFILE})#{
+IGNORE += You need to download the\n\
 patchset, ${PATCHSETFILE}, from\n\
-http://www.eyesbeyond.com/freebsddom/java/jdk14.html.\n\
-Please place the patchset in ${DISTDIR}.\n
-.endif
+http://www.eyesbeyond.com/freebsddom/java/jdk14.html.\n
+.endif#}
+IGNORE += \n Please place the downloaded files in ${DISTDIR}.\n
+.endif#}
 
 # JDK 1.4.2 require recent version of FreeBSD due to recent libc_r updates.
 # Make check for reqiuired primities as early as possible
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508071433.j77EXXaI094532>