Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 May 2022 09:01:25 +0300
From:      Gleb Popov <arrowd@freebsd.org>
To:        unp@ziemba.us
Cc:        FreeBSD ports list <freebsd-ports@freebsd.org>
Subject:   Re: avoiding "install" for dependencies with PORTS_MODULES
Message-ID:  <CALH631mUfy9N_BLxEk0wz0GhYVSF1ccdNn8ruL=kkWhd=UEoxQ@mail.gmail.com>
In-Reply-To: <t4rktu$il5$1@usenet.ziemba.us>
References:  <t4rktu$il5$1@usenet.ziemba.us>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000bfab9a05de295cc8
Content-Type: text/plain; charset="UTF-8"

On Tue, May 3, 2022 at 11:59 PM G. Paul Ziemba <pz-freebsd-ports@ziemba.us>
wrote:

> An unfortunate property of building ports locally (as opposed to
> via poudriere) is that dependencies are often installed to the host
> file system during the build even when I am not doing "make install"
> to the target port.
>
> I normally sidestep this issue by using poudriere. However, I am trying
> to use PORTS_MODULES in conjunction with my kernel upgrade process to
> generate ports-based kernel modules matching the new kernel, to avoid the
> "disable kmods/reboot/build ports/reenable kmods" dance.
>
> It seems "make buildkernel" uses tool binaries from a prior "make
> buildworld".
>
> Is it possible to, in a like manner, cause the ports built via
> PORTS_MODULES
> to install and use their dependencies in this same "world" staging tree
> (or in some alternate place) instead of directly in the host's file system?
>
> --
> G. Paul Ziemba
> FreeBSD unix:
>  9:21AM  up 130 days, 17:23, 15 users, load averages: 0.33, 0.35, 0.35
>

This is exactly the situation in which Poudriere helps. You can create a
Poudriere jail out of /usr/src and /usr/obj and then build all the needed
ports in the isolated environment. Once you finish, upgrade the host with
installkernel & installworld and just do pkg upgrade -r
local_poudriere_repo.

--000000000000bfab9a05de295cc8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Tue, May 3, 2022 at 11:59 PM G. Pa=
ul Ziemba &lt;<a href=3D"mailto:pz-freebsd-ports@ziemba.us">pz-freebsd-port=
s@ziemba.us</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">An unfortunate property of building ports locally (as opposed to=
<br>
via poudriere) is that dependencies are often installed to the host<br>
file system during the build even when I am not doing &quot;make install&qu=
ot;<br>
to the target port.<br>
<br>
I normally sidestep this issue by using poudriere. However, I am trying<br>
to use PORTS_MODULES in conjunction with my kernel upgrade process to<br>
generate ports-based kernel modules matching the new kernel, to avoid the<b=
r>
&quot;disable kmods/reboot/build ports/reenable kmods&quot; dance.<br>
<br>
It seems &quot;make buildkernel&quot; uses tool binaries from a prior &quot=
;make buildworld&quot;.<br>
<br>
Is it possible to, in a like manner, cause the ports built via PORTS_MODULE=
S<br>
to install and use their dependencies in this same &quot;world&quot; stagin=
g tree<br>
(or in some alternate place) instead of directly in the host&#39;s file sys=
tem?<br>
<br>
-- <br>
G. Paul Ziemba<br>
FreeBSD unix:<br>
=C2=A09:21AM=C2=A0 up 130 days, 17:23, 15 users, load averages: 0.33, 0.35,=
 0.35<br></blockquote><div><br></div><div>This is exactly the situation in =
which Poudriere helps. You can create a Poudriere jail out of /usr/src and =
/usr/obj and then build all the needed ports in the isolated environment. O=
nce you finish, upgrade the host with installkernel &amp; installworld and =
just do pkg upgrade -r local_poudriere_repo.</div><div><br></div></div></di=
v>

--000000000000bfab9a05de295cc8--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALH631mUfy9N_BLxEk0wz0GhYVSF1ccdNn8ruL=kkWhd=UEoxQ>