Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Oct 2025 14:37:23 +0100
From:      Thomas Schweikle <tschweikle@gmail.com>
To:        =?UTF-8?Q?Dag=2DErling_Sm=C3=B8rgrav?= <des@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: "etcupdate extract" -- Failed to build new tree.
Message-ID:  <CA%2BrGx5dZgdMkW7zWsrbwLast8t_BhBZt6CF75H8VjW_Lez7cYA@mail.gmail.com>
In-Reply-To: <86jz0fyzjj.fsf@ltc.des.dev>
References:  <CA%2BrGx5ekwmBNUJKoCOk1c-ts_Q_VXuRoQ4Krkuqey_c-KZbaXQ@mail.gmail.com> <86qzuo1ab1.fsf@ltc.des.dev> <CA%2BrGx5cF%2B-QTh95Jw1hs59Dsyk7TSAn%2BYBfWw_suNY98Q7i56w@mail.gmail.com> <868qgw14xj.fsf@ltc.des.dev> <CA%2BrGx5d3ZOXZM6yw4eyO-CbhjiCGu%2BZz1COmLiRDOOQEiOa1Qg@mail.gmail.com> <864irj1ett.fsf@ltc.des.dev> <CA%2BrGx5eKUx2KzfN=81pKrTkC6-3yhKiBn_2xgLqC5oADBuddSg@mail.gmail.com> <86jz0fyzjj.fsf@ltc.des.dev>

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

[-- Attachment #1 --]
On Tue, Oct 28, 2025 at 1:35 PM Dag-Erling Smørgrav <des@freebsd.org> wrote:

> Thomas Schweikle <tschweikle@gmail.com> writes:
> > Dag-Erling Smørgrav <des@freebsd.org> writes:
> > > Thomas Schweikle <tschweikle@gmail.com> writes:
> > > > Dag-Erling Smørgrav <des@freebsd.org> writes:
> > > > > How was this system installed?
> > > > By compiling 15-STABLE from latest available 14.3 getting sources
> via
> > > How did you install 14.3?
> > Same way. It was Upgraded from 13-STABLE. And this was upgraded from
> > 12-STABLE. If I remember it right, the system installed from
> > disquettes was 5.0-RELEASE some way back in time ...
>
> Do you understand the difference between the words “install” and
> “upgrade”?
>
> What did you use prior to etcupdate?  When was /etc last updated?


The last time mergemaster was available. Later on it was done manually,
since etcupdate did not work.

My findings: etcupdate just does not work, because right after cloning etc
is not in a working state. It is, after running

make _legacy

in "/usr/src". Then it runs

etcupdate extract
etcupdate diff

without this "Failed to build new tree.", but it then fails run

etcupdate -p

right after building world, kernel and installkernel, exhausting: "No
previous tree to compare against, a sane comparison is not possible." just
because there is no tree to compare against, or better: "etcupdate extract"
created an empty tree without any files within.It is just "make _legacy"
creates all the folders, etcupdate expects, but not the files. It seems all
those advices given within the handbook or at various places within the
internet all give it the wrong way:

clone
ettupdate extract
etcupdate diff
make buildworld
make buildkernel
make installkernel
etcupdate -p
reboot
make installworld
etcupdate -B
reboot

But

clone
make buildworld
make buildkernel
etcupdate extract
etcupdate diff
make installkernel
etcupdate -p
make installworld
etcupdate -B
reboot

because you will never have a working etc before building world and kernel.
And in tune you'd never will have anything you could extract. You are
assuming something to extract, but there isn't anything before building.
mergemaster did get this right (comparing the fresh build /usr/src etc
against /etc). etcupdate does not -- at least if it is used the way the
handbook advises. It would only work this way, if you did not clone the
working tree right fresh into an empty directory (or after "git reset hard"
-- removing anything from /usr/src what was created after the last "git
pull" simulating "git clone" as far as possible).

-- 
Thomas

[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Oct 28, 2025 at 1:35 PM Dag-Erling Smørgrav &lt;<a href="mailto:des@freebsd.org">des@freebsd.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thomas Schweikle &lt;<a href="mailto:tschweikle@gmail.com" target="_blank">tschweikle@gmail.com</a>&gt; writes:<br>
&gt; Dag-Erling Smørgrav &lt;<a href="mailto:des@freebsd.org" target="_blank">des@freebsd.org</a>&gt; writes:<br>
&gt; &gt; Thomas Schweikle &lt;<a href="mailto:tschweikle@gmail.com" target="_blank">tschweikle@gmail.com</a>&gt; writes:<br>
&gt; &gt; &gt; Dag-Erling Smørgrav &lt;<a href="mailto:des@freebsd.org" target="_blank">des@freebsd.org</a>&gt; writes:<br>
&gt; &gt; &gt; &gt; How was this system installed?<br>
&gt; &gt; &gt; By compiling 15-STABLE from latest available 14.3 getting sources via   <br>
&gt; &gt; How did you install 14.3?<br>
&gt; Same way. It was Upgraded from 13-STABLE. And this was upgraded from<br>
&gt; 12-STABLE. If I remember it right, the system installed from<br>
&gt; disquettes was 5.0-RELEASE some way back in time ...<br>
<br>
Do you understand the difference between the words “install” and<br>
“upgrade”?<br>
<br>
What did you use prior to etcupdate?  When was /etc last updated?</blockquote><div> </div><div>The last time mergemaster was available. Later on it was done manually, since etcupdate did not work.</div><div><br></div><div>My findings: etcupdate just does not work, because right after cloning etc is not in a working state. It is, after running</div><div><br></div><div>make _legacy</div><div><br></div><div>in &quot;/usr/src&quot;. Then it runs</div><div><br></div><div>etcupdate extract</div><div>etcupdate diff</div><div><br></div><div>without this &quot;Failed to build new tree.&quot;, but it then fails run</div><div><br></div><div>etcupdate -p</div><div><br></div><div>right after building world, kernel and installkernel, exhausting: &quot;<span class="gmail-im">No previous tree to compare against, a sane comparison is not possible.&quot; just because there is no tree to compare against, or better: &quot;etcupdate extract&quot; created an empty tree without any files within.It is just &quot;make _legacy&quot; creates all the folders, etcupdate expects, but not the files. It seems all those advices given within the handbook or at various places within the internet all give it the wrong way:</span></div><div><span class="gmail-im"><br></span></div><div>clone</div><div>ettupdate extract</div><div>etcupdate diff</div><div>make buildworld</div><div>make buildkernel</div><div>make installkernel</div><div>etcupdate -p</div><div>reboot</div><div>make installworld</div><div>etcupdate -B</div><div>reboot</div><div><br></div><div>But</div><div><br></div><div>clone</div><div>make buildworld</div><div>make buildkernel</div><div>etcupdate extract</div><div>etcupdate diff</div><div>make installkernel</div><div>etcupdate -p</div><div>make installworld</div><div>etcupdate -B</div><div>reboot</div><div><br></div><div>because you will never have a working etc before building world and kernel. And in tune you&#39;d never will have anything you could extract. You are assuming something to extract, but there isn&#39;t anything before building. mergemaster did get this right (comparing the fresh build /usr/src etc against /etc). etcupdate does not -- at least if it is used the way the handbook advises. It would only work this way, if you did not clone the working tree right fresh into an empty directory (or after &quot;git reset hard&quot; -- removing anything from /usr/src what was created after the last &quot;git pull&quot; simulating &quot;git clone&quot; as far as possible).</div><div><br></div></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr">Thomas</div></div></div>
home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BrGx5dZgdMkW7zWsrbwLast8t_BhBZt6CF75H8VjW_Lez7cYA>