portmaster, portupgrade, etc

Steve Kargl sgk at troutmask.apl.washington.edu
Wed Oct 4 23:28:21 UTC 2017


On Wed, Oct 04, 2017 at 05:29:14PM -0500, Mark Linimon wrote:
> Please understand that I'm not trying to be obstinate,
> I'm trying to understand.

Me too.

> Background: years ago I managed the cluster of i386 blades
> that we used in package building.  933MHz and 512MB IIRC.
> So I am familiar with constraint problems.

The system in question is my last i686 laptop, which I 
use for libm development and testing.  Once I cannot use
that laptop (whether hardware failure or inability to 
update the installed ports), I'll stop worrying about a
functional libm on 32-bit hardware.

> On Wed, Oct 04, 2017 at 02:22:25PM -0700, Steve Kargl wrote:
> > Can't find info on whether jails can be avoided.
> 
> I have not checked the code but IIRC, no.  I thought jails
> had low memory overhead, though.

That's good, but memory overhead isn't the problem with a
jail.  It's the diskspace used to duplicate everything
already available in /bin:/usr/bin:/usr/local/bin:... and
storage to hold the packages as things get built.

> > If you only have 1 Gb of memory and 5-10 GB diskspace,
> > then using poudriere with zfs and jails is a nonstarter.
> 
> For point of comparison, with those constraints, I do not
> understand how modern llvms can build at all.
> 
> What happens if you use the manual approach on this same
> system?  e.g.
> 
>   cd /usr/ports/devel/llvm40
>   mkdir -p /usr/ports/packages
>   make && make package
>   pkg install /usr/ports/packages/llvm<whatever>.txz

I normally do 

portmaster -Byd devel/llvm40

and wait a day for the build to complete.  I have 
/usr/ports/distfiles symlinked to a USB2 /mnt/distfiles
(40 MB/s max throughput).  I may also need to set
DISABLE_MAKE_JOBS="YES", but can't remember offhand.

> 
> Do you still run out of resources?
> 

No. I have 4 GB of swap space, which is well used during the
build.  The system is actually quite usable as portmaster
runs.  I also build libreoffice and octave on the system.

> In that case, there's not much that can be done.  The
> compilers, the office suites, and certain math packages
> are huge beasts.  However you try to build them won't
> matter.
> 
> I would think having a copy of the llvm workfiles in a jail
> is going to be equivalent to having them in /tmp?
> 
> I must be missing something.

portmaster satisfies its dependencies from already installed
ports in /usr/local.  There isn't a clean room full of pkg'd
dependencies sitting in some jail while llvm40 builds.

So, I think the issue comes down to "portmaster allows an
in-place update of installed ports" vs "poudriere builds
a repository of packages from which one can then do an
update"

-- 
Steve


More information about the freebsd-ports mailing list