portmaster-with-package-support release candidate available for testing / pkg_add: illegal option -- -

Miroslav Lachman 000.fbsd at quip.cz
Sun Dec 20 17:28:55 UTC 2009


Doug Barton wrote:
> Miroslav Lachman wrote:
>> I don't know if it is well known / documented somewhere in portmaster,
>> but after debugging, I realized that pkg_add on FreeBSD 6.3 has no long
>> options
>
> This is why all of the ports tools should be in the ports tree. :)
>
> I just added the fix to the svn version of portmaster, if you can
> confirm that it works I'll add it to the port immediately. I was not
> aware of this issue, and apparently you're the first person to test
> package support on a release this old. Thank you, both for the testing
> and the bug report.

It is not working - pkg_add on 6.3 has no option for "Install the 
package without fetching and installing dependencies". I mean, there is 
no long nor short option for this, so this portmaster's functionality 
cannot be easily ported to 6.3. That's why I suggest to disable packages 
support on FreeBSD =< 6.3 as it cannot work this way. pkg_add will 
always install dependencies on this old version.

6.3 pkg_add options
usage: pkg_add [-vInrfRMSK]
7.2 pkg_add options
usage: pkg_add [-viInfFrRMSK]

According to man pkg_add on 6.4, there are needed options
http://www.freebsd.org/cgi/man.cgi?query=pkg_add&apropos=0&sektion=0&manpath=FreeBSD+6.4-RELEASE&format=html

But not on 6.3
http://www.freebsd.org/cgi/man.cgi?query=pkg_add&apropos=0&sektion=0&manpath=FreeBSD+6.3-RELEASE&format=html

I think you don't need to spend a lot of time to solve this for 6.3 as 
it's Estimated EoL is January 31, 2010 ;)

Maybe something like this can be enough:

if [ ! `uname -r | egrep -q "^(5|6\.[0-3])"` ]; then
	echo "Packages options are not supported on your OS version"
	exit
fi

>> And one question - is it really mandatory to use
>> --local-packagedir=/usr/ports/packages if I want to install locally
>> available packages from standard path /usr/local/packages/All?
>
> Yes.
>
>> Shouldn't it be default behavior?
>
> IMO, no. I think that the vast majority of FreeBSD users just want to
> be able to fetch packages and have them installed.
>
>> Without --local-packagedir portmaster is trying to fetch it from FTP:
>> "Package and/or archive not found at:
>> http://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.3-release/lang/"
>> and doesn't look at the local directory:
>> "There is no valid package to install, building port instead"
>
> This is the desired behavior.

OK, I can live with it. :) I was asking it because somebody can use NFS 
mounted /usr/ports from build machine and then all packages are located 
in /usr/local/packages/All and packages should be installed from this 
location only (not fetched from FreeBSD FTP).

Is there a simple way to disable fetching packages from remote site and 
use local packages only? (something better than fake PACKAGEROOT?)

Anyway, thank you for packages support in portmaster! Now I am waiting 
for "more general scripting hooks such as BEFOREDEINSTALL and 
AFTERINSTALL" and then portmaster will have all features I need! :o)

Miroslav Lachman


More information about the freebsd-ports mailing list