skalibs
Software
skarnet.org
in 2.6.3.0
- New dir_fd function wrapping dirfd() (Solaris doesn't have dirfd()).
- memmem implementation for platforms that don't provide it.
- memmem wrappers: byte_search, siovec_search.
- New functions: atomic_symlink, skagetlnmaxsep, child_spawn3
- New header: skalibs/posixplz.h. Some header reorganization.
- New family of functions: skalibs/textmessage.h, skalibs/textclient.h
- skalibs/environ.h and skalibs/getpeereid.h are now obsolescent.
in 2.6.2.0
- New functions: access_at(), skaclient_timed_aflush().
in 2.6.1.0
in 2.6.0.2
in 2.6.0.1
- openwritenclose() and openwritevnclose() now use
mkstemp()
instead of relying on an unpredictable name (which required a random
generator to be fully initialized).
in 2.6.0.0
- New functions: unixmessage_receiver_hasmsginbuf(),
skalibs_setgroups(), setgroups_with_egid(),
setgroups_and_gid(). The setgroups_and_gid()
function is the one that should be used, if possible: it does the
right thing even on the BSDs. (That's an achievement.)
in 2.5.1.1
in 2.5.1.0
What has changed in skalibs
in 2.5.0.0
- Support for old versions of OpenBSD dropped. At least OpenBSD 5.7
and newer are still supported.
- --enable-replace-libc compilation flag dropped
- skalibs/ushort.h, skalibs/uint.h and skalibs/ulong.h
removed. skalibs/types.h is now a generic header for fmtscan primitives
for various types.
- uint16, uint32 and uint64 types replaced with POSIX
uint16_t, uint32_t and uint64_t.
- APIs changed across all skalibs functions to support more POSIXly correct
types. Main benefit: correct 64-bit support on 64-bit archs with 32-bit int.
in 2.4.0.2
in 2.4.0.1
in 2.4.0.0
- More support for advanced fd callbacks in unixmessage_sender and unixconnection.
- ipc_timed_send(), ipc_timed_recv()
- rt.lib sysdep removed; spawn.lib and timer.lib sysdeps added
- Leap second for 2016-12-31 23:59:60 UTC added
- Complete librandom rewrite
- skalibs/alarm.h added
in 2.3.10.0
- Support for advanced fd callbacks in unixmessage_sender.
in 2.3.9.0
- New functions: bitarray_firstclear_skip and
bitarray_firstset_skip.
in 2.3.8.3
in 2.3.8.2
in 2.3.8.1
in 2.3.8.0
- The /etc/leapsecs.dat file is no longer necessary.
in 2.3.7.1
in 2.3.7.0
- New functions: atomic_rm_rf(), atomic_rm_rf_tmp().
in 2.3.6.1
in 2.3.6.0
- New function: openreadnclose_nb.
in 2.3.5.2
in 2.3.5.1
in 2.3.5.0
- New functions: bitarray_count(), openwritevnclose_at()
in 2.3.4.0
- New function: stat_at()
- The rest of the changes are bugfixes or QoL.
in 2.3.3.0
- New sha512 functions, see skalibs/sha512.h
in 2.3.2.0
in 2.3.1.3
- Bugfix release, no functional changes.
in 2.3.1.2
- The child_spawn* family of functions now resets all signals
to their default values when spawning a program on systems with
posix_spawn().
This should not change anything - it's just paranoia.
- Minor bugfixes.
in 2.3.1.1
- Bugfix release, no functional changes.
in 2.3.1.0
- wait_status() now returns 256 + signal number when WIFSIGNALED().
- new macro wait_estatus() to get WIFSIGNALED information in an exit code.
- new functions in djbunix.h: hiercopy(), hiercopy_tmp()
in 2.3.0.1
- wait_status() now returns 256 (instead of 126) when WIFSIGNALED().
in 2.3.0.0
- buffer_getvall and buffer_putvall have a different interface. (And now work.)
- buffer_read and buffer_write are now deprecated.
- various siovec additions, such as siovec_trunc
in 2.2.1.0
- unixconnection added.
- sig_name and sig_number added.
in 2.2.0.0
- TAI64 and TAI64N conversion functions revisited.
API slightly changed, made more consistent.
in 2.1.0.0
- unixmessage_drop added, part of unixmessage/skaclient hardening against fd leakage
- unixmessage_sender_flush return code aligned with the convention in the rest of skalibs
- unixmessage_sender_flush now handles short writes
- skaclient_start(_async) prototype changed: now takes an option argument
in 2.0.0.0
- The packaging system has completely changed.
- Programs should now link with -lskarnet followed by the appropriate
sysdeps links.
- No compatibility is ensured. Most APIs haven't changed, but no guarantee
is offered.
- The most important change is probably the disparition of struct tai
and struct taia, replaced with the tai_t and tain_t
types. Attosecond precision has been removed - processor speed is almost capped now,
and it looks like nanosecond precision will be enough for the foreseeable future.
- Buffer implementation has changed, and some interfaces too, mainly the
buffer_flush and bufalloc_flush return code.
- skaclient, skalibs' client-server communication suite, has been
entirely reimplemented: it's now using the new "unixmessage" set of primitives
for easier fd-passing.