From owner-freebsd-questions Mon May 1 1:30: 8 2000 Delivered-To: freebsd-questions@freebsd.org Received: from andrsn.stanford.edu (andrsn.Stanford.EDU [171.66.112.163]) by hub.freebsd.org (Postfix) with ESMTP id 8497F37B6BD for ; Mon, 1 May 2000 01:30:05 -0700 (PDT) (envelope-from andrsn@andrsn.stanford.edu) Received: from localhost (andrsn@localhost.stanford.edu [127.0.0.1]) by andrsn.stanford.edu (8.9.3/8.9.1) with ESMTP id BAA12450; Mon, 1 May 2000 01:28:26 -0700 (PDT) Date: Mon, 1 May 2000 01:28:26 -0700 (PDT) From: Annelise Anderson To: Rahul Dhesi Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Why does PORTS SUCK so BADLY!? In-Reply-To: <20000501060813.82C1899F31@waltz.rahul.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sun, 30 Apr 2000, Rahul Dhesi wrote: > I have encountered the following problems with ports: > > - "make package" in one more ports ignores value of 'PREFIX', and tries > to install or deinstall in the default directory tree. (I no longer > remember which one(s).) Why are you doing "make package" at all? > - Suppose a long "make" that invokes multiple package dependencies > aborts with an error for some reason. After this there is no way of > fixing the problem and restarting the make, without first doing a > complete "make clean" individually in each ports directory. I > encountered this while building one of the Apache ports. In general this is not true (I haven't built the more complicated Apache ports so I can't say this would never happen). Usually you can fix the problem (e.g., get as a package the dependency that failed to build) and go back to the original port and type "make install" again. Nothing that's been done will be redone. My experience is that ports handles this very well. > - Ports differences for US residents vs non-US residents are generally > not clearly documented. Edit /etc/make.conf, the line saying USA_RESIDENT=YES (or NO) and forget it. > - During a "make" or "make install", sometimes instructions are printed > to the screen that quickly scoll up and are lost. An attempted work-around > for this is to do something like "make >& make.log" or > "make install >& install.log". But if you do this, then some ports > will not build because they ask questions during the build process. For an port that's interactive (you can find out if it is by reading the Makefile before you run make install) you can either run "script" before you start the process to capture everything (and an extra "exit" at the end to stop script), or use tee. Like this perhaps: make install | tee -i install.log I almost always make log files when I build something, and I don't consider it a "work around"--I think it's basic good practice. > - When a directory within the /usr/ports tree has been replaced with a > symlink, and if the destination of the symlink contains a colon in its > name, some builds fail. Probably it's because some commands (not sure > which) interpret a colon in a filename to mean that the file lies on a > remote machine. Fix: Avoid using colons in filenames and directory > names. I really wonder why you're messing around with symlinks, moving pieces of something where relative paths are important. The whole thing is less than 80 megs, and less than that if you delete categories (e.g., foreign languages) that you're not interested in. Moving the whole thing and defining PORTSDIR works well, however. Annelise To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message