I now have a patch for util-linux on freebsd-i386. It is definitely not finished and ready to merge. There are some things that need work still, but I'd like to find out what it needs for netbsd before continuing.

This is against 2.11u-2. Most of it is straightforward, except the changes to debian/rules, which are a bit drastic.

---Nathan
diff -urN util-linux-2.11u/MCONFIG util-linux-2.11u-freebsd/MCONFIG
--- util-linux-2.11u/MCONFIG    2002-11-07 01:06:47.000000000 -0500
+++ util-linux-2.11u-freebsd/MCONFIG    2002-11-01 13:38:25.000000000 -0500
@@ -11,6 +11,7 @@
 # Select for CPU i386 if the binaries must be able to run on an intel 386
 # (by default i486 code is generated, see below)
 CPU=$(shell uname -m)
+OS=$(shell uname -s | tr '[:upper:]' '[:lower:]')
 ARCH=$(shell echo $(CPU) | sed 's/i.86/intel/;s/arm.*/arm/')
 
 # If HAVE_PAM is set to "yes", then login, chfn, chsh, and newgrp
diff -urN util-linux-2.11u/Makefile util-linux-2.11u-freebsd/Makefile
--- util-linux-2.11u/Makefile   2001-07-01 14:59:39.000000000 -0400
+++ util-linux-2.11u-freebsd/Makefile   2002-11-02 00:18:17.000000000 -0500
@@ -8,6 +8,15 @@
 include ./make_include
 include ./MCONFIG
 
+ifeq "$(OS)" "freebsd"
+SUBDIRS=po \
+       lib \
+       getopt-1.1.2 \
+       login-utils \
+       misc-utils \
+       sys-utils \
+       text-utils
+else
 SUBDIRS=po \
        lib \
        getopt-1.1.2 \
@@ -19,6 +28,7 @@
        hwclock \
        sys-utils \
        text-utils
+endif
 
 .PHONEY: all install clean now
 all:   defines.h
diff -urN util-linux-2.11u/debian/mk/geninstall.pl 
util-linux-2.11u-freebsd/debian/mk/geninstall.pl
--- util-linux-2.11u/debian/mk/geninstall.pl    1969-12-31 19:00:00.000000000 
-0500
+++ util-linux-2.11u-freebsd/debian/mk/geninstall.pl    2002-11-07 
00:49:48.000000000 -0500
@@ -0,0 +1,68 @@
+#!/usr/bin/perl
+
+%varchtable=(
+       'bsd'           =>      '(free|net)bsd-.+',
+       'freebsd'       =>      'freebsd-.+',
+       'hurd'          =>      'hurd-.+',
+       'linux'         =>      '[^-]+',
+       'netbsd'        =>      'netbsd-.+'
+);
+sub varchmatch {
+       my ($arch,$varch)[EMAIL PROTECTED];
+       my $vre=$varchtable{$varch};
+
+       if($vre eq '') {
+               return(0);
+       }
+       if($arch=~/$vre/) {
+               return(1);
+       } else {
+               return(0);
+       }
+}
+
+sub evalarchrule {
+       my ($arch,@select)[EMAIL PROTECTED];
+       my $reversed=0;
+       my $t;
+
+       foreach $rule (@select) {
+               if($rule eq "all") {
+                       $reversed=1;
+                       next;
+               }
+               if($rule=~m/^!(.+)/) {
+                       $t=$1;
+                       $reversed=1;
+                       if(varchmatch($arch,$t) or $arch eq $t) {
+                               return(0);
+                       } else {
+                               next;
+                       }
+               }
+               if(varchmatch($arch,$rule) or $arch eq $rule) {
+                       return(1);
+               }
+       }
+       if($reversed) {
+               return(1);
+       } else {
+               return(0);
+       }
+}
+
+$arch=shift @ARGV;
+print "install:\n";
+while (<>) {
+       next if /^#/;   # handle comment lines
+       ($src,$select,$dest)=split(/\s+/);
+       @select=split(",",$select);
+       if(evalarchrule($arch,@select)) {
+               if($dest=~m#/[s]*bin#) {
+                       $flags='-m 755';
+               } else {
+                       $flags='-m 644';
+               }
+               print "\tinstall $flags $src debian/$dest\n";
+       }
+}
diff -urN util-linux-2.11u/debian/mk/install.in 
util-linux-2.11u-freebsd/debian/mk/install.in
--- util-linux-2.11u/debian/mk/install.in       1969-12-31 19:00:00.000000000 
-0500
+++ util-linux-2.11u-freebsd/debian/mk/install.in       2002-11-07 
00:50:28.000000000 -0500
@@ -0,0 +1,129 @@
+# source path                  arch                    install path
+HISTORY                                        all                             
tmp/usr/share/doc/util-linux/changelog
+HISTORY                                        all                             
tmp-util-linux-locales/usr/share/doc/util-linux-locales/changelog
+HISTORY                                        !freebsd-i386   
tmp-mount/usr/share/doc/mount/changelog
+HISTORY                                        all                             
tmp-bsd/usr/share/doc/bsdutils/changelog
+debian/README.script   all                             
tmp-bsd/usr/share/doc/bsdutils
+debian/README.Debian.hwclock   !freebsd-i386,!s390     
tmp/usr/share/doc/util-linux
+debian/changelog               all                             
tmp/usr/share/doc/util-linux/changelog.Debian
+debian/changelog               all                             
tmp-util-linux-locales/usr/share/doc/util-linux-locales/changelog.Debian
+debian/changelog               !freebsd-i386   
tmp-mount/usr/share/doc/mount/changelog.Debian
+debian/changelog               all                             
tmp-bsd/usr/share/doc/bsdutils/changelog.Debian
+debian/changelog.Debian-mount.old              !freebsd-i386           
tmp-mount/usr/share/doc/mount/changelog.Debian-mount.old
+debian/conffiles               !freebsd-i386,!s390     tmp/DEBIAN
+debian/fstab.example2  all                             
tmp/usr/share/doc/util-linux/examples
+debian/hwclock.sh              !freebsd-i386,!s390     tmp/etc/init.d
+debian/hwclockfirst.sh !freebsd-i386,!s390     tmp/etc/init.d
+debian/lintian-override        all                             
tmp/usr/share/lintian/overrides/util-linux
+debian/mime.util-linux all                             tmp/DEBIAN
+debian/mount.fstab             !freebsd-i386   
tmp-mount/usr/share/doc/mount/examples/fstab
+debian/postinst                        all                             
tmp/DEBIAN
+debian/postrm                  all                             tmp/DEBIAN
+debian/preinst                 all                             tmp/DEBIAN
+debian/prerm                   all                             tmp/DEBIAN
+debian/util-linux-locales.postinst             all             
tmp-util-linux-locales/DEBIAN
+debian/util-linux-locales.prerm                all             
tmp-util-linux-locales/DEBIAN
+debian/mount.postinst  !freebsd-i386           tmp-mount/DEBIAN
+debian/mount.prerm             !freebsd-i386           tmp-mount/DEBIAN
+debian/bsdutils.postinst       all                     tmp-bsd/DEBIAN
+debian/bsdutils.prerm          all                     tmp-bsd/DEBIAN
+disk-utils/blockdev            !freebsd-i386   tmp/sbin
+disk-utils/blockdev.8  !freebsd-i386   tmp/usr/share/man/man8
+disk-utils/elvtune             !freebsd-i386   tmp/usr/sbin
+disk-utils/elvtune.8   !freebsd-i386   tmp/usr/share/man/man8
+disk-utils/fdformat            !freebsd-i386   tmp/usr/bin
+disk-utils/fdformat.8  !freebsd-i386   tmp/usr/share/man/man8
+disk-utils/fsck.minix  !freebsd-i386,!sparc    tmp/sbin
+disk-utils/fsck.minix.8        !freebsd-i386,!sparc    tmp/usr/share/man/man8
+disk-utils/mkfs                        !freebsd-i386,!sparc    tmp/sbin
+disk-utils/mkfs.8              !freebsd-i386,!sparc    tmp/usr/share/man/man8
+disk-utils/mkfs.minix  !freebsd-i386,!sparc    tmp/sbin
+disk-utils/mkfs.minix.8        !freebsd-i386,!sparc    tmp/usr/share/man/man8
+disk-utils/mkswap              !freebsd-i386   tmp/sbin
+disk-utils/mkswap.8            !freebsd-i386   tmp/usr/share/man/man8
+disk-utils/raw                 !freebsd-i386   tmp/sbin
+disk-utils/raw.8               !freebsd-i386   tmp/usr/share/man/man8
+fdisk/README.cfdisk            !sparc,!freebsd-i386,!s390,!m68k        
tmp/usr/share/doc/util-linux
+fdisk/README.fdisk             !freebsd-i386,!s390,!m68k       
tmp/usr/share/doc/util-linux
+fdisk/sfdisk.examples  all                             
tmp/usr/share/doc/util-linux/examples
+fdisk/fdisk                            !freebsd-i386,!s390,!m68k       tmp/sbin
+fdisk/fdisk.8                  !freebsd-i386,!s390,!m68k       
tmp/usr/share/man/man8
+fdisk/cfdisk                   !sparc,!freebsd-i386,!s390,!m68k        tmp/sbin
+fdisk/cfdisk.8                 !sparc,!freebsd-i386,!s390,!m68k        
tmp/usr/share/man/man8
+fdisk/sfdisk                   !sparc,!freebsd-i386,!s390,!m68k        tmp/sbin
+fdisk/sfdisk.8                 !sparc,!freebsd-i386,!s390,!m68k        
tmp/usr/share/man/man8
+getopt-1.1.2/getopt            all                             tmp/usr/bin
+getopt-1.1.2/getopt.1  all                             tmp/usr/share/man/man1
+getopt-1.1.2/parse.bash        all                             
tmp/usr/share/doc/util-linux/examples
+getopt-1.1.2/parse.tcsh        all                             
tmp/usr/share/doc/util-linux/examples
+getopt-1.1.2/test.bash all                             
tmp/usr/share/doc/util-linux/examples
+getopt-1.1.2/test.tcsh all                             
tmp/usr/share/doc/util-linux/examples
+hwclock/hwclock                        !freebsd-i386,!s390     tmp/sbin
+hwclock/hwclock.8              !freebsd-i386,!s390     tmp/usr/share/man/man8
+login-utils/README.getty               all             
tmp/usr/share/doc/util-linux
+login-utils/README.modems-with-agetty  all             
tmp/usr/share/doc/util-linux
+login-utils/README.poeigl              all             
tmp/usr/share/doc/util-linux
+login-utils/agetty             all                             tmp/sbin
+login-utils/agetty.8   all                             tmp/usr/share/man/man8
+login-utils/wall               all                             tmp-bsd/usr/bin
+login-utils/wall.1             all                             
tmp-bsd/usr/share/man/man1
+misc-utils/chkdupexe   all                             tmp/usr/bin
+misc-utils/chkdupexe.1 all                             tmp/usr/share/man/man1
+misc-utils/ddate               all                             tmp/usr/bin
+misc-utils/ddate.1             all                             
tmp/usr/share/man/man1
+misc-utils/logger              all                             tmp-bsd/usr/bin
+misc-utils/logger.1            all                             
tmp-bsd/usr/share/man/man1
+misc-utils/mcookie             all                             tmp/usr/bin
+misc-utils/mcookie.1   all                             tmp/usr/share/man/man1
+misc-utils/namei               all                             tmp/usr/bin
+misc-utils/namei.1             all                             
tmp/usr/share/man/man1
+misc-utils/replay.1            all                             
tmp-bsd/usr/share/man/man1
+misc-utils/script              all                             tmp-bsd/usr/bin
+misc-utils/script.1            all                             
tmp-bsd/usr/share/man/man1
+misc-utils/setterm             !freebsd-i386   tmp/usr/bin
+misc-utils/setterm.1   !freebsd-i386   tmp/usr/share/man/man1
+misc-utils/whereis             all                             tmp/usr/bin
+misc-utils/whereis.1   all                             tmp/usr/share/man/man1
+mount/README.mount             !freebsd-i386   tmp-mount/usr/share/doc/mount
+mount/fstab.5                  !freebsd-i386   tmp/usr/share/man/man5
+mount/nfs.5                            !freebsd-i386   tmp/usr/share/man/man5
+mount/losetup                  !freebsd-i386   tmp-mount/sbin
+mount/losetup.8                        !freebsd-i386   
tmp-mount/usr/share/man/man8
+mount/mount                            !freebsd-i386   tmp-mount/bin
+mount/mount.8                  !freebsd-i386   tmp-mount/usr/share/man/man8
+mount/pivot_root               !freebsd-i386   tmp/sbin
+mount/pivot_root.8             !freebsd-i386   tmp/usr/share/man/man8
+mount/swapon                   !freebsd-i386   tmp-mount/sbin
+mount/swapon.8                 !freebsd-i386   tmp-mount/usr/share/man/man8
+mount/swapoff.8                        !freebsd-i386   
tmp-mount/usr/share/man/man8
+mount/umount                   !freebsd-i386   tmp-mount/bin
+mount/umount.8                 !freebsd-i386   tmp-mount/usr/share/man/man8
+sys-utils/arch                 all                             tmp/bin
+sys-utils/arch.1               all                             
tmp/usr/share/man/man1
+sys-utils/cytune               !sparc,!freebsd-i386,!s390,!m68k        
tmp/usr/sbin
+sys-utils/cytune.8             !sparc,!freebsd-i386,!s390,!m68k        
tmp/usr/share/man/man8
+sys-utils/dmesg                        !freebsd-i386   tmp/bin
+sys-utils/dmesg.8              !freebsd-i386   tmp/usr/share/man/man8
+sys-utils/ipc.info             !freebsd-i386   tmp/usr/share/info
+sys-utils/ipcrm                        !freebsd-i386   tmp/usr/bin
+sys-utils/ipcrm.8              !freebsd-i386   tmp/usr/share/man/man8
+sys-utils/ipcs                 !freebsd-i386   tmp/usr/bin
+sys-utils/ipcs.8               !freebsd-i386   tmp/usr/share/man/man8
+sys-utils/ramsize.8            i386                    tmp/usr/share/man/man8
+sys-utils/rdev                 i386                    tmp/usr/sbin
+sys-utils/rdev.8               i386                    tmp/usr/share/man/man8
+sys-utils/readprofile  !freebsd-i386   tmp/usr/sbin
+sys-utils/readprofile.1        !freebsd-i386   tmp/usr/share/man/man1
+sys-utils/renice               all                             tmp-bsd/usr/bin
+sys-utils/renice.8             all                             
tmp-bsd/usr/share/man/man8
+sys-utils/rootflags.8  i386                    tmp/usr/share/man/man8
+sys-utils/setsid               all                             tmp/usr/bin
+sys-utils/setsid.8             all                             
tmp/usr/share/man/man8
+sys-utils/tunelp               !sparc,!freebsd-i386,!s390,!m68k        
tmp/usr/sbin
+sys-utils/tunelp.8             !sparc,!freebsd-i386,!s390,!m68k        
tmp/usr/share/man/man8
+sys-utils/vidmode.8            i386                    tmp/usr/share/man/man8
+text-utils/more                        all                             tmp/bin
+text-utils/more.1              all                             
tmp/usr/share/man/man1
+text-utils/more.help   all                             tmp/usr/share/util-linux
+text-utils/rev                 all                             tmp/usr/bin
+text-utils/rev.1               all                             
tmp/usr/share/man/man1
diff -urN util-linux-2.11u/debian/postinst 
util-linux-2.11u-freebsd/debian/postinst
--- util-linux-2.11u/debian/postinst    2002-11-07 01:06:47.000000000 -0500
+++ util-linux-2.11u-freebsd/debian/postinst    2002-11-07 01:04:18.000000000 
-0500
@@ -20,7 +20,7 @@
 fi
 
 # hwclock does not work on s390 systems
-if [ `uname -m` != "s390" ]
+if [ `uname -m` != "s390" -a `uname -s` != "FreeBSD" ]
 then
   update-rc.d -f hwclock.sh remove 2>/dev/null > /dev/null
   update-rc.d hwclock.sh start 50 S . stop 25 0 6 . > /dev/null
diff -urN util-linux-2.11u/debian/rules util-linux-2.11u-freebsd/debian/rules
--- util-linux-2.11u/debian/rules       2002-11-07 01:06:47.000000000 -0500
+++ util-linux-2.11u-freebsd/debian/rules       2002-11-07 01:01:02.000000000 
-0500
@@ -9,7 +9,7 @@
 endif
 
 export arch = $(DEB_HOST_ARCH)
-version := $(shell sed -e '1{;s|^util-linux (\(.*\))\ .*|\1|;q;}' 
debian/changelog)
+version := $(shell dpkg-parsechangelog | sed -ne 's/^Version: *\([^2]*\)/\1/p')
 
 fdisk_arch = $(findstring $(arch),alpha i386 powerpc arm mips mipsel hppa ia64)
 sparc = $(findstring $(arch),sparc)
@@ -19,12 +19,14 @@
        $(checkdir)
        ./configure
        $(MAKE) all arch=$(arch)
+ifneq "$(arch)" "freebsd-i386"
        $(MAKE) disk-utils/raw
+endif
        touch build
 
 clean:
        $(checkdir)
-       rm -f build sys-utils/rdev
+       rm -f install build sys-utils/rdev debian/mk/install.mk
        touch make_include
        $(MAKE) distclean
        find . -name '*~' -print0 | xargs -0r rm
@@ -34,159 +36,65 @@
 
 # Architecture independant stuff
 
-SUIDFILES = debian/tmp-mount/bin/{u,}mount
-
-ifneq ($(arch),$(nohwclock))
-INITFILES = debian/hwclock.sh debian/hwclockfirst.sh
-endif
-BINFILES  = sys-utils/{arch,dmesg} \
-           text-utils/more
-SBINFILES = disk-utils/{mkswap,blockdev} login-utils/agetty disk-utils/raw
-ifneq ($(arch),$(nohwclock))
-SBINFILES += hwclock/hwclock
-endif
-SBINFILES += mount/pivot_root
-UBINFILES = sys-utils/{ipcs,ipcrm,setsid} \
-           misc-utils/{namei,setterm,mcookie,whereis,ddate} \
-           getopt-1.1.2/getopt text-utils/rev disk-utils/fdformat
-UBINFILES2= misc-utils/chkdupexe # debian/fdformat # don't strip these
-ULIBFILES = text-utils/more.help
-USBINFILES= sys-utils/readprofile disk-utils/elvtune # disk-utils/setfdprm
-
-MOUNTBINFILES  = mount/mount mount/umount
-MOUNTSBINFILES = mount/swapon mount/losetup
-
-#BSDBINFILES = # misc-utils/kill
-BSDUBINFILES = misc-utils/script misc-utils/logger sys-utils/renice \
-               login-utils/wall
-               # misc-utils/replay is handled seperately
-BSDMAN1FILES = login-utils/wall.1 misc-utils/script.1 \
-               misc-utils/logger.1 misc-utils/replay.1 # misc-utils/kill.1
-BSDMAN8FILES = sys-utils/renice.8
-BSDDOCFILES = debian/README.script
-
-# Architecture independant docs
-
-MAN1FILES = text-utils/{more,rev}.1 misc-utils/{namei.1,mcookie.1} \
-           sys-utils/{arch,readprofile}.1 \
-            misc-utils/{chkdupexe.1,setterm.1,whereis.1,ddate.1} \
-           getopt-1.1.2/getopt.1
-MAN8FILES = sys-utils/{dmesg.8,ipcrm.8,ipcs.8,setsid.8} login-utils/agetty.8 \
-             disk-utils/{mkswap.8,blockdev.8} disk-utils/elvtune.8 \
-             disk-utils/fdformat.8 disk-utils/raw.8 # disk-utils/setfdprm.8
-ifneq ($(arch),$(nohwclock))
-MAN8FILES += hwclock/hwclock.8
-endif
-MAN8FILES += mount/pivot_root.8
-
-EXAMPLES = debian/fstab.example2 fdisk/sfdisk.examples \
-       getopt-1.1.2/{test,parse}.{ba,tc}sh
-
+debian/mk/install.mk: debian/mk/install.in
+       debian/mk/geninstall.pl $(arch) <$< >$@
 
-INFOFILES = sys-utils/ipc.info
-DOCFILES  = login-utils/{README.getty,README.modems-with-agetty,README.poeigl}
-ifneq ($(arch),$(nohwclock))
-DOCFILES += debian/README.Debian.hwclock
-endif
-
-MOUNTMAN5FILES = mount/fstab.5 mount/nfs.5
-MOUNTMAN8FILES = mount/losetup.8 mount/swapoff.8 mount/umount.8 \
-                mount/mount.8 mount/swapon.8
-MOUNTDOCFILES  = mount/README.mount
-
-ifneq ($(arch),$(sparc))
-SBINFILES := $(SBINFILES) disk-utils/{fsck.minix,mkfs,mkfs.minix}
-MAN8FILES := $(MAN8FILES) disk-utils/{{fsck,mkfs}.minix.8,mkfs.8}
-endif
-ifeq ($(arch),$(fdisk_arch))
-USBINFILES:= $(USBINFILES) sys-utils/{tunelp,cytune}
-SBINFILES := $(SBINFILES) fdisk/{cfdisk,fdisk,sfdisk}
-MAN8FILES := $(MAN8FILES) fdisk/{cfdisk.8,fdisk.8,sfdisk.8} \
-           sys-utils/{tunelp.8,cytune.8}
-DOCFILES  := $(DOCFILES) fdisk/README.{c,}fdisk
-endif
-ifeq ($(arch),$(sparc))
-SBINFILES := $(SBINFILES) fdisk/fdisk
-MAN8FILES := $(MAN8FILES) fdisk/fdisk.8
-DOCFILES  := $(DOCFILES) fdisk/README.fdisk
-endif
-ifeq ($(arch),i386)
-USBINFILES:= $(USBINFILES) sys-utils/rdev
-MAN8FILES := $(MAN8FILES) sys-utils/{rdev.8,vidmode.8} \
-               sys-utils/{ramsize.8,rootflags.8}
-endif
-
-install:
-
-binary-indep:  checkroot build binary-arch
-       $(checkdir)
-       # This assumes non-native, and only one hyphen in the version number.
-       dpkg-gencontrol -isp -putil-linux-locales 
-Pdebian/tmp-util-linux-locales -VUpstream=$$(sed 's/^.*(\(.*\)-.*).*/\1/; q' 
debian/changelog)
-       dpkg --build debian/tmp-util-linux-locales ..
-
-binary-arch:   checkroot build
+install: build debian/mk/install.mk
        rm -rf debian/tmp*
        install -d 
debian/tmp/{DEBIAN,bin,sbin,etc/init.d,usr/{share/locale/{cs,da,de,es,fr,it,ja,nl,pt_BR,sv,tr}/LC_MESSAGES,lib/mime/packages,sbin,bin,share/man/{man1,man8},share/info,lib,share/util-linux,share/doc/$(package)/examples,share/lintian/overrides}}
-
-       install -s $(BINFILES)  debian/tmp/bin
-       install -s $(SBINFILES) debian/tmp/sbin
-       install -s $(UBINFILES) debian/tmp/usr/bin
-       install    $(UBINFILES2) debian/tmp/usr/bin
-ifneq ($(USBINFILES),)
-       install -s $(USBINFILES) debian/tmp/usr/sbin
+       install -d 
debian/tmp-util-linux-locales/usr/share/doc/util-linux-locales
+       install -d debian/tmp-util-linux-locales/DEBIAN
+       install -d 
debian/tmp-mount/{DEBIAN,bin,sbin,usr/share/{man/{man8,man5},doc/mount/examples}}
+       install -d 
debian/tmp-bsd/{DEBIAN,bin,usr/{bin,share/man/{man8,man1},share/doc/bsdutils}}
+       # run the autogenerate install script
+       $(MAKE) -f debian/mk/install.mk install
+       # this could be replaced by a test to see if rdev was installed
 ifeq ($(arch), i386)
        ln -s rdev debian/tmp/usr/sbin/ramsize
        ln -s rdev debian/tmp/usr/sbin/vidmode
        ln -s rdev debian/tmp/usr/sbin/rootflags
 endif
-endif
-ifneq ($(INITFILES),)
-       install -m 755 $(INITFILES) debian/tmp/etc/init.d
-endif
-       install -m 644 $(ULIBFILES) debian/tmp/usr/share/util-linux
-       install -m 644 $(MAN1FILES) debian/tmp/usr/share/man/man1
-       install -m 644 $(MAN8FILES) debian/tmp/usr/share/man/man8
-       install -m 644 $(INFOFILES) debian/tmp/usr/share/info
-       install -m 644 debian/lintian-override 
debian/tmp/usr/share/lintian/overrides/util-linux
        cd po && make install DESTDIR=../debian/tmp
-       install -m 644 $(DOCFILES)  debian/tmp/usr/share/doc/$(package)
-       install -m 644 $(EXAMPLES)  debian/tmp/usr/share/doc/$(package)/examples
 ifeq ($(arch), powerpc)
        mv -f debian/tmp/sbin/fdisk debian/tmp/sbin/ddisk
        mv -f debian/tmp/usr/share/man/man8/fdisk.8 
debian/tmp/usr/share/man/man8/ddisk.8
 endif
-       (cd debian/tmp/sbin ; mv agetty getty)
-       (cd debian/tmp/usr/share/man/man8 ; mv agetty.8 getty.8)
+       # FIXME: should use a test to see if hwclock was installed, instead of 
nohwclock
 ifneq ($(arch), $(nohwclock))
 ifneq ($(arch), powerpc)
        (cd debian/tmp/usr/share/man/man8 && ln -s hwclock.8.gz clock.8.gz)
 endif
 endif
+       # change agetty to getty
+       (cd debian/tmp/sbin ; mv agetty getty)
+       (cd debian/tmp/usr/share/man/man8 ; mv agetty.8 getty.8)
        (cd debian/tmp/usr/share/doc/$(package) ; mv README.modems-with-agetty 
README.modems-with-getty )
        perl -pi.bak -e 's/agetty/getty/g' 
debian/tmp/usr/share/man/man8/getty.8 \
        debian/tmp/usr/share/doc/$(package)/README.getty \
        debian/tmp/usr/share/doc/$(package)/README.modems-with-getty
        rm `find debian/tmp/usr -name \*.bak`
-       install -m 644 debian/changelog \
-         debian/tmp/usr/share/doc/$(package)/changelog.Debian
-       install -m 644 HISTORY debian/tmp/usr/share/doc/$(package)/changelog
+       # gzip all docs
        find debian/tmp/usr/share/{info,doc,man} -type f | xargs gzip -9
-       install -m 644 debian/mime.util-linux 
debian/tmp/usr/lib/mime/packages/util-linux
-       install -m 644 debian/copyright 
debian/tmp/usr/share/doc/$(package)/copyright
-       install debian/{preinst,postinst,prerm,postrm} debian/tmp/DEBIAN/
-ifneq ($(arch),$(nohwclock))
-       install -m 644 debian/conffiles debian/tmp/DEBIAN/
-endif
+       install -m 644 debian/copyright 
debian/tmp/usr/share/doc/util-linux/copyright
+
        ls debian/tmp/{bin,sbin,usr/{bin,sbin}}/* | xargs dpkg-shlibdeps 
-putil-linux
-       install -d 
debian/tmp-util-linux-locales/usr/share/doc/util-linux-locales
-       install -d debian/tmp-util-linux-locales/DEBIAN
-       install -m 755 debian/util-linux-locales.postinst 
debian/tmp-util-linux-locales/DEBIAN/postinst
-       install -m 755 debian/util-linux-locales.prerm 
debian/tmp-util-linux-locales/DEBIAN/prerm
-       mv debian/tmp/usr/share/locale debian/tmp-util-linux-locales/usr/share/
-       install -m 644 HISTORY 
debian/tmp-util-linux-locales/usr/share/doc/util-linux-locales/changelog
-       install -m 644 debian/changelog 
debian/tmp-util-linux-locales/usr/share/doc/util-linux-locales/changelog.Debian
+
+       # gzip docs for util-linux-locales
        find debian/tmp-util-linux-locales/usr/share/doc -type f | xargs gzip -9
        install -m 644 debian/copyright 
debian/tmp-util-linux-locales/usr/share/doc/util-linux-locales/copyright
+
+       # fix package scripts
+       chmod 755 debian/tmp*/DEBIAN/{preinst,postinst,prerm,postrm}
+
+       touch install
+
+binary-indep:  checkroot build binary-arch
+       $(checkdir)
+       # This assumes non-native, and only one hyphen in the version number.
+       dpkg-gencontrol -isp -putil-linux-locales 
-Pdebian/tmp-util-linux-locales -VUpstream=$$(sed 's/^.*(\(.*\)-.*).*/\1/; q' 
debian/changelog)
+       dpkg --build debian/tmp-util-linux-locales ..
+
+binary-arch:   checkroot build install
        dpkg-gencontrol -isp -putil-linux
        dpkg --build debian/tmp ..
 
@@ -203,48 +111,25 @@
        dpkg --build debian/tmp-fdisk-udeb ../fdisk-udeb_$(shell 
dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2)_$(arch).udeb
 endif
 
+       # FIXME: this should instead check to see if mount was installed
+ifneq ($(arch),freebsd-i386)
        # Mount
-       install -d 
debian/tmp-mount/{DEBIAN,bin,sbin,usr/share/{man/{man8,man5},doc/mount/examples}}
-       install -m 4755 -o root -s $(MOUNTBINFILES) debian/tmp-mount/bin/.
-       install -m 755 -s $(MOUNTSBINFILES) debian/tmp-mount/sbin/.
-       install -m 644 $(MOUNTMAN8FILES) debian/tmp-mount/usr/share/man/man8
-       install -m 644 $(MOUNTMAN5FILES) debian/tmp-mount/usr/share/man/man5
-       install -m 644 $(MOUNTDOCFILES) debian/tmp-mount/usr/share/doc/mount
+       chmod 4775 debian/tmp-mount/bin/*
        (cd debian/tmp-mount/sbin ; ln -s swapon swapoff)
-       install -m 644 debian/mount.fstab \
-         debian/tmp-mount/usr/share/doc/mount/examples/fstab
-       install -m 644 debian/changelog \
-         debian/tmp-mount/usr/share/doc/mount/changelog.Debian
-       install -m 644 debian/changelog.Debian-mount.old \
-         debian/tmp-mount/usr/share/doc/mount/changelog.Debian-mount.old
-       install -m 644 HISTORY debian/tmp/usr/share/doc/$(package)/changelog
        find debian/tmp-mount/usr/share/{doc,man} -type f | xargs gzip -9
        install -m 644 debian/copyright 
debian/tmp-mount/usr/share/doc/mount/copyright
-       install debian/mount.postinst debian/tmp-mount/DEBIAN/postinst
-       install debian/mount.prerm   debian/tmp-mount/DEBIAN/prerm
        ls debian/tmp-mount/{bin,sbin}/* | xargs dpkg-shlibdeps -pmount
        dpkg-gencontrol -isp -pmount -Pdebian/tmp-mount
        dpkg --build debian/tmp-mount ..
+endif
 
        # Bsdutils
-       install -d 
debian/tmp-bsd/{DEBIAN,bin,usr/{bin,share/man/{man8,man1},share/doc/bsdutils}}
-       # install -m 755 -o root -s $(BSDBINFILES) debian/tmp-bsd/bin/.
-       install -m 755 -s $(BSDUBINFILES) debian/tmp-bsd/usr/bin/.
-       cp misc-utils/replay.pl debian/tmp-bsd/usr/bin/replay
-       chmod 755 debian/tmp-bsd/usr/bin/replay
-       install -m 644 $(BSDMAN8FILES) debian/tmp-bsd/usr/share/man/man8
+       install -m 755 misc-utils/replay.pl debian/tmp-bsd/usr/bin/replay
        mv debian/tmp-bsd/usr/share/man/man8/renice.8 
debian/tmp-bsd/usr/share/man/man1/renice.1
-       install -m 644 $(BSDMAN1FILES) debian/tmp-bsd/usr/share/man/man1
-       install -m 644 $(BSDDOCFILES) debian/tmp-bsd/usr/share/doc/bsdutils
        chown root.tty debian/tmp-bsd/usr/bin/wall
        chmod g+s debian/tmp-bsd/usr/bin/wall
-       install -m 644 debian/changelog \
-         debian/tmp-bsd/usr/share/doc/bsdutils/changelog.Debian
-       install -m 644 HISTORY debian/tmp/usr/share/doc/$(package)/changelog
        find debian/tmp-bsd/usr/share/{doc,man} -type f | xargs gzip -9
        install -m 644 debian/copyright 
debian/tmp-bsd/usr/share/doc/bsdutils/copyright
-       install debian/bsdutils.postinst debian/tmp-bsd/DEBIAN/postinst
-       install debian/bsdutils.prerm   debian/tmp-bsd/DEBIAN/prerm
        ls debian/tmp-bsd/usr/bin/* | xargs dpkg-shlibdeps -pbsdutils
        dpkg-gencontrol -isp -pbsdutils -Pdebian/tmp-bsd -v1:$(version)
        dpkg --build debian/tmp-bsd ..
diff -urN util-linux-2.11u/login-utils/agetty.c 
util-linux-2.11u-freebsd/login-utils/agetty.c
--- util-linux-2.11u/login-utils/agetty.c       2002-07-29 03:36:42.000000000 
-0400
+++ util-linux-2.11u-freebsd/login-utils/agetty.c       2002-11-01 
13:51:01.000000000 -0500
@@ -18,7 +18,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/ioctl.h>
-#include <termio.h>
+#include <termios.h>
 #include <signal.h>
 #include <errno.h>
 #include <sys/types.h>
@@ -33,7 +33,7 @@
 #include "xstrncpy.h"
 #include "nls.h"
 
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
 #include "pathnames.h"
 #include <sys/param.h>
 #define USE_SYSLOG
@@ -113,6 +113,11 @@
 #define        TCSETAW TCSETSW
 #endif
 
+#ifdef __FreeBSD__
+#define termio termios
+#define CBAUD  0010017
+#endif
+
  /*
   * This program tries to not use the standard-i/o library.  This keeps the
   * executable small on systems that do not have shared libraries (System V
@@ -686,8 +691,13 @@
      * 5 seconds seems to be a good value.
      */
 
+#ifndef TCGETA
+    if (tcgetattr(0, tp) <0)
+       error("%s: tcgetattr: %m", tty);
+#else
     if (ioctl(0, TCGETA, tp) < 0)
        error("%s: ioctl: %m", tty);
+#endif
 
     /*
      * It seems to be a terminal. Set proper protections and ownership. Mode
@@ -726,6 +736,8 @@
 #ifdef __linux__
     /* flush input and output queues, important for modems! */
     (void) ioctl(0, TCFLSH, TCIOFLUSH);
+#else
+    tcflush(0, TCIOFLUSH);
 #endif
 
     tp->c_cflag = CS8 | HUPCL | CREAD | speed;
@@ -733,7 +745,7 @@
        tp->c_cflag |= CLOCAL;
     }
 
-    tp->c_iflag = tp->c_lflag = tp->c_oflag = tp->c_line = 0;
+    tp->c_iflag = tp->c_lflag = tp->c_oflag = 0;
     tp->c_cc[VMIN] = 1;
     tp->c_cc[VTIME] = 0;
 
@@ -744,7 +756,11 @@
        tp->c_cflag |= CRTSCTS;
 #endif
 
+#ifdef __FreeBSD__
+    (void) tcsetattr(0,TCSANOW,tp);
+#else
     (void) ioctl(0, TCSETA, tp);
+#endif
 
     /* go to blocking input even in local mode */
     fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~O_NONBLOCK);
@@ -788,7 +804,11 @@
     tp->c_iflag |= ISTRIP;                     /* enable 8th-bit stripping */
     vmin = tp->c_cc[VMIN];
     tp->c_cc[VMIN] = 0;                                /* don't block if queue 
empty */
+#ifdef __FreeBSD__
+    (void) tcsetattr(0,TCSANOW,tp);
+#else
     (void) ioctl(0, TCSETA, tp);
+#endif
 
     /*
      * Wait for a while, then read everything the modem has said so far and
@@ -812,7 +832,11 @@
 
     tp->c_iflag = iflag;
     tp->c_cc[VMIN] = vmin;
+#ifdef __FreeBSD__
+    tcsetattr(0, TCSANOW, tp);
+#else
     (void) ioctl(0, TCSETA, tp);
+#endif
 }
 
 /* do_prompt - show login prompt, optionally preceded by /etc/issue contents */
@@ -835,7 +859,11 @@
     if ((op->flags & F_ISSUE) && (fd = fopen(op->issue, "r"))) {
        oflag = tp->c_oflag;                    /* save current setting */
        tp->c_oflag |= (ONLCR | OPOST);         /* map NL in output to CR-NL */
+#ifdef __FreeBSD__
+       tcsetattr(0, TCSADRAIN, tp);
+#else
        (void) ioctl(0, TCSETAW, tp);
+#endif
 
 
        while ((c = getc(fd)) != EOF)
@@ -947,7 +975,11 @@
        fflush(stdout);
 
        tp->c_oflag = oflag;                    /* restore settings */
+#ifdef __FreeBSD__
+       (void) tcsetattr(0,TCSADRAIN, tp);
+#else
        (void) ioctl(0, TCSETAW, tp);           /* wait till output is gone */
+#endif
        (void) fclose(fd);
     }
 #endif
@@ -973,7 +1005,11 @@
     baud_index = (baud_index + 1) % op->numspeed;
     tp->c_cflag &= ~CBAUD;
     tp->c_cflag |= op->speeds[baud_index];
+#ifdef __FreeBSD__
+    (void) tcsetattr(0,TCSANOW,tp);
+#else
     (void) ioctl(0, TCSETA, tp);
+#endif
 }
 
 /* get_logname - get user name, establish parity, speed, erase, kill, eol */
@@ -1003,7 +1039,11 @@
     /* Flush pending input (esp. after parsing or switching the baud rate). */
 
     (void) sleep(1);
+#ifdef __linux__
     (void) ioctl(0, TCFLSH, TCIFLUSH);
+#else
+    tcflush(0, TCIOFLUSH);
+#endif
 
     /* Prompt for and read a login name. */
 
@@ -1105,11 +1145,6 @@
     tp->c_cc[VQUIT] = DEF_QUIT;                        /* default quit */
     tp->c_cc[VEOF] = DEF_EOF;                  /* default EOF character */
     tp->c_cc[VEOL] = DEF_EOL;
-#ifdef __linux__
-    tp->c_cc[VSWTC] = DEF_SWITCH;              /* default switch character */
-#else
-    tp->c_cc[VSWTCH] = DEF_SWITCH;             /* default switch character */
-#endif
 
     /* Account for special characters seen in input. */
 
@@ -1139,11 +1174,13 @@
     }
     /* Account for upper case without lower case. */
 
+#ifndef __FreeBSD__
     if (cp->capslock) {
        tp->c_iflag |= IUCLC;
        tp->c_lflag |= XCASE;
        tp->c_oflag |= OLCUC;
     }
+#endif
     /* Optionally enable hardware flow control */
 
 #ifdef CRTSCTS
@@ -1153,8 +1190,13 @@
 
     /* Finally, make the new settings effective */
 
+#ifdef __FreeBSD__
+    if (tcsetattr(0,TCSANOW,tp) < 0)
+       error("%s: tcsetattr: %m", op->tty);
+#else
     if (ioctl(0, TCSETA, tp) < 0)
        error("%s: ioctl: TCSETA: %m", op->tty);
+#endif
 }
 
 /* caps_lock - string contains upper case without lower case */
diff -urN util-linux-2.11u/misc-utils/Makefile 
util-linux-2.11u-freebsd/misc-utils/Makefile
--- util-linux-2.11u/misc-utils/Makefile        2002-04-05 07:03:36.000000000 
-0500
+++ util-linux-2.11u-freebsd/misc-utils/Makefile        2002-11-07 
00:44:04.000000000 -0500
@@ -40,9 +40,11 @@
 endif
 
 ifeq "$(HAVE_NCURSES)" "yes"
+ifneq "$(OS)" "freebsd"
 USRBIN:=$(USRBIN) setterm
 MAN1:=$(MAN1) setterm.1
 endif
+endif
 
 # For script only
 LIBPTY=
@@ -60,6 +62,9 @@
 $(NEEDS_CURSES):
 ifeq "$(HAVE_NCURSES)" "yes"
        $(CC) $(LDFLAGS) $^ -o $@ $(LIBCURSES)
+       ifeq $(OS) "freebsd"
+               @echo $@ not available on this platform
+       endif
 else
        @echo $@ not made since it requires ncurses
 endif
@@ -92,8 +97,10 @@
 write: write.o $(LIB)/carefulputc.o
 
 ifeq "$(HAVE_NCURSES)" "yes"
+ifneq "$(OS)" "freebsd"
 setterm: setterm.o
 endif
+endif
 
 install: all
        $(INSTALLDIR) $(BINDIR) $(USRBINDIR)
diff -urN util-linux-2.11u/misc-utils/mcookie.c 
util-linux-2.11u-freebsd/misc-utils/mcookie.c
--- util-linux-2.11u/misc-utils/mcookie.c       2002-03-08 18:00:52.000000000 
-0500
+++ util-linux-2.11u-freebsd/misc-utils/mcookie.c       2002-11-01 
13:52:04.000000000 -0500
@@ -20,7 +20,7 @@
  *
  */
 
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
 #define HAVE_GETTIMEOFDAY 1
 #endif
 
diff -urN util-linux-2.11u/sys-utils/Makefile 
util-linux-2.11u-freebsd/sys-utils/Makefile
--- util-linux-2.11u/sys-utils/Makefile 2001-11-09 12:13:50.000000000 -0500
+++ util-linux-2.11u-freebsd/sys-utils/Makefile 2002-11-02 00:07:06.000000000 
-0500
@@ -17,13 +17,19 @@
 # Where to put binaries?
 # See the "install" rule for the links. . .
 
+ifeq "$(OS)" "freebsd"
+BIN=   arch
+else
 BIN=            arch dmesg
+endif
 
+ifeq "$(OS)" "freebsd"
+USRBIN=                renice setsid
+else
 USRBIN=                cytune ipcrm ipcs renice setsid
-
 USRSBIN=       readprofile tunelp
-
 SBIN=          ctrlaltdel
+endif
 
 NOTMADE=
 
@@ -37,10 +43,12 @@
 endif
 endif
 
+ifneq "$(OS)" "freebsd"
 ifeq "$(ARCH)" "intel"
 MAN8:=$(MAN8) rdev.8 ramsize.8 rootflags.8 vidmode.8
 USRSBIN:=$(USRSBIN) rdev
 endif
+endif
 
 # Where to put datebase files?
 
diff -urN util-linux-2.11u/text-utils/more.c 
util-linux-2.11u-freebsd/text-utils/more.c
--- util-linux-2.11u/text-utils/more.c  2002-11-07 01:06:47.000000000 -0500
+++ util-linux-2.11u-freebsd/text-utils/more.c  2002-11-02 00:15:46.000000000 
-0500
@@ -63,6 +63,11 @@
 #include <regex.h>
 #undef _REGEX_RE_COMP
 
+/* define CBAUD for FreeBSD */
+#ifndef CBAUD
+#define CBAUD  0010017
+#endif
+
 /* #define MOREHELPFILE "/usr/share/util-linux/more.help" */
 #define VI             "vi"    /* found on the user's path */
 
@@ -1645,7 +1650,7 @@
     }
     if (feof (file)) {
        if (!no_intty) {
-#ifndef __linux__
+#if !defined(__linux__) && !defined(__FreeBSD__)
                                /* No longer in libc 4.5.8. . . */
            file->_flags &= ~STDIO_S_EOF_SEEN; /* why doesn't fseek do this 
??!!??! */
 #endif
@@ -1892,7 +1897,11 @@
     tcgetattr(fileno(stderr), &otty);
     savetty0 = otty;
     slow_tty = (otty.c_cflag & CBAUD) < B1200;
+#ifdef __FreeBSD__
+       hardtabs = 1;
+#else
     hardtabs = (otty.c_oflag & TABDLY) != XTABS;
+#endif
     if (!no_tty) {
        otty.c_lflag &= ~(ICANON|ECHO);
        otty.c_cc[VMIN] = 1;

Reply via email to