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  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Possible bug in convertRelease.pl
From: "Johnson, Andrew N. via Core-talk" <core-talk at aps.anl.gov>
To: Florian Feldbauer <florian at ep1.ruhr-uni-bochum.de>
Cc: EPICS core-talk <core-talk at aps.anl.gov>, Peter Zumbruch <P.Zumbruch at gsi.de>
Date: Tue, 18 Aug 2020 17:31:15 +0000
Hi Florian,

On Aug 18, 2020, at 3:32 AM, Florian Feldbauer via Core-talk <core-talk at aps.anl.gov> wrote:
I'm using Base 7.0.3.1 and have noticed a small Problem.

I tried building calc, asyn, stream and iocStats modules (in this order) using a `$(TOP)/../RELEASE.local` file, so I do not have to make site specific modifications to any of the git repos.

My RELEASE.local looks like this:

## Module directory
SUPPORT      = /opt/epics/modules

## unused "optional" dependencies
undefine IPAC
undefine SNCSEQ
undefine SSCAN
undefine PCRE

## Modules
ASYN      = $(SUPPORT)/asyn
CALC      = $(SUPPORT)/calc
IOCSTATS  = $(SUPPORT)/iocStats
STREAM    = $(SUPPORT)/stream

## EPICS BASE
EPICS_BASE   = /opt/epics/base

Now building calc, asyn, and stream works just fine, but building iocStats failed with


perl -CSD /opt/epics/base/bin/linux-x86_64/convertRelease.pl checkRelease

Definition of SNCSEQ conflicts with ASYN support.
In this application or module, a RELEASE file
conflicts with ASYN at /opt/epics/modules/asyn
  Here: SNCSEQ = /opt/epics/modules/seq-2-0-12
  ASYN: SNCSEQ = /opt/epics/modules/seq-2-2-5

Looking at ${BASE}/lib/perl/EPICS/Release.pm, the script looks only for definitions like "<macro> = <path>", but is ignoring "undefine" statements which leads to above error.

The version of GNUmake we were using when I wrote the original EPICS::Release Perl module didn’t have an undefine statement at all, it got added fairly recently. Just setting a variable to nothing is usually sufficient to resolve the above issue, so instead of your block of undefine statements above you should be able to do this:
## unused "optional" dependencies
IPAC=
SNCSEQ=
SSCAN=
PCRE=
We don’t normally use the GNUmake ‘flavor’ or ‘origin’ functions which can tell the difference, and the above approach will work with any EPICS release.

Attached is a small patch to also handle those undefine statements.

I don’t see any problem with adding support for that syntax. I see that this was discussed on tech-talk in June last year, but as you discovered that only works with one of the two RELEASE file parsers that the EPICS build system relies on. I am using a different implementation than your patch and optimizing the other code in that routine slightly at the same time, so this should appear in 7.0.4.2 or 7.0.5, whichever comes next.

Thanks,

- Andrew

-- 
Complexity comes for free, simplicity you have to work for.


Replies:
Re: Possible bug in convertRelease.pl Florian Feldbauer via Core-talk
Re: Possible bug in convertRelease.pl Florian Feldbauer via Core-talk
References:
Possible bug in convertRelease.pl Florian Feldbauer via Core-talk

Navigate by Date:
Prev: Re: getVersionHelper.pl ignore -V option Michael Davidsaver via Core-talk
Next: Re: getVersionHelper.pl ignore -V option Jeong Han Lee via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Possible bug in convertRelease.pl Florian Feldbauer via Core-talk
Next: Re: Possible bug in convertRelease.pl Florian Feldbauer via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 19 Aug 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·