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