skalibs
Software
www.skarnet.org
Upgrade incompatibilities: notes for developers
from 0.44 to 0.45
No API incompatibilities.
from 0.43 to 0.44
- IOPAUSE_READ has been changed to POLLIN | POLLHUP on systems with
poll(). If something breaks, please report it.
from 0.42 to 0.43
- Internal librandom structures have been completely rewritten.
- Applications linked against librandom.a and using the
standard goodrandom/badrandom interface must also be
linked against libstdcrypto.a. There is no need to use
goodrandom_init() or badrandom_init() anymore.
from 0.41 to 0.42
- The dns_resolve_r() interface has been removed. Internal
libdns structures have been heavily modified.
from 0.40 to 0.41
- The readclose() interface has been removed.
from 0.39 to 0.40
The allreadwrite interface has been changed: allread,
allwrite and other looping functions now return an unsigned int,
which is the number of processed bytes. If this number is lesser than
the number requested, errno will describe what happened.
EPIPE on a reading operation means EOF.
The default signal mask when entering a signal handler has been
changed from empty to full, but this is saner. If you were relying on
the old behaviour, your code was buggy.
from 0.38 to 0.39
No API incompatibilities.
from 0.37 to 0.38
Less functions and more macros in fmtscan.h.
from 0.36 to 0.37
All the *_fmt functions have been replaced by macros. Programs using
&uint_fmt, for instance, will not work anymore; the only
remaining unsigned format function is uint64_fmt -
and its octal and hexadecimal counterparts. Please do not assume that
a function defined in fmtscan.h will remain a function; more
functions are likely to be replaced by macros in future versions of
skalibs.
from 0.35 to 0.36
No API incompatibilities.
from 0.34 to 0.35
- The dirname() prototype has been changed, to be
SUSv3-compliant. A new function, sadirname(), has been
added; you should rewrite your programs using the old dirname()
so that they use sadirname() instead.
- The libdatastruct has been rewritten. gen_list1 and
gen_avltree do not exist anymore. You should rewrite your
programs so that they use the new list1 and avltree
APIs instead. To do this, store your objects into a gen_bunch
and store only the (unsigned int) indices into the data structure.
from 0.33 to 0.34
No API incompatibilities.
from 0.32 to 0.33
No API incompatibilities.
from 0.31 to 0.32
No API incompatibilities.
from 0.30 to 0.31
No API incompatibilities. The available namespace has been reduced
because of name changes in the fmtscan functions; but the
"old" names are still working.
from 0.29 to 0.30
No API incompatibilities.
from 0.28 to 0.29
No API incompatibilities.
from 0.27 to 0.28
No API incompatibilities.
from 0.26 to 0.27
No API incompatibilities. Only the packaging has changed.
from 0.25 to 0.26
No API incompatibilities. The internal build order has changed,
but you shouldn't be relying on it anyway.
from 0.24 to 0.25
- The *.h sysdeps have been renamed with the dot
removed, for consistency.
- On some BSD and Solaris systems, sysdeps may have changed.
This is a good thing: your system's capabilities should be guessed
more accurately now.
- The drop_uidgid and drop_root functions
have been removed. The strerr2.h macros make direct
chroot and prot_[ug]id calls easier.
from 0.23 to 0.24
- A conf-compile directory has been created, and
administrators are invited to modify only the files contained
in that directory (which are symlinks). The preconfiguration
interface is subject to heavy change.
from 0.22 to 0.23
- The preferred gccattributes interface has been changed. See
src/headers/gccattributes.h.
from pre-0.22 to 0.22
- The GEN_ALLOC interface has been changed. See
src/libstddjb/gen_alloc.h.