On 3/1/23 23:10, Eric Blake wrote:
> On Wed, Mar 01, 2023 at 06:43:11PM +0100, Laszlo Ersek wrote:
>> On 3/1/23 17:54, Eric Blake wrote:
>>> I took the easy route of crippling what I couldn't get working, on the
>>> grounds that partial coverage is better than none now that we have
>>> Cirrus CI checking commits on additional platforms.
>>>
>>> This series got me to a green checkmark:
>>> https://gitlab.com/ebblake/nbdkit/-/pipelines/793156983
>>>
>>> but depends on an as-yet uncommitted patch in libvirt-ci:
>>> https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/360
>>>
>>> Eric Blake (5):
>>>   ci: Expose more env vars needed by build.sh
>>>   ci: Another attempt at MacOS
>>>   rust: Skip CI builds on MacOS
>>>   golang: Skip CI builds on MacOS and newer FreeBSD
>>>   perl: Skip CI builds on newer FreeBSD
>>>
>>>  .gitlab-ci.yml                |  3 +++
>>>  ci/cirrus/build.yml           |  3 +++
>>>  ci/cirrus/macos-12.vars       |  4 ++--
>>>  ci/gitlab.yml                 |  7 +++++++
>>>  ci/gitlab/build-templates.yml | 31 ++++++++++++++++++++++++++++++-
>>>  ci/gitlab/builds.yml          | 11 ++++++++---
>>>  ci/manifest.yml               | 20 +++++++++++++++-----
>>>  7 files changed, 68 insertions(+), 11 deletions(-)
>>>
>>
>> series
>> Acked-by: Laszlo Ersek <ler...@redhat.com>
> 
> Thanks; now in as 99c57eef..648a7909
> 
>>
>> One question (for my understanding) about the context of patch#1:
>>
>>            -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
>>
>> what's this [@] notation? Why do we need to sink the at-sign into a
>> bracket expression?
> 
> In the context of this patch, copy-and-paste from existing paradigm.
> More historically, I can think of two possible sources, both from GNU
> heritage:
> 
> For a project using autoconf, it is explicitly documented that any
> @STR@ expression in a .in file will be substituted with the contents
> of the shell variable $STR at the time that ./configure has finished
> learning about the current system.  But it can be expensive to write a
> lot of .in templates, so autoconf actually encourages a style where
> you only need to generate Makefile.in (which DOES use @FOO@
> substitution from autoconf) where the resulting Makefile in turn
> applies subsequent @FOO@ substitution in other target files not under
> autoconf's control.  But when the make rule to do that substitution
> lives in a file that itself undergoes @ expansion, you need a way to
> quote which instances get expanded at make time rather than configure
> time.  For example, look under 'make install' in:
> https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/autoconf.html#Installation-Directory-Variables
> 
> | Some details are noteworthy:
> | 
> | ‘@bindir[@]’
> | 
> |     The brackets prevent configure from replacing ‘@bindir@’ in the Sed 
> expression itself. Brackets are preferable to a backslash here, since Posix 
> says ‘\@’ is not portable.
> 
> The other place where I've seen common use of a single-character
> bracket expression as an escape for an otherwise literal regex is in
> gnulib's tree-wide syntax-checking.  And of course, you don't want to
> hit a false-positive of the regex itself being an otherwise forbidden
> string.  For example:
> https://git.savannah.gnu.org/cgit/gnulib.git/tree/top/maint.mk#n371
> 
> And since libvirt used to use gnulib's maint.mk regex-based syntax
> checking, before weaning itself off gnulib, this may be why libvirt-ci
> (the source of lcitool) still utilizes @FOO@ regex with [@] escaping.
> 
> Or, it could be because gitlab and/or Cirrus do their own @FOO@
> expansions at job kickoff, borrowing from the earlier practice of
> autoconf.  I don't see any other @FOO@ listings in .gitlab-ci.yml or
> ci/gitlab.yml, but I do see that the resulting ci/cirrus/$NAME.yml
> produced by the sed substitution during gitlab time DOES contain other
> things like @CIRRUS_VM_INSTANCE_TYPE@ that we are NOT touching on the
> gitlab side, so it seems fairly certain that Cirrus does some @FOO@
> expansion, and timing which part of the job does which expansions may
> matter.  At this point, erring on the side of caution and coding by
> copy/paste is simpler than determining if dropping the quoting is
> feasible.
> 

Thanks! :)
Laszlo
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to