# Merge-problem Freebsd 12.1->12.2 Upgrade



## p4thfinder (Nov 26, 2020)

Hello,

I´ve a big Problem with the Upgrade form Freebsd 12.1 to 12.2.

First, i´ve a own Build-Server/Update-Server an compile the 12.2-Release and uploaded to my own Webserver

Now I want to Upgrade my client, but every time I run #freebsd-update upgrade -r 12.2-RELEASE (my clients are 12.1p10) the System wants to merge my /etc/passwd , groups, master.passwd, freebsd-update.conf and some more file (the upgrade starts normally). But instead to merge the files, the Upgrade replace this with the files under /var/db/freebsd-update/merge/new/.
In the directoy /var/db/freebsd-update/merge I can see my old files and the new files. I think, my system can´t merge correctly, but I´ve no idea why.

Is there anyone how has the same problem or have a solution for that issue?


----------



## SirDice (Nov 26, 2020)

I have upgraded dozens of servers to 12.2 now and I haven't had an issue with the merges. You do need to pay close attention when freebsd-update(8) asks how to handle them. 



p4thfinder said:


> In the directoy /var/db/freebsd-update/merge I can see my old files and the new files.


Take a look at both, compare them with diff(1) for example. Besides the obvious (your user account, root's password, things like that) what else is different?


----------



## p4thfinder (Nov 26, 2020)

That is the issue. The old file ind /var/freebsd-update/merge/old/etc/passwd is the sameone as the passwd in /etc/passwd. But the new one in ../merge/new/etc/passwd is wrong. There are only the standard-user off freebsd. This issue is in all other files. The other files are (full ist from tomerge):

```
/etc/crontab
/etc/freebsd-update.conf
/etc/group
/etc/master.passwd
/etc/motd
/etc/nsswitch.conf
/etc/ntp.conf
/etc/pam.d/sshd
/etc/pam.d/system
/etc/passwd
/etc/pkg/FreeBSD.conf
/etc/pwd.db
/etc/services
/etc/spwd.db
/etc/ssh/sshd_config
/etc/sysctl.conf
/etc/syslog.conf
```

Here is the output (summary), when i run the Upgrade:


```
-www:*:80:user
+www:*:80:
ntpd:*:123:
_ypldap:*:160:
hast:*:845:
+tests:*:977:
nogroup:*:65533:
nobody:*:65534:
-user:*:1009:
-bacula:*:910:
-nslcd:*:928:
-users:*:10001:user1,user2,user3,user4,user5,user6,user7
-pgsql:*:70:
-_tss:*:601:
-zabbix:*:122:
-postgres:*:770:
-user10:*:10023:
```


----------



## ralphbsz (Nov 26, 2020)

When update runs and does a merge, it eventually puts you into an editor to hand-check the merge. Could it be that your root setup is such that editing is impossible? What if $EDITOR points at a non-existing program or some problem like that?

I did the 12.2 update a few weeks ago (directly from 11.3), and had to merge a half dozen files (including passwd), and there was no problem, it was just boring and tedious.


----------



## p4thfinder (Dec 1, 2020)

No, I've no chance no edit the mergefiles during the update process. But I think, I have a solution for that issue. First I delete the content from /var/db/freebsdupdate/
and compile with my updateserver the Release  12.1p10 again. After finishing the build-process and upload to a webserver, I start freebsd-update upgrade -r 12.2-RELEASE but I get no merge-infos, however...Also, there are no files like "tomerge" and "tomerge-paths" in /var/db/freebsd-update/. But it works after reboot, all looks fine. I think my during the upgrade process, the client merge the different between 12.1 and 12.2 an my 12.1-Release was damaged. 

Thanks to the guys who try to help me!! Maybe Someone has an idea what how that issue could happened.


----------



## SirDice (Dec 1, 2020)

p4thfinder said:


> and compile with my updateserver the Release 12.1p10 again. After finishing the build-process and upload to a webserver


Just to be clear here, you are building your own updates? Because that's a rather important detail. What's the reason you're not using the official update.freebsd.org?









						Build Your Own FreeBSD Update Server
					

Building your own freebsd-update server allows a system administrator to perform fast updates for a number of machines from a local mirror




					www.freebsd.org
				






p4thfinder said:


> Also, there are no files like "tomerge" and "tomerge-paths" in /var/db/freebsd-update/. But it works after reboot, all looks fine. I think my during the upgrade process, the client merge the different between 12.1 and 12.2 an my 12.1-Release was damaged.


I suspect you have made some mistakes while building your own updates.


----------



## p4thfinder (Dec 1, 2020)

SirDice said:


> Just to be clear here, you are building your own updates? Because that's a rather important detail. What's the reason you're not using the official update.freebsd.org?


Yes i do, because i have many freebsd-server who has no connection to the internet (check the top-comment). Normaly it's a easy way to get freebsd updates/upgrades in my offline-network.


SirDice said:


> I suspect you have made some mistakes while building your own updates.


Yes, i think too. But i don't no the reason for that issue. If i found somethink, i would write it here


----------



## SirDice (Dec 1, 2020)

p4thfinder said:


> Yes i do, because i have many freebsd-server who has no connection to the internet (check the top-comment).


It's quite easy to set up a caching proxy for this. That might be a better/easier solution. 


p4thfinder said:


> But i don't no the reason for that issue.


I honestly have zero experience building my own update server. Everything I use is connected and it's quite easy to proxy (and cache) the updates. Caching is definitely recommended if you have to update/upgrade several machines. Only the first machine will download the updates from the FreeBSD servers, all consecutive machines get them from the local cache, which is a lot faster to download.


----------



## p4thfinder (Dec 7, 2020)

SirDice said:


> That might be a better/easier solution.


No, not for my situation. My freebsd-server are running in a closed network. So i need the updates/upgrades on a external hdd, to bring it in my "special" networks. Or do you think, ther is a easy way to put the caching files on a external hdd, so i can copy it in my closed networks?



SirDice said:


> I honestly have zero experience building my own update server. Everything I use is connected and it's quite easy to proxy (and cache) the updates. Caching is definitely recommended if you have to update/upgrade several machines. Only the first machine will download the updates from the FreeBSD servers, all consecutive machines get them from the local cache, which is a lot faster to download.


yeah, thats sounds much easier


----------

