Bug#878158: lapack: debian/rules sed expression breaks for some LDFLAGS values

2017-10-10 Thread Roberto C . Sánchez
Of course, a better delimiter is one that is not already used in the
expression itself.  Perhaps the at symbol @.

-- 
Roberto C. Sánchez



Bug#878158: lapack: debian/rules sed expression breaks for some LDFLAGS values

2017-10-10 Thread Roberto C. Sanchez
Source: lapack
Version: 3.7.1-4
Severity: normal

The rules file contains the following command (which breaks if LDFLAGS
contains a path) in one of the recipes:

sed -e "s,\(^CC  *=\).*,\1 $(CC),1" \
-e "s,\(^FORTRAN  *=\).*,\1 $(F77),1" \
-e "s,\(^NOOPT  *=\).*,\1 \$$(PICOPTS) $(FFLAGS_NOOPT),1" \
-e "s,\(^OPTS  *=\).*,\1 \$$(PICOPTS) $(FFLAGS),1" \
-e "s,\(^LOADER  *=\).*,\1 $(F77),1" \
-e "s/\(^LOADOPTS  *=\).*/\1 $(LDFLAGS)/1" \
-e "s,\(^ARCH  *=\).*,\1 $(DEB_HOST_GNU_TYPE)-ar,1" \
-e "s,\(^RANLIB  *=\).*,\1 $(DEB_HOST_GNU_TYPE)-ranlib,1" \
-e "s,\(^CFLAGS  *=\).*,\1 $(CPPFLAGS) \$$(PICOPTS) $(CFLAGS),1" \
< $< > $@

All of the expressions, save for the one that performs the LDFLAGS
replacement, use comma delimiters.  The slash delimiter looks like it is
used in the expression that handles LDFLAGS because the comma is a
frequently used character in passing options to the linker.  However,
the use of the slash there prevents specifying paths to the linker for
the library search path and rpath options.  Perhaps a different
delimiter (like asterisk or carat) can be used instead to allow LDFLAGS
to be handled correctly when it contains paths.

Regards,

-Roberto


signature.asc
Description: Digital signature