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