Summaries of important changes how ui-utilcpp is used or behaves.
See ChangeLog for more details.
Downloads:
o Generic: http://sourceforge.net/projects/ui-utilcpp/files//ui-utilcpp
o Current: http://sourceforge.net/projects/ui-utilcpp/files//ui-utilcpp/stable/ui-utilcpp-1.10.2.tar.gz
================================================================
ui-utilcpp-1.10.2 (stable) (Mon, 09 Jan 2023 09:28:45 +0100):
Patched stable release.
Changes since 1.10.1:
Stephan Sürken (4):
* [54a6d03] src/tools/UnitTests.cpp: Update deprecated boost
unit test header
* [c22f9a9] src/ui-utilcpp/GetOpt.cpp (C++): Replace
deprecated ``std::mem_fun`` by ``std::mem_fn``
* [e1fa644] src/ui-utilcpp/Thread.hpp (daemonize): Drop
wrong/deprecated docs for return value
* [5dcbddd] configure.ac: Prepare 1.10.2 (9:3:0)
----------------------------------------------------------------
ui-utilcpp-1.10.1 (stable) (Sun, 08 Jan 2023 18:00:56 +0100):
Patched stable release.
This release has been tested to compile with boost 1.81 (no
changes needed).
Changes since 1.10.0:
Stephan Sürken (5):
* [4af6cc0] .ui-auto.conf: Build for sid+bullseye only.
* [a1d959d] configure.ac: Incorporate Debian patch "Port from
deprecated glibc rpcsvc to libtirpc-dev" (thanks to Steve
Langasek)
* [adcd672] Doxyfile.in: Update via ``doxygen -u`` to version
1.9.4 (fixes warnings)
* [e33d3b3] Doxyfile.in (PAPER_TYPE): Change from unknown
a4wide to a4 (fixes doxygen warning)
* [da5b5fb] configure.ac: Prepare 1.10.1 (lib 9:2:0)
----------------------------------------------------------------
ui-utilcpp-1.10.0 (stable) (Wed, 25 Sep 2019 19:27:21 +0200):
Initial stable release. This release mainly makes the code
suitable for newer C++ standards/compilers. It switches from
using 'libcommoncpp2' (unmaintained) to 'ucommon'.
Changes since 1.8.5:
Stephan Sürken (28):
* [ea624f5] .ui-auto.conf: Update: Build for (sid,) bullseye,
buster, jessie.
* [e350c5e] .ui-auto.conf: deb: Use new ui-auto template && rm
extra appendix config.
* [965c8e4] .ui-auto.conf: Update Debian git to salsa.
* [a3c9573] src/ui-utilcpp/*.?pp: Get rid of all exception
specifiers (deprecated since C++11).
* [4cbf7f9] ui-utilcpp/Socket.cpp: Fix strncopy size.
* [3e48df7] tools/UnitTests.cpp: Add md5sum test.
* [5a044c7] ui-utilcpp/Text.cpp: md5sum: Switch code from cc++
to ucommon.
* [adce14b] ui-utilcpp/SMLog.hpp: Switch slog include from
cc++ to commoncpp (ucommon compat includes).
* [1a0ef85] ui-utilcpp/Recoder.cpp: b64 encodings: Switch code
from cc++ to ucommon.
* [185c7ad] configure.ac: Check and use ucommon libs, not
commoncpp.
* [6907522] autotools: Properly rename OST_CXXX2_* vars ->
UCOMMON_*.
* [60f1c13] All Makefile.ams: Remove all hardcoded '-Wall'.
* [38de0ff] configure.ac: Set AM_CPPFLAGS (-I) globally.
* [cb2fb7b] configure.ac: Use dynamic CXXFLAGS from
ucommon-config (manually disable hidden visibility for
libs).
* [c8a26fd] configure.ac: Get rid of extra
UI_UTILCPP_CXXFLAGS.
* [4d489be] configure.ac: Further simplify/centralize flags
promotion.
* [cb17029] configure.ac: Update (via autoupdate-2.69).
* [7e76e22] configure.ac: Prepare 1.10.0 release (keep lib
main version at 9).
----------------------------------------------------------------
ui-utilcpp-1.8.5 (stable) (Sat, 06 Aug 2016 17:12:38 +0000):
Patched stable release.
Changes since 1.8.4:
Stephan Sürken (4):
* [4d06b10] auto_ptr compat: To be on the safe side, use
namespace UI::Util (not UI).
* [634d630] Add 'ui-utilcpp/auto_ptr_compat.hpp':
"Reimplementing" auto_ptr compat (fixes include of
ui-utilcpp/Text.hpp).
* [9e6e6c6] tools/GetOpt.cpp: Don't print build time in getopt
example.
* [3d51d36] configure.ac: Prepare 1.8.5.
----------------------------------------------------------------
ui-utilcpp-1.8.4 (stable) (Fri, 05 Aug 2016 13:59:37 +0000):
Patched stable release.
Changes since 1.8.3:
Stephan Sürken (4):
* [48cc11e] README: Add note about LFS.
* [4df1268] Use 'unique_ptr' instead of 'auto_ptr' when using
C++11 or better.
* [2392787] .ui-auto.conf: Fix for hellfield using '~SID'
version appendix.
* [998aa57] configure.ac: Prepare 1.8.4.
----------------------------------------------------------------
ui-utilcpp-1.8.3 (stable) (Sun Jul 20 10:49:35 UTC 2014):
Patched stable release.
Changes:
Stephan Sürken (7):
* [f55307a] README: Update, add a short desc for all sets.
* [d9bdbfd] src/tools/Cap.cpp: Improve code to avoid warning
with '-D_FORTIFY_SOURCE=2'.
* [eb0c5b6] configure.ac: Add AC_SYS_LARGEFILE (adds large FS
support for FsInfo).
* [d21d847] .ui-auto.conf: Fix Debian VC location (connect
with packaging on alioth).
* [991eed6] UnitTests: Don't run test that requires a running
HTTPD on localhost:80 by default.
* [eeb3738] .ui-auto.conf: Debian connector: Clean up, and add
alternative.
* [581d5ae] configure.ac: Prepare 1.8.3.
----------------------------------------------------------------
ui-utilcpp-1.8.2 (stable) (Mon Jul 7 13:29:27 UTC 2014):
Initial open source release.
Stephan Sürken (7):
* [1094251] .ui-auto.conf: Adapt for move to SF.
* [0246ad8] Switch license to LGPLv3, and update README.
* [f229d6c] Doxyfile.in: Update to doxygen-1.8.7.
* [679ebde] Add proper .gitignore.
* [e86b463] Makefile.am: Add '.gitignore' to dist
* [df464be] PosixRegex::runMatch: Bugfix: Use correct pmatch
index (0 not 1); fixes begin,end values in Match.
* [d114366] configure.ac: Prepare 1.8.2.
----------------------------------------------------------------
ui-utilcpp-1.8.1 (stable) (Tue May 7 12:33:00 UTC 2013):
Bugfix release. Fixes Socket::getId() to be more failsafe.
srken (4):
* [cec83b3] argl: Never commit release tarballs.
* [95ee948] .ui-auto.conf: Update stable branch to new stable
Debian branch.
* [d9ac711] Socket::getId: Catch std::exception, not
Exception (this method should never fail/raise Exception).
(cherry picked from commit
6267022c2165bb5fe9c0b2f914617a044d5bf7d6)
* [45f2d7e] * configure.ac: Prepare 1.8.1
----------------------------------------------------------------
ui-utilcpp-1.8.0 (stable) (Mon May 7 16:35:09 UTC 2012):
New major stable release; this main changes are support for IPv6
for the socket library and the "cache code" removal (which has
travelled to ui-apache-support).
Note: The socket library changes inflicted library ABI-Changes
so that a backport to the stable branch was not feasable. The
new library main version is "9".
It also includes some other minor cumulated and windows related
changes:
ewetzel (1):
* [9d6d48b] WSAStartup and WSACleanup added
slinder (2):
* [0a9408e] fixed: yet another quota issue; forgot to divide
by blocksize, so the value was to big for unsigned long
* [6e64072] fixed: removed exceptions that were thrown in
Windows build; that led to unsalvagable db files
srken (21):
* [282988a] .ui-auto.conf: Update to build for sid/squeeze by
default.
* [f7af1ed] configure.ac: Update to a new developemnt version
to avoid confusion.
* [b1e6a30] Move docroot cache helpers to apache2 common
code.
* [2c2be8d] Move docroot cache helpers to apache2 common
code.
* [90bbd0e] Removing helper and container ("Nico Cache") from
build system (now in apache 2 common code).
* [bb1ea3e] Add source lines of code estimation.
* [062d74d] Sys: Add system wrappers for ::getaddrinfo and
::getnameinfo.
* [2ac2ff7] Sockets: Support IPv6 for class INetSocket.
* [2cab04d] svn-ignore: Add *-cap tool utility.
* [43a897d] INetSocket: Disable default copy constructor.
* [2874025] c++: Fix last three compiler warnings.
* [bc9341f] Remove helper tools for already removed code:
ContainerUnitTests, HelperUnitTests.
* [7a11ec4] Doxygen: Update config to 1.7.6.1.
* [2a38892] Doxygen: Eliminate new warning with Caps.?pp.
* [144022e] Remove all vc-proprietary $Id$ tags from source.
* [37c898e] ui-auto: Add Eduard && Patrick to release notify
(for the Win port).
* [9cc86a9] Prepare stable release 1.8.0 (library main
version 9).
* [3d3f8d4] Prepare release notes for 1.8.0
* [b648f02] .ui-auto.conf: Update to new svn URL (TECITO
1544i).
* [793cf6c] .ui-auto.conf: Only build for squeeze.
* [031f6e6] Revert ".ui-auto.conf: Only build for squeeze."
----------------------------------------------------------------
ui-utilcpp-1.6.0 (stable) (Fri Sep 17 14:07:36 UTC 2010):
New major release; this mainly adds support for linux
capabilities and windows quota.
Simon Linder (7):
fixed: make compilable for Win32 removed: some compiler warnings
Lots of clean up.
Disabled another warning.
fixed: Win2k8 support
SL added: Quota for W2k8
SL: fixed: Quota/W2k8
fixed: quota
fixed: UID was 1000 which it cannot be (always 0 for Windows)
Stephan Sürken (37):
RealTime: When normalizing negative values, silently set to 0 instead of throwing exception
Code cleanup: Fix possible warnings (envp not used).
Changing prefix "_" for POSIX calls back to non-prefixed.
Half reverting/fixing change for a a VC++ warning
Sys: Add getgrnam(3) c++ wrapper.
QuotaInfo: Fix class variable order which leads to gcc compile errors with -pedantic.
Fix ignore (used old "sp" prefix).
Sys: Add wrapper support for prctl (linux only).
Sys: Add C++ system wrappers for (nearly) all libcap library calls (linux only)
Add new header/class "Cap": Abstraction class for posix capabilities.
Capabilities: Add scope capabilities helper class CapScope.
Capabilities: Compatibility for libcap1 (Debian etch).
Capabilties: Add example program.
typo fix in dox docs.
docs: Fix some doxygen warnings.
* Socket: Add shutdown() method.
* Connection: Add simpleHttpRequest method.
src/ui-utilcpp/Sys.cpp: Add support for setfsuid and setfsgid linux calls.
src/ui-utilcpp/GetOpt: Add support for default argument values.
* src/ui-utilcpp/Sys: Fix three exception error strings.
* src/ui-utilcpp/GetOpt: Doxygen fix.
* src/ui-utilcpp/Sys.hpp: chown: default 2nd arg to -1.
* src/ui-utilcpp/Sys.cpp: Add support for "pseudo" calls getfsuid() and getfsgid().
* src/ui-utilcpp/Sys: getfsuid(): Workaround: Unlike described in the man page, result may be -1 sometimes; use geteuid() then.
* configure.ac: Add --enable-libproc: Optionally use libproc.
* src/ui-utilcpp/Sys: getfsuid must be implemented the hard way, parsing procfs.
* src/ui-utilcpp/Sys: getfsgid must be implemented the hard way, parsing procfs.
* src/ui-utilcpp/Sys.cpp: Cosmetic: Adapt exception texts for ui-utilcpp wording.
* src/ui-utilcpp/Sys.cpp: setfsuid: Fix check for error using new getfsuid|gid methods.
* src/ui-utilcpp/Sys: Fix throws to use ui-utilcpp convention.
* src/ui-utilcpp/Sys.cpp: Fix: Should not use ERRNO here.
* src/ui-utilcpp/Sys: Add support for linux' gettid(), and use that as default for 'fsuid' calls.
* src/ui-utilcpp/Sys: getenv(3): Fix: On error, throw (don't return null pointer).
fix revapx.
add NEWS entry for Simon's uid bug fix.
----------------------------------------------------------------
ui-utilcpp-1.5.0 (unstable) (UNRELEASED):
Bug fixes:
* Windows: UID was 1000 which it cannot be (always 0 for
Windows) (Simon).
----------------------------------------------------------------------
ui-utilcpp-1.4.0 (stable) (Fri Mar 27 10:36:04 UTC 2009):
This is a new stable version, updating to boost1.35 and some new
features. Old code is compatible, but needs to be recompiled; SO
main version dumped to 5 (stable).
Changes since 1.3.3:
* QuotaInfo:
- Add method for quota via rpc (for nfs).
- Add new class FS (dev+fstype instead of dev only) to
construct QuotaInfo (API extension, old code using
QuotaInfo is compatible but need to be recompiled).
- Add helper function file2fs to generate an FS (dev+fstype)
from any file on that fs.
- New class FQuotaInfo that uses the above tool
automatically.
- Change internal code so that methods tried depend on fs
type.
* Update tar format to tar-pax.
----------------------------------------------------------------------
ui-utilcpp-1.3.3 (unstable) (Mon Jan 19 15:09:34 UTC 2009):
* Release with ui-auto from svn (adds man page for ui-utilcpp-version).
* Fix some g++ warnings only showing when compiling with -O2:
- PosixRegexx: Subclass not initialized.
- ContainerUnitTests: Uninitialized variable.
----------------------------------------------------------------------
ui-utilcpp-1.3.2 (unstable) (Mon Dec 1 16:36:08 UTC 2008):
* Added documentation for cache_map and the functions in Helper namespace
* Added a unit test for the functions in Helper namespace
* modified Helper::to_time_t to return 0 if its given ptime value is special
* CmdLine: Fix a g++ warning (use std::string::size_type).
* Update doxygen config for doxygen 1.5.6 (fixing some warnings).
----------------------------------------------------------------------
ui-utilcpp-1.3.1 (unstable) (Do 25. Sep 11:43:12 UTC 2008):
* Fixed atime setting with calls using iterator ranges
* Set library version to 4:0:0
----------------------------------------------------------------------
ui-utilcpp-1.3.0 (unstable) (Di 23. Sep 16:11:00 UTC 2008):
* Introduced namespaces "Container" and "Helper"
* Added hash container Container::cache_map which is particular useful for cache entries
* Added several boost-related helper hunctions in helper/Boost.hpp
* Bug fix: Http::Connection: Protect constructors against exceptions
(potential missing data/fd removal on failing connects).
----------------------------------------------------------------------
ui-utilcpp-1.2.0 (stable) (Thu Jun 19 10:38:02 UTC 2008):
Stable release 1.2; library main version dumped to 3 (stable).
* sp2ui: Fix: Also update macros SP_THROW to UI_THROW.
----------------------------------------------------------------------
ui-utilcpp-1.1.40 (unstable) (Tue Jan 8 16:36:22 UTC 2008):
* boost test: Boost 34 deprecated some parts of API; updated to
a variant that works for both, 33 and 34.
* Tested against upcoming g++-3.4 and fixed all compile errors and
warnings.
* README/AUTHORS updates:
- SP->UI fixes.
- Temp. 1.2 todo section: remove hints to very old (fixed) bugs
- mv old SPRelease explanation to ui-auto.
----------------------------------------------------------------------
ui-utilcpp-1.1.39 (unstable) (Mon Jan 7 16:48:56 UTC 2008):
Initial "ui" release:
* Update to ui-auto.
* Update _all_ "sp" prefixes to "ui" (macro names, file names, C++ namespaces).
* Add tool ui-utilcpp-sp2ui to automatically update projects using us.
Other changes:
* iconvctl() support (sloppy) for non-linux systems (using GNU libiconv).
----------------------------------------------------------------------
sp-utilcpp-1.1.38 (unstable) (Fri Oct 19 13:01:20 UTC 2007):
* Http::HeaderField: Bugfix: Allow empty header field values when parsing line.
----------------------------------------------------------------------
sp-utilcpp-1.1.37 (unstable) (Thu Aug 23 16:40:11 UTC 2007):
* Recoder: rfc2047 encoder: Fix possible segfaults due to typo; add
unit test for the segfault case.
----------------------------------------------------------------------
sp-utilcpp-1.1.36 (unstable) (Wed Jul 11 15:28:12 UTC 2007):
* Recoder: Add "idn-email" (any-string w/ emails to string w/
IDN-encoded EMail domains) converter.
----------------------------------------------------------------------
sp-utilcpp-1.1.35 (unstable) (Mon Jul 9 15:41:11 UTC 2007):
* Recoder: Add rfc2047 (Q-MIME) converter.
* Add dependency to "libidn" (for IDNA recode facility).
* Recoder: Add rfc3490 (International Domain Names, IDN) converter.
----------------------------------------------------------------------
sp-utilcpp-1.1.34 (unstable) (Mon Mar 12 13:52:30 UTC 2007):
* Initial etch-based release (automake 1.10, sp-auto 103).
* New Sys-Macros: getpwnam.
* New Sys-Macros: confstr,getconf (POSIX system configuration variables).
* CmdLine.cpp: Using 320 chars (was 160) to read lines from scripts;
this should be enough for any decent script.
----------------------------------------------------------------------
sp-utilcpp-1.1.33 (unstable) (Wed Jan 31 15:33:59 UTC 2007):
* Text.?pp: Switch to use boost's random to produce pseudo random
alpha-numeric keys.
* [win32] Remove "DiskInfo as quota method" hack from QuotaInfo.
* New "FsInfo" class (fs usage).
* New Sys-Macro: statvfs.
* Having the SP_PROG_CXX c++ checker (rules out g++-2.95): Removed
all gcc 2.95 compat code.
----------------------------------------------------------------------
sp-utilcpp-1.1.32 (unstable) (Fri Nov 3 13:40:56 UTC 2006):
This release contains updates for sp-auto 0.2 only.
----------------------------------------------------------------------
sp-utilcpp-1.1.31 (unstable) (Wed Sep 6 12:45:30 UTC 2006):
* Text: Some convenience stream operators.
----------------------------------------------------------------------
sp-utilcpp-1.1.30 (unstable) (Fri Aug 18 14:10:16 UTC 2006):
* Add Http::Connection::getConnId() convenience method.
----------------------------------------------------------------------
sp-utilcpp-1.1.29 (unstable) (Thu Aug 17 08:43:42 UTC 2006):
* Add "isToken()" for already existing StrVecs (speedup).
* Fix: Use "const ref" for join() method.
----------------------------------------------------------------------
sp-utilcpp-1.1.28 (unstable) (Fri Jul 21 08:49:20 UTC 2006):
I did it again release
* added a perl like join method for strings
----------------------------------------------------------------------
sp-utilcpp-1.1.27 (unstable) (Tue Jul 4 11:04:47 UTC 2006):
* New text tool: str2ascii.
* Http fix: Force pure ASCII values for any Headerfield.
----------------------------------------------------------------------
sp-utilcpp-1.1.26 (unstable) (Wed Jun 7 17:05:12 UTC 2006):
"Jaber Al-Ahmad Al-Jaber Al-Sabah" weird Lama release.
* Obsolete tool "misc" removed.
* Bugfix File: Remove a number of now-obsolete exception specifications.
* New Sys-Macros: mkdir,rmdir.
* A number of cleanups && stabilisation in exception support code:
- Remove unused macros: SP_THROW_SP, SP_THROW_ERRNO_E.
- Sys::Exception: Making it non "Code" exception again (getErrNo() is
already available in all exceptions were aplicable).
- Set default errNo to 0=Success (was global errno); this means
exceptions not dealing w/ "errnos" always have getErrNo()==Success
instead of "random", which is more reasonable.
- SP_THROW_ERRNO, SP_THROW_CODE_ERRNO: Catching global errno early
in these two macros to avoid the possibility that code in
argument evaluation tampers w/ the value.
- Adding initial exception unit tests.
- Doc: Little exception HOWTO.
* "Shortcuts.hpp" fix: Make sure all namespaces are defined.
* PIDFile fix: Use chmod on file, defaults to "rw-r--r--".
----------------------------------------------------------------------
sp-utilcpp-1.1.25 (unstable) (Thu May 18 16:05:12 UTC 2006):
Sam Peckinpah's Flue Season release.
* QuotaInfo: Adapt method order to real world: "linux v2", "linux xfs", "linux v1".
* QuotaInfo: Fix bug due to wrong struct comment in "linux version 2".
* QuotaInfo: Clean up quota methods "linux version 1" and "linux version 2".
* QuotaInfo: Use "effective uid" as default (was: real uid).
* Remove support for non-standard g++-2.95 code. Mark g++-2.95
compatibilty helper functions deprecated.
* Replace Sys:Exception by a CodeException (thus having errno
transported up in exception object).
* Add "Shortcuts.hpp" helper include.
* Doc updates:
- Obsolete && unmaintained docs removed: doc/ANNOUNCE+DEVELOPERS+MainPage.doc.
- Sys docs and other doxygen docs updates.
----------------------------------------------------------------------
sp-utilcpp-1.1.24 (unstable) (Wed May 10 12:21:51 UTC 2006):
The Haunted World of Edward D. Wood, Jrelease.
* Bugfix: UnixSocket: Protect sun_path C-string from being undefined
when constructed via fd -- as it might be used in getId().
* Fix all doxygen warnings (needs doxygen >= 1.4.6 [in bpo for debian sarge]).
----------------------------------------------------------------------
sp-utilcpp-1.1.23 (unstable) (Wed May 10 06:44:05 UTC 2006):
Dharmsamrat Paramhans Swami Madhavananda's atomic Reissack release.
* Sys-macros support for resource limits.
----------------------------------------------------------------------
sp-utilcpp-1.1.22 (unstable) (Fri Apr 7 15:24:25 UTC 2006):
"Mad Jens" race car simulation release.
* More Sys-macros around uid.
----------------------------------------------------------------------
sp-utilcpp-1.1.21 (unstable) (Thu Apr 6 12:11:00 UTC 2006):
Maria Gorokhovskaya's "moistured barrel" release.
* Two more unrecommended cerr uses fixed (from nightly tests).
* RealTimeScope: No default stream on destructor (fixes cerr usage).
* Recoder: Also add run(char,size) convenience method.
----------------------------------------------------------------------
sp-utilcpp-1.1.20 (unstable) (Wed Apr 5 14:12:15 UTC 2006):
Sun Myung Moon's "world's largest point release".
* Recoder changes && fixes:
- Renaming all factory calls from "run" to "make", so nobody has
excuses any more ;).
- librecode: Fix deletion order.
- librecode: Fix: Move "task" into the factory level
(i.e. Converter::make()) as this obviously can't be thread-safe.
- Adding Recoder::run(char const *) for convenience.
* "Sys::"-Update completed.
- System/library calls added to Sys:
sleep(3), realpath(3), seteuid(2), setegid(2), quotactl(2),
malloc(2), calloc(2), free(2), [fl]stat(2), getenv(2),
open[m](2), read(2), write(2), fcntl(2), flock(2), getpguid(2),
chown(2), fcntl(2), socket(2), getpeername(2), getsockname(2),
setsockopt(2), recv(2), send(2), listen(2), bind(2), connect(2),
select(2), socketpair(2), iconv_open(3), iconv_close(3),
gettimeofday(2), settimeofday(2).
- This triggered a bunch of updates (mostly less code) throughout
the code. Some user-visible changes:
- Rm obsolete FileDescriptor::read/write wrappers (now in Sys).
- Renaming FileDescriptor::stdRead/stdWrite virtuals to read/write.
- Exception: Rm SP_THROW_CODE_ERRNO_E macro: No longer needed w/ Sys.
- File/Socket: Code cleanup; now-obsolete (by Sys::, we now catch
down to throw matching the abstraction) exception codes removed:
CloseErr_, SocketErr_, HostnameErr_, PathErr_, ReuseaddrErr_,
SetuidErr_, PermErr_.
- This also brings down the number of WIN32 ifdefs (from about 59
to 35 in non-Sys code); more is possible, only obvious "should work"
cases updated.
----------------------------------------------------------------------
sp-utilcpp-1.1.19 (unstable) (Thu Mar 30 15:13:51 UTC 2006):
"Hector Abhayavardhana"'s librecode sucks release.
* New RecoderCache singleton to cache recoders (speed improvments &&
workaround against librecode memory leaks).
* REMOVING PROPOSED OBSOLETE: AtomicMutex, NaiveCloneThread (also
purges --enable-linux-atomic configure option).
----------------------------------------------------------------------
sp-utilcpp-1.1.18 (unstable) (Thu Mar 23 17:34:03 UTC 2006):
Sys-omat, cleanup && bugfixing "Stirling Silliphant" release.
* New Sys.?pp: Long-due "errno exception" drop-in replacements for
system(2) and library(3) calls.
* Partial updates for the above in Thread, File (not finished).
* Thread: New fd2DevNull() helper tool.
* Thread: Harden "daemonize" to reopen std fd's 0,1,2 to protect
against library xyz reading from/writing to fds.
* PROPOSED OBSOLETE: AtomicMutex, NaiveCloneThread. Will
be removed on next release unless there are vetos.
----------------------------------------------------------------------
sp-utilcpp-1.1.17 (unstable) (Wed Mar 22 14:01:42 UTC 2006):
Sid-able "Zsa Zsa Gabor" release.
* File: New little helper class "AutoRemoveFile".
* Separate File.?pp into File.?pp + Socket.?pp (confusing, too much code).
* Text: Remove tool function "sha1sum" as this is not used, unavaible
for win32 and code is missing in newer libcommoncpp2 upstreams
(see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=352122).
* --disable-linux-atomic -> --enable-linux-atomic: Opt-in, as this
is non-standard.
----------------------------------------------------------------------
sp-utilcpp-1.1.16 (unstable) (Tue Feb 28 13:35:04 UTC 2006):
* QuotaInfo: Fix compile for newer systems (e.g. Debian Etch) using
_LINUX_QUOTA_VERSION = 2 for 2.6 style quota in quota.h.
* File: New "SocketPair" abstraction (helps writing tests for
protocols).
* File: PIDFile: Check for pid file existence. Default is now to
throw if found (was: overwrite silently).
----------------------------------------------------------------------
sp-utilcpp-1.1.15 (unstable) (Fri Feb 17 09:49:10 UTC 2006):
* Time: Add ScopeRealTime class (easy latency logging for scopes).
* Http::URL: addParam() support; generate URL().
----------------------------------------------------------------------
sp-utilcpp-1.1.14 (unstable) (Thu Feb 9 21:18:01 UTC 2006):
* Http: Update Exception for debug support; use SP_THROW for all
exceptions.
* Http: Add Http.hpp for convenience: Include all http headers.
* Http: New class URL: Parse HTTP URLs (rfc 2616, 3.2.2).
* Http: New class URLGet: Simple HTTP GET impl. based on given HTTP
URL.
* Http: StatusLine: Allow status lines w/o "reason" text.
* Bugfix strerror(errNum): Actually use errNum arg, not errno.
* Exception: Updated Exception base class internals; new errno
macros "*_E" to give errNo explicitely.
* Bugfix File: Fixes w/ new *_E macros where appropriate (fixes
wrong errno messages in some circumstances).
----------------------------------------------------------------------
sp-utilcpp-1.1.13 (unstable) (Tue Jan 31 18:00:47 UTC 2006):
* File: New tools: getenv(), PIDFile class, guessConfFile.
----------------------------------------------------------------------
sp-utilcpp-1.1.12 (unstable) (Wed Jan 25 18:15:36 UTC 2006):
* Text: strerror(int) now defaults to strerror(int=error).
* Text: Separate "PosixRegex" into own header to avoid include wars.
* Text: New tool strVec2Str.
* _More_ socket id fixes:
- Fix possible random c-string w/ getPeerId/UnixSockets.
- Enable ids when not connected/bound.
- Remove obsolete UnixSocket::getPath().
----------------------------------------------------------------------
sp-utilcpp-1.1.11 (unstable) (Thu Jan 5 17:08:26 UTC 2006):
* Sockets::getId() should now finally work reliably. Honest.
* Sockets:bind/connect/listen: Now all return *this for convenience.
* Sockets:bind(): Now virtual like connect() for convenience.
* UnixSocket:unixBind/bind(): Default for "silent unlink" now "true".
----------------------------------------------------------------------
sp-utilcpp-1.1.10 (unstable) (Wed Jan 4 15:27:32 UTC 2006):
* UnixSocket:bind(): Silent unlink support for destructor.
* UnixSockets: getId(): Fix broken unix path (socklen).
* INetSockets: getId(): Fix broken port (ntoh).
----------------------------------------------------------------------
sp-utilcpp-1.1.9 (unstable) (Fri Dec 30 15:22:31 UTC 2005):
* SetCookie/SetCookies: Const/add(key) -> Const/add(key, value="") for convenience.
* SetCookie: Support for defaults on composition (expires, path, domain).
* Text: New tool functions md5sum, sha1sum; update build system to
use CommonCPP "--stdlibs" (includes ccext2 w/ digests).
* Cookie/SetCookie: Add prefix support for cookie names.
* Text: Replacing some strange/possibly dangerous usage of string
constructor w/ explicit resize().
----------------------------------------------------------------------
sp-utilcpp-1.1.8 (unstable) (Tue Dec 20 17:18:51 UTC 2005):
* Add Util::strerror (wrapper for ::strerror(3)); replacing all calls.
* Add --disable-strerror (to fix known strange segfaults on static
compilations running under wrong libc).
----------------------------------------------------------------------
sp-utilcpp-1.1.7 (unstable) (Mon Dec 19 13:15:17 UTC 2005):
* Bugfix: SetCookie value parsing.
* Bugfix: URLEncode: Encode non-ASCII characters.
* Text.hpp: Add StrVec, StrList, StrMap convenience shortcuts.
* Fixing ccgnu2/pthread library dependency.
----------------------------------------------------------------------
sp-utilcpp-1.1.6 (unstable) (Fri Dec 2 16:39:31 UTC 2005):
* Cookies/SetCookies: Good (tm) interface updates/enhancements (required for shop).
* Partly RFC 2616 (HTTP 1.1) implementation: header, cookie, connection.
* Text: New tool function "getlineCRLF" (std::getline trashing trailing CR).
* Text: New tool function "strtoks" (like strtok, but allowing multiple one-char delims).
* Text: "EmptyString_" static helper.
* File: Socket implementation: Fix up getId() to generically use
getsockname(); Add getPeerId() using getpeername().
----------------------------------------------------------------------
sp-utilcpp-1.1.5 (unstable) (Fri Jun 17 15:18:03 UTC 2005):
* Update to sp-auto >= 0.1.1 (fixes cruft-leftover-bug in tarball).
----------------------------------------------------------------------
sp-utilcpp-1.1.4 (unstable) (Fri Jun 17 12:04:01 UTC 2005):
- First release using "sp-auto" as meta-maintainer tool.
- Doxygen docs update, most warnings fixed.
- Recoder updates:
- librecode converter: Using task level to allow sloppy converting.
- Add general "sloppy" tag for Recoder objects (active for converters
that support it - i.e., currently librecode only).
- Adding first unit test to test (some) convertions.
- Improving recoder test tool: Input charset guessing, sloppy support.
- Implementing proper converter exception handling; exception error
texts much improved; errno support where applicable.
- Move more control up to Converter father class.
- Fixing all todos/bugs notes.
- Adding libboost unit test skeleton.
- Fixed memory leak in Recoder.[ch]pp
- "g++-3.4 -pedantic"able (nightly test now lethal).
- Add CharsetMagic: Heuristics to guess char encodings (from file).
----------------------------------------------------------------------
sp-utilcpp-1.1.3 (Tue Feb 15 15:17:14 UTC 2005):
This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.
- Corrections so it (mostly) works with "g++-3.4 -pedantic".
- streambuf binary data bug fixed.
- File.cpp: Added proper error handling for stdRead/stdWrite.
- New little helpers: freeAnySeqContainer, strdup, CStrArray.
- QuotaInfo: Support for kernel 2.6 interface (version 1 and version 2).
- Dropping library diversification. Simplify autotools.
- Complete rewrite of Recoder, new Converter+Conversions setup.
- +asciiCAPS +isToken text utilities.
- +eato,etos: Converter tools with error handling.
- Helper class CFileStream, helper method copyFile.
- SMLog[Mono]: Support for logging to clog. Support for 4 extra
debug levels. Giving severity levels as human readable
3-char-prefix. Making LOG_ADD postfix.
- Text, File: Much better exception error descriptions.
- tos,ato: Add support for arbitrary stream modifier (converting
from/to std::hex etc). Removing explicit str2str converter.
----------------------------------------------------------------------
sp-utilcpp-1.1.2 (Mon Aug 30 12:31:33 UTC 2004):
This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.
- Fix: auto_abstract -> auto_base, removing abstract destructor,
adding set() method.
- Adding some upgrade notes to README.
- Merging .strap_run/.strap_dev into ".strap_dev [runonly|ggcenv]".
- Use ./configure to produce that file. It can now be sourced
properly (no need for backticks).
- Default bevaviour now is to taint autotool-supported variables
only. This should always work if your project using this library
alos uses autotools.
- "gccenv" sets the gcc environment variables as before. autotools
test may fail unexpectedly.
- Protecting all enum values from preprocessor by naming convention
("CatDog_" like for constant class variables).
- Update to automake 1.9, using "tar-ustar < 155" as archive
format. This fixes both, the "filename too long" and the "make dist
keeps silent" bug. Warn about libtool <1.5.8 in strap_auto.
- Moving SPRelease/SPUpload to src/tools.
----------------------------------------------------------------------
sp-utilcpp-1.1.1 (Fri Aug 13 13:14:32 UTC 2004):
This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.
* Added Dominik's proposed setup for library checking (in templates
see http://volvic.schlund.de/pipermail/abteilung/2003-July/000315.html ),
albeit with these signifcant changes:
- Don't use a unsigned int as assembled version number. It's not
portable (to M$ compilers, for example), as STDC does not guarantee
unsigned int to be 4 bytes. Instead, seperate functions/variables/defines
for each version part (major,minor,patch) are provided.
- Don't use libtools (IF:REV:AGE) version schema for checking. Instead, this
is recomputed to the real (system) version numbers. This also fixes an order
error that is still in templates.
- A check macro is added to protect against header/library implementation
mismatch at run time.
- Not using acinclude.m4 (not recommended), using recommende m4 directory setup
instead (see automake docs).
- The needed library macros are "extending aclocal" as recommended in the automake
docs. I.e., you don't use the macros by copying to your project, but by installing
sp-utilcpp, which will automatically (depending on how you install it, you might
still need to extend the global aclocal dirlist) extend the sclocal macro path.
Libraries that don't need sp-utilcpp otherwise should still copy these macros,
though. The macros are in "m4/sp-lib.m4".
For the time being, I recommend to copy the setup from sp-utilcpp, not templates.
* src/examples renamed to src/tools.
* DESTDIR support for local install targets.
* Adding checks for librecode, doxygen, xfs headers.
* Adding mass string replace utility functions "strrpl".
----------------------------------------------------------------------
sp-utilcpp-1.1.0 (Mon May 24 13:40:55 UTC 2004):
This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.
* Removed class CVector. STDC++-2003 defines std::vector to have
memory in one chunk.
* Removed file CSLog. Obsolete.
* Removed file Regexx. Obsolete. Never worked.
* Removed file SPUtil.hpp. This was compat for unstable versions < 1.0.
* Removed class GCCFDStream (class using gcc extensions). With 3.4,
new changes. Too silly to maintain this with even more ifdefs.
* Removed class Random: Seemed strange enough to me.
* New template classes: auto_abstract
auto_cvec auto_free
Handle (memory pointers) and freeing of memory that does not work
with standard delete (auto_ptr).
* Removed class ArrDelAdapter: Use auto_cvec.
* Removed class NullOStream: I don't think we need this.
* Update to CommonCPP2 (SMLog macros only).
* Some updates for "g++-3.4 -pedantic" (one internal and some external
problems left).
* More straighforward directory layout, putting all C++-Source under
src/: sp-utilcpp (the library) and examples (Example applications).
* New Header & libary Layout:
Exception
Time
Text libsp-utilcpp-cppsys
File Run time dependencies on
Thread STDC, STDC++ and system only.
GetOpt
Misc
...
CmdLine Specials
Recode Extra run time dependencies, header
SMLog* only, etc..
...
* Imported from tincas: Recode, C++ wrapper for GNU librecode
(class, file, special library).
- Updates to support any conversion in a efficient fashion, not just
string->string via copy.
- Imporved error/exception handling.
* Imported from tincas: QuotaInfo (class, file, cppsys).
* Imported from tincas: strtok, RealPath, istream2Vector (Text, cppsys).
- strtok: Update to support string delimiters (Thorsten).
* Update to new exception scheme:
- SP::Exception: S+P father exception class (at least when u use us).
In short: std::exception interface, handling for an error
description and a debug information string. Special support for
errno handling provided.
- SP:.Util::Excpetion derived from SP::Exception.
- SP::Util::CodeException: SP::Util::Exception template adding the simple facility to add an
(arbitrary) error code to SP::Util::Exception.
=> Anything in namespace SP::Util does
now throw SP::Util::Exception only (usual exceptions apply for
indirect throws; ideally, these are catched down internally and
encapsulated).
- Updated all classes to have a subclass "Exception". Classes that used to throw
enums are now throwing "CodeException<ErrorCode>", with ErrorCode being the old
enum-type exceptions, and the subclass "Exception" being a typedef to that.
- 4 basic macros provided to provide for automatic file name and line no debugging.
=> An "Exception" for every context, enabling diversed or generic
catches, automatic errno errors and file name/line no debugging.
Read more about that in the doxygen docs.
* Code/style review of all files:
- Generic class variable naming convention ("_myName").
- Some const correctness correctiotions (note: correct last word).
- Removing all "one line scopes".
- Complete doxygen documentation, no warnings with 1.3.7.
----------------------------------------------------------------------
sp-utilcpp-1.0.20040430 (Fri Apr 30 12:18:24 UTC 2004):
Patch release:
* Bugfix for GetOpt(Markus): Buggy use of char instead of int. This
produced problems on a (at least) powerpc arch.
----------------------------------------------------------------------
sp-utilcpp-1.0.20030812:
Convenience fix release:
- Removing hardcoded "-Werror" from Makefile.ams.
- Fixes to make it compile with gcc's "-pedantic-error".
Note0: The "default value" template for "long long" (there is no "long long") is removed.
Note1: Variable length c-arrays replaced by std::string resp. std::vector; this should work
fine on almost all implementations, but STDC++ does not ensure memory management is in one
chunk. In unstable, there is now "CVector" as replacement to safely and portably replace
variable length arrays where the data must be guaranteed to be in one chunk.
- Changes to make it pass rc tests "cppstyle_nonrefconst.log", "cppstyle_namespace_none.log".
----------------------------------------------------------------------
sp-utilcpp-1.0.20030807:
Bugfix release. Braindead linking problem occuring with
libtool-1.4.3 only (needs extra -lpthread) fixed.
----------------------------------------------------------------------
sp-utilcpp-1.0.20030801:
Bugfix release: Make it work with g++-3.3.
----------------------------------------------------------------------
sp-utilcpp-1.0.20030318:
This is the very first stable release of sp-utilcpp.
There has been busy development from the last (unstable)
release. Some important new features:
* A number of small tools/utilities for every day use (URL, daemonize, ...)
* A (complete, yet very simple) alternate framework for Linux multithreading.
* A alternate framework for file descriptor handling, POSIX and BSD file locking,
TCP and Unix sockets, and a general stream[buf] template for all file descriptor
based classes.
* RealTimeStamp: Encapsulation of BSD's gettimeofday(2); can be used to
measure latency in realtime (precision of 10^-6 seconds).
----------------------------------------------------------------------
sp-utilcpp-0.1.20021120: unstable
* Significant Source Code updates:
- Header file dependencies moved back to the header files directly.
- Completely compilable with GCC 3.X.
- Completely documented (i.e., doxygen does no longer produce warnings).
* New:
- PosixRegex: Wrapper class for POSIX.2 regex functions. Allows s.th.
like "if (PosixRegex("ABC.*").run("ABC-Pflaster")) ...". I never could
make proper use of the old "Regex" class, hence this rewrite.
* New from "dvdb" project:
- "SMLogMono": Analogous to "SMLog", this provides a infrastructure for
logging in a non-multithreaded environment (not using Common C++).
- "NaiveCloneThread": Simple ("naive") thread implementation based
on Linux clone(2); also added a mutex class (AtomicMutex), a guard class
(MutexLock) and a pseudo thread class using fork(2) (ForkThread).
Motivation: "NaiveCloneThread" under Linux can be useful if you need real
multithreading, but for some reason you cannot use "pthreads".
- "CmdLine": Simple command line abstraction; automatically shows help
on commands, handles errors, can set variables, does simple variable
expansion. This was created for use in "dvdb-tool", but may be of
more common use.
* New from "tincas" project:
- "Conversion": New class "Conversion" added, with currently
two tool function to convert from decimal to any base.
- "SP::Util::daemonize(...)": Should be used whenever a program needs to
go into background.
* SPRelease: now uses "cvs edit" before trying to edit files for those
who use that cvs feature; does no longer add release tarballs into CVS
(this should be done manually if needed).
----------------------------------------------------------------------
sp-utilcpp-0.1.20020916: unstable
* Now completely diversified: "Toolbox" is seperated into "ToolboxCPP" (code
depends on STDC++ only, without templates), "ToolboxSTL" (code depends on STDC++
only, with templates) and "ToolboxSys" (code may depend on STDC++ plus system
code (POSIX, Linux, BSD, ...). This thoroughly solves the compile time (header
includes) dependency problems.
A compatability header "Toolbox" ist still provided, but should not be used.
* Libraries are build for all segments of the library, where each library now
has its real and exact dependencies. This thoroughly solves the run time
dependency problems.
A compatability library containing all code is still provided, but should not
be used.
* Header includes are now suffixed "hpp", as required by "templates".
Compatability headers are included for all former (not new) header files.
* Includes a number of small fixes in documentation, examples, and SPRelease.
----------------------------------------------------------------------
sp-utilcpp-0.1.20020912:
* The "SPRelease" script now supports "AC_INIT"-based ("modern", automake1.6)
"configure.ac"s and projects that use manual "ChangeLog"s.
* Using Include-Scheme as indicated in "templates" - i.e., all includes from
header files are removed, and the synopsis for these files is updated in the
documentation. NOTE: This moves responsibility for including all neccessary
files completely to the *.cpp files, so existing source might need some update.
* GetOpt convenience imrovements: new method wrongUsage(), method printUsage()
now has an optional title argument.
----------------------------------------------------------------------
sp-utilcpp-0.1.20020902: unstable
* Following improved Styleguides for shared libraries (cmp. http://manwe.schlund.de/~absurd/spprojects/).
I.e. all unneeded library dependencies are removed, CSLog support is removed from proper library and added
into an alternative library with postfix "-global".
This enables us to use sp-utilcpp without having dependencies on all libraries sp-utilcpp itself
uses. Thus, for example, sp-utilcpp can now be used directly together with dvdb/libpth.
["libccgnu" itself has global variables, and, as sideeffect, always needs pthread, which means that the
binary will execute pthread initializations, which will conflict with (at least) "libpth") ].
----------------------------------------------------------------------
sp-utilcpp-0.1.20020830: unstable
* Now compiling with "-pthread", which make this library compatible for use in
program using pthreads (i.e. tincas).
* SPRelease slightly improved -- it now automates snapshot tarball versions.
* More general cleanup and improvements in documentation/automake/autoconf/libtool.
----------------------------------------------------------------------
sp-utilcpp-0.1.20020822: unstable
* Changed name; this effects the include path, the library and the
project name. The change was necessary because of some part of
CVS doesn't work whith paths including "+". So, explicitly:
Project name = "sp-utilcpp"
include synopsis = "#include <sp-utilcpp/*.h>"
library name = "libsp-utilcpp"
* Added new class "URL" which is related to URL specific
functionality.
----------------------------------------------------------------------