I'm attaching two patches, one with the debian-specific changes and another with the upstream changes. I think this addresses all your concerns about my previous patch.
-- .''`. Proudly running Debian GNU/kFreeBSD unstable/unreleased (on UFS2+S) : :' : `. `' http://www.debian.org/ports/kfreebsd-gnu `-
diff -ur procps-3.2.4.old/minimal.c procps-3.2.4/minimal.c --- procps-3.2.4.old/minimal.c 2004-05-05 02:26:14.000000000 +0200 +++ procps-3.2.4/minimal.c 2005-01-28 00:39:14.000000000 +0100 @@ -57,7 +57,6 @@ /////////////////////////////////////////////////////// #ifdef __linux__ #include <asm/param.h> /* HZ */ -#include <asm/page.h> /* PAGE_SIZE */ #define NO_TTY_VALUE DEV_ENCODE(0,0) #ifndef HZ #warning HZ not defined, assuming it is 100 @@ -68,8 +67,15 @@ /////////////////////////////////////////////////////////// #ifndef PAGE_SIZE -#warning PAGE_SIZE not defined, assuming it is 4096 -#define PAGE_SIZE 4096 +#if defined(__linux__) +#include <asm/page.h> /* looks safe for glibc */ +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#include <machine/param.h> +#elif defined(_SC_PAGE_SIZE) +#define PAGE_SIZE sysconf (_SC_PAGE_SIZE) +#else +#error +#endif #endif diff -ur procps-3.2.4.old/proc/version.c procps-3.2.4/proc/version.c --- procps-3.2.4.old/proc/version.c 2003-01-29 02:11:43.000000000 +0100 +++ procps-3.2.4/proc/version.c 2005-01-28 00:40:16.000000000 +0100 @@ -35,6 +35,9 @@ static void init_Linux_version(void) __attribute__((constructor)); static void init_Linux_version(void) { +#ifndef __linux__ + int x = 2, y = 0, z = 0; +#else static struct utsname uts; int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */ @@ -45,5 +48,6 @@ "Non-standard uts for running kernel:\n" "release %s=%d.%d.%d gives version code %d\n", uts.release, x, y, z, LINUX_VERSION(x,y,z)); +#endif linux_version_code = LINUX_VERSION(x, y, z); }
diff -ur procps-3.2.4.old/debian/control procps-3.2.4/debian/control --- procps-3.2.4.old/debian/control 2005-01-28 00:35:14.000000000 +0100 +++ procps-3.2.4/debian/control 2005-01-28 00:35:42.000000000 +0100 @@ -9,8 +9,8 @@ Architecture: any Provides: watch Depends: ${shlibs:Depends} -Conflicts: watch, libproc-dev (<< 1:1.2.6-2), w-bassman (<< 1.0-3), procps-nonfree, pgrep (<< 3.3-5) -Replaces: watch, bsdutils (<< 2.9x-1) +Conflicts: watch, libproc-dev (<< 1:1.2.6-2), w-bassman (<< 1.0-3), procps-nonfree, pgrep (<< 3.3-5), hurd, freebsd-utils (<< 5.2.1-11) +Replaces: watch, bsdutils (<< 2.9x-1), freebsd-utils (<< 5.2.1-11) Recommends: psmisc Description: The /proc file system utilities These are utilities to browse the /proc filesystem, which is not a real file diff -ur procps-3.2.4.old/debian/procps.sh procps-3.2.4/debian/procps.sh --- procps-3.2.4.old/debian/procps.sh 2005-01-28 00:35:14.000000000 +0100 +++ procps-3.2.4/debian/procps.sh 2005-01-28 00:35:42.000000000 +0100 @@ -8,7 +8,8 @@ [ -r /etc/default/rcS ] || exit 0 . /etc/default/rcS -[ -x /sbin/sysctl ] || exit 0 +PATH=/sbin:$PATH +which sysctl > /dev/null || exit 0 case "$1" in @@ -26,7 +27,7 @@ n="" redir="" fi - eval "/sbin/sysctl $n -q -p $redir" + eval "sysctl $n -q -p $redir" if [ "$VERBOSE" = "yes" ] then echo "... done." diff -ur procps-3.2.4.old/debian/rules procps-3.2.4/debian/rules --- procps-3.2.4.old/debian/rules 2005-01-28 00:35:14.000000000 +0100 +++ procps-3.2.4/debian/rules 2005-01-28 00:35:42.000000000 +0100 @@ -10,6 +10,13 @@ PACKAGE="procps" +DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) + +ifeq ($(DEB_HOST_GNU_SYSTEM), linux) +sysctl_conf = linux +endif +sysctl_conf ?= generic + ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) INSTALL_PROGRAM += -s endif @@ -49,7 +56,7 @@ # Add here commands to install the package into debian/procps. $(MAKE) lib64=lib ln_f="ln -sf" ldconfig=echo DESTDIR=$(CURDIR)/debian/procps install - install --mode 644 -o root -g root debian/sysctl.conf $(CURDIR)/debian/procps/etc + install --mode 644 -o root -g root debian/sysctl.conf.$(sysctl_conf) $(CURDIR)/debian/procps/etc/sysctl.conf # Rename w as there are two of them (cd $(CURDIR)/debian/procps/usr/bin && mv w w.procps ) (cd $(CURDIR)/debian/procps/usr/share/man/man1 && mv w.1 w.procps.1 ) @@ -58,6 +65,15 @@ (cp proc/*.h $(CURDIR)/debian/procps/usr/include/proc) cp static/libproc.a $(CURDIR)/debian/libproc-dev/usr/lib +ifneq ($(DEB_HOST_GNU_SYSTEM), linux) + rm -f \ + $(CURDIR)/debian/procps/bin/kill \ + $(CURDIR)/debian/procps/usr/share/man/man1/kill.1 \ + $(CURDIR)/debian/procps/sbin/sysctl \ + $(CURDIR)/debian/procps/usr/share/man/man8/sysctl.8 \ + $(NULL) +endif + dh_movefiles --sourcedir=debian/procps rmdir $(CURDIR)/debian/procps/usr/include/proc diff -ur procps-3.2.4.old/debian/sysctl.conf.generic procps-3.2.4/debian/sysctl.conf.generic --- procps-3.2.4.old/debian/sysctl.conf.generic 2005-01-28 00:35:14.000000000 +0100 +++ procps-3.2.4/debian/sysctl.conf.generic 2005-01-28 00:35:42.000000000 +0100 @@ -7,5 +7,3 @@ # network options with builtin values. These values may be overridden # using /etc/network/options. -#kernel.domainname = example.com -#net/ipv4/icmp_echo_ignore_broadcasts=1 --- procps-3.2.4/debian/examples~ 2005-01-28 00:51:28.000000000 +0100 +++ procps-3.2.4/debian/examples 2005-01-28 00:51:30.000000000 +0100 @@ -1,2 +1,2 @@ -debian/sysctl.conf +debian/sysctl.conf*