diff -ruN free-sa-devel.orig/Makefile free-sa-devel/Makefile --- free-sa-devel.orig/Makefile Tue Apr 26 12:17:14 2011 +++ free-sa-devel/Makefile Tue May 10 11:20:07 2011 @@ -6,11 +6,12 @@ # PORTNAME= free-sa -PORTVERSION= 2.0.0b4 +PORTVERSION= 2.0.0b4.p7 CATEGORIES= www MASTER_SITES= SF -MASTER_SITE_SUBDIR= free-sa/free-sa-dev/2.0.0b4/ +MASTER_SITE_SUBDIR= free-sa/free-sa-dev/2.0.0b4p6/ PKGNAMESUFFIX= -devel +DISTNAME= free-sa-2.0.0b4p6 MAINTAINER= moiseev@mezonplus.ru COMMENT= Statistic analyzer for daemons log files similar to SARG diff -ruN free-sa-devel.orig/distinfo free-sa-devel/distinfo --- free-sa-devel.orig/distinfo Tue Apr 26 12:17:14 2011 +++ free-sa-devel/distinfo Tue May 10 10:54:45 2011 @@ -1,2 +1,2 @@ -SHA256 (free-sa-2.0.0b4.tar.gz) = 5ca6b80e826b9af923dcbc9d3ce48270e9368834e624dbd77c84dbcf0640167f -SIZE (free-sa-2.0.0b4.tar.gz) = 93728 +SHA256 (free-sa-2.0.0b4p6.tar.gz) = 81c062a8235322475ec710cb3e76a20730bce1d2c319334ef09a6a59b4af771b +SIZE (free-sa-2.0.0b4p6.tar.gz) = 95175 diff -ruN free-sa-devel.orig/files/patch-2.0.0b4p7 free-sa-devel/files/patch-2.0.0b4p7 --- free-sa-devel.orig/files/patch-2.0.0b4p7 Thu Jan 1 03:00:00 1970 +++ free-sa-devel/files/patch-2.0.0b4p7 Tue May 10 11:09:02 2011 @@ -0,0 +1,151 @@ +diff -urN ChangeLog free-sa-2.0.0b4p7/ChangeLog +--- ChangeLog 2011-05-02 19:28:57.000000000 +0400 ++++ free-sa-2.0.0b4p7/ChangeLog 2011-05-07 23:10:07.024000097 +0400 +@@ -1,4 +1,4 @@ +-2.0.0b4p6: ++2.0.0b4p7: + * FR3024195 (w_config.c) + You may use TAB for separating usertab entries. + * (w_svg.*) +@@ -15,6 +15,9 @@ + * (w_config.*, r_topusers.c, free-sa.conf*) + New options 'users_excess' and 'users_excess_limit' were added for + generating plain text report file with users exceeding specified limit. ++ * FR3137680 (w_log_operations.c) ++ Clear cache directory in case if no records were found and exit with good ++ return code. + + 2.0.0b4: + * (pt.iso88591.in, lt.iso885913.in) +diff -urN global.mk free-sa-2.0.0b4p7/global.mk +--- global.mk 2011-05-02 19:29:17.000000000 +0400 ++++ free-sa-2.0.0b4p7/global.mk 2011-05-07 23:07:59.715999989 +0400 +@@ -25,7 +25,7 @@ + include $(GMKPATH)/configs/$(OSTYPE).mk + + PROGNAME = Free-SA +-PROGVERSION = 2.0.0b4p6 ++PROGVERSION = 2.0.0b4p7 + PROGURL = http://free-sa.sourceforge.net + PROGLNAME = free-sa + PROGCOPYRIGHT = Copyright (C) 1997, 2006-2011 Oleg Sapon +diff -urN src/free-sa.c free-sa-2.0.0b4p7/src/free-sa.c +--- src/free-sa.c 2010-11-01 01:18:34.000000000 +0300 ++++ free-sa-2.0.0b4p7/src/free-sa.c 2011-05-07 21:11:47.995999949 +0400 +@@ -42,6 +42,7 @@ + SAdebug("Open file count: %d\nUsers entries count: %d\n", ofcount, icfg.ueCount); + #endif + ++ + EDEBUG(); + return(EXIT_SUCCESS); + } +diff -urN src/work/w_log_operations.c free-sa-2.0.0b4p7/src/work/w_log_operations.c +--- src/work/w_log_operations.c 2010-10-17 20:09:09.000000000 +0400 ++++ free-sa-2.0.0b4p7/src/work/w_log_operations.c 2011-05-07 23:01:50.483000189 +0400 +@@ -124,7 +124,7 @@ + ures = (struct SAusertab *)bsearch(&ukey, icfg.Usertab, (size_t)icfg.utCount, sizeof(struct SAusertab), (int (*)(const void *, const void *))compSAusertab); + if (ures != NULL) cures->vname = ures->ename; + } +- ++ + /* If we still not filled vname then fill it with value of name */ + if (!cures->vname) cures->vname = cures->name; + +@@ -264,7 +264,11 @@ + #endif + + /* Exit if no records found */ +- if (!icfg.ueCount) SAexit("No records found"); ++ if (!icfg.ueCount) { ++ SArm(cfg.cache_directory); ++ SAwarning("No records found"); ++ exit(EXIT_SUCCESS); ++ } + + /* Close log file */ + SAfclose(Log); +@@ -294,7 +298,7 @@ + + /* Save EOF position as end of 1st range (because ShowLogI seeks to EOF) */ + eseek = SAftell(Log); +- ++ + /* Fast (?) binary search */ + for (;;) { + /* Break if range is little enough to process it sequentally +@@ -333,7 +337,7 @@ + SAdebug("Final position found: %lld", (long long int)rseek); + #endif + } else SAwarning("Non-linear and/or non-seekable log format detected, can't seek for fast data processing"); +- ++ + return 0; + } + +@@ -341,11 +345,11 @@ + /* Function initial/finish log position: start/end */ + void ShowLogI(FILE *Log, time_t *mindate, time_t *maxdate) { + time_t ttime; +- +- ++ ++ + *mindate = SAMAXTIMET; + *maxdate = 0L; +- ++ + if (LogFormats[cfg.log_format].mode == 3) { /* Log file is linear and seekable */ + /* Read first record date */ + if (!READ_DT(Log, &ttime)) SAexit("Can't read log"); +@@ -390,10 +394,10 @@ + FILE *tLog; + char *tbuf, tfname[FILENAMESIZE]; + +- ++ + SAsnprintf(tfname, sizeof(tfname), "%s.new", cfg.log_file); + tLog = SAfopenI("w", tfname); +- ++ + tbuf = (char *)SAmalloc(RECORDSIZE); + while (READ_FULLDT(Log, &ttime, tbuf)) { + /* Skip records in specified date range */ +@@ -403,7 +407,7 @@ + SAfwrite1("\n", 1L, tLog); + } + free(tbuf); +- ++ + SAfclose(tLog); + SAfcloseU(Log, cfg.log_file); + if (rename(tfname, cfg.log_file)) SAexit("Can't rename %s to %s. %s", tfname, cfg.log_file, strerror(errno)); +@@ -414,23 +418,23 @@ + FILE *InitLog(void) { + FILE *retval; + struct stat tstat; +- +- ++ ++ + retval = SAfopenI("r", cfg.log_file); + if (fstat(fileno(retval), &tstat) == -1) SAexit("Can't stat %s", cfg.log_file); + if (S_ISFIFO(tstat.st_mode)) { + SAwarning("Log file is FIFO pipe, switching to non-seekable mode"); + SAclrbit(LogFormats[cfg.log_format].mode, 0); + } +- ++ + /* Set READ_RECORD for manually specified log format (others - for all) */ + READ_RECORDM = LogFormats[cfg.log_format].ReadRecordM; + READ_RECORDI = LogFormats[cfg.log_format].ReadRecord; + READ_DTI = LogFormats[cfg.log_format].ReadDT; + READ_FULLDTI = LogFormats[cfg.log_format].ReadFullDT; + READ_ALIGN = LogFormats[cfg.log_format].ReadAlign; +- +- ++ ++ + return retval; + } +