120130711: 2 Texinfo needs itself to generate its manual pages. As it is not 3 yet installed on the system it fails to find the default makeinfo 4 tool. So we have to first compile it, then install it will specifying 5 the full path to makeinfo (Both commands have to be run, in the given 6 sequence): 7 8 # make -C gnu/usr.bin/texinfo all 9 # make -C gnu/usr.bin/texinfo all install TOOL_MAKEINFO=/usr/src/gnu/usr.bin/texinfo/makeinfo/makeinfo 10 1120130422: 12 The ARM build no longer requires you to build as root user you 13 therefore need to wipe (or chmod) your build generated files 14 and start building using the -U option of build.sh. 15 1620130312: 17 /bin/ksh was imported and needs to be added to your /etc/shells. 18 Run this command to add it: 19 20 # echo "/bin/ksh" >> /etc/shells 21 2220130306: 23 For people building ARM images, the procedure has changed 24 a bit. You need a full FS to boot now. In short, you need 25 to use the new in-tree script to make a full SD image. See 26 http://wiki.minix3.org/en/DevelopersGuide/MinixOnARM 27 for details. 28 2920130201: 30 Replace our native ln with NetBSD version. 31 32 As our native ln is a hard link to cp, simply overwriting ln with 33 the new version would cause mv, cp, etc to stop working. 34 35 Do this BEFORE a 'make build': 36 37 # rm /bin/ln 38 # cp /bin/cp /bin/ln 39 40 Then 'make build' as usual. 41 4220130130: 43 With the shell update, and following update of 'test', some 44 modifications are needed in .profile and .ashrc. 45 If you use the defaults, simply execute the following for all 46 of your users: 47 48 # cp etc/ast/.ashrc ~/ 49 # cp etc/ast/.profile ~/ 50 5120130114: 52 The terminfo update is also linked to the databases functions, 53 which means the tool used to generate the termcap entries has to 54 be rebuild with the new libraries before creating a valid 55 terminfo DB. To resolve this issue we have to do two (2) full 56 build of the system. The simplest is to do the following: 57 58 # make build && make build && reboot 59 6020121207: 61 The join and lorder tools have been upgraded. Build them first: 62 63 # make -C usr.bin/lorder clean all install 64 # make -C usr.bin/join clean all install 65 # make -C usr.bin/tic clean all install 66 # make -C usr.bin/nbperf clean all install 67 68 Then do a "make build". 69 7020121205: 71 Following the terminfo update, some new tools are now used during 72 the build. Execute the following to install them: 73 # make -C usr.bin/nbperf all install 74 # make -C usr.bin/lorder all install 75 # make -C usr.bin/join all install 76 # make -C usr.bin/tic all install 77 7820121205: 79 The tsort tool has been also upgraded and is now also used during 80 the build: 81 # make -C usr.bin/tsort all install 82 # cp share/mk/* /usr/share/mk 83 8420121205: 85 lorder requires a newer version of sort, so to ensure it is present 86 do the following: 87 # make -C usr.bin/sort clean all install 88 8920121127: 90 /etc/mtab is now obsoleted by /proc/mounts. You need to create a 91 symlink: 92 93 # rm /etc/mtab 94 # ln -s /proc/mounts /etc/mtab 95 9620121116: 97 To make the build system less verbose: 98 99 # cp /usr/src/etc/make.conf /etc 100 10120121115: 102 Before your first native build you need to update /usr/share/mk. 103 # rm /usr/share/mk/* 104 # cp /usr/src/share/mk/* /usr/share/mk 105 106 With the update, it is now recommended to use the following make 107 targets : 108 - "build" (i.e., make build) instead of "world", which is now obsoleted. 109 110 There is some differences between make build and make world. namely: 111 - make build is NOT automatically followed by make etcforce. 112 - make build is by default preceded by a make clean, to prevent that 113 use the following command: 114 # make build MKUPDATE=yes 115 116 It is now possible to crosscompile minix on minix, if you have 117 not already followed the previous steps, you will need to do the 118 following before using the build.sh script: 119 # make etcforce 120 12120120927: 122 Building a new boot image requires the current mkfs.mfs. 123 # make -C usr.sbin/mkfs.mfs clean all install 124 12520120703: 126 The device manager(devman) is now started automatically during the 127 mount -a operation. As fstab is generated during installation it is 128 required to manually insert the following entry in fstab. Failing to 129 do so will result in the devmand daemon to be able to open the events 130 file in /sys. 131 132 none /sys devman rw,rslabel=devman 0 0 133 13420120608: 135 New install and mk files require the following steps: 136 137 # cp /usr/src/share/mk/*.mk /usr/share/mk 138 # cd /usr/src 139 # make -C usr.bin/xinstall all 140 # cp usr.bin/xinstall/xinstall /usr/bin/install 141 # rm /bin/install 142 143 then do 144 # make clean world 145 14620120510: 147 WARNING: the shared libraries major revision set to 0 will break 148 existing dynamically linked binaries if they exist. 149 150 There are two risks. One: existing binaries won't find the current 151 libraries; two: linking binaries with both majors present will link 152 them in twice. So the previous libraries have to be removed. 153 154 . re-build world statically first if necessary 155 . remove libraries from /lib and /usr/lib 156 . then build world 157 15820120416: 159 Upgrade your clang to clang-2.9nb6 or clang-3.1nb3 to be able to 160 build shared libraries and dynamically linked executables. The 161 system will keep working without them, but a dynamic-capable 162 system will be a requirement soon. 163 16420120413: 165 Boot loader menu now has an option to boot into single user mode. To 166 get the menu option do: 167 168 # cp /usr/src/etc/boot.cfg.default /etc 169 # update_bootcfg 170 17120120402: 172 an installed genassym is required to build the kernel: 173 # make -C usr.bin/genassym install 174 17520120328: 176 The boot loader now defaults to 115200 baud rate to make booting over 177 serial more pleasant. To install the new boot loader do 178 179 # cd /usr/src/sys 180 # make clean install 181 # updateboot 182 183 To boot over serial add the following to /etc/boot.cfg.local (create 184 the file if not present): 185 menu=Start latest serial MINIX 3:load_mods /boot/minix_latest/mod*;multiboot /boot/minix_latest/kernel rootdevname=c0d0p0s0 cttyline=0 cttybaud=115200 186 consdev=com0 187 188 To install the new boot configuration run 189 190 # update_bootcfg 191 19220120306: 193 The base system only looks in /usr/pkg/compiler-rt/lib now, so 194 -L/usr/pkg/lib is gone. 195 Please make sure you have the latest compiler-rt package 196 installed. 197 19820120214: 199 Compiling everything with clang (previous entry) depends on a 200 relatively new clang package. Please make sure you have at 201 least clang-2.9nb3 installed. The symptom of an old clang being 202 used is an assert(inited) firing, e.g. after rebuilding make. 203 20420120214: 205 Full switch to clang/ELF. ack is no longer supported. 206 207 clang is the ELF-generating compiler in the base system, gcc is 208 available as a package. 209 210 To boot ELF-format images, either reinstall your whole system, 211 thereby getting the netbsd-based boot loader, or use the boot 212 monitor as documented at 213 http://wiki.minix3.org/en/UsersGuide/BootMonitor 214 215 Single copies of ELF boot files are also stored in /boot on 216 make hdboot as a boot monitor compatability measure. In short, 217 to boot the ELF image in /boot using the boot monitor, 218 do "mb=1" and "kernel=/boot/kernel", then "boot" in the boot 219 monitor. 220 221 Workaround for header file timestamps causing perpetual recompiles: 222 # find /usr/pkg -name '*.h' | xargs touch 223 224 Now that CC is clang instead of ack (cc), the depend files will 225 be out of date, so to make world, do: 226 # make cleandepend clean world 227 22820120213 229 Replace VFS with AVFS 230 231 In case you were running AVFS by doing 232 'BUILDAVFS=yes make clean world', you now have to do a 233 'make clean cleandepend world' instead of a normal 'make clean world'. 234 23520120202 236 Rename installboot to installboot_minix. 237 238 Do this BEFORE a 'make world': 239 # rm -f /usr/bin/installboot /usr/sbin/installboot 240 # make -C boot/installboot clean install 241 # make -C usr.sbin/installboot clean install 242 Then 'make clean world' as usual. 243 24420120119: 245 Follow up to previous entry. The same problem also exists for 246 the man pages. 247 248 Do this BEFORE a 'make world': 249 # rm /usr/man/man1/rm.1 250 # cp /usr/man/man1/cp.1 /usr/man/man1/rm.1 251 Then 'make clean world' as usual. 252 25320120112: 254 Replace our native rm and rmdir with NetBSD version. 255 256 As our native rm is a hard link to cp, simply overwriting rm with 257 the new version would cause mv, cp, ln, etc to stop working. 258 259 Do this BEFORE a 'make world': 260 # rm /bin/rm 261 # cp /bin/cp /bin/rm 262 Then 'make clean world' as usual. 263 26420111222: 265 This update requires /etc/fstab having the new format. 266 267 The latest mkfs.mfs and fsck.mfs must be installed in 268 /sbin when building a new image, and booting with the new mfs, 269 and the new system rc script must be installed that invokes the new 270 fsck driver. 271 272 Do this BEFORE a 'make world': 273 # make clean etcfiles etcforce includes libraries 274 # make -C commands/mkfs.mfs clean install 275 # make -C commands/fsck.mfs clean install 276 Then 'make clean world' as usual. 277 27820111212: 279 After a successful "make world", issue the following commands: 280 # cd /dev 281 # MAKEDEV fbd 282 28320111109: 284 Switch to NetBSD passwd system. 285 286 You have to bootstrap pwd_mkdb: 287 # make clean includes elf-libraries 288 # make -C usr.sbin/pwd_mkdb install 289 290 Now build world. WARNING: this will blind your system to 291 /etc/shadow, making current user accounts vanish. Updating the 292 group file is necessary to add a 'users' group so the new stock 293 useradd will work. 294 295 # make clean world 296 # cp etc/group /etc/group 297 298 The new shadow file is /etc/master.passwd. Add your old user 299 accounts back with useradd(8), groups with groupadd(8), and 300 set a root pw with passwd(1) if you want. Use vipw(8) to edit 301 /etc/master.passwd if you want. See useradd(8) to get started 302 with the new pw format. Test your new system now by logging in. 303 304 Once you're satisfied your new system works, remove the old 305 adduser, and rely exclusively on the new useradd and 306 master.passwd. 307 # rm /usr/bin/adduser 308 # mv /etc/shadow /etc/shadow.orig 309 310 pwdauth is updated so that current binaries (e.g. sshd) will 311 work with the new pw db. 312 313 By default your new users are in the 'users' group. Add yourself 314 to the 'operator' group if you want to be able to su without 315 typing in the password. 316 31720111109: 318 fstab format change. /etc/rc reads both formats for a while. 319 Please convert your /etc/fstab to the new format though as 320 the system will assume the new format in the future. 321 322 A helper script is in etc/. Example: 323 # sh etc/newfstab.sh /etc/fstab >newfstab 324 (Don't redirect to /etc/fstab directly as the shell will 325 truncate it before it can be read.) 326 32720110928: 328 Update your /usr/etc/daily and /etc/man.conf if you 329 want to fully enjoy the manpage fixes. 330 33120110817: 332 To use the new asynchronous version of VFS do: 333 # BUILDAVFS=yes make cleandepend world 334 335 To switch back to the normal VFS do: 336 # make cleandepend world 337 338 By default the old VFS and PFS are built and included in the boot 339 image. AVFS is a work in progress and not yet mature. Use at your own 340 risk. 34120110722: 342 To install the new mkdep: 343 # cp /usr/bin/mkdep /usr/bin/ackmkdep 344 # make elf-libraries 345 # cd usr.bin/mkdep 346 # touch findcc.d mkdep.d .depend 347 # make install 348 34920110716: 350 To install libterminfo and terminfo database, you need 351 the new stat: 352 # cd /usr/src/usr.bin/stat 353 # make clean install 354 355 You must create a directory /usr/share/terminfo for terminfo database 356 to be installed. 357 # make -C etc install 358 359 Then make clean world as normal. 360 36120110708 362 * VFS and installed MFSes must be in sync before and after this change * 363 364 You must update the GNU headers. 365 # cd /usr/src 366 # make gnu-includes 367 368 You must rebuild both MFS and VFS (including those one in the image). 369 Either make world or do the following: 370 # cd /usr/src/servers/mfs 371 # make install 372 # cd /usr/src/servers/vfs 373 # make install 374 # cd /usr/src/tools 375 # make hdboot 376 # shutdown -r now 377 37820110701: 379 # rm -rf /usr/include /usr/netbsd 380 # make etcfiles includes cleandepend depend gnu-includes 381 382 DOWNGRADING: 383 Important: this automatically updates your /usr/lib/descr, 384 something you will have to revert manually if you 385 want to go back a revision! Previous to this 386 revision, you do this by: 387 # cp commands/acd/acd.descr /usr/lib/descr 388 Repeating the above commands to make sure your /usr/include 389 is re-acked is probably a good idea too for going back revisions. 390 391 This change moves 392 1. /usr/include to /usr/include.ack 393 2. /usr/netbsd/include to /usr/include 394 395 Reduce compiler cases to only two: 396 1. ack, a.out, minix headers (moved to /usr/include.ack), 397 minix libc 398 2. gcc/clang, elf, netbsd headers (moved to /usr/include), 399 netbsd libc (moved to /usr/lib) 400 401 So this obsoletes the /usr/netbsd hierarchy. 402 403 There are no specific UPDATING instructions, but you should know 404 that starting with this version, gcc/clang use the netbsd libc and 405 headers system exclusively, and those files are in the standard 406 locations now. It's the first step to switching completely and 407 simplifying building. 408 40920110629: 410 Rebuild m4: 411 make -C usr.bin/m4 install 412 41320110629: 414 You must install clang. By default, it is used to build the 415 elf libraries and some userland utilities. 416 41720110628: 418 Since buildworld will also build the elf-libraries, you 419 must follow the process in 420 http://wiki.minix3.org/en/UsersGuide/ELFSwitch 421 42220110624: 423 (Next release bumped to MINIX 3.2.0.) 424 ELF support in the base system. /usr/lib libraries 425 will be in ELF format once you upgrade. 426 These were know as 'gcc format', but now more properly refered 427 to as 'elf format,' as they are shared between gcc and clang. 428 To start producing ELF, please see: 429 http://wiki.minix3.org/en/UsersGuide/ELFSwitch 430 431 To create the /usr/netbsd hierarchy: 432 # cd /usr/src 433 # umount /proc 434 # make etcfiles 435 # mount -e -t procfs none /proc 436 43720110225: 438 Create ddekit include dirs: 439 mkdir -p /usr/include/ddekit/minix 440 44120100921: 442 gcc format libraries are created in /usr/lib now, 443 so throw out /usr/gnu/lib/ if you want to make sure you 444 don't pick up the old ones. 445 (with pkgsrc and this, all of /usr/gnu is obsolete now.) 446 44720100914: 448 mkdir /proc 449 chmod 555 /proc 450 45120100827: 452 From now on, the rc scripts, recovery scripts and system.conf in /etc 453 and /usr/etc are updated automatically by make world. If you want to 454 change them, do so in the source tree. If you make changes to your 455 settings in /etc and /usr/etc, merge them into the the source tree 456 before issuing a make world. 457 45820100805: 459 mkfs and fsck have been renamed to mkfs.mfs and fsck.mfs, respectively. 460 Moreover, they have been moved to /sbin, which is by default not in 461 PATH. Edit your .ashrc (or equivalent) to also include /sbin in PATH. 462 Also, first issue a 'make commands' before building world. 463 46420100802: 465 /usr/src/etc/system.conf updated to include ext2 file server: copy it 466 (or merge it) to /etc/system.conf. 467 46820100719: 469 If you installed using a 3.1.6 image (or earlier) and haven't updated 470 the boot monitor since r6246 you need to do so now: 471 cd /usr/src/boot; make install; sh updateboot.sh 472 47320100714: 474 mknod /dev/uds c 18 0 475 chmod 666 /dev/uds 476 47720100713: 478 /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc. 479 /usr/src/etc/system.conf updated to include boot sys services: copy 480 it (or merge it) to /etc/system.conf. 481 *** WARNING ***: this change breaks binary compatibility with 482 old images. Use only newly compiled images (make clean world 483 the first time) or download and install the latest ISO. 48420100705: 485 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. 486 /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc. 487 Perform some cleanup (optional): 488 # rm -f /sbin/tty /sbin/log 48920100630: 490 protocol change between service and rs: be sure to compile commands 491 together with the system image and don't use the new userspace with 492 an old image (or vice versa); it is recommended to replace 493 /boot/image_big with the newly compiled image to keep option 1 in the 494 boot menu working. 49520100625: 496 /etc/mk has been moved to /usr/share/mk. You will need to 497 create /usr/share/mk manually. 498 # cp -r /usr/src/share/mk /usr/share/ 499 # cd /usr/src; make -m /usr/share/mk world 50020100515: 501 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. 502 /etc/inet.conf is now line-based; if you have hand-edited this file 503 before, then make sure that you do not have configurations in there 504 that span multiple lines. 50520100512: 506 yacc and lex updated 507 # make includes 508 # cd commands/yacc 509 # make depend all install 510 # cd commands/lex 511 # LEX=flex make depend all install 51220100506: 513 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. 51420100410: 515 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. 516 /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc. 51720100408: 518 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. 51920100318: 520 Gas2ack updates: Run 'make install' in commands/i386/gas2ack 52120100317: 522 /usr/src/etc/system.conf updated to ignore default kernel calls: copy 523 it (or merge it) to /etc/system.conf. 524 The hello driver (/dev/hello) added to the distribution: 525 # cd /usr/src/commands/scripts && make clean install 526 # cd /dev && MAKEDEV hello 52720100316: 528 /usr/man/man9 is required 529 # mkdir /usr/man/man9 53020100308: 531 Include directory reorganization: 532 # mv /usr/include/ibm /usr/include/i386 533 # ln -s /usr/include/i386 /usr/include/machine 534 Install(1) updates: 535 # cd commands/simple && make /bin/install 53620100303: 537 Gas2ack updates: Run 'make install' in commands/i386/gas2ack 53820100215: 539 Make(1) has been replaced: Run 'make install' in commands/make 540 Mkdep updates: Copy commands/scripts/mkdep.sh to /usr/bin/mkdep 541 Make(1) needs mkfiles: Copy files in etc/mk to /etc/mk 542 ACK update: Copy commands/i386/acd.descr to /usr/lib/descr 543 End.a renamed: 544 -Copy /usr/lib/i86/end.a to /usr/lib/i86/libend.a 545 -Copy /usr/lib/i386/end.a to /usr/lib/i386/libend.a 546 -Copy /usr/gnu/lib/end.a to /usr/gnu/lib/libend.a 547 Asmconv updates: Run 'make install' in commands/i386/asmconv 54820091212: 549 /etc/drivers.conf has been renamed to /etc/system.conf. 550 user "service" has been added to password file /etc/passwd. 55120091006 (r5422): 552 OSS requires an improved make to be compiled; run "make install" 553 in /usr/src/commands/make before running "make world". 55420070212 (r2751): 555 mkfs needs more memory to make an image; chmem it or do 556 # touch mkfs.c ; make /usr/bin/mkfs 557 in /usr/src/commands/simple. 55820070118: 559 drivers.conf has been updated to include an ACL for mfs. it has 560 to be installed before rebooting after an update of the mount command. 56120061222: 562 The archictecture-dependent/-independent split needs ARCH=<arch> 563 in /etc/make.conf, included by some Makefiles and sourced by 564 some shell scripts. To install it, type 'make install' in 565 src/etc, or simply copy the file over. 56620061222: 567 Install binaries in the right order because the new readdir 568 implementation and the new mount program are incompatible 569 with older kernels and the new kernels require the new mount. 570 # cd /usr/src 571 # make includes 572 # make libraries 573 # make cmds 574 # make depend 575 # cd /usr/src/tools 576 # make hdboot 577 # make install 578 # cd .. 579 # make install 580 Installing fails for boot. Reboot the system 581 # reboot -x 'unset image; boot' 582 Now install everything 583 # cd /usr/src 584 # make install 58520060818: 586 You need flex in your $PATH, which has become part of the base 587 system. This needs bigger binaries. 588 If you don't have flex yet, you can compile it first by doing: 589 # cp /usr/src/etc/binary_sizes* /etc 590 # binsizes big 591 # cd /usr/src/commands/flex-2.5.4 592 # sh build 593