1# Updating Information for DragonFly users. 2# 3# 4# This file should warn you of any pitfalls which you might need to work around 5# when trying to update your DragonFly system. The information below is 6# in reverse-time order, with the latest information at the top. 7# 8# If you discover any problem, please contact the bugs@lists.dragonflybsd.org 9# mailing list with the details. 10 11+-----------------------------------------------------------------------+ 12+ UPGRADING DRAGONFLY FROM 3.4 to later versions + 13+-----------------------------------------------------------------------+ 14 15CYRIX OPTIONS REMOVED 16--------------------- 17 18The following Cyrix related options have been removed: CPU_BTB_EN, 19CPU_CYRIX_NO_LOCK, CPU_DIRECT_MAPPED_CACHE, CPU_DISABLE_5X86_LSSER, 20CPU_FASTER_5X86_FPU, CPU_IORT, CPU_LOOP_EN, CPU_RSTK_EN, CPU_SUSP_HLT, 21CYRIX_CACHE_WORKS, and CYRIX_CACHE_REALLY_WORKS 22 23ISA SUPPORT REMOVED FROM RP(4) 24------------------------------ 25 26ISA support has been removed from the rp(4) driver. It is now PCI only. 27 28+-----------------------------------------------------------------------+ 29+ UPGRADING DRAGONFLY FROM 3.2 to later versions + 30+-----------------------------------------------------------------------+ 31 32COMPAT_SUNOS OPTION REMOVED 33--------------------------- 34 35The COMPAT_SUNOS option has been removed. It was meant to provide binary 36compatibility with SunOS 4.x for the sparc32 port of 4.4BSD. 37 38ISA SOUND CARD SUPPORT REMOVED 39------------------------------ 40 41The following modules have been removed (all for ISA sound cards): 42snd_ad1816.ko, snd_ess.ko, snd_mss.ko, snd_sb8.ko, snd_sb16.ko, snd_sbc.ko 43 44GCC 4.7 45------- 46 47DragonFly has switched base compilers. GCC 4.7 is now the default 48compiler and GCC 4.4 is the alternative compiler. The "NO_GCC47" make 49variable ceases to work now. 50 51Users who wish to build only GCC 4.7 have to use NO_GCC44 in the 52/etc/make.conf to prohibit GCC 4.4 from building. However, using it is 53highly discouraged. There are a few packages in pkgsrc that do not build 54with GCC 4.7 and the new "DPorts" system uses GCC 4.4 by default. At 55this time, it is recommended to keep both compilers on the base system. 56 57SMP OPTION REMOVED 58------------------ 59 60The SMP kernel option has been made a no-op. All kernels now feature SMP 61support. If you have 'options SMP' in your kernel config, you can as well 62remove it. 63 64DEVICE_POLLING OPTION REPLACED BY IFPOLL_ENABLE OPTION, KTR_POLLING REMOVED 65--------------------------------------------------------------------------- 66 67The DEVICE_POLLING kernel option has been made a no-op and it has been 68replaced by IFPOLL_ENABLE. If you have 'options DEVICE_POLLING' in your 69kernel config, you need to change it to IFPOLL_ENABLE. 70 71Also, the KTR_POLLING kernel option has been removed, so it must be 72removed from kernel configs that have it. 73 74BUSLOGIC, CYCLADES AND STALLION ISA SUPPORT REMOVED 75--------------------------------------------------- 76 77The bt(4) driver for Buslogic SCSI adapters has been made PCI only. ISA 78cards will no longer be detected. 79 80The same has been done for Stallion multiport serial controllers. stli(4) 81has been completely removed (along with the stlload(8) and stlstty(8) 82utilities) and stl(4) was changed to support only PCI cards. Similarly, 83ISA support was removed from cy(4) too. All these drivers are i386 only. 84 85COMPAT_OLDISA OPTION GONE 86------------------------- 87 88The i386 specific COMPAT_OLDISA kernel option has been removed, since 89nothing needs it anymore. 90 91+-----------------------------------------------------------------------+ 92+ UPGRADING DRAGONFLY FROM 3.0 to later versions + 93+-----------------------------------------------------------------------+ 94 95APIC_IO OPTION REMOVED 96---------------------- 97 98The APIC_IO kernel option is no longer accepted after having been without 99effect for a while. The hw.ioapic_enable tunable now serves its purpose. 100If you have 'options APIC_IO' in your kernel config, you'll have to 101remove it. 102 103WATCHDOG_ENABLE & HW_WDOG OPTIONS REMOVED 104----------------------------------------- 105 106The wdog framework is now compiled into our kernels by default, so the 107options are no longer needed. 108 109DOSCMD(1) REMOVED 110----------------- 111 112doscmd(1) has been removed. It was i386 only. The doscmd(1) specific 113NO_X make.conf option was removed too. 114 115GCC 4.7 116------- 117 118GCC 4.7 has been brought in and replaces GCC 4.1 as DragonFly's non- 119default compiler in base (default is still GCC 4.4). 120 121Users who wish to build only GCC 4.4 have to replace NO_GCC41 with 122NO_GCC47 in /etc/make.conf. 123 124USB4BSD 125------- 126 127A new USB stack (from FreeBSD) has been brought in. The following 128modules have been ported so far: usb, uhci, ohci, ehci, xhci, umass, 129usfs, uether, if_axe, if_udav, ukbd, ums, uep, uhid, usb_quirk, 130and uaudio. 131 132It is not yet the default. To activate it, WANT_USB4BSD=yes has to 133be put in make.conf and device "usb4bsd" (quotes needed) has to 134replace device usb in the kernel config. After that, a full 135build/install/upgrade cycle is needed. 136 137Note that this is experimental and incomplete, but we are interested 138in hearing about issues with it, of course. 139 140ISA SUPPORT REMOVED FROM AIC-6260/6360 DRIVER 141--------------------------------------------- 142 143ISA adapter support was dropped from the aic(4) driver. 144 145+-----------------------------------------------------------------------+ 146+ UPGRADING DRAGONFLY FROM 2.10 to later versions + 147+-----------------------------------------------------------------------+ 148 149SEVERAL ISA DRIVERS REMOVED 150--------------------------- 151 152The following ISA only drivers have been removed along with a couple of 153associated userland tools: 154 155aha(4) 156asc(4) & sasc(1) 157ctx 158dgb(4) 159el(4) 160gpib 161gsc(4) & sgsc(1) 162ie(4) 163labpc(4) 164le(4) 165mse(4) 166rc(4) 167rdp(4) 168spigot 169tw(4) & xten(1) & xtend(8) 170wl(4) & wlconfig(8) 171wt(4) 172 173Note that two of these drivers (aha(4) and ie(4)) are in our GENERIC 174config and one (aha(4)) is in our X86_64_GENERIC kernel configuration 175file. 176 177If buildkernel complains about any of these drivers, just remove them 178from your kernel configuration. 179 180BINUTILS 2.20 181------------- 182Binutils 2.20 has been removed in favor of Binutils 2.22. The accepted 183values of BINUTILSVERS are now binutils221 and binutils222 (default). 184 185BUILDWORLD/-KERNEL PARALLELIZATION WORK 186--------------------------------------- 187Due to changes in the way we build with more than one make job, you 188will have to update install(1) and mkdir(1) prior to buildworld if you 189want to build with 'make -j': 190 191cd /usr/src/usr.bin/xinstall; make; make install; make clean 192cd /usr/src/bin/mkdir; make; make install; make clean 193 194DMA(8) UPGRADE 195-------------- 196dma(8) has been upgraded to v0.7 which no longer supports the 197/etc/dma/virtusertable. Some of its functionality has been replaced 198with the MASQUERADE keyword and the EMAIL environment variable (see 199the dma(8) manual page). 200 201+-----------------------------------------------------------------------+ 202+ UPGRADING DRAGONFLY FROM 2.8 to later versions + 203+-----------------------------------------------------------------------+ 204 205GCC 4.4 & BINUTILS 2.21 206----------------------- 207 208GCC 4.4 has been made DragonFly's default compiler and Binutils 2.21 has 209been made DragonFly's default Binutils. 210 211That means that any settings that set CCVER to 'gcc44' are not needed 212anymore. Instead, CCVER can be set to 'gcc41' to go back to using 213GCC 4.1. 214 215It also means that 'binutils221' as a value for BINUTILSVER has no 216effect anymore. 2.17 has been removed and 'binutils220' is available 217as an option. 218 219The NO_GCC44 option has been removed and will not affect the build 220anymore. There is now a NO_GCC41 option that will prevent GCC 4.1 from 221building in a similar fashion. 222 223Note that you must do a full buildworld/buildkernel for upgrading. 224 225pkg_radd settings 226----------------- 227 228The config file for pkg_radd has moved from /etc/settings.conf to 229/etc/pkg_radd.conf. Save the contents of settings.conf before upgrading 230if this is needed. This warning only applies if /etc/settings.conf 231exists. pkg_radd will continue to work with defaults. 232 233+-----------------------------------------------------------------------+ 234+ 20100927 + 235+ UPGRADING DRAGONFLY FROM 2.6 to 2.8 or HEAD + 236+-----------------------------------------------------------------------+ 237 238OpenSSL 239-------- 240 241OpenSSL has been upgraded, and SHLIB_MAJOR was bumped for libssh and libcrypto. 242This shouldn't break any 3rd-party software, but you'll need to recompile your 2433rd-party software if you want it to link against the new version of OpenSSL. 244 245Loader 246------- 247 248A new loader (dloader) has been added which better handles booting from 249multiple kernel/module versions. 250 251To upgrade (Only for this upgrade, for post 2.8 upgrades see GENERAL below) 252 253 cd /usr/src 254 make buildworld 255 make installworld 256 make upgrade 257 make buildkernel KERNCONF=<KERNELNAME> 258 make installkernel KERNCONF=<KERNELNAME> 259 260Note that you must installworld and run the 'upgrade' target before 261installing the new kernel. 262 263BIND 264----- 265 266BIND has been removed from the base system. The ldns and drill tools have 267been added for basic functionality. Use 'drill' where you would normally 268use nslookup or dig, or install BIND from pkgsrc. It's available as 269net/bind95, net/bind96, or net/bind97 as of this writing. 270 271This only affects older systems upgrading to 2.8. New 2.8+ installs 272include BIND as a pkgsrc package. 273 274+-----------------------------------------------------------------------+ 275+ UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + 276+ GENERAL + 277+-----------------------------------------------------------------------+ 278 279Instructions on how to obtain and maintain DragonFly source code using git 280are in the development(7) manual page. 281 282To upgrade a DragonFly system from sources you run the following sequence: 283 284 cd /usr/src 285 make buildworld 286 make buildkernel KERNCONF=<KERNELNAME> 287 make installkernel KERNCONF=<KERNELNAME> 288 make installworld 289 290You will also want to run the 'upgrade' target to upgrade your /etc and the 291rest of your system. The upgrade target is aware of stale files created by 292older DragonFly installations and should delete them automatically. 293 294 make upgrade 295 296See the build(7) manual page for further information. 297 298Once you've done a full build of the world and kernel you can do incremental 299upgrades of either by using the 'quickworld' and 'quickkernel' targets 300instead of 'buildworld' and 'buildkernel'. If you have any problems with 301the quick targets, try updating your repo first, and then a full buildworld 302and buildkernel as shown above, before asking for help. 303 304+-----------------------------------------------------------------------+ 305+ UPGRADING FROM DRAGONFLY <= 2.0 TO DRAGONFLY >= 2.1 + 306+-----------------------------------------------------------------------+ 307 308In 2.1 kernel and modules has moved to boot directory. For most cases 309this is handled automatically by 'make upgrade'. A few cases needs manual 310intervention: 311 312 * When installing a kernel without first doing a make buildworld, 313 installworld and upgrade to the same DESTDIR as kernel: 314 make DESTDIR/boot directory and move kernel and modules into this boot 315 directory; also move kernel.old and modules.old. 316 Typical example is vkernel(7), use (no modules used): 317 318 cd /var/vkernel 319 mkdir boot 320 chflags noschg kernel 321 mv kernel kernel.old boot 322 chflags schg boot/kernel 323 324 * When using a boot-only partition, /boot/loader.rc needs to be edited: 325 delete occurrences of '/boot/'. 326 These occurences can normally be deleted in any case, see loader(8). 327 328+-----------------------------------------------------------------------+ 329+ UPGRADING FROM DRAGONFLY <= 1.8 TO DRAGONFLY >= 1.9 + 330+-----------------------------------------------------------------------+ 331 332In 1.9 major changes to the disk management infrastructure have taken 333place. make upgrade may not catch all of your disk devices in /dev, 334so after upgrading be sure to cd /dev; ./MAKEDEV <blah> where <blah> 335are all of your disk devices. HOWEVER, from late 2.3 on we run devfs 336and MAKEDEV no longer exists. 337 338The biggest changes in 1.9 are: 339 340(1) That whole-slice devices such as da0s1 no longer share the same device 341 id as partition c devices such as da0s1c. 342 343(2) The whole-disk device (e.g. da0) is full raw access to the disk, 344 with no snooping or reserved sectors. Consequently you cannot run 345 disklabel on this device. Instead you must run disklabel on a 346 whole-slice device. 347 348(3) The 'compatibility' partitions now use slice 0 in the device name, 349 so instead of da0a you must specify da0s0a. Also, as per (1) above, 350 accessing the disklabel for the compatibility partitions must be 351 done via slice 0 (da0s0). 352 353(4) Many device drivers that used to fake up labels, such as CD, ACD, VN, 354 and CCD now run through the disk management layer and are assigned 355 real disk management devices. VN and CCD in particular do not usually 356 use a MBR and disklabels must be accessed through the compatibility 357 slice 0. Your /etc/ccd.conf file still specifies 'ccd0', though, you 358 don't name it 'ccd0s0' in the config file. 359 360Generally speaking, you have to get used to running fdisk and disklabel on 361the correctly specified device names. A lot of the wiggle, such as running 362disklabel on a partition, has been removed. 363 364+-----------------------------------------------------------------------+ 365+ UPGRADING FROM OLDER VERSIONS OF DRAGONFLY OR FREEBSD + 366+-----------------------------------------------------------------------+ 367 368> Kerberos IV 369------------- 370 371Kerberos IV (eBones) was removed from the tree, please consider moving to 372Kerberos 5 (Heimdal). 373 374> Package Management System 375--------------------------- 376 377Starting with the 1.4 release, DragonFly uses NetBSD's pkgsrc package 378management system. The necessary tools to build and maintain packages 379are provided in /usr/pkg/bin and /usr/pkg/sbin. Make sure that these 380directories are in your PATH variable. 381 382In order to obtain a reasonably current snapshot of the pkgsrc tree, use 383the tarball from NetBSD: 384 385 fetch -o /tmp/pkgsrc.tar.gz ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc.tar.gz 386 cd /usr; tar -xzf /tmp/pkgsrc.tar.gz; chown -R root:wheel pkgsrc 387 388This tree can then be kept up to date with cvs update: 389 390 cd /usr/pkgsrc; cvs up 391 392NOTE! If you upgraded from a pre-1.4 system to 1.4 or later, you need to 393build and install the pkgsrc bootstrap manually: 394 395 cd /usr/pkgsrc/bootstrap 396 ./bootstrap --pkgdbdir /var/db/pkg --prefix /usr/pkg 397 398+-----------------------------------------------------------------------+ 399+ UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + 400+ UPDATING FROM PRE-1.2 SYSTEMS OR FreeBSD 4.x TO + 401+ DRAGONFLY 1.3+ (EITHER PREVIEW or HEAD) + 402+-----------------------------------------------------------------------+ 403 404The compatibility shims for the build environment have been removed, you 405have to update to DragonFly 1.2 release branch first. 406 407The default PAM configuration has moved from /etc/pam.conf to /etc/pam.d/. 408The existing configuration can be converted using /etc/pam.d/convert.sh. 409Entries in /etc/pam.d/ override entries in /etc/pam.conf. In addition 410the pam_skey.so module was retired, you have to remove it manually from 411your configuration, when you convert it. 412 413> Required user and group IDs when upgrading from either FreeBSD or DragonFly 414--------------------- 415 416The following users may be missing from your password file. Use vipw and 417add any that are missing: 418 419smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin 420_pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/sbin/nologin 421 422The following groups may be missing from your group file. Use vi /etc/group 423and add any that are missing: 424 425smmsp:*:25: 426authpf:*:63: 427_pflogd:*:64: 428 429 430> Upgrading to DragonFly from FreeBSD 431--------------------- 432 433You can build the DragonFly world and DragonFly kernels on a FreeBSD-4.x or 434FreeBSD-5.x machine and then install DragonFly over FreeBSD, replacing 435FreeBSD. Note that the DragonFly buildworld target does not try to reuse 436make depend information, it starts from scratch, so no pre-cleaning of the 437object hierarchy is necessary. 438 439 # get the CVS repository (it is placed in /home/dcvs, 500MB). 440 # Please use the -h option and a mirror site to pull the 441 # initial repository, but feel free to use the main repository 442 # machine to pull updates. 443 cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile 444 # install the source from the CVS hierarchy (remove preexisting 445 # FreeBSD src first) (500MB) 446 cd /usr 447 rm -rf src 448 cvs -R -d /home/dcvs checkout -P src 449 450 # build it (500MB used in /usr/obj) 451 # 452 cd /usr/src 453 make buildworld 454 make buildkernel KERNCONF=<KERNELNAME> 455 456Once you have built DragonFly you have to install it over FreeBSD. Since 457DragonFly does not track changes made by FreeBSD to its include file 458hierarchy and include file pollution can cause all sorts of unexpected 459compilation issues to come up, it is best to wipe your include hierarchy 460prior to installing DragonFly. Note that you should not wipe any installed 461FreeBSD header files or binaries until after you have successfully completed 462the build steps above. 463 464 rm -rf /usr/include 465 mkdir /usr/include 466 make installkernel KERNCONF=<KERNELNAME> 467 make installworld 468 469Then you need to upgrade your system. DragonFly's 'make upgrade' target 470will unconditionally upgrade the /etc files that sysops do not usually 471mess around with, such as the files in /etc/rc.d. It will also remove any 472obsolete files such as utilities and manpages that have been removed from 473the system since the version you're coming from. If you are unsure we 474recommend that you make a backup of at least your /etc before applying 475this step. Note that DragonFly's RC system is basically RCNG from 476FreeBSD-5, but there are some differences in the contents of the RC files. 477 478 make upgrade 479 480NOTE! Never do a 'make upgrade' before 'make installworld' has been run. 481Doing so might leave your system in an unusable state. 482 483Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin, 484/usr/bin, and /usr/lib, and remove any stale files that you find. Please 485report these files to the DragonFly developers so that they can be added to 486the 'upgrade' target. 487 488