EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: checkRelease problem
From: "Johnson, Andrew N. via Core-talk" <[email protected]>
To: "Zimoch Dirk (PSI)" <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 7 Nov 2019 23:57:58 +0000
Hi Dirk,

On 11/7/19 9:11 AM, Zimoch Dirk (PSI) via Core-talk wrote:
I have in my RELEASE.local:
SSCAN=
IPAC=
SNCSEQ=
(To overwrite settings in some SynApps modules.)

I get this error:
This application's RELEASE file(s) define 
	IPAC =  
after but not adjacent to 
	SSCAN =  
both of which resolve to /home/zimoch/git/calc/configure/O.linux-x86_64 
Module definitions that share paths must be grouped together. 
Either remove a definition, or move it to a line immediately 
above or below the other(s). 
Any non-module definitions belong in configure/CONFIG_SITE. 

First of all, the definitions are adjacent. But more important, it should be OK to define an arbitrary number of module paths as empty strings.
I agree with your last statement, that's an oops!

When the script does those checks it filters each value through AbsPath(), but doing that for an empty string returns the CWD (hence your "both of which resolve to" path above).

The "lines are not adjacent" message isn't referring to the entries in your RELEASE.local but to those in the RELEASE file where the module names were first defined. The script adds names to a list the first time it sees each one defined (ignoring repeats), but it does remember all the values it sees which get stored separately in a hash. "When first seen" is the order that actually matters for the purposes of this check, so while the above wording isn't correct when values get overwritten by later assignments, the rule that it's enforcing is correct. I will re-word the message.

This patch (against 3.15) ignores empty values for the purposes of these checks. Please confirm that it works for you and I will commit it:
diff --git a/src/tools/convertRelease.pl b/src/tools/convertRelease.pl
index b80ae6f..09429e3 100644
--- a/src/tools/convertRelease.pl
+++ b/src/tools/convertRelease.pl
@@ -242,7 +242,9 @@ sub checkRelease {
     my $latest = AbsPath($macros{$app});
     my %paths = ($latest => $app);
     foreach $app (@modules) {
-        my $path = AbsPath($macros{$app});
+        my $val = $macros{$app};
+        next if $val eq '';
+        my $path = AbsPath($val);
         if ($path ne $latest && exists $paths{$path}) {
             my $prev = $paths{$path};
             print "\n" unless ($status);

Thanks,

- Andrew
-- 
Complexity comes for free, Simplicity you have to work for.

Replies:
AW: checkRelease problem Zimoch Dirk (PSI) via Core-talk
References:
checkRelease problem Zimoch Dirk (PSI) via Core-talk

Navigate by Date:
Prev: checkRelease problem Zimoch Dirk (PSI) via Core-talk
Next: missing: TESTDBD Benjamin Franksen via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: checkRelease problem Zimoch Dirk (PSI) via Core-talk
Next: AW: checkRelease problem Zimoch Dirk (PSI) via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 11 Nov 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·