ports/104500: [PATCH] multimedia/gstreamer-plugins/Makefile.common breaks make index

Rich Dawes rdawes at epstais.com
Tue Oct 17 16:50:30 UTC 2006


>Number:         104500
>Category:       ports
>Synopsis:       [PATCH] multimedia/gstreamer-plugins/Makefile.common breaks make index
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 17 16:50:26 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Rich Dawes
>Release:        FreeBSD 4.9-RELEASE-p13-jc2 i386
>Organization:
>Environment:
System: FreeBSD epstais.com 4.9-RELEASE-p13-jc2 FreeBSD 4.9-RELEASE-p13-jc2 #9: Tue Jun 7 00:30:36 PDT 2005 user at jail16.johncompanies.com:/usr/obj/usr/src/sys/jail16 i386

>Description:

Makefile.common uses vars completed at make time with two levels of
substitution (e.g. "${gst_${GST_PLUGIN}_SOME_MAKEVAR}").  But make apparently
can't grok those within conditionals, at least not when this Makefile.common
is included by the various gstreamer-plugin-* Makefiles as part of indexing
routines on FreeBSD 4.9 ...  (Perhaps 5.x or 6.x makes have added that sort
of feature.)

Hence, standard indexing breaks, at least on a FreeBSD 4.9 make system.

>How-To-Repeat:

Run "make describe" from an actual gstreamer-plugins-* port.  E.g.:

# cd /usr/ports/multimedia/gstreamer-plugins-a52dec
# make describe
"/usr/ports/audio/gstreamer-plugins-a52dec/../../multimedia/gstreamer-plugins/Makefile.common", line 345: Malformed conditional (${gst_${GST_PLUGIN}_GCONF_SCHEMAS}!="")
"/usr/ports/audio/gstreamer-plugins-a52dec/../../multimedia/gstreamer-plugins/Makefile.common", line 349: Malformed conditional (${gst_${GST_PLUGIN}_USE_SDL}!="")
"/usr/ports/audio/gstreamer-plugins-a52dec/../../multimedia/gstreamer-plugins/Makefile.common", line 351: if-less endif
"/usr/ports/audio/gstreamer-plugins-a52dec/../../multimedia/gstreamer-plugins/Makefile.common", line 351: Need an operator
"/usr/ports/audio/gstreamer-plugins-a52dec/../../multimedia/gstreamer-plugins/Makefile.common", line 372: if-less endif
"/usr/ports/audio/gstreamer-plugins-a52dec/../../multimedia/gstreamer-plugins/Makefile.common", line 372: Need an operator
make: fatal errors encountered -- cannot continue
#

>Fix:

The following patch removes the extra variable substition from the affected
conditionals themselves, by pre-assigning to a dummy variable, and then having
the conditional test that.

--- Makefile.common.patch begins here ---
--- Makefile.common	Sat Oct 14 19:52:15 2006
+++ Makefile.common.fixed	Tue Oct 17 08:53:11 2006
@@ -342,11 +342,13 @@
 EXTRA_LIBS+=	${gst_${GST_PLUGIN}_EXTRA_LIBS}
 USE_GNOME+=	${gst_${GST_PLUGIN}_USE_GNOME}
 CONFIGURE_ENV+=	${gst_${GST_PLUGIN}_CONFIGURE_ENV}
-.if ${gst_${GST_PLUGIN}_GCONF_SCHEMAS}!=""
+str_GST_PLUGIN_GCONF_SCHEMAS=	${gst_${GST_PLUGIN}_GCONF_SCHEMAS}
+.if ${str_GST_PLUGIN_GCONF_SCHEMAS}!=""
 GCONF_SCHEMAS=	${gst_${GST_PLUGIN}_GCONF_SCHEMAS}
 .endif
 CONFIGURE_ARGS+=${gst_${GST_PLUGIN}_CONFIGURE_ARGS}
-.if ${gst_${GST_PLUGIN}_USE_SDL}!=""
+str_GST_PLUGIN_USE_SDL=	${gst_${GST_PLUGIN}_USE_SDL}
+.if ${str_GST_PLUGIN_USE_SDL}!=""
 USE_SDL=	${gst_${GST_PLUGIN}_USE_SDL}
 .endif
 USE_GSTREAMER+=	${gst_${GST_PLUGIN}_USE_GSTREAMER}
--- Makefile.common.patch ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list