1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 <2024> 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 <2024> 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: enable pvAccess by default |
From: | Han Lee via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 3 Apr 2024 11:25:13 -0700 |
On 3/31/24 13:53, William Kirstaedter via Tech-talk wrote:
> Hello Core Devs,
>
> I would like to know if you have already considered activating pvAccess for softIOCs by default.
Changing defaults seems certain to surprise someone. I understand
the desire for change though as out of date defaults confuse new
users.
Historically, epics-base development has prioritized unsurprising
upgrades over unconfused newbies. Still, changes are possible if
folks want to propose something concrete. (aka. PRs welcomed)
> I would probably adapt the Makefile template and simply copy the section from the example IOC:
>
> # Link QSRV (pvAccess Server) if available
> ifdef EPICS_QSRV_MAJOR_VERSION
> _APPNAME__LIBS += qsrv
> _APPNAME__LIBS += $(EPICS_BASE_PVA_CORE_LIBS)
> _APPNAME__DBD += PVAServerRegister.dbd
> _APPNAME__DBD += qsrv.dbd
> endif
When PVXS is included in RELEASE, then PVXS_MAJOR_VERSION will be defined.
So some similar logic can be used.
> ifdef PVXS_MAJOR_VERSION
> _APPNAME__DBD += pvxsIoc.dbd
> _APPNAME__LIBS += pvxsIoc pvxs
> endif
Of course this raises the question of what to do if both are defined?
I have tried to design PVXS/QSRV2 so that both QSRV1 and QSRV2 can be linked
into the same executable. In this happens, then on startup QSRV2 should
detect the presence of QSRV1 and disable itself.
That said, I would recommend avoiding this situation with Makefile logic like:
> ifdef PVXS_MAJOR_VERSION # prefer QSRV2 :)
> nasaAcq_DBD += pvxsIoc.dbd
> nasaAcq_LIBS += pvxsIoc pvxs
> else
> ifdef EPICS_QSRV_MAJOR_VERSION # fallback to QSRV1
> nasaAcq_LIBS += qsrv
> nasaAcq_LIBS += $(EPICS_BASE_PVA_CORE_LIBS)
> nasaAcq_DBD += PVAServerRegister.dbd
> nasaAcq_DBD += qsrv.dbd
> endif
> endif