$NetBSD: README,v 1.11 2004/09/11 19:01:40 jlam Exp $ 0 Introduction ============== libnbcompat builds and installs a portable NetBSD-compatibility library that supplies routines missing on operating systems that are used by the family of pkgsrc bootstrap tools. Note that libnbcompat is very much a work-in-progress. Only the functions that are directly used by the bootstrap tools are implemented in the library. At the moment, this includes the following packages: archivers/pax pkgtools/mtree pkgtools/pkg_install textproc/nbsed A script, src2nbcompat, is also included in the sources that simplifies importing software from the NetBSD src module into pkgsrc. 1 Updating this package ======================= Please take care when updating this package. Do *not* simply commit changes to this package and ask for testers. This package is too fundamental to the proper bootstrapping of pkgsrc to let accidental breakage seep in. Proper methodology for updating this package is: (1) Post a tarball at a publicly accessible URL containing the pkgtools/libnbcompat directory. (2) Ask on the tech-pkg@NetBSD.org mailing list for testers. (3) Fix any breakage on non-NetBSD operating systems before committing. 2 Tested operating systems ========================== *NOTE* *NOTE* This section should be kept up-to-date with the results for *NOTE* the most recent libnbcompat. *NOTE* libnbcompat-20040911 has been tested to build and install correctly on the following operating systems: FreeBSD-4.8/i386 NetBSD-1.6.2/i386 Solaris 9/sparc 3 Usage ======= This library is intended to simplify porting NetBSD software. To that end, the changes to NetBSD sources to use libnbcompat are minor. The procedure is: (1) Add #include at the top of the source files that include system headers, but below the inclusion of any "config.h". (2) Surround each system header file included in the source file with #if HAVE__H ... #endif. You may need to add additional headers present on other operating systems that define any system-supplied functions, e.g. . The src2nbcompat script included in the libncompat sources can be used to automate this process to some extent. It is intended to import sources from a NetBSD src checkout into pkgsrc. It will copy the sources from a directory and automatically insert the proper lines into the files. For example, to import the pkg_install sources into pkgsrc, run: src2nbcompat \ /usr/src/usr.sbin/pkg_install \ /usr/pkgsrc/pkgtools/pkg_install/files You will need to run a "cvs diff" on the imported files to check that any local changes are preserved across imports.