[PD] [PD-announce] pd 0.45-0 released

Miller Puckette msp at ucsd.edu
Wed Aug 28 19:16:55 CEST 2013


OK, these should be applied and 'pushed' both to branch 0.45 and to 'master'.

cheers
Miller

On Tue, Aug 27, 2013 at 07:21:06PM +0200, IOhannes m zmölnig wrote:
> On 08/23/13 21:00, Miller Puckette wrote:
> > Hi all,
> > 
> > Pd version 0.45-0 is available on http://crca.ucsd.edu/~msp/software.htm
> 
> cool.
> i started updating the Debian packages...
> 
> > As always I'm sure there will be problems here and there - you're welcome
> > to report them on the Pd mailing list (pd-list at iem.at) which is always the
> > fastest way to get me to see them.
> 
> two smallish notes.
> 
> #1 CFLAGS
> when manually including the Debian-patch "usercflags" (that makes sure
> that user-specified CFLAGS are honoured by prepending the
> configure-detected flags rather than appending), a small oversight has
> occured:
> - on *linux*, the configure-CFLAGS are still appended. instead the
> change was made for *hurd* (aka "GNU"). i think this was simply a
> confusion of "GNU" and "linux".
> - otoh. the *hurd* CFLAGS still include "-O6"
> 
> the attached "usercflags.patch" hopefully gets this right. it /also/
> fixes the CFLAGS append/prepend order for cygwin & mingw (though i admit
> that i have not tested this)
> 
> #2 BUILD FAILURES with "-Werror=format-security"
> when trying to build with the above error-flag (which pays some extra
> attention to argument passing), the build fails due to two problems.
> a) a call of "error(buf)" withing bug() is rejected, as the
> 'error'-function really reads "error(const char *fmt, ...)" and 'buf' is
> not a format, resp. there are no varargs. the fix is simply to call
>   error("consistency check failed: %s", buf)
> and not construct the "consitency-failed" string beforehand. cool, this
> makes the code a little more readable!
> b) more serious, the new [text] object uses 'pd_error("ouch %s", str)',
> when pd_error() really needs a pointer to a pd-object...
> this is a potential crasher bug, as it accesses string memory as objects.
> 
> the attached patch "fix_format-security.patch" fixes this as well.
> 
> 
> gfmasdr
> IOhannes

> Author: Paul Brossier <piem at debian.org>
> Description: do not overwrite user cflags, add them *after* hardcoded ones
> --- puredata.orig/configure.ac
> +++ puredata/configure.ac
> @@ -42,7 +42,7 @@
>  	if test "x${ANDROID}" = "xno"; then
>  	 LINUX=yes
>  	 portaudio=yes
> -	 CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer"
> +	 CFLAGS="-O3 -funroll-loops -fomit-frame-pointer $CFLAGS"
>  	fi
>  	EXTERNAL_CFLAGS="-fPIC"
>  	EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC"
> @@ -50,7 +50,7 @@
>  	;;
>  *-*-gnu*)
>  	HURD=yes
> -	CFLAGS="-O6 -funroll-loops -fomit-frame-pointer $CFLAGS"
> +	CFLAGS="-O3 -funroll-loops -fomit-frame-pointer $CFLAGS"
>  	EXTERNAL_CFLAGS="-fPIC"
>  	EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC"
>  	EXTERNAL_EXTENSION=pd_linux
> @@ -62,7 +62,8 @@
>  #        to make the final linking phase use g++
>  #		asio=yes
>  	portaudio=yes
> -	CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer -DWINVER=0x0501 -D_WIN32_WINNT=0x0501"
> +	CFLAGS="-O3 -funroll-loops -fomit-frame-pointer -DWINVER=0x0501
> +-D_WIN32_WINNT=0x0501 $CFLAGS"
>  # ASIO is a C++ library, so if its included, then use g++ to build
>  	CC=g++
>  	EXTERNAL_CFLAGS="-mms-bitfields"
> @@ -73,7 +74,7 @@
>  	WINDOWS=yes
>  	CYGWIN=yes
>  	portaudio=yes
> -	CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer"
> +	CFLAGS="-O3 -funroll-loops -fomit-frame-pointer $CFLAGS"
>  	EXTERNAL_CFLAGS=
>  	EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -lpd"
>  	EXTERNAL_EXTENSION=dll

> Author: IOhannes m zm??lnig
> Description: printf-like varargs functions must have a proper format;
>   use "error('%s', str);" rather than "error(str);"
>   also pd_error() requires an instance-pointer as the first argument
> --- puredata.orig/src/s_print.c
> +++ puredata/src/s_print.c
> @@ -282,12 +282,11 @@
>      va_list ap;
>      t_int arg[8];
>      int i;
> -    strcpy(buf, "consistency check failed: ");
>      va_start(ap, fmt);
> -    vsnprintf(buf+strlen(buf), MAXPDSTRING-1, fmt, ap);
> +    vsnprintf(buf, MAXPDSTRING-1, fmt, ap);
>      va_end(ap);
>  
> -    error(buf);
> +    error("consistency check failed: %s", buf);
>  }
>  
>      /* this isn't worked out yet. */
> --- puredata.orig/src/x_text.c
> +++ puredata/src/x_text.c
> @@ -1174,7 +1174,7 @@
>          }
>          else
>          {
> -            pd_error("text sequence: unknown flag '%s'...",
> +            pd_error(x, "text sequence: unknown flag '%s'...",
>                  argv->a_w.w_symbol->s_name);
>          }
>          argc--; argv++;




> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list




More information about the Pd-list mailing list