From owner-cvs-all Thu Sep 21 19:54: 5 2000 Delivered-To: cvs-all@freebsd.org Received: from guru.mired.org (zoom0-069.telepath.com [216.14.0.69]) by hub.freebsd.org (Postfix) with SMTP id ACB7D37B422 for ; Thu, 21 Sep 2000 19:54:01 -0700 (PDT) Received: (qmail 62766 invoked by uid 100); 22 Sep 2000 02:53:43 -0000 From: Mike Meyer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14794.51639.676162.445187@guru.mired.org> Date: Thu, 21 Sep 2000 21:53:43 -0500 (CDT) To: Archie Cobbs Cc: cvs-all@freebsd.org Subject: Re: cvs commit: ports INDEX In-Reply-To: <112230153@toto.iv> X-Mailer: VM 6.72 under 21.1 (patch 10) "Capitol Reef" XEmacs Lucid X-face: "5Mnwy%?j>IIV\)A=):rjWL~NB2aH[}Yq8Z=u~vJ`"(,&SiLvbbz2W`;h9L,Yg`+vb1>RG% *h+%X^n0EZd>TM8_IB;a8F?(Fb"lw'IgCoyM.[Lg#r\ Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Archie Cobbs writes: > This brings up a semi-serious point. There is tons of Java code > out there that is distributed as JAR files, or maybe JAR files plus > a native shared library. Just taking one a random example, SableCC: > http://www.sable.mcgill.ca/sablecc/ > > This is an application, but there are also various Java libraries. > > We need to have a standard way of installing this kind of software. > Better yet, it should work for any of our Java runtimes (JDK, kaffe, ...?) > > Thoughts? Any language that supports externally-locatable modules has similar problems. That includes Python, probably Ruby, and I'm sure there are others. Perl is the most interesting, as it is in the system build, and has modules that are installed in /usr/lib instead of ${PREFIX}/lib. Last time I looked, it was broken with respect to ${PREFIX} because /usr/local was wired into the interpreter and module builder, so ports with Perl packages always installed them in /usr/local/lib, no matter what ${PREFIX} says. With that in mind, I'd propose the following version: - Ala Java, the default search path for external modules should be ${PREFIX}/share/. The interpreter should build to search ${LOCALBASE}/share/. - Stealing a page from Python & Perl, native libraries go in ${PREFIX}/share//. - If helper scripts are needed, they should be installed in ${PREFIX}/bin. A "wrapper port" that would let a port just do: ln -s ${PREFIX}/bin/java-wrapper ${PREFIX}/bin/MyName would probably help make sure the ports get things right (I see a lot of shell scripts that are PREFIX-deficient). As someone who has purposely separated ${LOCALBASE} from things that aren't ports, I would greatly appreciate a make.conf option "OTHER_MODULE_DIRS" (or some such) that can be set to a list of directories that will be added to the Perl (and Python, and Ruby, and Java) default search paths. Thanx,