Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Apr 2020 18:39:57 +0000 (UTC)
From:      "Tobias C. Berner" <tcberner@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r532885 - head/sysutils/runwhen/files
Message-ID:  <202004241839.03OIdvaR085134@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tcberner
Date: Fri Apr 24 18:39:56 2020
New Revision: 532885
URL: https://svnweb.freebsd.org/changeset/ports/532885

Log:
  sysutils/runwhen: Add support for skalibs 2.9.2.1
  
  Five years after its latest release runwhen 2015.02.24 is no longer compatible
  the latest skalibs version (2.9.2.1 from 16 days ago).
  
  The attached patch allows the old runwhen code to build against the latest
  skalibs version.
  
  It converts the enum values in rw-match.c from lower to upper case to avoid a
  name collision on "div", deals with the renaming of tainnow.lib to to
  sysclock.lib and replaces a call to the deprecated env_get() function with
  getenv(). This gets rid of all compiler warnings and errors.
  
  PR:		245836
  Submitted by:	crest@rlwinm.de

Added:
  head/sysutils/runwhen/files/
  head/sysutils/runwhen/files/patch-package_compile   (contents, props changed)
  head/sysutils/runwhen/files/patch-src_rw-match.c   (contents, props changed)
  head/sysutils/runwhen/files/patch-src_rw__scan.c   (contents, props changed)
  head/sysutils/runwhen/files/patch-src_tainnow=contents   (contents, props changed)

Added: head/sysutils/runwhen/files/patch-package_compile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/runwhen/files/patch-package_compile	Fri Apr 24 18:39:56 2020	(r532885)
@@ -0,0 +1,74 @@
+--- package/compile.orig	2015-02-24 06:40:08 UTC
++++ package/compile
+@@ -634,7 +634,7 @@ make_13() {
+   set x \
+     ./compile/host/rw-add.o \
+     ./compile/host/runwhen.a \
+-    -lskarnet \
++    -L/usr/local/lib -lskarnet \
+     ${contents_30?} &&
+   shift &&
+   . ./compile/conf/host_link.sh
+@@ -679,7 +679,7 @@ make_15() {
+   set x \
+     ./compile/host/rw-match.o \
+     ./compile/host/runwhen.a \
+-    -lskarnet \
++    -L/usr/local/lib -lskarnet \
+     ${contents_30?} &&
+   shift &&
+   . ./compile/conf/host_link.sh
+@@ -724,7 +724,7 @@ make_17() {
+   set x \
+     ./compile/host/rw-max.o \
+     ./compile/host/runwhen.a \
+-    -lskarnet \
++    -L/usr/local/lib -lskarnet \
+     ${contents_30?} &&
+   shift &&
+   . ./compile/conf/host_link.sh
+@@ -769,7 +769,7 @@ make_19() {
+   set x \
+     ./compile/host/rw-min.o \
+     ./compile/host/runwhen.a \
+-    -lskarnet \
++    -L/usr/local/lib -lskarnet \
+     ${contents_30?} &&
+   shift &&
+   . ./compile/conf/host_link.sh
+@@ -814,7 +814,7 @@ make_21() {
+   set x \
+     ./compile/host/rw-sleep.o \
+     ./compile/host/runwhen.a \
+-    -lskarnet \
++    -L/usr/local/lib -lskarnet \
+     ${contents_30?} &&
+   shift &&
+   . ./compile/conf/host_link.sh
+@@ -859,7 +859,7 @@ make_23() {
+   set x \
+     ./compile/host/rw-sub.o \
+     ./compile/host/runwhen.a \
+-    -lskarnet \
++    -L/usr/local/lib -lskarnet \
+     ${contents_30?} &&
+   shift &&
+   . ./compile/conf/host_link.sh
+@@ -904,7 +904,7 @@ make_25() {
+   set x \
+     ./compile/host/rw-touch.o \
+     ./compile/host/runwhen.a \
+-    -lskarnet \
++    -L/usr/local/lib -lskarnet \
+     ${contents_30?} &&
+   shift &&
+   . ./compile/conf/host_link.sh
+@@ -994,7 +994,7 @@ make_30() {
+   make_ compile/host/skalibs_sysdeps &&
+   echo &&
+   prj_echo Making compile/host/tainnow &&
+-  cp ./compile/host/skalibs_sysdeps/tainnow.lib "${output?}" &&
++  cp ./compile/host/skalibs_sysdeps/sysclock.lib "${output?}" &&
+   contents_30=`cat "${output?}"`
+ } &&
+ 

Added: head/sysutils/runwhen/files/patch-src_rw-match.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/runwhen/files/patch-src_rw-match.c	Fri Apr 24 18:39:56 2020	(r532885)
@@ -0,0 +1,110 @@
+--- src/rw-match.c.orig	2020-04-22 21:36:45 UTC
++++ src/rw-match.c
+@@ -21,7 +21,7 @@ static void die_malformed(char const* str, char const*
+ #define DIE_RANGE() DIE1X(100, "timestamp out of range")
+ #define DIE_UNIT_RANGE(x0) DIE2X(100, "value out of range for unit: ", x0)
+ 
+-enum { unset, eq, eqn, div };
++enum { UNSET, EQ, EQN, DIV };
+ 
+ typedef struct {
+   unsigned int type;
+@@ -42,21 +42,21 @@ static unsigned int max_minute  (void) { return 59; }
+ static unsigned int max_second  (void) { return 59; }
+ 
+ static unit units_weekday[]={
+-  { unset, 0, -1, 0, max_weekday,  6, 'w' },
+-  { unset, 0, -1, 0, max_hour   , 23, 'H' },
+-  { unset, 0, -1, 0, max_minute , 59, 'M' },
+-  { unset, 0, -1, 0, max_second , 59, 'S' },
+-  { unset, 0, -1, 0, NULLP      ,  0,  0  }
++  { UNSET, 0, -1, 0, max_weekday,  6, 'w' },
++  { UNSET, 0, -1, 0, max_hour   , 23, 'H' },
++  { UNSET, 0, -1, 0, max_minute , 59, 'M' },
++  { UNSET, 0, -1, 0, max_second , 59, 'S' },
++  { UNSET, 0, -1, 0, NULLP      ,  0,  0  }
+ };
+ 
+ static unit units_monthday[]={
+-  { unset, 0, -1, 0, max_year    , -1, 'y' },
+-  { unset, 0, -1, 1, max_month   , 12, 'm' },
+-  { unset, 0, -1, 1, max_monthday, 31, 'd' },
+-  { unset, 0, -1, 0, max_hour    , 23, 'H' },
+-  { unset, 0, -1, 0, max_minute  , 59, 'M' },
+-  { unset, 0, -1, 0, max_second  , 59, 'S' },
+-  { unset, 0, -1, 0, NULLP       ,  0,  0  }
++  { UNSET, 0, -1, 0, max_year    , -1, 'y' },
++  { UNSET, 0, -1, 1, max_month   , 12, 'm' },
++  { UNSET, 0, -1, 1, max_monthday, 31, 'd' },
++  { UNSET, 0, -1, 0, max_hour    , 23, 'H' },
++  { UNSET, 0, -1, 0, max_minute  , 59, 'M' },
++  { UNSET, 0, -1, 0, max_second  , 59, 'S' },
++  { UNSET, 0, -1, 0, NULLP       ,  0,  0  }
+ };
+ 
+ static unsigned int max_monthday(void) {
+@@ -99,26 +99,26 @@ int main(int argc, char** argv) {
+                       "\"y\", \"m\", \"d\", \"w\", \"H\", \"M\", or \"S\"");
+       if (*constraint_str==units[i].id) break;
+     }
+-    if (units[i].type!=unset)
++    if (units[i].type!=UNSET)
+       DIE2X(100, "duplicate constraint for unit: ", constraint);
+     ++constraint_str;
+     switch (*constraint_str) {
+-      case '=': units[i].type=eq;  break;
+-      case '-': units[i].type=eqn; break;
+-      case '/': units[i].type=div; break;
++      case '=': units[i].type=EQ;  break;
++      case '-': units[i].type=EQN; break;
++      case '/': units[i].type=DIV; break;
+       default: die_malformed(constraint_str, "\"=\", \"-\", \"/\", or \",\"");
+     }
+     ++constraint_str;
+     len=uint_scan(constraint_str, &units[i].spec);
+     if (len==0) die_malformed(constraint_str, "number");
+-    if (units[i].spec==0) units[i].type=eq;
+-    else if (units[i].type==eqn) units[i].spec--;
++    if (units[i].spec==0) units[i].type=EQ;
++    else if (units[i].type==EQN) units[i].spec--;
+     if (units[i].spec>units[i].maxmax) {
+-      if (units[i].type!=div || units[i].min>0)
++      if (units[i].type!=DIV || units[i].min>0)
+         DIE_UNIT_RANGE(constraint);
+-      units[i].type=eq;
++      units[i].type=EQ;
+       units[i].spec=0;
+-    } else if (units[i].spec<units[i].min && units[i].type==eq)
++    } else if (units[i].spec<units[i].min && units[i].type==EQ)
+       DIE_UNIT_RANGE(constraint);
+     constraint_str+=len;
+   }
+@@ -149,22 +149,22 @@ int main(int argc, char** argv) {
+     }
+   }
+ 
+-  for (i=0; units[i].max!=NULLP && units[i].type==unset; ++i)
+-    units[i].type=div, units[i].spec=1;
++  for (i=0; units[i].max!=NULLP && units[i].type==UNSET; ++i)
++    units[i].type=DIV, units[i].spec=1;
+   for (; units[i].max!=NULLP; ++i)
+-    if (units[i].type==unset)
+-      units[i].type=eq, units[i].spec=units[i].min;
++    if (units[i].type==UNSET)
++      units[i].type=EQ, units[i].spec=units[i].min;
+ 
+   for (i=0; units[i].max!=NULLP;) {
+     unsigned int const value=(flag_increased? units[i].min: units[i].value);
+     unsigned int const spec=units[i].spec;
+     unsigned int newval;
+-    if (units[i].type==div) {
++    if (units[i].type==DIV) {
+       newval=value+(spec-1);
+       newval-=newval%spec;
+       if (flag_need_increase && newval==value) newval+=spec;
+     } else {
+-      if (units[i].type==eq) newval=spec;
++      if (units[i].type==EQ) newval=spec;
+       else newval=units[i].max()-spec;
+       if (newval<value) goto need_increase;
+       if (flag_need_increase && newval==value) goto need_increase;

Added: head/sysutils/runwhen/files/patch-src_rw__scan.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/runwhen/files/patch-src_rw__scan.c	Fri Apr 24 18:39:56 2020	(r532885)
@@ -0,0 +1,11 @@
+--- src/rw_scan.c.orig	2020-04-22 21:45:48 UTC
++++ src/rw_scan.c
+@@ -14,7 +14,7 @@ void rw_scan(tain_t* stamp, char const* text) {
+   char const* x;
+   switch (text[0]) {
+     case '$':
+-      x=env_get(text+1);
++      x=getenv(text+1);
+       if (x==NULLP) DIE_MALFORMED("timestamp", text);
+       text=x;
+       i=tain_scan(text, stamp);

Added: head/sysutils/runwhen/files/patch-src_tainnow=contents
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/runwhen/files/patch-src_tainnow=contents	Fri Apr 24 18:39:56 2020	(r532885)
@@ -0,0 +1,5 @@
+--- src/tainnow=contents.orig	2015-01-12 06:31:21 UTC
++++ src/tainnow=contents
+@@ -1 +1 @@
+-skalibs_sysdeps/tainnow.lib
++skalibs_sysdeps/sysclock.lib



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202004241839.03OIdvaR085134>