* Update MASTER_SITES.
* Hardcode PLOTICUS_PREFABS environment values.
Changelog:
Ploticus 2.42 - May 2013
Maintenance release with these bug fixes:
various code updates to reduce warnings arising from newer gcc versions / lint in strict mode.
chron prefab - fixes to the error bars; data point symbols
heatmap prefab - wasn't obeying the legend=no parameter... fixed.
proc boxplot - incorrect error message on number of statfields supplied, and likely other erratic behavior, when doing median-based bars plus a mean symbol.
the 'legendlabel' attribute was only accepting first whitespace-delimited token... should accept entire line. Affected these procs: bars, curvefit, lineplot, scatterplot, and vector.
Version 2.41 (May 2009) - new features:
New proc: proc pvalue for computing pvalues associated with t-test.
proc scatterplot - new attribute colorfield allows you to control data point color directly from a data field (not involving the legend-driven technique).
proc areadef - new attributes clickmapadjust for tweaking the overall position of grid clickmap, and catbinsadjust useful in setting up a plotting area with categories that are slid -0.5.
proc print - new variable that is set called FOUNDROW, which lets you determine which data row contains a given value, then pass the row number to the $datarow() function
proc catlines - column bars
category names having embedded whitespace can now be used for positioning (use underscores in the location spec)
prefabs - new parameters xgridskip, ygridskip, xgridblocks, ygridblocks, firststub, laststub
2.41 bug fixes
Thanks to all those who reported and/or supplied fixes for these bugs...
C coding issue - string pointer comparisons, was ok on gcc but failed on sun C compiler and others
clickmap - double url encoding bug
tokncpy() fix affecting win32 builds
proc processdata action: breaks not setting NRECORDS to 0 on eof
proc processdata - result field names are set later, allowing current field names to be used in select statements
on clickmap tags, alt= attribute added so that output passes xml validation
numgroup() function - contributed bugfix installed
datetime stubs - seconds were incorrect
clickmap urlencoding - spaces are now urlencoded to %20 (previously was +)
direct pixel data points are now influenced by -scale
proc catlines able to function with just one subcat (use to require at least two)
instability related to field name headers, getfname()
memory leak in grgd.c, Gptlist
date stubs dislaying garbage when given unrecognized date format string
lineplot XFINAL was incorrect
Version 2.40 (Jan 2008) New features:
A revision pass was done affecting all script and attribute parsing, with the goal of eliminating attribute length restrictions where possible, and reducing string copy operations.
proc catlines
proc tree
proc getdata ... data sets using the bar character (|) as field delimiter are now supported. Also, there's now delim: auto which tries to automatically determine data field delimitation.
proc processdata ... new actions: summary, summaryplus, raccum ... new attributes binsize, binmod
proc boxplot (formerly proc rangebar) ... functionality change.. it now produces a set of boxplots in a similar way to how other procs (such as proc bars) operate. Any existing scripts using proc rangebar will require attention.
new pl(1) command line options -pixsize (to set exact size of result image in pixels), and -cputime (to set cputime resource limit). As usual these have equivalent settings in proc page and/or proc settings
axis autorange now supports the following: nearest=Nminute nearest=second nearest=Nsecond
proc image (formerly called proc import)... gifs can be imported. Images can now be incorporated into SVG plot results. Clickmap support.
symboldetails ... imgfile, imgwidth, imgheight
color ... color specifications using notation such as xFEDCBA now supported
Slanted axis stubs are now supported. See proc axis stubvert parameter
A number of other new attributes that are specialized or of minor interest
2.40 Bug fixes
bug related to legend-driven bar graphing
direct pixel data points inherit current line dashing .. symboldetails needs to set linetype to plain
segfault occuring after error 12040 "DISPLAY=" ?
svg compile and swf segfault bugs
proc getdata - recent fix related to #field names and #data fields needs to take filters into account
proc categories - when cats specified literally, trailing whitespace is taken as part of category
proc image segfaults with -x11
proc lineplot - gapmissing autozero not working right
segfault when -csmap is used with long urls
proc processdata MIN, MAX - not affected by 'resultformat' but should be
First x stub is a little higher than the others
gd color bug when degenerate data row encountered [color change bug - lineplot gapmissing and fill options]
prefab chunk_title - align= was giving backward results
proc bars - segments - code bug demonstrated by gallery/timeline2.htm
proc bars - instability related to color change optimization (wild draw location)
prefab cumufrac - no curve produced for certain input data (see msg 1974)
clickmap - the clickmap entries for plot elements sitting on top of a clickmap grid are written too late in the map and mouse doesn't respond. For gif/png/jpg imagemaps, need to write map entires in this order: 1) plot element regions 2) xy grid regions 3) single-dimention grid regions. (svg uses the opposite order)
scripts having embedded CSV data (w rows > 255) can break script processor causing instability.
proc annotate instability on filled rectangle draw caused by unitialized bd* vars
proc curvefit - xfield was required, but doesn't need to be
legend - repeated use of legends eventually gives "Sorry, too much legend content" msg
prefab overlays - each run needs to output a code into the dumpfile that tells pcode to do a graphics init. Otherwise, run 2 inherits current color (other settings?) left behind by run1
proc axis - stubround - 1st stub seems to be often omitted even when it is a round value (snps/distplot)
URL encoding shouldn't encode '.' or other normal punctuation chars..
floating bars weirdness
instability when trying to #set a var to length > 334 chars
instability when supplying a long perl script with #proc getdata commandmr
ticus 2.33 (June 2006) New features
direct pixel data point symbols for gd and x11, to provide sharp non-distorted data points. In the example below the first two rows use the new direct pixel data points, while the 3rd row shows the vector-based data points that have always been available.
proc venndisk - some new attributes to support "vennmag" plots (a series of disks resting on X axis to compare magnitudes). Here's an example:
clickmaps - new clickmapurl syntax to allow deployment in a new window, etc. Syntax is like this:
clickmapurl: [target=new]http://abc.com/cgi-bin/...
SVG - proc settings / config files - svg_linkparms attribute discontinued. Use the new clickmapurl syntax (see above)
proc axis - stubround attribute - solves the old problem of getting stubs at round number locations when plot area minima is not at a round location.
proc lineplot - gapmissing: autozero
proc bars - new attributes for better control of bar labels: labelmustfit, labelmaxlen, labelselect
pl command line -ping option
proc scatterplot - cluster attribute - default will now be 'no'
prefab scat - new parm ptstyle= filled or outline ..... and changed to use the new direct pixel data point symbols.
2.33 Bug fixes
clickmap - url encoding is now performed on variable contents and axis values that are substituted into clickmapurls
proc categories - uniqueness check wasn't applied when categories listed literally. Useful in apps where the list is generated by another program or whatever.
improved handling of very long command line args - each arg is silently truncated to 255 chars. var=value parameters cannot begin with a dash as may have been previously tolerated. var=value parameters are now intercepted before entering the arg name big decision structure.
$dategroup() function didn't know about datetime separator characters other than '.'
issue where the "circuit breaker tripped" message was appearing when autorange is used but no stubs / no tics were being generated
ploticus api code bug - prefabs were not usable via api
made adjustments to improve rounding error when axis begins in negative space and reaches zero, zero was shown a very tiny scientific notation number
proc processdata - percents - resulting data values were written as enclosed in quotes which made them unplottable.
fixed many compile warnings when building w/ gcc4 -Wall
drawing to out-of-bounds locations (GD) resulted in huge image. The pl bounding box was set to a huge rectangle due to a wild draw op.. then the final GD crop operation used the huge bounding box to set the size for the cropped result. Fixed by limiting final result to 'pagesize'.
proc bars - longways labels on bars that travel beyond plot area boundary weren't being shown/centered properly.
in the -scale parameter, if you used -scale 1,2 the scale did not change but -scale 1.01,2 does work. Fixed- some code was only taking action if x scale != 1.0
svg - opening <svg> tag didn't have xmlns:xlink parameter (always); font size didn't have "pt" on end (firefox 1.5 / easytimeline)
proc getdata - instability when there were more field names than available data fields. Fixed - number of field names now sets the 'nfields' idea of how many fields there are. This only happens when nfields is not explicitly specified.
scatterplot - short line segments as symbols - no legend entries were appeariing
proc legend - longer line segments were colliding with other entries in "across" format
proc rangesweep - instability when bad values encountered in data
proc annotate - box outline color not being set properly
proc bars - showvalues - conflict between "backbox" and "labeldetails: color="
pl -errfile stdout (w/ no other args) gave seg fault
prefab scat - new maxinpoints= parameter (for curvefit)
heatmaps - with contentfield= and values 0.0 -> 1.0 .. cutoff table was not automatically created properly.
prefabs - some prefab parameters cannot be set in a data file.. because they are set in the prefab script before getting the data. More detailed explaination in docs.
-tag command line arg wasn't generating the <embed> tag for svg
scatterplot - heatmap-related cell coloring bug
draw prefab - win32 issue with dumpfile
autorange - code bug involving nearest=hours
Ploticus 2.32 (Aug 2005) - New features
proc legend - support for multi-column or multi-row legends, word wrap for legend entries, backing box, title, and others. Thanks to Philippe Jalaber and Tobias Minich who suggested some of these features. Examples
proc venndisk - new proc for producing venn diagrams.
example
textdetails - new linesep attribute to control line spacing.
mousover/tooltip labels can now be up to 1500 chars. Also any proc that had a clickmaplabel attribute now also has a clickmaplabeltext multiline attribute. This is to accomodate chunks of javascript code as used with SVG mouseover/tooltip method #2.
proc axis - month stub inc with datetime scaletype now supported.
proc pie - new wraplen attribute to wordwrap pie slice labels
new function - $rewritenum(f) which takes a numeric quantity f and returns it rewritten for display purposes, applying numbernotation (as specified in your proc settings or config file)
new function - $textwidth(f) returns horizontal width of FreeType bounding box. Useful only with freetype fonts, otherwise it returns 0. Suggested/contributed by Erik Zachte.
autorange - if user doesn't specify numformat, %f is now automatically used to build result with high magnitude low variance data sets (such as where the min is 1,000,000 and the max is 1,000,003).
Prefab parameters for access to some of the new proc legend features; and some other prefab items. More info
2.32 Bug fixes
date notations involving dots (such as dd.mm.yy) weren't being handled properly
gd16.c gcc 4 compile issue (static int cost, static int sint)
crosshatch lines were too thin w/ svg
proc bars - with 'truncate', bar completely out of range was suppressed but label still appears
drawcommands ignored cm units - fixed. Also, mark and cblock now accept posex specifications.
heatmap prefab - now supports title and related parameters.
superscripts in X axis stubs showed up on Y axis - fixed
autorange - now handles degenerate case where all data are 0
proc vector - instability if start and end points of a vector are same
proc getdata no longer does a popen( cat filename ) in CGI mode
strange color change problem - related to certain degenerate lineplots that don't draw anything. Bug in proc_lineplot.c fixed.
proc legend width attribute now supports cm
heatmap prefab - yaxis=none didn't have any effect. Fixed.
proc pie - with outlinedetails: none the labels and any associated lines disappeared
proc scatterplot - default clustermethod was horizontal when ylocation given.. and vertical when xlocation given.. seems like it should be the other way round.. so I changed it.
with datetime (others?) xautorange nearest=exact wasn't working
command line option -prefab is now disabled when operating in direct cgi mode
command line option -drawdumpa displayed to x11 but shouldn't
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
alternative from mk/jpeg.buildlink3.mk
This allows selection of an alternative jpeg library (namely the x86 MMX,
SSE, SSE2 accelerated libjpeg-turbo) via JPEG_DEFAULT=libjpeg-turbo, and
follows the current standard model for alternatives (fam, motif, fuse etc).
The mechanical edits were applied via the following script:
#!/bin/sh
for d in */*; do
[ -d "$d" ] || continue
for i in "$d/"Makefile* "$d/"*.mk; do
case "$i" in *.orig|*"*"*) continue;; esac
out="$d/x"
sed -e 's;graphics/jpeg/buildlink3\.mk;mk/jpeg.buildlink3.mk;g' \
-e 's;BUILDLINK_PREFIX\.jpeg;JPEGBASE;g' \
< "$i" > "$out"
if cmp -s "$i" "$out"; then
rm -f "$out"
else
echo "Edited $i"
mv -f "$i" "$i.orig" && mv "$out" "$i"
fi
done
done
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
* Superscripts and subscripts capability
* -drawdump and -drawdumpa command line options
* New proc processdata actions
* A new SVG mouseover/javascript scheme
* Spaces and commas in data field names
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
Version 2.21 - Released 12 May '04
A new option for producing dynamic web-based graphs - QUISP (quick
server pages). One nice thing you can do with this is create a CGI
form along with the graph, so users can control various graph
parameters... here's a live demo example of this.
Major changes since 2.20 are lengthy and can be found at:
http://ploticus.sourceforge.net/doc/news_old.html
Major changes since 2.04:
- New libploticus C API.
- Vector plots.
- Unicode/big5 support (via GD and freetype).
- Disk resource limits lifted.
- CGI-mode fixes.
- Script interpreter overflow fixes.
- Other misc changes and bug fixes.
Provided by Grant Beattie <grant@netbsd.org> in private mail.
New features include:
* client-side imagemaps
* Changed: #proc endproc may now be written #endproc. The old syntax
will also continue to work.
* New feature - proc areadef categories - new modifier selectrows
which allows categories to be taken from data field based on a
conditional expression.
* New attribute - proc processdata - outfile allows result to be
written to a file. This came up because a user wanted to perform
arithmetic (a la getdata filter) to processdata result, and there
was no way to do it.
* New feature - proc annotate can now do drop shadows, beveling, and
colored backing box with or without outline.
* New attribute - proc getdata - pf_fieldnames for defining
post-filter fieldnames.
* New attribute - config and proc settings - numberspacerthreshold
controls when thousands separator characters begin to appear.
* New system variable - CM_UNITS - indicates if working in -cm mode
or not.
* HTML server-side imagemap support has been added.
* The data parsing code has been rewritten, and now allows situations
that weren't allowed before.
* new attribute - proc getdata - nfields - Controls the expected
number of fields per record.
* new attribute - proc getdata - fieldnamerows - like fieldnames but
allows data field names to be given one per line.
* new attribute - proc lineplot - gapmissing - allows missing data
points to cause a gap in the curve. Similar parameter added to lines
and chron prefabs.
* new attribute - proc scatterplot - clustermethod - control how
duplicate points will be clustered.
* new attribute - proc scatterplot - symfield and symrangefield -
allows symbol shape, color, etc. to be controlled by a data field.
* new attribute - proc scatterplot - dupsleg allows symbol shape,
color, etc. to be controlled by degree of duplicity
* prefabs - added rectangle as a standard parameter. It controls
plotting area size (and location, if rendering in paginated
postscript).
* some new functions, including $numgroup() and $dategroup() which are
useful in grouping a set of numbers or dates into bins.
* SVG capabilities. The driver was written by Bill Traill.
* postscript - ISO Latin1 encoding added, so that European
characters may be produced in postscript exactly like they are in
the other environments (ascii 128-255).
* Created graphic files are automatically chmod'ed to mode 644.
* Prefabs
* CGI mode
* A new script interpreter. New flow of control operators including:
#elseif #else #for #while #setifnotgiven #call #write #shell, etc.
Also, increased capacities for data fields and variables (250
chars) and script input lines (3000). The new interpreter involves
some script syntax changes that may cause existing scripts to
break in some cases.
* #sql, a new directive for retrieving data directly from an SQL
database. This is currently under development, and
user-contributed client interfaces to DBMSs such as MySQL and
Oracle would be welcome (the code is in dbinterface.c)
* Added: proc areadef autorange - new subattributes selectrows (for
selecting rows to be considered when scanning for min and max) and
combomode (to allow correct finding of min and max for situations
like error bars and stacked bars).
* Added: proc areadef autorange - now sets variables DATAXMIN,
DATAXMAX, DATAYMIN, and DATAYMAX - the actual minima and maxima of
data field.
* Added: proc axis - stubevery attribute
* Added: proc getdata - pathname attribute, to specify data file
name directly without involving cat(1)
* Added: proc bars - colorfield attribute - set bar color based on a
data field
* Added: proc legendentry - tag attribute
* Added: various new functions
* Added: the temp file default path name and default slash character
can now be changed in pl.h or in a config file.
* Added: resource utilization (cpu time and size of created disk
files) now can be controlled. Default upper limits are 10 cpu
seconds and 5,000,000 bytes. Limits may be altered in pl.h or by
using a config file
* Added: various other config file settings
all dependencies on packages depending on "png" which contain shared
libraries, all for the (imminent) update to the "png" package.
[List courtesy of John Darrow, courtesy of "bulk-build".]