1 |
Updating Information for FreeBSD STABLE users |
2 |
|
3 |
This file is maintained and copyrighted by M. Warner Losh |
4 |
<imp@village.org>. See end of file for further details. For commonly |
5 |
done items, please see the COMMON ITEMS: section later in the file. |
6 |
|
7 |
Items affecting the ports and packages system can be found in |
8 |
/usr/ports/UPDATING. Please read that file before running |
9 |
portupgrade. |
10 |
|
11 |
20060211: |
12 |
An IPv6 support of ipfw was enabled by default. If you don't |
13 |
want to filter an IPv6 by ipfw, please add following line into |
14 |
your ipfw rule: |
15 |
|
16 |
pass ip6 from any to any |
17 |
|
18 |
20060210: |
19 |
Now most modules get their build-time options from the kernel |
20 |
configuration file. A few modules still have fixed options |
21 |
due to their non-conformant implementation, but they will be |
22 |
corrected eventually. You may need to review the options of |
23 |
the modules in use, explicitly specify the non-default options |
24 |
in the kernel configuration file, and rebuild the kernel and |
25 |
modules afterwards. |
26 |
|
27 |
20060122: |
28 |
/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. |
29 |
Its /etc/rc.conf.d configuration file has been `ppp' from |
30 |
the beginning, and hence there is no need to touch it. |
31 |
|
32 |
20060113: |
33 |
si(4)'s device files now contain the unit number. |
34 |
Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. |
35 |
|
36 |
20051230: |
37 |
A lot of fixes and new features in the soundsystem. To get all |
38 |
benefits, you may want to recompile mplayer (if installed) after |
39 |
booting the new world. |
40 |
|
41 |
20051222: |
42 |
Bug fixes to the trimdomain(3) function in libutil may result in |
43 |
slight changes to the host names appearing in log files under |
44 |
relatively rare circumstances. |
45 |
|
46 |
20051220: |
47 |
Scripts in the local_startup directories (as defined in |
48 |
/etc/defaults/rc.conf) that have the new rc.d semantics will |
49 |
now be run as part of the base system rcorder. If there are |
50 |
errors or problems with one of these local scripts, it could |
51 |
cause boot problems. If you encounter such problems, boot in |
52 |
single user mode, remove that script from the */rc.d directory. |
53 |
Please report the problem to the port's maintainer, and the |
54 |
freebsd-ports@freebsd.org mailing list. |
55 |
|
56 |
20051215: |
57 |
The setkey(8) utility was moved from /usr/sbin/setkey to /sbin/setkey. |
58 |
You may want to update scripts which depend on its location. |
59 |
|
60 |
20051108: |
61 |
rp(4)'s device files now contain the unit number. |
62 |
Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. |
63 |
|
64 |
20051101: |
65 |
FreeBSD 6.0-RELEASE |
66 |
|
67 |
20051001: |
68 |
kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) |
69 |
to turn polling(4) on your interfaces. |
70 |
|
71 |
20050722: |
72 |
The ai_addrlen of a struct addrinfo was changed to a socklen_t |
73 |
to conform to POSIX-2001. This change broke an ABI |
74 |
compatibility on 64 bit architecture. You have to recompile |
75 |
userland programs that use getaddrinfo(3) on 64 bit |
76 |
architecture. |
77 |
|
78 |
20050711: |
79 |
RELENG_6 branched here. |
80 |
|
81 |
20050629: |
82 |
The pccard_ifconfig rc.conf variable has been removed and a new |
83 |
variable, ifconfig_DEFAULT has been introduced. Unlike |
84 |
pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that |
85 |
do not have ifconfig_ifn entries rather than just those in |
86 |
removable_interfaces. |
87 |
|
88 |
20050616: |
89 |
Some previous versions of PAM have permitted the use of |
90 |
non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring |
91 |
to third party PAM modules in /usr/local/lib. A change has been |
92 |
made to require the use of absolute paths in order to avoid |
93 |
ambiguity and dependence on library path configuration, which may |
94 |
affect existing configurations. |
95 |
|
96 |
20050610: |
97 |
Major changes to network interface API. All drivers must be |
98 |
recompiled. Drivers not in the base system will need to be |
99 |
updated to the new APIs. |
100 |
|
101 |
20050609: |
102 |
Changes were made to kinfo_proc in sys/user.h. Please recompile |
103 |
userland, or commands like `fstat', `pkill', `ps', `top' and `w' |
104 |
will not behave correctly. |
105 |
|
106 |
The API and ABI for hwpmc(4) have changed with the addition |
107 |
of sampling support. Please recompile lib/libpmc(3) and |
108 |
usr.sbin/{pmcstat,pmccontrol}. |
109 |
|
110 |
20050606: |
111 |
The OpenBSD dhclient was imported in place of the ISC dhclient |
112 |
and the network interface configuration scripts were updated |
113 |
accordingly. If you use DHCP to configure your interfaces, you |
114 |
must now run devd. Also, DNS updating was lost so you will need |
115 |
to find a workaround if you use this feature. |
116 |
|
117 |
20050605: |
118 |
if_bridge was added to the tree. This has changed struct ifnet. |
119 |
Please recompile userland and all network related modules. |
120 |
|
121 |
20050603: |
122 |
The n_net of a struct netent was changed to an uint32_t, and |
123 |
1st argument of getnetbyaddr() was changed to an uint32_t, to |
124 |
conform to POSIX-2001. These changes broke an ABI |
125 |
compatibility on 64 bit architecture. With these changes, |
126 |
shlib major of libpcap was bumped. You have to recompile |
127 |
userland programs that use getnetbyaddr(3), getnetbyname(3), |
128 |
getnetent(3) and/or libpcap on 64 bit architecture. |
129 |
|
130 |
20050528: |
131 |
Kernel parsing of extra options on '#!' first lines of shell |
132 |
scripts has changed. Lines with multiple options likely will |
133 |
fail after this date. For full details, please see |
134 |
http://people.freebsd.org/~gad/Updating-20050528.txt |
135 |
|
136 |
20050503: |
137 |
The packet filter (pf) code has been updated to OpenBSD 3.7 |
138 |
Please note the changed anchor syntax and the fact that |
139 |
authpf(8) now needs a mounted fdescfs(5) to function. |
140 |
|
141 |
20050415: |
142 |
The NO_MIXED_MODE kernel option has been removed from the i386 |
143 |
amd64 platforms as its use has been superceded by the new local |
144 |
APIC timer code. Any kernel config files containing this option |
145 |
should be updated. |
146 |
|
147 |
20050227: |
148 |
The on-disk format of LC_CTYPE files was changed to be machine |
149 |
independent. Please make sure NOT to use NO_CLEAN buildworld |
150 |
when crossing this point. Crossing this point also requires |
151 |
recompile or reinstall of all locale depended packages. |
152 |
|
153 |
20050225: |
154 |
The ifi_epoch member of struct if_data has been changed to |
155 |
contain the uptime at which the interface was created or the |
156 |
statistics zeroed rather then the wall clock time because |
157 |
wallclock time may go backwards. This should have no impact |
158 |
unless an snmp implementation is using this value (I know of |
159 |
none at this point.) |
160 |
|
161 |
20050224: |
162 |
The acpi_perf and acpi_throttle drivers are now part of the |
163 |
acpi(4) main module. They are no longer built separately. |
164 |
|
165 |
20050223: |
166 |
The layout of struct image_params has changed. You have to |
167 |
recompile all compatibility modules (linux, svr4, etc) for use |
168 |
with the new kernel. |
169 |
|
170 |
20050223: |
171 |
The p4tcc driver has been merged into cpufreq(4). This makes |
172 |
"options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or |
173 |
compile in "device cpufreq" to restore this functionality. |
174 |
|
175 |
20050220: |
176 |
The responsibility of recomputing the file system summary of |
177 |
a SoftUpdates-enabled dirty volume has been transferred to the |
178 |
background fsck. A rebuild of fsck(8) utility is recommended |
179 |
if you have updated the kernel. |
180 |
|
181 |
To get the old behavior (recompute file system summary at mount |
182 |
time), you can set vfs.ffs.compute_summary_at_mount=1 before |
183 |
mounting the new volume. |
184 |
|
185 |
20050206: |
186 |
The cpufreq import is complete. As part of this, the sysctls for |
187 |
acpi(4) throttling have been removed. The power_profile script |
188 |
has been updated, so you can use performance/economy_cpu_freq in |
189 |
rc.conf(5) to set AC on/offline cpu frequencies. |
190 |
|
191 |
20050206: |
192 |
NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) |
193 |
requires recompiling libnetgraph and userland netgraph utilities. |
194 |
|
195 |
20050114: |
196 |
Support for abbreviated forms of a number of ipfw options is |
197 |
now deprecated. Warnings are printed to stderr indicating the |
198 |
correct full form when a match occurs. Some abbreviations may |
199 |
be supported at a later date based on user feedback. To be |
200 |
considered for support, abbreviations must be in use prior to |
201 |
this commit and unlikely to be confused with current key words. |
202 |
|
203 |
20041221: |
204 |
By a popular demand, a lot of NOFOO options were renamed |
205 |
to NO_FOO (see bsd.compat.mk for a full list). The old |
206 |
spellings are still supported, but will cause annoying |
207 |
warnings on stderr. Make sure you upgrade properly (see |
208 |
the COMMON ITEMS: section later in this file). |
209 |
|
210 |
20041219: |
211 |
Auto-loading of ancillary wlan modules such as wlan_wep has |
212 |
been temporarily disabled; you need to statically configure |
213 |
the modules you need into your kernel or explicitly load them |
214 |
prior to use. Specifically, if you intend to use WEP encryption |
215 |
with an 802.11 device load/configure wlan_wep; if you want to |
216 |
use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, |
217 |
and wlan_xauth as required. |
218 |
|
219 |
20041213: |
220 |
The behaviour of ppp(8) has changed slightly. If lqr is enabled |
221 |
(``enable lqr''), older versions would revert to LCP ECHO mode on |
222 |
negotiation failure. Now, ``enable echo'' is required for this |
223 |
behaviour. The ppp version number has been bumped to 3.4.2 to |
224 |
reflect the change. |
225 |
|
226 |
20041201: |
227 |
The wlan support has been updated to split the crypto support |
228 |
into separate modules. For static WEP you must configure the |
229 |
wlan_wep module in your system or build and install the module |
230 |
in place where it can be loaded (the kernel will auto-load |
231 |
the module when a wep key is configured). |
232 |
|
233 |
20041201: |
234 |
The ath driver has been updated to split the tx rate control |
235 |
algorithm into a separate module. You need to include either |
236 |
ath_rate_onoe or ath_rate_amrr when configuring the kernel. |
237 |
|
238 |
20041116: |
239 |
Support for systems with an 80386 CPU has been removed. Please |
240 |
use FreeBSD 5.x or earlier on systems with an 80386. |
241 |
|
242 |
20041110: |
243 |
We have had a hack which would mount the root filesystem |
244 |
R/W if the device were named 'md*'. As part of the vnode |
245 |
work I'm doing I have had to remove this hack. People |
246 |
building systems which use preloaded MD root filesystems |
247 |
may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in |
248 |
their /etc/rc scripts. |
249 |
|
250 |
20041104: |
251 |
FreeBSD 5.3 shipped here. |
252 |
|
253 |
20041102: |
254 |
The size of struct tcpcb has changed again due to the removal |
255 |
of RFC1644 T/TCP. You have to recompile userland programs that |
256 |
read kmem for tcp sockets directly (netstat, sockstat, etc.) |
257 |
|
258 |
20041022: |
259 |
The size of struct tcpcb has changed. You have to recompile |
260 |
userland programs that read kmem for tcp sockets directly |
261 |
(netstat, sockstat, etc.) |
262 |
|
263 |
20041016: |
264 |
RELENG_5 branched here. For older entries, please see updating |
265 |
in the RELENG_5 branch. |
266 |
|
267 |
COMMON ITEMS: |
268 |
|
269 |
General Notes |
270 |
------------- |
271 |
Avoid using make -j when upgrading. From time to time in the |
272 |
past there have been problems using -j with buildworld and/or |
273 |
installworld. This is especially true when upgrading between |
274 |
"distant" versions (eg one that cross a major release boundary |
275 |
or several minor releases, or when several months have passed |
276 |
on the -current branch). |
277 |
|
278 |
Sometimes, obscure build problems are the result of environment |
279 |
poisoning. This can happen because the make utility reads its |
280 |
environment when searching for values for global variables. |
281 |
To run your build attempts in an "environmental clean room", |
282 |
prefix all make commands with 'env -i '. See the env(1) manual |
283 |
page for more details. |
284 |
|
285 |
Due to several updates to the build infrastructure, source |
286 |
upgrades from versions prior to 5.3 no longer supported. |
287 |
|
288 |
When upgrading from one major version to another it is generally |
289 |
best to upgrade to the latest code in the currently installed branch |
290 |
first, then do an upgrade to the new branch. This is the best-tested |
291 |
upgrade path, and has the highest probability of being successful. |
292 |
Please try this approach before reporting problems with a major |
293 |
version upgrade. |
294 |
|
295 |
To build a kernel |
296 |
----------------- |
297 |
If you are updating from a prior version of FreeBSD (even one just |
298 |
a few days old), you should follow this procedure. With a |
299 |
/usr/obj tree with a fresh buildworld, |
300 |
make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE |
301 |
make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE |
302 |
|
303 |
To test a kernel once |
304 |
--------------------- |
305 |
If you just want to boot a kernel once (because you are not sure |
306 |
if it works, or if you want to boot a known bad kernel to provide |
307 |
debugging information) run |
308 |
make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel |
309 |
nextboot -k testkernel |
310 |
|
311 |
To just build a kernel when you know that it won't mess you up |
312 |
-------------------------------------------------------------- |
313 |
This assumes you are already running a 6.X system. Replace |
314 |
${arch} with the architecture of your machine (e.g. "i386", |
315 |
"alpha", "amd64", "ia64", "pc98", "sparc64", etc). |
316 |
|
317 |
cd src/sys/${arch}/conf |
318 |
config KERNEL_NAME_HERE |
319 |
cd ../compile/KERNEL_NAME_HERE |
320 |
make depend |
321 |
make |
322 |
make install |
323 |
|
324 |
If this fails, go to the "To build a kernel" section. |
325 |
|
326 |
To rebuild everything and install it on the current system. |
327 |
----------------------------------------------------------- |
328 |
# Note: sometimes if you are running current you gotta do more than |
329 |
# is listed here if you are upgrading from a really old current. |
330 |
|
331 |
<make sure you have good level 0 dumps> |
332 |
make buildworld |
333 |
make kernel KERNCONF=YOUR_KERNEL_HERE |
334 |
[1] |
335 |
<reboot in single user> [3] |
336 |
mergemaster -p [5] |
337 |
make installworld |
338 |
make delete-old |
339 |
mergemaster [4] |
340 |
<reboot> |
341 |
|
342 |
|
343 |
To cross-install current onto a separate partition |
344 |
-------------------------------------------------- |
345 |
# In this approach we use a separate partition to hold |
346 |
# current's root, 'usr', and 'var' directories. A partition |
347 |
# holding "/", "/usr" and "/var" should be about 2GB in |
348 |
# size. |
349 |
|
350 |
<make sure you have good level 0 dumps> |
351 |
<boot into -stable> |
352 |
make buildworld |
353 |
make buildkernel KERNCONF=YOUR_KERNEL_HERE |
354 |
<maybe newfs current's root partition> |
355 |
<mount current's root partition on directory ${CURRENT_ROOT}> |
356 |
make installworld DESTDIR=${CURRENT_ROOT} |
357 |
cd src/etc; make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd |
358 |
make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} |
359 |
cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd |
360 |
<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> |
361 |
<reboot into current> |
362 |
<do a "native" rebuild/install as described in the previous section> |
363 |
<maybe install compatibility libraries from src/lib/compat> |
364 |
<reboot> |
365 |
|
366 |
|
367 |
To upgrade in-place from 5.x-stable or higher to 6.x-stable |
368 |
----------------------------------------------------------- |
369 |
<make sure you have good level 0 dumps> |
370 |
make buildworld [9] |
371 |
make kernel KERNCONF=YOUR_KERNEL_HERE [8] |
372 |
[1] |
373 |
<reboot in single user> [3] |
374 |
mergemaster -p [5] |
375 |
make installworld |
376 |
make delete-old |
377 |
mergemaster -i [4] |
378 |
<reboot> |
379 |
|
380 |
Make sure that you've read the UPDATING file to understand the |
381 |
tweaks to various things you need. At this point in the life |
382 |
cycle of current, things change often and you are on your own |
383 |
to cope. The defaults can also change, so please read ALL of |
384 |
the UPDATING entries. |
385 |
|
386 |
Also, if you are tracking -current, you must be subscribed to |
387 |
freebsd-current@freebsd.org. Make sure that before you update |
388 |
your sources that you have read and understood all the recent |
389 |
messages there. If in doubt, please track -stable which has |
390 |
much fewer pitfalls. |
391 |
|
392 |
[1] If you have third party modules, such as vmware, you |
393 |
should disable them at this point so they don't crash your |
394 |
system on reboot. |
395 |
|
396 |
[3] From the bootblocks, boot -s, and then do |
397 |
fsck -p |
398 |
mount -u / |
399 |
mount -a |
400 |
cd src |
401 |
adjkerntz -i # if CMOS is wall time |
402 |
Also, when doing a major release upgrade, it is required that |
403 |
you boot into single user mode to do the installworld. |
404 |
|
405 |
[4] Note: This step is non-optional. Failure to do this step |
406 |
can result in a significant reduction in the functionality of the |
407 |
system. Attempting to do it by hand is not recommended and those |
408 |
that pursue this avenue should read this file carefully, as well |
409 |
as the archives of freebsd-current and freebsd-hackers mailing lists |
410 |
for potential gotchas. |
411 |
|
412 |
[5] Usually this step is a noop. However, from time to time |
413 |
you may need to do this if you get unknown user in the following |
414 |
step. It never hurts to do it all the time. |
415 |
|
416 |
[8] In order to have a kernel that can run the 5.x binaries |
417 |
needed to do an installworld, you must include the COMPAT_FREEBSD5 |
418 |
option in your kernel. Failure to do so may leave you with a system |
419 |
that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 |
420 |
is required to run the 5.x binaries on more recent kernels. |
421 |
|
422 |
Make sure that you merge any new devices from GENERIC since the |
423 |
last time you updated your kernel config file. |
424 |
|
425 |
[9] When checking out sources, you must include the -P flag to have |
426 |
cvs prune empty directories. |
427 |
|
428 |
If CPUTYPE is defined in your /etc/make.conf, make sure to use the |
429 |
"?=" instead of the "=" assignment operator, so that buildworld can |
430 |
override the CPUTYPE if it needs to. |
431 |
|
432 |
MAKEOBJDIRPREFIX must be defined in an environment variable, and |
433 |
not on the command line, or in /etc/make.conf. buildworld will |
434 |
warn if it is improperly defined. |
435 |
FORMAT: |
436 |
|
437 |
This file contains a list, in reverse chronological order, of major |
438 |
breakages in tracking -STABLE. Not all things will be listed here, |
439 |
and it only starts on October 16, 2004. Updating files can found in |
440 |
previous releases if your system is older than this. |
441 |
|
442 |
Copyright information: |
443 |
|
444 |
Copyright 1998-2005 M. Warner Losh. All Rights Reserved. |
445 |
|
446 |
Redistribution, publication, translation and use, with or without |
447 |
modification, in full or in part, in any form or format of this |
448 |
document are permitted without further permission from the author. |
449 |
|
450 |
THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR |
451 |
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
452 |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
453 |
DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, |
454 |
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
455 |
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
456 |
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
457 |
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
458 |
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
459 |
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
460 |
POSSIBILITY OF SUCH DAMAGE. |
461 |
|
462 |
If you find this document useful, and you want to, you may buy the |
463 |
author a beer. |
464 |
|
465 |
Contact Warner Losh if you have any questions about your use of |
466 |
this document. |
467 |
|
468 |
$FreeBSD: src/UPDATING,v 1.416.2.18 2006/02/22 11:51:57 yar Exp $ |