From 8533943c3fc87817c3c3aa59536ae223ed81ca9e Mon Sep 17 00:00:00 2001 From: Lionel Sambuc Date: Fri, 1 Aug 2014 14:58:40 +0200 Subject: [PATCH] Clearing history in docs/UPDATING As the ABI breaks everything, there is no point to keep the full source upgrade documentation tweaks preceding the merge. Change-Id: I1d5dcc7a7586e6aabd6b671dc2693f4fc9c5391c --- docs/UPDATING | 603 +------------------------------------------------- 1 file changed, 11 insertions(+), 592 deletions(-) diff --git a/docs/UPDATING b/docs/UPDATING index d45b6a93b..c3f237f70 100644 --- a/docs/UPDATING +++ b/docs/UPDATING @@ -1,592 +1,11 @@ -20130711: - Texinfo needs itself to generate its manual pages. As it is not - yet installed on the system it fails to find the default makeinfo - tool. So we have to first compile it, then install it will specifying - the full path to makeinfo (Both commands have to be run, in the given - sequence): - - # make -C gnu/usr.bin/texinfo all - # make -C gnu/usr.bin/texinfo all install TOOL_MAKEINFO=/usr/src/gnu/usr.bin/texinfo/makeinfo/makeinfo - -20130422: - The ARM build no longer requires you to build as root user you - therefore need to wipe (or chmod) your build generated files - and start building using the -U option of build.sh. - -20130312: - /bin/ksh was imported and needs to be added to your /etc/shells. - Run this command to add it: - - # echo "/bin/ksh" >> /etc/shells - -20130306: - For people building ARM images, the procedure has changed - a bit. You need a full FS to boot now. In short, you need - to use the new in-tree script to make a full SD image. See - http://wiki.minix3.org/en/DevelopersGuide/MinixOnARM - for details. - -20130201: - Replace our native ln with NetBSD version. - - As our native ln is a hard link to cp, simply overwriting ln with - the new version would cause mv, cp, etc to stop working. - - Do this BEFORE a 'make build': - - # rm /bin/ln - # cp /bin/cp /bin/ln - - Then 'make build' as usual. - -20130130: - With the shell update, and following update of 'test', some - modifications are needed in .profile and .ashrc. - If you use the defaults, simply execute the following for all - of your users: - - # cp etc/ast/.ashrc ~/ - # cp etc/ast/.profile ~/ - -20130114: - The terminfo update is also linked to the databases functions, - which means the tool used to generate the termcap entries has to - be rebuild with the new libraries before creating a valid - terminfo DB. To resolve this issue we have to do two (2) full - build of the system. The simplest is to do the following: - - # make build && make build && reboot - -20121207: - The join and lorder tools have been upgraded. Build them first: - - # make -C usr.bin/lorder clean all install - # make -C usr.bin/join clean all install - # make -C usr.bin/tic clean all install - # make -C usr.bin/nbperf clean all install - - Then do a "make build". - -20121205: - Following the terminfo update, some new tools are now used during - the build. Execute the following to install them: - # make -C usr.bin/nbperf all install - # make -C usr.bin/lorder all install - # make -C usr.bin/join all install - # make -C usr.bin/tic all install - -20121205: - The tsort tool has been also upgraded and is now also used during - the build: - # make -C usr.bin/tsort all install - # cp share/mk/* /usr/share/mk - -20121205: - lorder requires a newer version of sort, so to ensure it is present - do the following: - # make -C usr.bin/sort clean all install - -20121127: - /etc/mtab is now obsoleted by /proc/mounts. You need to create a - symlink: - - # rm /etc/mtab - # ln -s /proc/mounts /etc/mtab - -20121116: - To make the build system less verbose: - - # cp /usr/src/etc/make.conf /etc - -20121115: - Before your first native build you need to update /usr/share/mk. - # rm /usr/share/mk/* - # cp /usr/src/share/mk/* /usr/share/mk - - With the update, it is now recommended to use the following make - targets : - - "build" (i.e., make build) instead of "world", which is now obsoleted. - - There is some differences between make build and make world. namely: - - make build is NOT automatically followed by make etcforce. - - make build is by default preceded by a make clean, to prevent that - use the following command: - # make build MKUPDATE=yes - - It is now possible to crosscompile minix on minix, if you have - not already followed the previous steps, you will need to do the - following before using the build.sh script: - # make etcforce - -20120927: - Building a new boot image requires the current mkfs.mfs. - # make -C usr.sbin/mkfs.mfs clean all install - -20120703: - The device manager(devman) is now started automatically during the - mount -a operation. As fstab is generated during installation it is - required to manually insert the following entry in fstab. Failing to - do so will result in the devmand daemon to be able to open the events - file in /sys. - - none /sys devman rw,rslabel=devman 0 0 - -20120608: - New install and mk files require the following steps: - - # cp /usr/src/share/mk/*.mk /usr/share/mk - # cd /usr/src - # make -C usr.bin/xinstall all - # cp usr.bin/xinstall/xinstall /usr/bin/install - # rm /bin/install - - then do - # make clean world - -20120510: - WARNING: the shared libraries major revision set to 0 will break - existing dynamically linked binaries if they exist. - - There are two risks. One: existing binaries won't find the current - libraries; two: linking binaries with both majors present will link - them in twice. So the previous libraries have to be removed. - - . re-build world statically first if necessary - . remove libraries from /lib and /usr/lib - . then build world - -20120416: - Upgrade your clang to clang-2.9nb6 or clang-3.1nb3 to be able to - build shared libraries and dynamically linked executables. The - system will keep working without them, but a dynamic-capable - system will be a requirement soon. - -20120413: - Boot loader menu now has an option to boot into single user mode. To - get the menu option do: - - # cp /usr/src/etc/boot.cfg.default /etc - # update_bootcfg - -20120402: - an installed genassym is required to build the kernel: - # make -C usr.bin/genassym install - -20120328: - The boot loader now defaults to 115200 baud rate to make booting over - serial more pleasant. To install the new boot loader do - - # cd /usr/src/sys - # make clean install - # updateboot - - To boot over serial add the following to /etc/boot.cfg.local (create - the file if not present): - menu=Start latest serial MINIX 3:load_mods /boot/minix_latest/mod*;multiboot /boot/minix_latest/kernel rootdevname=c0d0p0s0 cttyline=0 cttybaud=115200 - consdev=com0 - - To install the new boot configuration run - - # update_bootcfg - -20120306: - The base system only looks in /usr/pkg/compiler-rt/lib now, so - -L/usr/pkg/lib is gone. - Please make sure you have the latest compiler-rt package - installed. - -20120214: - Compiling everything with clang (previous entry) depends on a - relatively new clang package. Please make sure you have at - least clang-2.9nb3 installed. The symptom of an old clang being - used is an assert(inited) firing, e.g. after rebuilding make. - -20120214: - Full switch to clang/ELF. ack is no longer supported. - - clang is the ELF-generating compiler in the base system, gcc is - available as a package. - - To boot ELF-format images, either reinstall your whole system, - thereby getting the netbsd-based boot loader, or use the boot - monitor as documented at - http://wiki.minix3.org/en/UsersGuide/BootMonitor - - Single copies of ELF boot files are also stored in /boot on - make hdboot as a boot monitor compatability measure. In short, - to boot the ELF image in /boot using the boot monitor, - do "mb=1" and "kernel=/boot/kernel", then "boot" in the boot - monitor. - - Workaround for header file timestamps causing perpetual recompiles: - # find /usr/pkg -name '*.h' | xargs touch - - Now that CC is clang instead of ack (cc), the depend files will - be out of date, so to make world, do: - # make cleandepend clean world - -20120213 - Replace VFS with AVFS - - In case you were running AVFS by doing - 'BUILDAVFS=yes make clean world', you now have to do a - 'make clean cleandepend world' instead of a normal 'make clean world'. - -20120202 - Rename installboot to installboot_minix. - - Do this BEFORE a 'make world': - # rm -f /usr/bin/installboot /usr/sbin/installboot - # make -C boot/installboot clean install - # make -C usr.sbin/installboot clean install - Then 'make clean world' as usual. - -20120119: - Follow up to previous entry. The same problem also exists for - the man pages. - - Do this BEFORE a 'make world': - # rm /usr/man/man1/rm.1 - # cp /usr/man/man1/cp.1 /usr/man/man1/rm.1 - Then 'make clean world' as usual. - -20120112: - Replace our native rm and rmdir with NetBSD version. - - As our native rm is a hard link to cp, simply overwriting rm with - the new version would cause mv, cp, ln, etc to stop working. - - Do this BEFORE a 'make world': - # rm /bin/rm - # cp /bin/cp /bin/rm - Then 'make clean world' as usual. - -20111222: - This update requires /etc/fstab having the new format. - - The latest mkfs.mfs and fsck.mfs must be installed in - /sbin when building a new image, and booting with the new mfs, - and the new system rc script must be installed that invokes the new - fsck driver. - - Do this BEFORE a 'make world': - # make clean etcfiles etcforce includes libraries - # make -C commands/mkfs.mfs clean install - # make -C commands/fsck.mfs clean install - Then 'make clean world' as usual. - -20111212: - After a successful "make world", issue the following commands: - # cd /dev - # MAKEDEV fbd - -20111109: - Switch to NetBSD passwd system. - - You have to bootstrap pwd_mkdb: - # make clean includes elf-libraries - # make -C usr.sbin/pwd_mkdb install - - Now build world. WARNING: this will blind your system to - /etc/shadow, making current user accounts vanish. Updating the - group file is necessary to add a 'users' group so the new stock - useradd will work. - - # make clean world - # cp etc/group /etc/group - - The new shadow file is /etc/master.passwd. Add your old user - accounts back with useradd(8), groups with groupadd(8), and - set a root pw with passwd(1) if you want. Use vipw(8) to edit - /etc/master.passwd if you want. See useradd(8) to get started - with the new pw format. Test your new system now by logging in. - - Once you're satisfied your new system works, remove the old - adduser, and rely exclusively on the new useradd and - master.passwd. - # rm /usr/bin/adduser - # mv /etc/shadow /etc/shadow.orig - - pwdauth is updated so that current binaries (e.g. sshd) will - work with the new pw db. - - By default your new users are in the 'users' group. Add yourself - to the 'operator' group if you want to be able to su without - typing in the password. - -20111109: - fstab format change. /etc/rc reads both formats for a while. - Please convert your /etc/fstab to the new format though as - the system will assume the new format in the future. - - A helper script is in etc/. Example: - # sh etc/newfstab.sh /etc/fstab >newfstab - (Don't redirect to /etc/fstab directly as the shell will - truncate it before it can be read.) - -20110928: - Update your /usr/etc/daily and /etc/man.conf if you - want to fully enjoy the manpage fixes. - -20110817: - To use the new asynchronous version of VFS do: - # BUILDAVFS=yes make cleandepend world - - To switch back to the normal VFS do: - # make cleandepend world - - By default the old VFS and PFS are built and included in the boot - image. AVFS is a work in progress and not yet mature. Use at your own - risk. -20110722: - To install the new mkdep: - # cp /usr/bin/mkdep /usr/bin/ackmkdep - # make elf-libraries - # cd usr.bin/mkdep - # touch findcc.d mkdep.d .depend - # make install - -20110716: - To install libterminfo and terminfo database, you need - the new stat: - # cd /usr/src/usr.bin/stat - # make clean install - - You must create a directory /usr/share/terminfo for terminfo database - to be installed. - # make -C etc install - - Then make clean world as normal. - -20110708 - * VFS and installed MFSes must be in sync before and after this change * - - You must update the GNU headers. - # cd /usr/src - # make gnu-includes - - You must rebuild both MFS and VFS (including those one in the image). - Either make world or do the following: - # cd /usr/src/servers/mfs - # make install - # cd /usr/src/servers/vfs - # make install - # cd /usr/src/tools - # make hdboot - # shutdown -r now - -20110701: - # rm -rf /usr/include /usr/netbsd - # make etcfiles includes cleandepend depend gnu-includes - - DOWNGRADING: - Important: this automatically updates your /usr/lib/descr, - something you will have to revert manually if you - want to go back a revision! Previous to this - revision, you do this by: - # cp commands/acd/acd.descr /usr/lib/descr - Repeating the above commands to make sure your /usr/include - is re-acked is probably a good idea too for going back revisions. - - This change moves - 1. /usr/include to /usr/include.ack - 2. /usr/netbsd/include to /usr/include - - Reduce compiler cases to only two: - 1. ack, a.out, minix headers (moved to /usr/include.ack), - minix libc - 2. gcc/clang, elf, netbsd headers (moved to /usr/include), - netbsd libc (moved to /usr/lib) - - So this obsoletes the /usr/netbsd hierarchy. - - There are no specific UPDATING instructions, but you should know - that starting with this version, gcc/clang use the netbsd libc and - headers system exclusively, and those files are in the standard - locations now. It's the first step to switching completely and - simplifying building. - -20110629: - Rebuild m4: - make -C usr.bin/m4 install - -20110629: - You must install clang. By default, it is used to build the - elf libraries and some userland utilities. - -20110628: - Since buildworld will also build the elf-libraries, you - must follow the process in - http://wiki.minix3.org/en/UsersGuide/ELFSwitch - -20110624: - (Next release bumped to MINIX 3.2.0.) - ELF support in the base system. /usr/lib libraries - will be in ELF format once you upgrade. - These were know as 'gcc format', but now more properly refered - to as 'elf format,' as they are shared between gcc and clang. - To start producing ELF, please see: - http://wiki.minix3.org/en/UsersGuide/ELFSwitch - - To create the /usr/netbsd hierarchy: - # cd /usr/src - # umount /proc - # make etcfiles - # mount -e -t procfs none /proc - -20110225: - Create ddekit include dirs: - mkdir -p /usr/include/ddekit/minix - -20100921: - gcc format libraries are created in /usr/lib now, - so throw out /usr/gnu/lib/ if you want to make sure you - don't pick up the old ones. - (with pkgsrc and this, all of /usr/gnu is obsolete now.) - -20100914: - mkdir /proc - chmod 555 /proc - -20100827: - From now on, the rc scripts, recovery scripts and system.conf in /etc - and /usr/etc are updated automatically by make world. If you want to - change them, do so in the source tree. If you make changes to your - settings in /etc and /usr/etc, merge them into the the source tree - before issuing a make world. - -20100805: - mkfs and fsck have been renamed to mkfs.mfs and fsck.mfs, respectively. - Moreover, they have been moved to /sbin, which is by default not in - PATH. Edit your .ashrc (or equivalent) to also include /sbin in PATH. - Also, first issue a 'make commands' before building world. - -20100802: - /usr/src/etc/system.conf updated to include ext2 file server: copy it - (or merge it) to /etc/system.conf. - -20100719: - If you installed using a 3.1.6 image (or earlier) and haven't updated - the boot monitor since r6246 you need to do so now: - cd /usr/src/boot; make install; sh updateboot.sh - -20100714: - mknod /dev/uds c 18 0 - chmod 666 /dev/uds - -20100713: - /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc. - /usr/src/etc/system.conf updated to include boot sys services: copy - it (or merge it) to /etc/system.conf. - *** WARNING ***: this change breaks binary compatibility with - old images. Use only newly compiled images (make clean world - the first time) or download and install the latest ISO. -20100705: - /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. - /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc. - Perform some cleanup (optional): - # rm -f /sbin/tty /sbin/log -20100630: - protocol change between service and rs: be sure to compile commands - together with the system image and don't use the new userspace with - an old image (or vice versa); it is recommended to replace - /boot/image_big with the newly compiled image to keep option 1 in the - boot menu working. -20100625: - /etc/mk has been moved to /usr/share/mk. You will need to - create /usr/share/mk manually. - # cp -r /usr/src/share/mk /usr/share/ - # cd /usr/src; make -m /usr/share/mk world -20100515: - /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. - /etc/inet.conf is now line-based; if you have hand-edited this file - before, then make sure that you do not have configurations in there - that span multiple lines. -20100512: - yacc and lex updated - # make includes - # cd commands/yacc - # make depend all install - # cd commands/lex - # LEX=flex make depend all install -20100506: - /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. -20100410: - /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. - /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc. -20100408: - /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc. -20100318: - Gas2ack updates: Run 'make install' in commands/i386/gas2ack -20100317: - /usr/src/etc/system.conf updated to ignore default kernel calls: copy - it (or merge it) to /etc/system.conf. - The hello driver (/dev/hello) added to the distribution: - # cd /usr/src/commands/scripts && make clean install - # cd /dev && MAKEDEV hello -20100316: - /usr/man/man9 is required - # mkdir /usr/man/man9 -20100308: - Include directory reorganization: - # mv /usr/include/ibm /usr/include/i386 - # ln -s /usr/include/i386 /usr/include/machine - Install(1) updates: - # cd commands/simple && make /bin/install -20100303: - Gas2ack updates: Run 'make install' in commands/i386/gas2ack -20100215: - Make(1) has been replaced: Run 'make install' in commands/make - Mkdep updates: Copy commands/scripts/mkdep.sh to /usr/bin/mkdep - Make(1) needs mkfiles: Copy files in etc/mk to /etc/mk - ACK update: Copy commands/i386/acd.descr to /usr/lib/descr - End.a renamed: - -Copy /usr/lib/i86/end.a to /usr/lib/i86/libend.a - -Copy /usr/lib/i386/end.a to /usr/lib/i386/libend.a - -Copy /usr/gnu/lib/end.a to /usr/gnu/lib/libend.a - Asmconv updates: Run 'make install' in commands/i386/asmconv -20091212: - /etc/drivers.conf has been renamed to /etc/system.conf. - user "service" has been added to password file /etc/passwd. -20091006 (r5422): - OSS requires an improved make to be compiled; run "make install" - in /usr/src/commands/make before running "make world". -20070212 (r2751): - mkfs needs more memory to make an image; chmem it or do - # touch mkfs.c ; make /usr/bin/mkfs - in /usr/src/commands/simple. -20070118: - drivers.conf has been updated to include an ACL for mfs. it has - to be installed before rebooting after an update of the mount command. -20061222: - The archictecture-dependent/-independent split needs ARCH= - in /etc/make.conf, included by some Makefiles and sourced by - some shell scripts. To install it, type 'make install' in - src/etc, or simply copy the file over. -20061222: - Install binaries in the right order because the new readdir - implementation and the new mount program are incompatible - with older kernels and the new kernels require the new mount. - # cd /usr/src - # make includes - # make libraries - # make cmds - # make depend - # cd /usr/src/tools - # make hdboot - # make install - # cd .. - # make install - Installing fails for boot. Reboot the system - # reboot -x 'unset image; boot' - Now install everything - # cd /usr/src - # make install -20060818: - You need flex in your $PATH, which has become part of the base - system. This needs bigger binaries. - If you don't have flex yet, you can compile it first by doing: - # cp /usr/src/etc/binary_sizes* /etc - # binsizes big - # cd /usr/src/commands/flex-2.5.4 - # sh build +20140801: + As the ABI went under heavy changes it is not possible to do a source + upgrade (make build) between: + commit 7ebdb97a28234e0181f93a8b786331dda507482 + Date: Sun Feb 16 20:08:20 2014 +0000 + and + commit f1deff716ea30b28693c16f8e48ba1a369e2e922 + Date: Thu Jul 31 18:36:24 2014 +0200 + + WARNING: Attempting to do so will break your system beyond repair, and + require a full reinstallation. You have been warned.