Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Dec 2009 10:04:29 -0500
From:      Lowell Gilbert <freebsd-questions-local@be-well.ilk.org>
To:        yuri@rawbw.com
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Why there are so many binary packages missing?
Message-ID:  <44pr6xpgci.fsf@be-well.ilk.org>
In-Reply-To: <4B158554.9090301@rawbw.com> (yuri@rawbw.com's message of "Tue, 01 Dec 2009 13:06:28 -0800")
References:  <4B1572D7.60700@rawbw.com> <4B157F7E.8050601@infracaninophile.co.uk> <4B158554.9090301@rawbw.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Yuri <yuri@rawbw.com> writes:

> Matthew Seaman wrote:
>> Yuri wrote:
>>> I am seeing this for a long time. If I use 'portupgrade -aPP'
>>> (packages only) there is a very large percentage of packages
>>> missing.
>>> Upgrading becomes many times faster when binary packages available
>>> are available.
>>
>> Missing binary packages are due in the main to three reasons:
>>
>>   * Restrictive licensing terms
>>
>>   * Ports that through bugs, or otherwise, fail to successfully generate
>>     a binary package.  Some ports (eg. sysutils/screen up until about 2
>>     months ago
>> (http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/screen/Makefile.diff?r1=1.77;r2=1.78)) 
>>
>>     just won't package successfully, even if they build, install and run
>>     perfectly well.
>>
>>   * The port has a dependency on another port that failed for reason
>> (2).      Because the ports build cluster installs the dependencies
>> of the port it
>>     is currently trying to build from binary packages, any lower
>> level port
>>     that fails will prevent packages being built for anything that
>> depends on
>>     it.
>>
>
> Thank you for this information.
>
> Let's put aside #1. There are probably very few of those.

Several hundred... 

> It still seems strange: on my system all of the ports that I need
> build ok. Why would the port build successfully, but would fail to
> generate a binary package? Isn't packaging just gzipping resulting
> binaries with some minor additions?

Pretty much.  There are some ports, like the example given, which can be
packaged, but won't necessarily work properly when the package is
installed on a different system.  Ports that depend on system source
code (such as kernel modules) are a particularly notable other example.

> Also why wouldn't the cluster build and install a port, once the
> package fails? This way the #3 item is eliminated completely. Since it
> looks like there is much more likely to build a port then a binary
> package.

You can do that; in fact, my home build server does exactly that, using
portupgrade.  But it's hard to be completely sure that the resulting
package isn't legally encumbered by the port it depends on, so I don't
make my built packages available to the public.

However: the biggest reason people find packages missing is that they're
working with the latest ports tree, and the ports cluster hasn't rebuilt
the port since it was last updated.  pointyhat.freebsd.org is the place
to go to find out what's available.  In particular, see 
http://pointyhat.freebsd.org/errorlogs/packagestats.html

Good luck.
-- 
Lowell Gilbert, embedded/networking software engineer, Boston area
		http://be-well.ilk.org/~lowell/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44pr6xpgci.fsf>