Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 May 2000 01:28:26 -0700 (PDT)
From:      Annelise Anderson <andrsn@andrsn.stanford.edu>
To:        Rahul Dhesi <dhesi@rahul.net>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: Why does PORTS SUCK so BADLY!?
Message-ID:  <Pine.BSF.4.10.10005010038500.12124-100000@andrsn.stanford.edu>
In-Reply-To: <20000501060813.82C1899F31@waltz.rahul.net>

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


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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.10005010038500.12124-100000>