NEWS (9025B)
1 Changelog for skalibs. 2 3 In 2.4.2.0 4 ---------- 5 6 - Support for midipix and old MacOS X. (More sysdeps.) 7 - New gol.h header (a take on getopt_long) 8 - New mkptemp3 function 9 10 11 In 2.14.1.1 12 ----------- 13 14 - Bugfixes. 15 16 17 In 2.14.1.0 18 ----------- 19 20 - Bugfixes. 21 - Portability improvements. 22 - New socket_sendnb46_g() and socket_recvnb46_g() macros. 23 24 25 In 2.14.0.1 26 ----------- 27 28 - Bugfixes. 29 30 31 In 2.14.0.0 32 ----------- 33 34 - Bugfixes. 35 - New accessor function: selfpipe_fd(). 36 - New functions: slurpn(), openslurpnclose(). 37 - slurp() and openslurpclose() are now macros. 38 - New strerr macros to warn with a "fatal" message. 39 - New cdb functions: cdb_hashv(), cdbmake_addv(). 40 - child_spawn() revamp. Prototype change (last arg is a size_t). 41 - case_lowerb() and friends now use ctype.h functions. 42 - case_str() removed, strcasestr() fallback implementation added. 43 - cspawn(): finally unifying fork() and posix_spawn(). 44 - Better support for nonstandard posix_spawn subfunctions. 45 - Lots of new sysdeps. 46 47 48 In 2.13.1.1 49 ----------- 50 51 - Bugfixes. 52 53 54 In 2.13.1.0 55 ----------- 56 57 - New macro: SKALIBS_PATH_MAX, in posixishard.h. 58 Defined to 4096 on systems that do not define PATH_MAX. 59 - New function: sals(). 60 61 62 In 2.13.0.0 63 ----------- 64 65 - Bugfixes. 66 - New functions: buffer_timed_put(), buffer_timed_puts(). 67 - strerr.h revamped. strerr_die, strerr_warn, strerr_diesys, strerr_warnsys 68 and all the previous strerr2 macros are now __VA_ARGS__ macros around 69 strerr_diev() and friends. 70 71 72 In 2.12.0.1 73 ----------- 74 75 - Bugfixes. 76 77 78 In 2.12.0.0 79 ----------- 80 81 - librandom revamped (again). 82 * random_init() and random_finish() removed. 83 * random_char() removed. 84 * random_string() renamed to random_buf(). 85 * early versions added. 86 - New djbunix functions: waitn_posix(), waitn_reap_posix(). 87 - readnclose() made public, now doesn't touch errno on success. 88 - openreadnclose_at() now returns a ssize_t. 89 90 91 In 2.11.2.0 92 ----------- 93 94 - Bugfixes. 95 - User-provided CPPFLAGS, CFLAGS and LDFLAGS are now honored in 96 sysdep autodetection. 97 - envdir_internal() now supports a SKALIBS_ENVDIR_NOCLAMP option, for 98 unlimited-size variable reading. 99 100 101 In 2.11.1.0 102 ----------- 103 104 - fd_close() doesn't retry if close() fails. (i.e. adapts to Linux's 105 behaviour over HP-UX's.) 106 - New function: opendir_at. 107 108 109 In 2.11.0.0 110 ----------- 111 112 - libbiguint removed. 113 - Obsolete skalibs/environ.h and skalibs/getpeereid.h removed. 114 - rc4 and md5 removed. 115 - iobuffer removed. 116 - fd_cat and fd_catn changed signatures. 117 - All *_t types renamed to avoid treading on POSIX namespace. 118 - subgetopt() renamed to lgetopt(). 119 - signal functions reworked; skasigaction removed; sig_stack removed 120 - Various functions removed: skaoffsetof(), selfpipe_untrap() 121 - cdb_make renamed to cdbmake; ui changed to 1=success/0=failure. 122 - cdb redesigned. cdb is now fixed, cdb_reader holds the state for cdb_find, 123 which puts data pointer and len directly into a cdb_data. A cdb 124 is always a map, pointers should always work. 125 - cdb_successor removed (unsafe to use); cdb_nextkey changed to 126 cdb_traverse_next, which puts key and data into two cdb_data's. 127 - cdb does not touch errno anymore. 128 - New posixplz function: munmap_void. 129 130 131 In 2.10.0.3 132 ----------- 133 134 - Bugfixes. 135 136 137 In 2.10.0.2 138 ----------- 139 140 - Bugfixes. 141 142 143 In 2.10.0.1 144 ----------- 145 146 - Bugfixes. 147 148 149 In 2.10.0.0 150 ----------- 151 152 - New openc_* functions. 153 - New function: ipc_bind_reuse_lock(), taking a lock before 154 unconditionally deleting the socket. 155 - ipc_bind_reuse() rewritten to use ipc_bind_reuse_lock(), 156 so it does the right thing instead of clobbering sockets. 157 - Complete revamping of the pathexec functions, see exec.h. 158 - Revamping of the locking functions. 159 - Use of standard O_NONBLOCK and O_CLOEXEC instead of adhoc 160 DJBUNIX_FLAG_NB and DJBUNIX_FLAG_COE. 161 - Better header separation; webipc.h removed (stuff moved to 162 socket.h) 163 - New function: mkptemp2(), creating a fifo with a templated 164 name (like mkptemp) but with options for O_NONBLOCK and O_CLOEXEC. 165 - New sysdep to test for chroot(). 166 167 168 In 2.9.3.0 169 ---------- 170 171 - New stralloc_readyplus_tuned() function. 172 - Bugfixes. 173 174 175 In 2.9.2.1 176 ---------- 177 178 - Bugfixes. 179 180 181 In 2.9.2.0 182 ---------- 183 184 - Bugfixes. 185 - New bigkv_* set of functions in libdatastruct. 186 187 188 In 2.9.1.0 189 ---------- 190 191 - Bugfixes. 192 - Better support for GNU Hurd. 193 - Added path_canonicalize(). 194 195 196 In 2.9.0.0 197 ---------- 198 199 - Bugfixes. 200 - Better support of out-of-path toolchains (among other things, 201 that means better autotools emulation). 202 - Build more friendly to recent glibc. 203 - Refactoring and optimization of scanning and formatting functions. 204 - Refactoring of stopwatch/wallclock functions. The --enable-clock 205 and --enable-monotonic configure switches have been removed. 206 tain_now() can now be set at run time to use a wall clock (default, 207 or via tain_now_set_wallclock()) or a stopwatch (via 208 tain_now_set_stopwatch()), instead of it being fixed at build time. 209 - Easy cross-compilation: no need to provide a whole sysdeps 210 directory anymore. Only a few sysdeps have to be provided manually, 211 via a --with-sysdep-K=V option to configure. Currently, that means 212 one: --with-sysdep-devurandom=yes|no 213 214 215 In 2.8.1.0 216 ---------- 217 218 - Added skalibs_regcomp(), accepting empty regexes on BSDs. 219 220 221 In 2.8.0.1 222 ---------- 223 224 - Bugfixes. 225 - Better reporting in utc_from_tai() and localtm_from_*() 226 227 228 In 2.8.0.0 229 ---------- 230 231 - Bugfixes. 232 - avltreeb removed. (It used VLAs inside of structures, which is 233 GNU C, not C99.) The AVLTREEN_DECLARE_AND_INIT() macro should be 234 used instead. 235 - New functions: env_dump(), mk?temp(), autosurf(), autosurf_name() 236 - mkdir_unique() removed. (Duplicate functionality with mkdtemp.) 237 - ancilautoclose and nbwaitall sysdeps removed. 238 - New header: skalibs/posixishard.h 239 - Static libraries are now PIC by default. 240 241 242 In 2.7.0.0 243 ---------- 244 245 - Bugfixes. 246 - New functions: ipc_timed_sendv(), unlink_void(), genset_deepfree(), 247 gensetdyn_deepfree(), skagetln_loose(), skagetlnsep_loose() 248 - dir_close() now returns void and leaves errno unchanged 249 - absolutepath(), sarealpath_tmp(), avl*_deletnode(), mininetstring, prot functions removed 250 - djbunix.h doesn't include env.h anymore 251 252 253 In 2.6.4.0 254 ---------- 255 256 - Bugfixes. 257 - New functions: execvep_loose(), byte_zzero(), openb_read(), sig0_scan() 258 - New function family: skalibs/genqdyn.h 259 260 261 In 2.6.3.1 262 ---------- 263 264 - Bugfixes. 265 266 267 In 2.6.3.0 268 ---------- 269 270 - New dir_fd function wrapping dirfd() (Solaris doesn't have dirfd()) 271 - memmem implementation for platforms that don't provide it. 272 - memmem wrappers: byte_search, siovec_search. 273 - New functions: atomic_symlink, skagetlnmaxsep, child_spawn3 274 - New header: skalibs/posixplz.h, some header reorganization. 275 - New family of functions: textmessage and textclient 276 - skalibs/environ.h and skalibs/getpeereid.h are now obsolescent. 277 - Bugfixes. 278 279 280 In 2.6.2.0 281 ---------- 282 283 - New functions: access_at() (MacOS and Solaris don't support faccessat), 284 skaclient_timed_aflush(). 285 - stralloc.h and tai.h are suitable for inclusion in C++ headers. 286 - New sysdep: SKALIBS_HASODIRECTORY. (MacOS doesn't support O_DIRECTORY.) 287 288 289 In 2.6.1.0 290 ---------- 291 292 - New function: lock_unx(). 293 294 295 In 2.6.0.2 296 ---------- 297 298 - Bugfixes. 299 - Optimized packing/unpacking routines. 300 301 302 In 2.6.0.1 303 ---------- 304 305 - Better CPPFLAGS/CFLAGS/LDFLAGS management. 306 - openwritenclose() and openwritevnclose() now use mkstemp. 307 308 309 In 2.6.0.0 310 ---------- 311 312 - Bugfixes. 313 - New unixmessage_receiver_hasmsginbuf() function to address an issue 314 in unixmessage_handle(). 315 - fd_close() now returns void. This mandates a major version bump. 316 - new skalibs_setgroups(), setgroups_with_egid() and setgroups_and_gid() 317 functions to work around supplementary group mismanagement in... can you 318 guess what operating system? (You get 3 tries. One for each BSD.) 319 320 321 In 2.5.1.1 322 ---------- 323 324 - Bugfixes. 325 326 327 In 2.5.1.0 328 ---------- 329 330 - Bugfixes. 331 - More workarounds for OpenBSD (who else). 332 - More workarounds for sysdeps detection by broken toolchains. 333 - Added the xpathexec_* family of functions (in djbunix.h). 334 335 336 In 2.5.0.0 337 ---------- 338 339 - Added this NEWS file. :) 340 - Dropped support for old versions of OpenBSD (at least 4.9 isn't working 341 anymore). Newer versions are still supported: 5.7 and up are working. 342 - --enable-replace-libc flag dropped. All supported systems now have a 343 compliant-enough libc for skalibs' purposes. 344 - Major types overhaul to be more POSIXly correct. 64-bit operations are 345 now supported on 64-bit archs where int is 32-bit. Use of POSIX types 346 wherever important, e.g. where pointers are used: datastruct.h indices, 347 for instance, are uint32_t. stralloc et al. lengths are size_t. 348 - Related API changes: skalibs/ushort.h, skalibs/uint.h and skalibs/ulong.h 349 have disappeared - replaced with skalibs/types.h that also includes basic 350 fmtscan support for common POSIX types. The uint16, uint32 and uint64 351 integer types have disappeared - replaced with stdint.h types. uint64_t is 352 defined by skalibs/uint64.h when stdint.h omits it. 353 - Lots of minor bugfixes and cleanups related to the types system. 354 - Better support for getrandom() and arc4random().