RJeGUhtnHpdLBi4BVSXCfeSHXAXhA1vLJgw1k4w38ncVlJtfU XdAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761658655; x=1762263455; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QG0EJfxU4q8SfRDJUPQB0pQeYQYgnXLVvo9INS12dUg=; b=pTz3i8FsiGx7EkFiBcLQL/sWrqFrThobHbKkGDFcu+aKpFDspXLQqqcdViCfvBIHps 6WobB1y8fBBN/Si8xbMdOnR8KZ1wAPBiXul0YwwXQn0isr7cImp8pWpuwBE0K3c/jXAa Z8kxsQoQ5emX/CqL0f8GsQhkrHBUJSXJGU6Vn7mYinD0ZR/fBn7GWFlSVTHTyrqTo9KD N7AF7iU0ntu4+KlUmDbqVEKVWnOHw7af1iA0bq0VF9DG3hgyV8RKjz3inM/RPNG33/Kc eMShdgYaPJuyEm2sC3qhLwFot6jXBcQoLpzOEbJgjrjKEJct3c9s8bCrYkv7RA/2aQZG eOuA== X-Gm-Message-State: AOJu0YzxFgNSIB0R/YGqi97eZY9MmpTRX3hu5X4M36ZLbfJUdwXZ1zxH o5UsZxEE6emvP/MsFG4pF7a6UMD6yPDgu/OP2y4m8a9JtVILMf2YQ/KK3Nz6Z2VNmi6bgbiPr0+ Eqzr0I0kC/oPIqLdc+zwBHgfXGeAD36vw2Tnb X-Gm-Gg: ASbGnctjvHO2PLpFqHY1Bdx77l3YhkqFIRZgZFFYdygu6j+7nNEjTZPRx6ymtCu4DV7 MyhLVP4pZk1tlagmVnFpOrIj5cXcbDBfvQnGWS22ADkR5ejhgle/gOK6p5eDuue9h2bXmjXImcd udb3xra5aH9dhxZ5heMaudnnPf1BfQRwB0mK8EsU3KHRfmZVfeDeyTCj+seUBnJ+LLt7OOqlG6n 0R0+FO076DBDJLUbSKR8RBAIqa2OhTJa+aKco/j9W2P/oG1y7Fuab43QWjYyZLk+KP2MHUAFGbN aPQCpXgHJmnxhFNriT7SpYQToAAUaZJo5YXlc+zSUm5J X-Google-Smtp-Source: AGHT+IHeVVR/f5Ml3x2yXLtecsUupHyySnolhwdseg2/L8fwzMrs7DY4+1lufKFVR3z8OR0XM7sZf7mt+G/jOQf9OOM= X-Received: by 2002:a05:622a:511:b0:4ec:ef85:cfb2 with SMTP id d75a77b69052e-4ed0763f891mr44393381cf.78.1761658654898; Tue, 28 Oct 2025 06:37:34 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 References: <86qzuo1ab1.fsf@ltc.des.dev> <868qgw14xj.fsf@ltc.des.dev> <864irj1ett.fsf@ltc.des.dev> <86jz0fyzjj.fsf@ltc.des.dev> In-Reply-To: <86jz0fyzjj.fsf@ltc.des.dev> From: Thomas Schweikle Date: Tue, 28 Oct 2025 14:37:23 +0100 X-Gm-Features: AWmQ_bmnlQUh4lBBqxMiR4ZGtLzOWB65SizaWdaIsLYqrqA1zTP8MYcDxM66Ats Message-ID: Subject: Re: "etcupdate extract" -- Failed to build new tree. To: =?UTF-8?Q?Dag=2DErling_Sm=C3=B8rgrav?= Cc: freebsd-current@freebsd.org Content-Type: multipart/alternative; boundary="000000000000573f880642381e75" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4cwrz53l5Pz3m3f --000000000000573f880642381e75 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Oct 28, 2025 at 1:35=E2=80=AFPM Dag-Erling Sm=C3=B8rgrav wrote: > Thomas Schweikle writes: > > Dag-Erling Sm=C3=B8rgrav writes: > > > Thomas Schweikle writes: > > > > Dag-Erling Sm=C3=B8rgrav 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 =E2=80=9Cinstall=E2=80= =9D and > =E2=80=9Cupgrade=E2=80=9D? > > 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). --=20 Thomas --000000000000573f880642381e75 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Tue, Oct 28,= 2025 at 1:35=E2=80=AFPM Dag-Erling Sm=C3=B8rgrav <des@freebsd.org> wrote:
Thomas Schweikle <tschweikle@gmail.com> writes:
> Dag-Erling Sm=C3=B8rgrav <des@freebsd.org> writes:
> > Thomas Schweikle <tschweikle@gmail.com> writes:
> > > Dag-Erling Sm=C3=B8rgrav <des@freebsd.org> writes:
> > > > How was this system installed?
> > > By compiling 15-STABLE from latest available 14.3 getting so= urces via=C2=A0 =C2=A0
> > 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 =E2=80=9Cinstall=E2=80= =9D and
=E2=80=9Cupgrade=E2=80=9D?

What did you use prior to etcupdate?=C2=A0 When was /etc last updated?
=C2=A0
The last time mergemaster was available. Late= r on it was done manually, since etcupdate did not work.

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

=
make _legacy

in "/usr/src". Then it= runs

etcupdate extract
etcupdate=C2=A0d= iff

without this "Failed to build new tree.&q= uot;, but it then fails run

etcupdate -p

right after building world, kernel and installkernel, exhau= sting: "No previous tree to compare against, = a sane comparison is not possible." just because there is no tree to c= ompare against, or better: "etcupdate extract" created an empty t= ree without any files within.It is just "make _legacy" creates al= l the folders, etcupdate expects, but not the files. It seems all those adv= ices given within the handbook or at various places within the internet all= give it the wrong=C2=A0way:

=
clone
ettupdate extract
etcupdate dif= f
make buildworld
make buildkernel
make insta= llkernel
etcupdate -p
reboot
make installworl= d
etcupdate -B
reboot

But

clone
make buildworld
make buildke= rnel
etcupdate extract
etcupdate diff
make in= stallkernel
etcupdate -p
make installworld
et= cupdate -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 anythin= g from /usr/src what was created after the last "git pull" simula= ting "git clone" as far as possible).

<= span class=3D"gmail_signature_prefix">--
Thomas
--000000000000573f880642381e75--