# Upgrade FreeBSD on gateway server



## Dane (Feb 12, 2014)

Hello.

I have a main gateway server and FreeBSD 8.1-release on it. So, I've made changes in the GENERIC configuration to rebuild the kernel with gateway support. The question is: if I do `freebsd-upgrade -r 8.4-RELEASE upgrade` will it still work as gateway without a rebuild or will I need to `make world` manually?


----------



## SirDice (Feb 12, 2014)

Dane said:
			
		

> Hello.
> I've main gateway server and FreeBSD 8.1-release on it. So, I'd made changes in generic conf to rebuild kernel with support of gateway. The question is: if I'll make freebsd-upgrade -r 8.4-RELEASE upgrade will it still work as gateway without rebuild or I'll need to make world manually?


You have a custom kernel, freebsd-update(1) can only update a GENERIC kernel. What exactly did you change for "support of gateway"? No changes should be needed to allow it to route traffic.


----------



## Dane (Feb 13, 2014)

Thank you for your answer. About the change of kernel conf: when I rebuilt world I'd added some options like:


```
options  IPDIVERT
options  IPFIREWALL_FORWARD
options  DUMMYNET
```

What's wrong?


----------



## SirDice (Feb 13, 2014)

Nothing's wrong. You don't need a custom kernel for it, you can use the GENERIC kernel and just load these as modules. Setting firewall_enable="YES" in rc.conf even automatically loads them.


----------



## Dane (Feb 13, 2014)

SirDice said:
			
		

> Nothing's wrong. You don't need a custom kernel for it, you can use the GENERIC kernel and just load these as modules. Setting firewall_enable="YES" in rc.conf even automatically loads them.


Thanks a lot. Let's do it


----------



## fonz (Feb 16, 2014)

Oh, and for future reference (should your ever have a better reason for wanting to cook a custom kernel): it is recommended that you do not change GENERIC itself. Instead, make a copy of it and change that. In fact, to _add_ stuff you can even use the include directive. See section 9.4 of the Handbook.


----------



## wblock@ (Feb 16, 2014)

There are nodevice and nooptions keywords to disable things included with include, too: Simplifying FreeBSD Kernel Config Files.


----------



## Dane (Feb 17, 2014)

Ok. After upgrade I'd made `portmaster -af.` But it's aborted with:

```
===>>> Returning to update check of installed ports

===>>> Launching child to reinstall db41-4.1.25_4

===>>> All >> db41-4.1.25_4 (45/45)

===>>> Currently installed version: db41-4.1.25_4
===>>> Port directory: /usr/ports/databases/db41

        ===>>> This port is marked DEPRECATED
        ===>>> Please use databases/db5 or db6 for new installs.


        ===>>> If you are sure you can build it, remove the
               DEPRECATED line in the Makefile and try again.

===>>> Update for db41-4.1.25_4 failed
===>>> Aborting update

===>>> Killing background jobs
Terminated
===>>> Exiting
```

I'd added row in make.conf WITH_BDB_VER=5 (and make db5 port). But nothing changed (error still there). I don't want to comment DEPRECATED line in ports if it's not necessary. Any help?


----------



## SirDice (Feb 17, 2014)

Please read /usr/ports/UPDATING entry 20131216:

```
20131216:
  AFFECTS: users of databases/db4*
  AUTHOR: mandree@FreeBSD.org

  Berkeley DB versions before and excluding 4.8 have been marked deprecated.
  New port installations should be based on Berkeley DB 5 or 6.

  Note that Oracle Berkeley DB 6 is under the more restrictive Affero GPL v3
  license, be sure to review if using that fits your requirements.

  You can add WITH_BDB_VER=5 or WITH_BDB_VER=6 to /etc/make.conf to have all
  applications that get rebuilt use Oracle Berkeley DB 5 or 6, respectively.

  DO NOT FORCE DELETE older BerkeleyDB packages, that breaks the upgrade
  tools.  Instead, first rebuild the ports that depend on it, then
  remove the old Berkeley DB versions.

  Berkeley DB ports should be able to build/install with an older and a
  newer version version both installed if WITH_BDB_VER is set.  If a
  port then grabs the old Berkeley DB version, that is an issue with the
  port that requires Berkeley DB, and should be reported to the
  maintainer.

  If you are interested in upgrading now already, we have instructions
  at <https://wiki.freebsd.org/Ports/BerkeleyDBCleanup>.
```


----------



## Dane (Feb 17, 2014)

SirDice said:
			
		

> Please read /usr/ports/UPDATING entry 20131216:
> 
> ```
> 20131216:
> ...



Yes. I'd already added this line to make.conf. Will I must to reinstall all ports?


----------



## SirDice (Feb 17, 2014)

Find out what depends on db41 and rebuild that. 

`pkg info -r db41`

If there's nothing depending on db41 any more you can safely remove it.


----------

