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@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 <p...@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@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list