New with 2.2: Small tweaks to all scripts to eliminate -w warnings Small changes to improve check_root_fs Changes to write_rescue_disk to warn about diskette space before writing kernel New with 2.1: Configure fixed to ignore errors from ldconfig. Configure now checks dd for the seek error. check_root_fs bug fixed to handle glibc-2.2. yard_glob now does explicit environment variable substitutions, because Perl 5.6 changed the way glob() works, and it no longer substitutes environment variables. (Thanks to Andras Nagy for reporting this.) Many changes to Bootdisk_Contents.in (mostly unnecessary files commented out). Existing file selection should fit on a diskette without pruning. New with 2.0: Major version change. Lots of configuration changes to facilitate packaging: = configure script now takes '--prefix DIR' arg like GNU configure, with same effect (all destinations are made relative to DIR). = distclean target makes directories pristine. = Installation now requires make, make install and make customize. Configuration recognizes ix86 and m68K. rdev is optional for m68K. ldconfig is no longer required on the root fs; yard uses its -r flag and runs it from the hard disk. Provided minimal manpages for the scripts, to satisfy Debian. Binaries and libraries are now objcopied with --strip-all, saving space. Bug fixed: check_root_fs ignores dev=none or type=auto. check_root_fs checks version of libc against libnss_SERVICE files, catching common errors. Fixed bug with kernel_version() so it should work with built and pre-packaged kernels. New with 1.18: Bug fixed: in inittab.mingetty changed wait->sysinit for SuSE/mingetty. Bug fixed: copy modules with strip-debug rather than strip-all. New with 1.17: Bug fixed: RELEASE environment variable wasn't getting set. Bug fixed: make_root_fs only includes latest ld-linux.so loader now. make_root_fs now strips dynamically loaded libraries (including PAM and NSS libs); previously they were excluded. check_root_fs now checks /etc/pam.conf and /etc/nsswitch.conf Cleaned up default Bootdisk_contents; pared down libnss stuff to bare minimum (just files). Updated yard_doc.sgml to mention dynamic libraries; text taken from Bootdisk-HOWTO.sgml. New with 1.16: Changed kernel_version so that it doesn't rely on file(1). New version contributed by Andreas Degert . Various tweaks to check_root_fs New with 1.15: yard_utils recognizes that "linux x86/kernel" is a valid kernel id Changes to accomodate Perl versions back to 5.002: Use of constants removed Use of embedded my's removed Changed $OSNAME to $Config{'osname'} in configure New with 1.14: Bug fixes Bootdisk_Contents now incorporates material on using yard with Redhat 5.0 Various code improvements -- all scripts under 'use strict' now Documentation updated Discarded convert_config script New with 1.13: Added configuration check for broken lstat/-l, plus doc explaining why. Some people were reporting Yard errors caused by Perl's lstat interface being misconfigured/broken. (Thanks to Murugan Subramanian for helping chase this down). Added checking of CFG::disk_set config variable. check_root_fs no longer reports unresolved symlinks involving /proc. Improved/fixed symlink checking Unintelligible `file` output on a library causes a fatal error now. Added lines for pam.conf and pam libraries to default Bootdisk_Contents. Added a skeleton pam.conf to Replacements/etc/. check_root_fs does basic scanning of pam.conf and /etc/pam.d/*. Improved create_replacements check for proc fs. New with 1.12: Improved/fixed inclusion of library dependency checking. Added mingetty for SuSE (from Stephan Hegel) Patches/suggestions from J.Kamens: Changed root's homedir to /root in ./Replacements/etc/passwd Ignore symbolic links to /OLDROOT New with 1.11: Fixed objcopy flag, which wasn't set properly after code reorg. Improved checks for ld.so and ld-linux.so so multiple versions not grabbed. Root disk files now chown'd and chmod'd like originals. Eradicated references to /dev/ram New with 1.10: Bug fixes: CFG::device not allowed to be a symbolic link, which caused problems. All symbolic links on rescue disk made relative. Order of symlink/dir/file creation fixed. cp check moved to configure Various checks added. New with 1.9: Configuration and installation now supported. configure script provided, and entire package modified to use configuration choices. Fixed various documentation inconsistencies. New with 1.8: Minor changes: Configuration variable CFG::kernel_version overrides Yard's idea. Check of cp bug is unconditional. Code cleanup, docs update. New with 1.7: Bugs fixed: Yard assumed "x => y" from ldd meant that y is a real file, which isn't always the case. A few configuration variables were not in the CFG package. Added test for cp 3.13 bug, which causes problems for Yard. Also included source patch and patched binary in extras directory. (Thanks to Horst von Brand). Docs reorganized and SGMLified. Docs were prepared with the linuxdoc-sgml package. The docs directory contains text, Postscript and SGML source. Yard now has a minimal home page on http://www.cs.umass.edu/~fawcett/yard The latest sources, docs and patches should always be there. New with 1.6: All minor changes. - Got rid of "use vars (...)" which doesn't work with 5.001. Accordingly, "use strict" is now "use strict qw(subs refs)". - Additions from Horst von Brand: - .profile for root - globbing in make_root_fs is more consistent. - messages and checks in warn_about_module_dependencies improved. New with 1.5: - LILO is no longer required. If configuration variable $use_lilo == 0, write_rescue_disk will write kernel directly without LILO. - The configuration variables $lilo_compact and $lilo_append are obsolete. "make copies" now creates an initial ./Replacements/etc/lilo.conf, which can be edited. This is more convenient and more flexible. - write_rescue_disk offers to make a double-disk set if one isn't enough. - write_rescue_disk checks floppy drive for writeable disk. - write_rescue_disk puts a sentinel boot sector on the root floppy. - Additions to Bootdisk_Contents.in and Replacements/etc/rc for modules. - Replacement specifications "file1 <= file2" now search PATH for file2. - $yard_temp is now a configuration variable rather than an environment variable. - Scripts are directly executable and no longer have .pl extensions - Configuration variables now in CFG package. Bugs fixed: check_root_fs created OLDROOT mount points for swap partitions check_root_fs complained about NFS fstab entries include_file tried to dereference links into /proc bugs with space calculations Yard assumed any executable binary file was loadable (a.out or ELF) bug in Perl 5.001n circumvented New with 1.4: - Loopback devices can now be used. See 0_LOOPBACK for instructions. - "make copies" now runs a create_fstab script which adapts existing /etc/fstab. This script adds 'noauto' and puts mount points under /OLDROOT of the ramdisk. check_root_fs automatically creates these directories if they don't exist. - New configuration variable ($strip_objfiles) controls stripping of binaries and libraries as they're copied to rescue disk. - Device files are no longer treated specially, which clears up a few minor bugs. - If environment variable YARD_TEMP is set, uses value as a directory for log files. - make_root_fs now warns when two versions of a shared library are required. - check_root_fs now checks for circular symlinks as well as broken ones. - $RELEASE is no longer considered reliable and make_root_fs will issue a warning if you use it. If anyone knows how to derive it accurately from a kernel file, please contact me. - Bug fixes: FIFO devices not copied correctly. Double-counting of space occupied by library files. Faulty expansion of Bootdisk_Contents lines with multiple entries. - Other minor code improvements. New with 1.3: MAJOR: Kernel filesystem is now ext2 instead of minix, so minix is no longer needed for anything. Added prominent statements to README that ext2 and ramdisk support must be built-in to the boot kernel. Added wimpy automatic check for this. Yard now uses surrogate yard_glob if existing Perl glob fn is broken. Fixed bug that ignored replacement file when calculating library dependencies (thanks to J.Kamens). MINOR: Rearranged Bootdisk_Contents.in for people who take it more seriously than I do. Added inittab.agetty for people who care. Removed/etc/passwd from Replacements. C.Adams pointed out that using a cut-down passwd screws up user IDs when files are restored. write_rescue_disk will use an existing compressed root fs file ($rootfsz) if the file is newer than Bootdisk_Contents. Yard now provides RELEASE environment variable that contains release string (eg, 1.3.95) of chosen kernel, useful for specifying version-specific modules in Bootdisk_Contents. Added warning when user's glob expression matches nothing. check_root_fs now checks for circular symbolic links. Added ldd and uname to necessary progs. Added /dev/null to kernel fs.