--- /dev/null
+diff -urN monit-4.0.org/process/sysdep_LINUX.c monit-4.0/process/sysdep_LINUX.c
+--- monit-4.0.org/process/sysdep_LINUX.c 2003-09-08 19:20:44.000000000 +0200
++++ monit-4.0/process/sysdep_LINUX.c 2003-09-08 19:20:23.000000000 +0200
+@@ -84,24 +84,37 @@
+ * @file
+ */
+
+-#define PAGE_TO_KBYTE_SHIFT PAGE_SHIFT-10
++#define FREEMEM "MemFree:"
++#define FREESWAP "SwapFree:"
+
+ int init_process_info_sysdep(void) {
+
+- struct stat buf;
+-
++ int memfd;
++ char buf[1024], *ptr1, *ptr2;
+
+- /* I hope this is okay hack to get the total memsize. (-: */
++ if ((memfd = open("/proc/meminfo", O_RDONLY)) == -1) {
++ return FALSE;
++ }
+
+- if ( stat("/proc/kcore", &buf) != 0 ) {
++ /* read the file */
++ if (read(memfd, buf, sizeof(buf)) < 0) {
++ close(memfd);
++ return FALSE;
++ }
+
+- return FALSE;
++ close(memfd);
++
++ ptr1 = strstr(buf, FREEMEM);
++ ptr2 = strstr(buf, FREESWAP);
+
++ if (!ptr1 || !ptr2) {
++ return FALSE;
+ }
+
+- num_cpus= sysconf(_SC_NPROCESSORS_CONF);
++ /* we only care about integer values */
++ mem_kbyte_max = atoi(ptr1+strlen(FREEMEM)) /* + atoi(ptr2+strlen(FREESWAP)) */ ;
+
+- mem_kbyte_max = buf.st_size>>10;
++ num_cpus= sysconf(_SC_NPROCESSORS_CONF);
+
+ return TRUE;
+
Summary(pl): Narzêdzie do monitorowania procesów i ich restartowania
Name: monit
Version: 4.0
-Release: 0.%{snap}.1
+Release: 0.%{snap}.2
Group: Applications/Console
License: GPL
# http://www.tildeslash.com/monit/dist/
Source0: %{name}-%{version}-%{snap}.tar.gz
# Source0-md5: 94efc952513af389f7a9e562692ccefc
Source1: %{name}.init
+Patch0: %{name}-meminfo-vs-kcore.patch
URL: http://www.tildeslash.com/monit/
BuildRequires: bison
BuildRequires: flex
%prep
%setup -q
+%patch0 -p1
%build
./make_man