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>