Re: [PATCH] build: use portable sed expressions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/10/2010 06:43 PM, Eric Blake wrote:
> * src/Makefile.am (libvirt.def, libvirt_qemu.def): '\}' and '\t'
> are not required by POSIX.  Use '}' and literal tab instead.
> (install-data-local): Avoid sed -i.
> * tests/read-bufsiz: Likewise.
> Reported by Mitchell Hashimoto.
> ---
> 
> This should work for you, but I'd appreciate positive feedback
> from an actual build on OS X.
> 
> I used cp/rm rather than mv when replacing sed -i, so as to preserve
> permissions on the just-installed file (in case creation of the
> temporary file via>  gets different permissions due to umask).
> 
> There was another use of sed -i in libvirt.spec.in, but as that
> is specific to rpm building, where we know GNU sed will be in
> use, I didn't see the point in changing it.
> 
>   src/Makefile.am   |   12 ++++++++----
>   tests/read-bufsiz |    6 +++---
>   2 files changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/src/Makefile.am b/src/Makefile.am
> index b321657..9bc4287 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -1029,14 +1029,14 @@ libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
>   libvirt.def: libvirt.syms
>   	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
>   	printf 'EXPORTS\n'>  $@-tmp&&  \
> -	sed -e '/^$$/d; /#/d; /:/d; /\}/d; /\*/d; /LIBVIRT_/d; s/[ \t]*\(.*\)\;/    \1/g' $^>>  $@-tmp&&  \
> +	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^>>  $@-tmp&&  \
>   	chmod a-w $@-tmp&&  \
>   	mv $@-tmp libvirt.def
> 
>   libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
>   	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
>   	printf 'EXPORTS\n'>  $@-tmp&&  \
> -	sed -e '/^$$/d; /#/d; /:/d; /\}/d; /\*/d; /LIBVIRT_/d; s/[ \t]*\(.*\)\;/    \1/g' $^>>  $@-tmp&&  \
> +	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^>>  $@-tmp&&  \
>   	chmod a-w $@-tmp&&  \
>   	mv $@-tmp libvirt_qemu.def
> 
> @@ -1177,8 +1177,12 @@ if WITH_NETWORK
>   	$(INSTALL_DATA) $(srcdir)/network/default.xml \
>   	  $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
>   	test -z "$(UUID)" || \
> -	  sed -i -e "s,</name>,</name>\n<uuid>$(UUID)</uuid>," \
> -	    $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
> +	  { sed -e "s,</name>,</name>\n<uuid>$(UUID)</uuid>," \
> +	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml>  \
> +	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t&&  \
> +	    cp $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t \
> +	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml&&  \
> +	    rm $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t; }
>   	test -e $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml || \
>              ln -s ../default.xml \
>   	    $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
> diff --git a/tests/read-bufsiz b/tests/read-bufsiz
> index f0f03b9..2a91bcf 100755
> --- a/tests/read-bufsiz
> +++ b/tests/read-bufsiz
> @@ -1,7 +1,7 @@
>   #!/bin/sh
>   # ensure that reading a file larger than BUFSIZ works
> 
> -# Copyright (C) 2008 Red Hat, Inc.
> +# Copyright (C) 2008, 2010 Red Hat, Inc.
> 
>   # This program is free software: you can redistribute it and/or modify
>   # it under the terms of the GNU General Public License as published by
> @@ -30,10 +30,10 @@ fi
>   fail=0
> 
>   # Output a valid definition, to be used as input.
> -$abs_top_builddir/tools/virsh -c test:///default dumpxml 1>  xml || fail=1
> +$abs_top_builddir/tools/virsh -c test:///default dumpxml 1>  xml.t || fail=1
> 
>   # Change the VM name
> -sed -i -e "s|<name>test</name>|<name>newtest</name>|g" xml
> +sed -e "s|<name>test</name>|<name>newtest</name>|g" xml.t>  xml
> 
>   for i in before after; do
>     # The largest BUFSIZ I've seen is 128K.  This is slightly larger.

ACK

Paolo

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]