Changes in 0.34
* fixed some STATFS/FSTATFS that needed to be CHAR-versions of the calls
* added test for utime and utime.h
* utime is used on platforms that don't have utimes
* updated process class methods to return -1 and set ENOSUPP for
process-group related calls on systems that don't have the
concept of process-groups
* added a call to select() instead of poll() for file-descriptor passing
for systems that don't support poll()
* added tests for timespec in various header files
* added test for dlopen
* updated configure script not to outright disable classes if the
functions they're dependent on aren't found, but rather for
the methods to return erros and set errno to ENOSYS
* added netapi32 on mingw
* updated vfstab detection to reflect minix/haiku-style rather than just
haiku
* moved non-member variables and methods into daemonprocess class and
its private class
* updated xmldomnode to output xml entities rather than raw characters
* fixed a bug that caused numeric xml entities greater than 127 to get
set to 127
* updated mutex class to show a consistent interface on all platforms
* updated configure script to detect pthreads properly on minix
* cleaned up semaphoreset class
* lots of mingw32 compatibility fixes
* wrapped exit() in process class
Changes in 0.33
* removed configure tests for strlcpy and strlcat
* added test for pvt->_translatebyteorder to hostToNet/netToHost for
64bit numbers
* made filedescriptor::hostToNet/netToHost public and static, moved
translatebyteorder flag test out of them
* serviceentry and inet*socket classes use
filedescriptor::hostToNet/netToHost rather than htonl/htons
* added charstring::printBits methods
* xmlsax class uses optimizations even when not using mmap now
* updated linkedlist class a good bit
* applied Renat Sabitov's logger patch
* fixed some bugs where filesystem.C wouldn't compile on platforms where
statfs can return some strings
* haiku port
* implemented bswap for systems with nothing like it
* added #ifdef's in configure script for all header files
* fixed detection of several things on modern openbsd systems
* added definitions of (u)int(8|16|32|64)_t for systems that don't have
them
* added randomnumber::getSeed() that uses /dev/urandom if available
* environment class prefers putenv to setenv to work around a memory
leak that can occur when using setenv to set an environment
variable over and over
* fixed 2 memory leaks in environment class
* fixed memrchr and strpbrk tests in configure script
* fixed a logger dependency on the permissions class in features.mk.in
* updated environment class to use malloc and free
* fixed reference-after-free by putenv in environment class
* applied patches from Renat Sabitov
* updated signalhandlers to have (void *)(int) signature
* added charstring::subString without an end parameter
* applied patch by Claudio Freire
* changed several %lf's to %Lf's in charstring long double parsers
* fixed uninitiaized nodename/nodevalue in xmldomnode
* fixed unterminated buffer after clear in stringbuffer
* removed "rebuild" target from all Makefiles
* added charstring::capitalize method
* made stringbuffer::terminate append a \0 unconditionally
* made stringbuffer::clear() terminate the buffer at position 0
* fixed a bug where xmldomnode::getFirstXXX() could crash if there was
no first XXX
* added xmldomnode::moveChild
* fixed uninitialized _grp in groupentry class
* regularexpression class uses pcre_free rather than delete to free
pcre_extra block now
* fixed printf %lld's in timezonefile class
* made several unsigned shorts use uint16_t in charstring class
* changed integerLength to return uint16_t rather than int
* added man page to rpm spec file
Changes in 0.32
* xmlsax does "sequential" and "only-once" hints when reading the file
* xmlsax/dom classes use optimal read and write buffers now
* added DESTDIR= to rudiments.pc.in
* added charstring::httpUnescape
* fixed a bug in datetime that would cause TZ to remain after doing a
timezone conversion if TZ was unset to begin with
* fixed a bug in regularexpression that could cause a double-free
0.31 - added OSSwapLittleToHost/OSSwapHostToLittle for Mac OS X
* modified environment::clear() for mac os x
* regularexpression wasn't setting the match count correctly, fixed that
* added charstring::subString() method
* added missing lingerOnClose(), fixed dontLingerOnClose()
* added base64 encode/decode methods
* fixed charstring::parseNumber() for unsigned int's
* added /opt/csw to configure script's search path
* fixed a memory leak in xmldom::unCacheString()
Changes in 0.30
* changed commandline::value() to commandline::getValue()
* fixed a memory leak in dictionary
* added setHour/Minute/Second/etc. methods to datetime
* fixed readdir_r vulnerability
* added support for either "-arg value" or "--arg=value" to commandline
* added support for break and control characters to chat class
* added print method to environment class
* added close-on-exec methods to filedescriptor class
* added clear method to environment class
* made all methods in environment class static
* added wrappers for strspn/strcspn/strpbrk functions to charstring class
* fixed bug where datetime would set wrong timezone if it is initialized
with a combined zone name like PST8PDT
* added directory::getChildCount()
* added datetime::validDateTime()
* xmldom class stores all strings found in the xml file in a stringlist
and stores pointers to them in the xmldomnodes to reduce
memory usage in xml files that have lots of duplicated strings
* added configure tests for dirfd/DIR.dd_fd/DIR.d_fd
* initialize addrinfo struct pointer to NULL in inetclientsocket.C
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.
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).
Changes since 0.28.2:
added check for whether SSL_read/write takes void * or char * parameter
added _XOPEN_SOURCE to filedescriptorincludes.h for sys/socket for irix
added collapse argument to charstring::split
added configure test for -Wall
switched lots of:
char a[charstring::length(b)];
to:
char *a=new char[charstring::length(b)];
...
delete[] a;
to improve compiler compatibility
removed #ifdef __GNUC__ around static variable definitions, I'll add
#ifndefs for compilers that don't allow them (like SCO's) if
necessary
added -D__EXTENSIONS__ to CPPFLAGS
added charstring::escape/unescape
defaulted zeropadding to 1 rather than 0, I'm not sure if it's a bug
in glibc or not, but printf("%0*lld\n",0,(int64_t)0); prints
nothing rather than 0, but printf("%0*ld\n",0,(int32_t)0);
prints 0. Using 1 instead of 0 for the number of 0's works
in all cases.
solaris's strchr/strrchr return const char *,
so I made charstring::findFirst/findLast return const char *
use snprintf's rather than sprintf's now
uses fchmod/fchown rather than chmod/chown now
made envelope classes out of all classes
added a configure test for ftok that takes a char * argument
switched a bunch of AC_TRY_LINK's to AC_TRY_COMPILE's in configure
script
configure script does less work looking for getpwnam_r and cousins now
if pthread libs can't be found, configure also tries just plain -pthread
added #ifdefs for individual POSIX_FADV_* and MADV_* macros
in configure script, for cygwin, tests for w32api files and functions
are omitted
configure tests for strtoll/strtoull now
configure tests for caddr_t types for all mmap-related functions
individually now
unsupported memorymap methods return false now rather than not existing
added -pthread when compiling as well as linking
fixed a time-remaining-related bug in snooze class
fixed a bug where the date/time string buffer could easily be overrun
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
rather than PKG_FAIL_REASON, so that they provide useful error
messages in build logs, and so that they continue to work on platforms
where they aren't broken.
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.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
Rudiments is an Open Source C++ class library providing base classes
for things such as daemons, clients and servers, and wrapper classes
for the standard C functions for things such as regular expressions,
semaphores and signal handling.