This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
Features:
- a second axis can now be displayed in rrd_graph. look for
documentation on second-axis. feature was sponsored by VoltWerk.
- win32 port of the source. see WIN32-BUILD-TIPS.txt for details.
contributed by exitgames
Bugfixes:
- rrd_fetch: is more careful when seeking. it should not try to seek
outside the file anymore.
- rrd_restore: works on platforms where "NaN" is not represented as
"NaN" works now (HPUX)
- rrd_graph: label ordering in --full-size is correct now.
- ruby bindings: fix for last method
- perl bindings: fix for build on MacOSX
- rrd_update: make sure time stamp of rrd files get updated even on
platforms with broken MS_ASYNC implementations (osx and old linux)
- rrd_graph: CDEF:x= raises an error now and does not segfault
- Solaris isfinite portability improved
- rrd_graph: --font TITLE:12: problem fixed (affecting cacti)
MAJOR BUG-FIX:
* When running rrdtool update with multiple updates in one go and
MMAP enabled, there was a data corruption bug at wrap around.
See http://oss.oetiker.ch/rrdtool-trac/ticket/178 for details
Thanks to Kevin Brintnall
OTHER FIXES:
* Forward ported rra cur_row randomization patch from rrdtool
1.2.28 (it got lost in development).
* Contrary to the documentation imginfo did return the full path
of the image and not only the file name.
* Make --lazy mode work even when PRINT commands are present.
http://oss.oetiker.ch/rrdtool-trac/ticket/163
* Fix Ruby Bindings memory leak.
* Fix compilation on solaris 2.8
* Fix a ton of memory leaks in rrd_create and some in rrd_tool as
well. Based on valgrind analysis by Sven Engelhardt. Thanks!
* Fix handling of error conditions in rrd_tool.c (errno is not the
ideal indicator)
ENHANCEMENTS:
* Text Strings entered in the current locale will automatically be
transformed to utf8 for proper handling by Pango.
* Dramatically improved Pango Performance by introducing a static
fontmap. On my test system the persistent fontmap causes the
second graph with the same fonts in a single session to be
created about 0.18s faster than the first one. For a total graph
creation time of 0.21s this is a pretty substantial improvement.
With this patch, performance for the second graph is back to
1.2.x levels or even better.
Local change warranting nb1 is to prefix some error messages from
rrdupdate with the name of the file the error relates to, carried
over from nb1 of 1.2.27.
Update loosely OKed by martti@
The announcement of 1.3.0 outlines the changes since 1.2.27:
NEW Fast file access methods (Bernhard Fischer / Tobi Oetiker)
----------------------------
* introduced file-accessor functions rrd_read/rrd_seek/rrd_write
* implemented full mmap-based file access with madvise hints for
improved scalability, much reduced memory-footprint and much less
blocking while accessing the disk
* implemented optional full file-descriptor access instead of FILE*
access
NEW Graphing (Tobi Oetiker)
------------
* libart has been replaced by cairo/pango
* pango markup is supported (--pango-markup)
* full grid fitting
* --graph-render-mode=mono for non anti aliased graphing
* --font-render-mode=mono for non anti aliased fonts
* fonts come through fontconfig, use the Pango font nameing scheme
-> 'Times 20' ... it is not possible to use truetype fonts
directly anymore.
* Tabs are position independent.
* TRENDNAN filter that ignores NAN values while calculating the
TREND data. (Timo Stripf)
* --full-size-mode to specify the outer border of the image and not
just of the graphing canvas (Matthew Chambers)
* TEXTALIGN command to alter default text alignment behavior
* C API in-memory graphing with rrd_graph_v (Evan Miller)
* draw dashed lines in graphs (Thomas Gutzler)
* new interface graphv which returns information using the rrd_info
interface (Tobi Oetiker and Mark Plaksin)
* improved horizontal grid. Have a bit more grid lines and y-axis
labels while keeping them far enough apart to not run into each
other.
NEW Forecasting (Evan Miller)
---------------
* the new MHWPREDICT consolidation function uses a variation of the
Holt-Winters method. It is a drop-in replacement for HWPREDICT,
and is better suited for data whose seasonal variations grow or
shrink in proportion to the average.
* If you create an RRD with the new MHWPREDICT function, the
resulting rrd file will be version 0004 and can only be used in
rrdtool 1.3.
Rewrites
--------
* rrd_restore now uses libxml for parsing which makes things much
more tolerant towards xml variations. The old code could mostly
just parse the XML as it was output by rrdtool dump. See also:
the note at the bottom of this document. (by Florian octo
Forster)
* rrd_update rewritten to make it more modular. Fixed two
longstanding HW bugs in the process (Evan Miller)
Internationalization (Takao Fujiwara and Tobi Oetiker)
--------------------
* The help output by rrdtool has been internationalized. There are
no real translations included with rrdtool yet, contributions are
welcome.
* The internationalization will only be compiled if libintl and
friends are available on your system. Use the configure option
--disable-libintl if you want to disable this feature
Language Bindings
-----------------
* ruby rrd_fetch will return step as a last property -- Mike Perham
RRDtool dump / restore incompatibility
--------------------------------------
* rrdtool dump 1.3 does emit completely legal XML. Basically this
means that it contains an XML header and a DOCTYPE definition.
Unfortunately this causes older versions of rrdtool restore to be
unhappy.
* To restore a new dump with an old rrdtool restore version, either
remove the XML header and the doctype by hand (both on the first
line of the dump) or use rrdtool dump --no-header.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
Major Changes between 1.0.x and 1.2.x
Graphing
--------
* rewritten graphics generation based on libart.
- anti-aliased output
- alpha transparency support
- truetype fonts
* additional graphics formats: EPS, PDF, SVG
* extended multi-part documentation
* VDEF support; define and use variables. Find, and use, the
maximum rate seen by rrdtool; compute and show the average
* Sliding window (trend) analysis
Compute a smoother average, for instance over the last 6 CDPs
* percentile (95th or other)
Remove peaks, 95 percent of all rates are at or below the returned value
Logging
-------
* a second logging interface: rrdtool updatev
Verbose updating of the database; show CPDs being created
* Aberrant Behavior Detection with Holt-Winters Forecasting
Compare current data with expected data, detect and log when
the rates are outside expected levels
* COMPUTE data type for artificial data-sources calculating their
input using RPN math and data from the other data-sources.
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.
by moving the inclusion of buildlink3.mk files outside of the protected
region. This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.
BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list. This ordering property is used to check for builtin
packages in the correct order. The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end. However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
RRDs.so shared perl module is built and thus fix runtime failure
described in PR pkg/24292 by Michael van Elst <mlelstv at serpens dot de>.
Also fix sparc64 compilation warnings and runtime failure due to
time_t's size assumption: sizeof(time_t) != sizeof(long) on NetBSD/sparc64.
While here bl3ify, this somewhat simplify the package, and provide
a buildlink3.mk file.
Bump PKGREVISION.
With wulf@'s blessing.