Updating Information for MidnightBSD users Items affecting the mports and packages system can be found in /usr/mports/UPDATING. 20070401: Importing propolice into MidnightBSD. Propolice is going to provide us with much greater security and stability in the long run. If upgrading from a pre-propolice system, please follow the these instructions: cd /usr/src/lib/libc && make obj && make && make install cd /usr/src/gnu/usr.bin/cc && make obj && make && make install cd /usr/lib/libpthread && make obj && make && make install cd /usr/lib/libthr && make obj && make && make install buildworld and kernel It is adviced that any mports which were installed and/or built prior to the propolice update also be updated. If any errors or issue are encounted, please contact security@midnightbsd.org and we will be sure to investigate and come up with an expeditious fix. 20070314: Remove send-pr from src. Switch to NetBSD's gzip. Bump MBSD minor revision. 20070313: Imported OpenSSH 4.6p1. Imported FreeBSD's libarchive and updated tar to work with it. Disabled debug statements cluttering up /var/log/messages for the tcp autobuf patch applied previously. 20070312: Synced several audio changes from FreeBSD 6.1. Removed the BSD Daemon files from src/share. 20070308: Added mfi which supports LSI Logic MegaRAID SAS devices including the Dell perc5i. 20070206: Imported OpenBSD's sudo into source. Please install /usr/src/usr.bin/sudo/lib first before building. Those who install from a snapshot after this date will not be effected. 20070119: Added audit group. Be sure to add audit to your /etc/group file before installing world. hostapd was updated to 0.4.8. An accidental commit in usr.sbin/bluetooth/hccontrol was fixed to unbreak world. wpa_supplicant was updated. For stability and compatibility reasons, it was decided that MidnightBSD sync with FreeBSD 6.1 Release. Nearly every change between the original fork date of February 24, 2006 and the release of FreeBSD 6.1 in May 2006 will be merged. Beyond this, MidnightBSD will be a "real" fork and will not sync every little change with FreeBSD. 20061231: Updated COPYRIGHT for 2007. Updated and bumped libutil after importing NetBSD efun(3) functions. Added MidnightBSD_version and bumped the FreeBSD version as we've synced all commits between the fork and that version. It is now safe to assume MidnightBSD is compatible with FreeBSD RELENG_6 from Feb 26, 2006. Added spell(1) and deroff(1) from NetBSD. Also added additional dict files to work with it. /usr/share/dict/american, /usr/share/dict/british and /usr/share/dict/special/math Numerous man page and bug fixes. 20061226: Setup /usr/share/examples/cvsup SUPfiles for the new MidnightBSD CVSup server. Fix a bug in burncd where it would continue forever while erasing CDRW media. Add csup to /usr/bin. csup is a CVSup replacement written in C. Fixed a bug with bsnmpd build from Oct 30. Corrected some race conditions and fixed a few bugs in geom. Imported changes from FreeBSD RELENG_6. 20061225: Fixed a typo in src/lib/libc/sparc64/fpu/fpu_implode.c that caused long double to long and long long conversion of negative numbers to always result in -1. 20061221: Fixed acpi_battery.c to not report an ERROR if no batteries are present. Performed some minor updates on the RL and RE NIC drivers. RL should no longer panic when trying to print errors. Corrected a bug with TTY. 20061218: Corrected a bug with libpthread where newly created suspended threads don't get scheduled. 20061206: Fixed a typo with the firewire security patch. 20061129: Minor cleanups to utilities in bin. Fixed msdos file system short file name behavior to match FreeBSD. 20061031: Updated man pages in section 7. 20061030: Updated sys/dev/drm to support intel 915 and radeon r300 cards properly. Synced snmpd with FreeBSD-stable. Fixed a bug in rm which could cause data loss. 20061027: Added Intel ICH8 and nForce 5 support to ATA. cam, mpt, random, kbdmux, atkbd, and usb were updated. Changes to clearing registers on SSE enabled processors (i386) commited. lukemftpd updated. openssh rc script was altered which effects initial seeding. 20061014: Workaround for em driver problem on shared IRQ. Started removal of alpha support. 20061013: ATA driver was updated. USB/USB1/USB2 types added. 20061010: OpenSSH was updated to 4.4p1. 20060909: OpenNTPD was added to MidnightBSD. Run make delete-old to remove the old ntpd daemon. cat has a new option -D which allows you to timestamp output on a per line basis. The kernel has a keyboard mux which allows you to have multiple keyboard connected simultaneously. USB keyboard support was also improved with this patch. The Intel em driver was updated. Network performance was greatly increased on many systems. Additional models are supported. The ATA driver was patched to fix a potential deadlock. Bind was patched to fix a potential denial of service condition. 20060817: ksh has been added to the base system. If you previously had the port installed, it will be overwritten on the next buildworld. To build a kernel ----------------- If you are updating from a prior version of MidnightBSD (even one just a few days old), you should follow this procedure. With a /usr/obj tree with a fresh buildworld, make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE To test a kernel once --------------------- If you just want to boot a kernel once (because you are not sure if it works, or if you want to boot a known bad kernel to provide debugging information) run make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel nextboot -k testkernel To just build a kernel when you know that it won't mess you up -------------------------------------------------------------- This assumes you are already running a 6.X system. Replace ${arch} with the architecture of your machine (e.g. "i386", "amd64", "ia64", "pc98", "sparc64", etc). cd src/sys/${arch}/conf config KERNEL_NAME_HERE cd ../compile/KERNEL_NAME_HERE make depend make make install If this fails, go to the "To build a kernel" section. To rebuild everything and install it on the current system. ----------------------------------------------------------- # Note: sometimes if you are running current you gotta do more than # is listed here if you are upgrading from a really old current. make buildworld make kernel KERNCONF=YOUR_KERNEL_HERE [1] [3] mergemaster -p [5] make installworld make delete-old mergemaster [4] To cross-install current onto a separate partition -------------------------------------------------- # In this approach we use a separate partition to hold # current's root, 'usr', and 'var' directories. A partition # holding "/", "/usr" and "/var" should be about 2GB in # size. make buildworld make buildkernel KERNCONF=YOUR_KERNEL_HERE make installworld DESTDIR=${CURRENT_ROOT} cd src/etc; make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd To upgrade in-place from 5.x-stable or higher to 6.x-stable ----------------------------------------------------------- make buildworld [9] make kernel KERNCONF=YOUR_KERNEL_HERE [8] [1] [3] mergemaster -p [5] make installworld make delete-old mergemaster -i [4] Make sure that you've read the UPDATING file to understand the tweaks to various things you need. At this point in the life cycle of current, things change often and you are on your own to cope. The defaults can also change, so please read ALL of the UPDATING entries. Also, if you are tracking -current, you must be subscribed to freebsd-current@freebsd.org. Make sure that before you update your sources that you have read and understood all the recent messages there. If in doubt, please track -stable which has much fewer pitfalls. [1] If you have third party modules, such as vmware, you should disable them at this point so they don't crash your system on reboot. [3] From the bootblocks, boot -s, and then do fsck -p mount -u / mount -a cd src adjkerntz -i # if CMOS is wall time Also, when doing a major release upgrade, it is required that you boot into single user mode to do the installworld. [4] Note: This step is non-optional. Failure to do this step can result in a significant reduction in the functionality of the system. Attempting to do it by hand is not recommended and those that pursue this avenue should read this file carefully, as well as the archives of freebsd-current and freebsd-hackers mailing lists for potential gotchas. [5] Usually this step is a noop. However, from time to time you may need to do this if you get unknown user in the following step. It never hurts to do it all the time. [8] In order to have a kernel that can run the 5.x binaries needed to do an installworld, you must include the COMPAT_FREEBSD5 option in your kernel. Failure to do so may leave you with a system that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is required to run the 5.x binaries on more recent kernels. Make sure that you merge any new devices from GENERIC since the last time you updated your kernel config file. [9] When checking out sources, you must include the -P flag to have cvs prune empty directories. If CPUTYPE is defined in your /etc/make.conf, make sure to use the "?=" instead of the "=" assignment operator, so that buildworld can override the CPUTYPE if it needs to. MAKEOBJDIRPREFIX must be defined in an environment variable, and not on the command line, or in /etc/make.conf. buildworld will warn if it is improperly defined. Copyright information: Copyright 1998-2005 M. Warner Losh. All Rights Reserved. Redistribution, publication, translation and use, with or without modification, in full or in part, in any form or format of this document are permitted without further permission from the author. THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. If you find this document useful, and you want to, you may buy the author a beer. Contact Warner Losh if you have any questions about your use of this document. $FreeBSD: src/UPDATING,v 1.416.2.18 2006/02/22 11:51:57 yar Exp $ $MidnightBSD: src/UPDATING,v 1.16 2007/04/02 00:48:02 archite Exp $