- update to 6.5 remove unnecessary patches, spec file changes
This commit is contained in:
parent
b206d936f5
commit
8877b46a82
@ -1 +1 @@
|
||||
acct-6.3.2.tar.gz
|
||||
acct-6.5.1.tar.gz
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- acct-6.3.2/accton.c.exit Sat Sep 1 22:21:41 2001
|
||||
+++ acct-6.3.2/accton.c Sat Sep 1 22:23:36 2001
|
||||
@@ -108,7 +108,7 @@
|
||||
acct_file = argv[optind];
|
||||
}
|
||||
|
||||
- if (acct (acct_file) == -1)
|
||||
+ if (acct (acct_file) == -1 && errno != ENOSYS)
|
||||
{
|
||||
int err;
|
||||
extern int errno;
|
@ -1,46 +0,0 @@
|
||||
--- ./lastcomm.c.64bit-fixes Mon Oct 13 20:28:36 1997
|
||||
+++ ./lastcomm.c Thu Mar 7 06:56:00 2002
|
||||
@@ -238,6 +238,7 @@
|
||||
parse_entries (void)
|
||||
{
|
||||
struct acct *rec; /* the current record */
|
||||
+ time_t btime; /* Fix for call to ctime for 64bit architectures */
|
||||
|
||||
/* loop while there are entries to be had */
|
||||
|
||||
@@ -313,11 +314,12 @@
|
||||
else
|
||||
#endif
|
||||
putchar (' ');
|
||||
-
|
||||
+
|
||||
+ btime = (time_t) rec->ac_btime;
|
||||
printf (" %-8.8s %-8.8s %6.2f secs %-16.16s\n",
|
||||
this_uid, this_dev,
|
||||
((ut + st) / (double) AHZ),
|
||||
- ctime (&rec->ac_btime));
|
||||
+ ctime (&btime));
|
||||
}
|
||||
}
|
||||
}
|
||||
--- ./pacct_rd.c.64bit-fixes Mon Oct 13 20:28:36 1997
|
||||
+++ ./pacct_rd.c Thu Mar 7 06:54:34 2002
|
||||
@@ -61,6 +61,9 @@
|
||||
void
|
||||
print_pacct_record (struct acct *rec, FILE *out)
|
||||
{
|
||||
+ /* Fix for call to ctime for 64bit architectures */
|
||||
+ time_t btime = (time_t)rec->ac_btime;
|
||||
+
|
||||
fprintf (stddebug, "%-*.*s|", COMM_LEN, COMM_LEN, rec->ac_comm);
|
||||
|
||||
#define NUM_FORMAT "%6.1f"
|
||||
@@ -117,7 +120,7 @@
|
||||
);
|
||||
#endif
|
||||
|
||||
- fprintf (stddebug, "%s", ctime ((time_t *) &(rec->ac_btime)));
|
||||
+ fprintf (stddebug, "%s", ctime (&btime));
|
||||
}
|
||||
|
||||
|
@ -1,94 +0,0 @@
|
||||
--- acct-6.3.2/configure.pom 1998-03-10 19:10:13.000000000 +0100
|
||||
+++ acct-6.3.2/configure 2005-06-08 14:24:04.624175432 +0200
|
||||
@@ -930,11 +930,11 @@
|
||||
|
||||
echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
|
||||
if test "$ac_test_CFLAGS" = set; then
|
||||
- CFLAGS="$ac_save_CFLAGS"
|
||||
+ CFLAGS="$ac_save_CFLAGS -D_FILE_OFFSET_BITS=64"
|
||||
elif test $ac_cv_prog_cc_g = yes; then
|
||||
- CFLAGS="-g -O2"
|
||||
+ CFLAGS="-g -O2 -D_FILE_OFFSET_BITS=64"
|
||||
else
|
||||
- CFLAGS="-O2"
|
||||
+ CFLAGS="-O2 -D_FILE_OFFSET_BITS=64"
|
||||
fi
|
||||
else
|
||||
GCC=
|
||||
--- acct-6.3.2/file_rd.c.pom 1997-10-14 02:28:36.000000000 +0200
|
||||
+++ acct-6.3.2/file_rd.c 2005-06-08 14:24:04.624175432 +0200
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
+#define _LARGEFILE_SOURCE 1
|
||||
+#define _FILE_OFFSET_BITS 64
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
@@ -106,9 +108,9 @@
|
||||
|
||||
if (fri->backwards)
|
||||
{
|
||||
- long offset, max_recs, recs_to_read;
|
||||
+ off_t offset, max_recs, recs_to_read;
|
||||
|
||||
- if ((offset = ftell (fri->fp)) <= 0)
|
||||
+ if ((offset = ftello (fri->fp)) <= 0)
|
||||
goto no_more_records;
|
||||
|
||||
/* Read as many records as possible, up to
|
||||
@@ -127,8 +129,8 @@
|
||||
|
||||
if (debugging_enabled)
|
||||
{
|
||||
- long new_offset = ftell (fri->fp);
|
||||
- fprintf (stddebug, "Did seek in file %ld --> %ld\n",
|
||||
+ off_t new_offset = ftello (fri->fp);
|
||||
+ fprintf (stddebug, "Did seek in file %lld --> %lld\n",
|
||||
offset, new_offset);
|
||||
}
|
||||
|
||||
@@ -137,7 +139,7 @@
|
||||
fatal ("get_entry: couldn't read from file");
|
||||
|
||||
if (debugging_enabled)
|
||||
- fprintf (stddebug, "Got %ld records from file\n",
|
||||
+ fprintf (stddebug, "Got %lld records from file\n",
|
||||
recs_to_read);
|
||||
|
||||
/* don't need to check this, because the above read was fine */
|
||||
--- acct-6.3.2/file_rd.h.pom 1997-10-14 02:28:36.000000000 +0200
|
||||
+++ acct-6.3.2/file_rd.h 2005-06-08 14:24:04.625175280 +0200
|
||||
@@ -3,6 +3,9 @@
|
||||
* data structures and routines for reading/writing binary
|
||||
* record-oriented files. */
|
||||
|
||||
+#define __USE_XOPEN
|
||||
+#include <unistd.h>
|
||||
+
|
||||
struct file_list {
|
||||
char *name;
|
||||
struct file_list *next;
|
||||
@@ -15,8 +18,8 @@
|
||||
because we close files as soon as
|
||||
we find their ends and free their
|
||||
entries from the linked list */
|
||||
- int recs_read; /* how many records are in our buffer? */
|
||||
- int recs_left; /* how many records are left in the
|
||||
+ off_t recs_read; /* how many records are in our buffer? */
|
||||
+ off_t recs_left; /* how many records are left in the
|
||||
buffer to be used? */
|
||||
void *buffer; /* the buffer for the data */
|
||||
int buffered_records; /* how many records to buffer */
|
||||
--- acct-6.3.2/INSTALL.pom 1997-09-29 23:02:02.000000000 +0200
|
||||
+++ acct-6.3.2/INSTALL 2005-06-08 14:24:04.625175280 +0200
|
||||
@@ -59,7 +59,7 @@
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
+ CC=c89 CFLAGS="-O2 -D_FILE_OFFSET_BITS=64" LIBS=-lposix ./configure
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
@ -1,118 +0,0 @@
|
||||
diff -uNr acct-6.3.2.orig/lastcomm.c acct-6.3.2/lastcomm.c
|
||||
--- acct-6.3.2.orig/lastcomm.c 2004-08-30 21:15:47.000000000 -0400
|
||||
+++ acct-6.3.2/lastcomm.c 2004-08-30 21:45:05.000000000 -0400
|
||||
@@ -40,6 +40,9 @@
|
||||
# include <time.h>
|
||||
# endif
|
||||
#endif
|
||||
+#ifdef HAVE_UNISTD_H
|
||||
+#include <unistd.h>
|
||||
+#endif
|
||||
|
||||
#include <pwd.h>
|
||||
|
||||
@@ -63,6 +66,8 @@
|
||||
|
||||
char *program_name; /* name of the program, for usage & errs */
|
||||
|
||||
+static unsigned int hzval;
|
||||
+
|
||||
|
||||
/* Here are various lists for the user to specify entries that they
|
||||
want to see. */
|
||||
@@ -91,6 +96,7 @@
|
||||
int c;
|
||||
int other_pacct_file_specified = 0; /* nonzero if the user used the
|
||||
`-f' or `--file' flag */
|
||||
+ hzval = sysconf(_SC_CLK_TCK);
|
||||
|
||||
program_name = argv[0];
|
||||
|
||||
@@ -318,7 +324,7 @@
|
||||
btime = (time_t) rec->ac_btime;
|
||||
printf (" %-8.8s %-8.8s %6.2f secs %-16.16s\n",
|
||||
this_uid, this_dev,
|
||||
- ((ut + st) / (double) AHZ),
|
||||
+ ((ut + st) / (double) hzval),
|
||||
ctime (&btime));
|
||||
}
|
||||
}
|
||||
diff -uNr acct-6.3.2.orig/sa.c acct-6.3.2/sa.c
|
||||
--- acct-6.3.2.orig/sa.c 2004-08-30 21:15:47.000000000 -0400
|
||||
+++ acct-6.3.2/sa.c 2004-08-30 21:47:49.000000000 -0400
|
||||
@@ -233,6 +233,7 @@
|
||||
"***other" category */
|
||||
int always_yes = 0; /* nonzero means always answer yes to
|
||||
a query */
|
||||
+static unsigned int hzval;
|
||||
|
||||
|
||||
/* prototypes */
|
||||
@@ -266,6 +267,7 @@
|
||||
{
|
||||
int c;
|
||||
|
||||
+ hzval = sysconf(_SC_CLK_TCK);
|
||||
program_name = argv[0];
|
||||
|
||||
/* Cache the page size of the machine for the PAGES_TO_KB macro */
|
||||
@@ -551,7 +553,7 @@
|
||||
|
||||
if (debugging_enabled)
|
||||
{
|
||||
- fprintf (stddebug, "AHZ -> %d\n", AHZ);
|
||||
+ fprintf (stddebug, "hzval -> %d\n", hzval);
|
||||
fprintf (stddebug, "getpagesize() -> %d\n", getpagesize ());
|
||||
fprintf (stddebug, "system_page_size == %.2f\n", system_page_size);
|
||||
}
|
||||
@@ -901,7 +903,7 @@
|
||||
/* Christoph Badura <bad@flatlin.ka.sub.org> says:
|
||||
*
|
||||
* The k*sec statistic is computed as
|
||||
- * ((ac_utime+ac_stime)*pages_to_kbytes(ac_mem))/AHZ. Of course you
|
||||
+ * ((ac_utime+ac_stime)*pages_to_kbytes(ac_mem))/hzval. Of course you
|
||||
* need to expand the comp_t values.
|
||||
*
|
||||
* PAGES_TO_KBYTES(x) simply divides x by (getpagesize()/1024). Of
|
||||
@@ -1103,33 +1105,33 @@
|
||||
{
|
||||
#ifdef HAVE_ACUTIME
|
||||
# ifdef ACUTIME_COMPT
|
||||
- double ut = comp_t_2_double (rec->ac_utime) / (double) AHZ;
|
||||
+ double ut = comp_t_2_double (rec->ac_utime) / (double) hzval;
|
||||
# else
|
||||
- double ut = (double) rec->ac_utime / (double) AHZ;
|
||||
+ double ut = (double) rec->ac_utime / (double) hzval;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACSTIME
|
||||
# ifdef ACSTIME_COMPT
|
||||
- double st = comp_t_2_double (rec->ac_stime) / (double) AHZ;
|
||||
+ double st = comp_t_2_double (rec->ac_stime) / (double) hzval;
|
||||
# else
|
||||
- double st = (double) rec->ac_stime / (double) AHZ;
|
||||
+ double st = (double) rec->ac_stime / (double) hzval;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACETIME
|
||||
# ifdef ACETIME_COMPT
|
||||
- double et = comp_t_2_double (rec->ac_etime) / (double) AHZ;
|
||||
+ double et = comp_t_2_double (rec->ac_etime) / (double) hzval;
|
||||
# else
|
||||
- double et = (double) rec->ac_etime / (double) AHZ;
|
||||
+ double et = (double) rec->ac_etime / (double) hzval;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACIO
|
||||
# ifdef ACIO_COMPT
|
||||
- double di = comp_t_2_double (rec->ac_io) / (double) AHZ;
|
||||
+ double di = comp_t_2_double (rec->ac_io) / (double) hzval;
|
||||
# else
|
||||
- double di = (double) rec->ac_io / (double) AHZ;
|
||||
+ double di = (double) rec->ac_io / (double) hzval;
|
||||
# endif
|
||||
#endif
|
||||
|
@ -1,68 +0,0 @@
|
||||
--- acct-6.3.2/lastcomm.c.strictmatch 2005-02-01 17:01:54.000000000 -0500
|
||||
+++ acct-6.3.2/lastcomm.c 2005-02-02 00:06:41.000000000 -0500
|
||||
@@ -43,7 +43,9 @@
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
-
|
||||
+#ifdef HAVE_STDLIB_H
|
||||
+#include <stdlib.h>
|
||||
+#endif
|
||||
#include <pwd.h>
|
||||
|
||||
#include "common.h"
|
||||
@@ -80,7 +82,7 @@
|
||||
|
||||
/* protos */
|
||||
|
||||
-void main PARAMS((int, char *[]));
|
||||
+int main PARAMS((int, char *[]));
|
||||
void give_usage PARAMS((void));
|
||||
void parse_entries PARAMS((void));
|
||||
char *devname PARAMS((long));
|
||||
@@ -90,7 +92,7 @@
|
||||
|
||||
/* code */
|
||||
|
||||
-void
|
||||
+int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
int c;
|
||||
@@ -349,12 +351,30 @@
|
||||
{
|
||||
/* All categories must have one match. */
|
||||
|
||||
- if (all_list
|
||||
- && hashtab_find (all_list, uid, 0) == NULL
|
||||
- && hashtab_find (all_list, dev, 0) == NULL
|
||||
- && hashtab_find (all_list, comm, COMM_LEN) == NULL)
|
||||
- return 0;
|
||||
-
|
||||
+ if (all_list)
|
||||
+ {
|
||||
+ struct hashtab_order ho;
|
||||
+ struct hashtab_elem* he;
|
||||
+ char *key;
|
||||
+ int haveall = 1;
|
||||
+
|
||||
+ /* walk the all_list hash */
|
||||
+ he = hashtab_first( all_list, &ho );
|
||||
+ if( he == NULL ) return 0; /* empty hash??? */
|
||||
+ while (haveall && he)
|
||||
+ {
|
||||
+ key = (char *) hashtab_get_key(he);
|
||||
+ /* every element must match at least one of {uid,dev,comm}
|
||||
+ * our parameters
|
||||
+ */
|
||||
+ haveall &= !strcmp( key, uid ) || !strcmp( key, dev )
|
||||
+ || !strncmp( key, comm, COMM_LEN );
|
||||
+
|
||||
+ he = hashtab_next( &ho );
|
||||
+ }
|
||||
+ return haveall;
|
||||
+ }
|
||||
+
|
||||
if (tty_list && hashtab_find (tty_list, dev, 0) == NULL)
|
||||
return 0;
|
||||
|
89
psacct-6.5.1-LargeFile.patch
Normal file
89
psacct-6.5.1-LargeFile.patch
Normal file
@ -0,0 +1,89 @@
|
||||
diff -up acct-6.5.1/configure.pom acct-6.5.1/configure
|
||||
--- acct-6.5.1/configure.pom 2009-09-06 20:06:58.000000000 +0200
|
||||
+++ acct-6.5.1/configure 2009-12-21 15:24:37.000000000 +0100
|
||||
@@ -3684,12 +3684,12 @@ fi
|
||||
{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
|
||||
$as_echo "$ac_cv_prog_cc_g" >&6; }
|
||||
if test "$ac_test_CFLAGS" = set; then
|
||||
- CFLAGS=$ac_save_CFLAGS
|
||||
+ CFLAGS="$ac_save_CFLAGS -D_FILE_OFFSET_BITS=64"
|
||||
elif test $ac_cv_prog_cc_g = yes; then
|
||||
if test "$GCC" = yes; then
|
||||
- CFLAGS="-g -O2"
|
||||
+ CFLAGS="-g -O2 -D_FILE_OFFSET_BITS=64"
|
||||
else
|
||||
- CFLAGS="-g"
|
||||
+ CFLAGS="-g -D_FILE_OFFSET_BITS=64"
|
||||
fi
|
||||
else
|
||||
if test "$GCC" = yes; then
|
||||
diff -up acct-6.5.1/file_rd.c.pom acct-6.5.1/file_rd.c
|
||||
--- acct-6.5.1/file_rd.c.pom 2009-09-06 01:39:50.000000000 +0200
|
||||
+++ acct-6.5.1/file_rd.c 2009-12-21 15:26:30.000000000 +0100
|
||||
@@ -7,6 +7,9 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
+#define _LARGEFILE_SOURCE 1
|
||||
+#define _FILE_OFFSET_BITS 64
|
||||
+
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
@@ -103,9 +106,9 @@ char *file_reader_get_entry(struct file_
|
||||
|
||||
if (fri->backwards)
|
||||
{
|
||||
- long offset, max_recs, recs_to_read;
|
||||
+ off_t offset, max_recs, recs_to_read;
|
||||
|
||||
- if ((offset = ftell (fri->fp)) <= 0)
|
||||
+ if ((offset = ftello (fri->fp)) <= 0)
|
||||
goto no_more_records;
|
||||
|
||||
/* Read as many records as possible, up to
|
||||
@@ -124,8 +127,8 @@ char *file_reader_get_entry(struct file_
|
||||
|
||||
if (debugging_enabled)
|
||||
{
|
||||
- long new_offset = ftell (fri->fp);
|
||||
- fprintf (stddebug, "Did seek in file %ld --> %ld\n",
|
||||
+ off_t new_offset = ftello (fri->fp);
|
||||
+ fprintf (stddebug, "Did seek in file %lld --> %lld\n",
|
||||
offset, new_offset);
|
||||
}
|
||||
|
||||
@@ -134,7 +137,7 @@ char *file_reader_get_entry(struct file_
|
||||
fatal ("get_entry: couldn't read from file");
|
||||
|
||||
if (debugging_enabled)
|
||||
- fprintf (stddebug, "Got %ld records from file\n",
|
||||
+ fprintf (stddebug, "Got %lld records from file\n",
|
||||
recs_to_read);
|
||||
|
||||
/* don't need to check this, because the above read was fine */
|
||||
diff -up acct-6.5.1/file_rd.h.pom acct-6.5.1/file_rd.h
|
||||
--- acct-6.5.1/file_rd.h.pom 2009-09-05 03:15:49.000000000 +0200
|
||||
+++ acct-6.5.1/file_rd.h 2009-12-21 15:27:24.000000000 +0100
|
||||
@@ -4,6 +4,8 @@
|
||||
* record-oriented files.
|
||||
*
|
||||
*/
|
||||
+#define __USE_XOPEN
|
||||
+#include <unistd.h>
|
||||
|
||||
struct file_list
|
||||
{
|
||||
@@ -19,9 +21,9 @@ struct file_rd_info
|
||||
because we close files as soon as
|
||||
we find their ends and free their
|
||||
entries from the linked list */
|
||||
- int recs_read; /* how many records are in our buffer? */
|
||||
- int recs_left; /* how many records are left in the
|
||||
- buffer to be used? */
|
||||
+ off_t recs_read; /* how many records are in our buffer? */
|
||||
+ off_t recs_left; /* how many records are left in the
|
||||
+ buffer to be used? */
|
||||
void *buffer; /* the buffer for the data */
|
||||
int buffered_records; /* how many records to buffer */
|
||||
int record_size; /* how big is each record? */
|
12
psacct-6.5.1-exit.patch
Normal file
12
psacct-6.5.1-exit.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up acct-6.5.1/accton.c.pom acct-6.5.1/accton.c
|
||||
--- acct-6.5.1/accton.c.pom 2009-09-06 01:38:20.000000000 +0200
|
||||
+++ acct-6.5.1/accton.c 2009-12-18 15:21:38.000000000 +0100
|
||||
@@ -203,7 +203,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
|
||||
/* did the system call return an error? */
|
||||
- if (-1 == status_acct)
|
||||
+ if (-1 == status_acct && errno != ENOSYS)
|
||||
{
|
||||
int err = errno;
|
||||
perror ("accton");
|
109
psacct-6.5.1-hzval-fixes2.patch
Normal file
109
psacct-6.5.1-hzval-fixes2.patch
Normal file
@ -0,0 +1,109 @@
|
||||
diff -up acct-6.5.1/lastcomm.c.hz acct-6.5.1/lastcomm.c
|
||||
--- acct-6.5.1/lastcomm.c.hz 2009-09-06 01:39:50.000000000 +0200
|
||||
+++ acct-6.5.1/lastcomm.c 2009-12-18 15:24:13.000000000 +0100
|
||||
@@ -43,6 +43,9 @@ MA 02139, USA. */
|
||||
# include <time.h>
|
||||
# endif
|
||||
#endif
|
||||
+#ifdef HAVE_UNISTD_H
|
||||
+#include <unistd.h>
|
||||
+#endif
|
||||
|
||||
#include <pwd.h>
|
||||
|
||||
@@ -73,6 +76,7 @@ char *program_name; /* name of the prog
|
||||
|
||||
int show_paging = 0; /* If they want paging stats, print 'em */
|
||||
|
||||
+static unsigned int hzval;
|
||||
|
||||
/* Here are various lists for the user to specify entries that they
|
||||
want to see. */
|
||||
@@ -100,6 +104,8 @@ int main(int argc, char *argv[])
|
||||
`-f' or `--file' flag */
|
||||
int backwards = 1; /* default to reading backwards */
|
||||
|
||||
+ hzval = sysconf(_SC_CLK_TCK);
|
||||
+
|
||||
program_name = argv[0];
|
||||
|
||||
while (1)
|
||||
@@ -396,7 +402,7 @@ void parse_entries(void)
|
||||
#ifdef LINUX_MULTIFORMAT
|
||||
((ut + st) / (double) rec->ac_ahz),
|
||||
#else
|
||||
- ((ut + st) / (double) ahz),
|
||||
+ ((ut + st) / (double) hzval),
|
||||
#endif
|
||||
ctime (&btime));
|
||||
else
|
||||
@@ -406,7 +412,7 @@ void parse_entries(void)
|
||||
#ifdef LINUX_MULTIFORMAT
|
||||
((ut + st) / (double) rec->ac_ahz),
|
||||
#else
|
||||
- ((ut + st) / (double) ahz),
|
||||
+ ((ut + st) / (double) hzval),
|
||||
#endif
|
||||
ctime (&btime));
|
||||
#else
|
||||
diff -up acct-6.5.1/sa.c.hz acct-6.5.1/sa.c
|
||||
--- acct-6.5.1/sa.c.hz 2009-09-06 17:54:56.000000000 +0200
|
||||
+++ acct-6.5.1/sa.c 2009-12-18 15:25:54.000000000 +0100
|
||||
@@ -253,6 +253,7 @@ int print_all_records = 0; /* don't lump
|
||||
"***other" category */
|
||||
int always_yes = 0; /* nonzero means always answer yes to
|
||||
a query */
|
||||
+static unsigned int hzval;
|
||||
|
||||
/* prototypes */
|
||||
|
||||
@@ -281,6 +282,7 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
int c;
|
||||
|
||||
+ static unsigned int hzval;
|
||||
program_name = argv[0];
|
||||
|
||||
/* Cache the page size of the machine for the PAGES_TO_KB macro */
|
||||
@@ -598,7 +600,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (debugging_enabled)
|
||||
{
|
||||
- (void)fprintf (stddebug, "AHZ -> %d\n", ahz);
|
||||
+ (void)fprintf (stddebug, "hzval -> %d\n", hzval);
|
||||
(void)fprintf (stddebug, "getpagesize() -> %d\n", getpagesize ());
|
||||
(void)fprintf (stddebug, "system_page_size == %.2f\n", system_page_size);
|
||||
}
|
||||
@@ -962,7 +964,7 @@ static void print_stats_nicely (struct s
|
||||
/* Christoph Badura <bad@flatlin.ka.sub.org> says:
|
||||
*
|
||||
* The k*sec statistic is computed as
|
||||
- * ((ac_utime+ac_stime)*pages_to_kbytes(ac_mem))/AHZ. Of course you
|
||||
+ * ((ac_utime+ac_stime)*pages_to_kbytes(ac_mem))/hzval. Of course you
|
||||
* need to expand the comp_t values.
|
||||
*
|
||||
* PAGES_TO_KBYTES(x) simply divides x by (getpagesize()/1024). Of
|
||||
@@ -1176,19 +1178,19 @@ void parse_acct_entries (void)
|
||||
while ((rec = pacct_get_entry ()) != NULL)
|
||||
{
|
||||
#ifdef HAVE_ACUTIME
|
||||
- double ut = comp_t_2_double (rec->ac_utime) / CURR_AHZ;
|
||||
+ double ut = comp_t_2_double (rec->ac_utime) / (double) hzval;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACSTIME
|
||||
- double st = comp_t_2_double (rec->ac_stime) / CURR_AHZ;
|
||||
+ double st = comp_t_2_double (rec->ac_stime) / (double) hzval;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACETIME
|
||||
- double et = ACETIME_2_DOUBLE (rec->ac_etime) / CURR_AHZ;
|
||||
+ double et = comp_t_2_double (rec->ac_etime) / (double) hzval;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACIO
|
||||
- double di = comp_t_2_double (rec->ac_io) / CURR_AHZ;
|
||||
+ double di = comp_t_2_double (rec->ac_io) / (double) hzval;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACMEM
|
@ -1,6 +1,7 @@
|
||||
--- acct-6.3.2/dev_hash.c.pts Thu Apr 18 19:18:15 1996
|
||||
+++ acct-6.3.2/dev_hash.c Tue Aug 31 17:20:56 2004
|
||||
@@ -29,6 +29,7 @@
|
||||
diff -up acct-6.5.1/dev_hash.c.orig acct-6.5.1/dev_hash.c
|
||||
--- acct-6.5.1/dev_hash.c.orig 2009-09-06 01:39:50.000000000 +0200
|
||||
+++ acct-6.5.1/dev_hash.c 2009-12-21 14:01:24.000000000 +0100
|
||||
@@ -31,6 +31,7 @@ char *alloca ();
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
@ -8,7 +9,7 @@
|
||||
#include <pwd.h>
|
||||
|
||||
#include "common.h"
|
||||
@@ -52,6 +53,11 @@
|
||||
@@ -54,6 +55,11 @@ char *alloca ();
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@ -20,9 +21,9 @@
|
||||
|
||||
/* globals */
|
||||
|
||||
@@ -62,6 +68,55 @@
|
||||
};
|
||||
|
||||
@@ -64,6 +70,54 @@ struct dev_data
|
||||
char *name; /* name of the device */
|
||||
};
|
||||
|
||||
+/* hash all possible /dev/pts devices as they only appear
|
||||
+ * in the filesystem when the device is active.
|
||||
@ -53,7 +54,7 @@
|
||||
+ if (!strcmp (uts.sysname, pts_ent->utsname))
|
||||
+ break;
|
||||
+ }
|
||||
+ if (pts_ent == NULL) return; /* unsupported OS */
|
||||
+ if (pts_ent == NULL) return; /* unsupported OS */
|
||||
+
|
||||
+ for (i = 0; i < pts_ent->max; ++i) {
|
||||
+ long dev_num;
|
||||
@ -71,17 +72,14 @@
|
||||
+ hashtab_set_value (he, &dd, sizeof (dd));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
/* Read the DIRNAME directory entries and make a linked list of ttys
|
||||
(so we can search through it later) */
|
||||
|
||||
@@ -79,7 +134,14 @@
|
||||
|
||||
@@ -80,6 +134,13 @@ static void setup_devices(char *dirname)
|
||||
if ((dirp = opendir (dirname)) == NULL)
|
||||
return; /* skip it silently */
|
||||
-
|
||||
+
|
||||
|
||||
+ if (!strcmp (dirname, "/dev/pts")) {
|
||||
+ /* assuming SysV, these are dynamically allocated */
|
||||
+ closedir (dirp);
|
||||
@ -92,26 +90,8 @@
|
||||
for (dp = readdir (dirp); dp != NULL; dp = readdir (dirp))
|
||||
{
|
||||
char *fullname = (char *) alloca ((strlen (dirname)
|
||||
@@ -105,7 +167,7 @@
|
||||
dev_num = sp.st_rdev;
|
||||
dd.name = (char *) xmalloc (sizeof (char) * (NAMLEN (dp) + 1));
|
||||
strcpy (dd.name, dp->d_name);
|
||||
-
|
||||
+
|
||||
he = hashtab_create (dev_table, (void *) &dev_num, sizeof (dev_num));
|
||||
hashtab_set_value (he, &dd, sizeof (dd));
|
||||
}
|
||||
@@ -114,6 +176,8 @@
|
||||
}
|
||||
|
||||
|
||||
+
|
||||
+
|
||||
/* Return the name of the device associated with DEV_NUM. The
|
||||
argument passed was originally a dev_t, but that data type is too
|
||||
limited on some systems (won't let us pass -1 because it's an
|
||||
@@ -123,10 +187,11 @@
|
||||
devname (long dev_num)
|
||||
@@ -122,10 +183,11 @@ static void setup_devices(char *dirname)
|
||||
char *dev_gnu_name(long dev_num)
|
||||
{
|
||||
struct hashtab_elem *he;
|
||||
+ static char devstr [20];
|
||||
@ -123,28 +103,24 @@
|
||||
return "__";
|
||||
|
||||
if (dev_table == NULL)
|
||||
@@ -135,6 +200,7 @@
|
||||
@@ -134,6 +196,7 @@ char *dev_gnu_name(long dev_num)
|
||||
setup_devices ("/dev"); /* most certainly */
|
||||
setup_devices ("/dev/pty"); /* perhaps */
|
||||
setup_devices ("/dev/ptym"); /* perhaps */
|
||||
+ setup_devices ("/dev/pts"); /* perhaps */
|
||||
}
|
||||
|
||||
|
||||
he = hashtab_find (dev_table, (void *) &dev_num, sizeof (dev_num));
|
||||
@@ -144,9 +210,12 @@
|
||||
struct dev_data *dd = hashtab_get_value (he);
|
||||
@@ -144,7 +207,10 @@ char *dev_gnu_name(long dev_num)
|
||||
return dd->name;
|
||||
}
|
||||
-
|
||||
|
||||
- /* didn't find it */
|
||||
-
|
||||
- return "??";
|
||||
+
|
||||
+ /* didn't find it, return it as [maj,min] */
|
||||
+
|
||||
+ sprintf (devstr, "[%d,%d]", /* is this portable? */
|
||||
+ (int) ((dev_num & 0xFF00) >> 8), (int) (dev_num & 0x00FF));
|
||||
+
|
||||
+ sprintf (devstr, "[%d,%d]", /* is this portable? */
|
||||
+ (int) ((dev_num & 0xFF00) >> 8), (int) (dev_num & 0x00FF));
|
||||
|
||||
- return "??";
|
||||
+ return devstr;
|
||||
}
|
||||
|
26
psacct.spec
26
psacct.spec
@ -11,23 +11,22 @@
|
||||
|
||||
Summary: Utilities for monitoring process activities
|
||||
Name: psacct
|
||||
Version: 6.3.2
|
||||
Release: 57%{?dist}
|
||||
Version: 6.5.1
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+
|
||||
Group: Applications/System
|
||||
Source: ftp://ftp.gnu.org/pub/gnu/acct-6.3.2.tar.gz
|
||||
URL: ftp://ftp.gnu.org/pub/gnu/acct/
|
||||
Source: ftp://ftp.gnu.org/pub/gnu/acct/acct-%{version}.tar.gz
|
||||
Source1: psacct.init
|
||||
# This dumb patch breaks FHS 2.2 compliance, so it is disabled now except
|
||||
# in 7.x builds. Do not use it in new products.
|
||||
Patch0: acct-6.3.2-config.patch
|
||||
Patch1: acct-6.3.2-exit.patch
|
||||
Patch1: psacct-6.5.1-exit.patch
|
||||
# Fixes some broken calls to ctime() on 64bit arch's <mharris@redhat.com>
|
||||
Patch2: psacct-6.3.2-64bit-fixes.patch
|
||||
Patch3: psacct-6.3.2-hzval-fixes2.patch
|
||||
Patch4: acct-6.3.2-pts.patch
|
||||
Patch5: psacct-6.3.2-strictmatch.patch
|
||||
Patch3: psacct-6.5.1-hzval-fixes2.patch
|
||||
Patch4: psacct-6.5.1-pts.patch
|
||||
Patch6: psacct-6.3.2-sa-manfix.patch
|
||||
Patch7: psacct-6.3.2-LargeFile.patch
|
||||
Patch7: psacct-6.5.1-LargeFile.patch
|
||||
Patch8: psacct-6.3.2-lastcomm_man.patch
|
||||
Patch9: acct-6.3.2-sa_manpage.patch
|
||||
Patch11: psacct-6.3.2-man-pages.patch
|
||||
@ -56,11 +55,10 @@ commands.
|
||||
%if ! %{FHS_compliant}
|
||||
%patch0 -p0 -b .config
|
||||
%endif
|
||||
|
||||
%patch1 -p1 -b .psacct-exit
|
||||
%patch2 -p0 -b .64bit-fixes
|
||||
%patch3 -p1 -b .hz
|
||||
%patch4 -p1 -b .pts
|
||||
%patch5 -p1 -b .strictmatch
|
||||
%patch6 -p1 -b .tio-avio
|
||||
%patch7 -p1 -b .lfs
|
||||
%patch8 -p1 -b .man
|
||||
@ -145,7 +143,7 @@ touch %{accounting_logdir}/pacct
|
||||
%preun
|
||||
if [ $1 = 0 ]; then
|
||||
/sbin/install-info --delete %{_infodir}/accounting.info.gz %{_infodir}/dir --entry="* accounting: (accounting). The GNU Process Accounting Suite." 2>/dev/null
|
||||
/sbin/service psacct stop > /dev/null 2>&1
|
||||
/sbin/service psacct stop > /dev/null 2>&1
|
||||
/sbin/chkconfig --del psacct
|
||||
fi
|
||||
|
||||
@ -179,6 +177,10 @@ fi
|
||||
%{_infodir}/accounting.info.gz
|
||||
|
||||
%changelog
|
||||
* Fri Dec 18 2009 Ivana Hutarova Varekova <varekova@redhat.com> - 6.5-1
|
||||
- update to 6.5
|
||||
remove unnecessary patches, spec file changes
|
||||
|
||||
* Fri Dec 9 2009 Ivana Hutarova Varekova <varekova@redhat.com> - 6.2.3-57
|
||||
- fix the initscript (service restart does not work)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user