-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=<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.