mirror of
https://github.com/troglobit/libite.git
synced 2026-09-30 13:02:27 +07:00
copyfile() passes the source mode to open(2), which applies the umask, so a 0644 file copied with umask 0027 ends up 0640. Apply the source mode with fchmod() after creating the destination. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
18 KiB
18 KiB
Change Log
All notable changes to the project are documented in this file.
UNRELEASED
Fixes
- Fix
copyfile()not preserving the source file mode when the process umask is more restrictive - Fix
mkpath(), andfmkpath(), not applying the given mode when the process umask is more restrictive, e.g., requesting 0755 with umask 0027 silently created a 0750 directory
v2.6.2 - 2025-11-22
Fixes
- Fix memory leak in
which()onrealloc()failure - Fix
pidfile()to handle missing trailing slash in prefix path
v2.6.1 - 2023-10-15
Fixes
- FTBFS uClibc and musl libc,
lite.hmissingstdarg.hinclude
v2.6.0 - 2023-09-17
Changes
- New APIs from the Infix Project:
fexistf()vfopenf()popenf()vreadsnf(),readsnf(),writesf()vreadllf(),readllf(),readdf()writellf(),writedf()
Fixes
- Spellchecking of API docs
v2.5.3 - 2023-04-08
Changes
- Refactor
copyfile()unit test and verify number of bytes copied - Add missing
rsync()unit test to ensure proper function
Fixes
rsync()does not copy single files correctlycopyfile()does not handle empty source files correctly (error)copyfile()does not properly create destination dir
v2.5.2 - 2022-04-17
Changes
- Add printf format attribute hint to all vararg functions. This will help users of these functions by telling CC what to look for
Fixes
- Fix
fisdir()segfault on GNU/Hurd - Fix
touch)on Debian/kFreeBSD, usecreat()instad ofmknod()
v2.5.1 - 2021-12-02
Debian-only fix.
Fixes
- Use
dh_link(1)to install/usr/include/lite -> libite/. The symlink created by libite installer itself is not kept.
v2.5.0 - 2021-11-30
Note: namespace change; the -lite library include files have moved from
lite/*.htolibite/*.hdue to an unfortunate clash with "LiTE is a Toobox Engine", from the DirectFB project. For a transitional period, however, a compatibility symlink is installed;lite -> libite/.
Changes
- Header files have moved from
lite/*.htolibite/*.hto prevent clashing with DirectFB LiTE library. - Include guards in header files have been renamed, much in the same
fashion as the move (above), from
LITE_foo_H_toLIBITE_FOO_H_ - Add configure option to disable compatibility symlink, for systems
that do not want name clashes with DirectFB/LiTE, or do not need to
be backwards compatible; use
configure --without-symlink
Fixes
- Minor, use defensive coding in
strnlen()replacement. Only used on systems that do not have a native implementation.
v2.4.1 - 2021-10-09
Changes
- Add doxygen API documentation to project, included in tarball, and automatically generated at https://codedocs.xyz/troglobit/libite/
- Relocate
tests/totest/in source tree - Relocate
docs/todoc/in source tree
Fixes
- Prefix CFLAGS/CPPFLAGS/etc with
AM_intest/Makefile.amto prevent clashing with environment. Fix imported from libuEv - Replace obsolete
AM_CONFIG_HEADERwithAC_CONFIG_HEADERS - Fix issue with
tempfile()returning EOPNOTSUPP on Azure, use fallback tomkostemp()withO_CLOEXECflag set
v2.4.0 - 2021-03-27
Changes
- Add support for
touchf(), formatted string support fortouch() - Add support for
erasef(), formatted string support forerase() - Add support for
strtrim(), trims leading and trailing white-space from a string
Fixes
- Fix
systemf()improper handling ofsystem()return value. Now checks if exited OK, then returning the exit status of the command, or if not exited OK, then checks if the command was signaled, and returns -1 witherrnoset. This also allows for returning 127, likesystem(), if the shell, or the program itself, did not exist
v2.3.1 - 2021-02-12
Changes
- Copyright updates, including LICENSE file, year + author last name
Fixes
- Debian packaging fixes only
v2.3.0 - 2021-02-12
Changes
- Add support for
fremove(), formattedremove()replacement - Add support for
truncatef(), formattedtruncate()replacement - Add tar.gz archives to distribution
Fixes
- Handle
ETIMEDOUTerror forconnect()call intelnet_open()
v2.2.0 - 2020-03-16
Changes
- Add support for
systemf(), formatted stringsystem()replacement - Add support for
fmkpath(), formatted stringmkpath() - Add support for
fopenf(), formatted stringfopen()replacement
Fixes
- Fix possible memory leak in
rsync(), found by Coverity Scan - Check return value of
fstat()to prevent bogus destination file times when usingcopyfile(), found by Coverity Scan
v2.1.2 - 2020-02-22
Fixes
- Fix Debian package upgrade from libite -> libite5
v2.1.1 - 2020-02-22
Changes
- Add test/example for
printhdr() - Update copyright years
Fixes
- chomp: Check for beginning of string while removing \n's
v2.1.0 - 2019-08-26
Changes
- Add support for
strmatch()andstrnmatch() - Add support for
yorn(), safe yes-or-no prompt - Add support for telnet expect/session APIs
- Add modified
printhdr()which takes ANSI attribute
Fixes
- Fix
pidfile_signal(): always return result ofkill(), or the result ofremove()if we successfully sentSIGKILL - Fix
strtonum(): POSIXstrtoll()returnsEINVAL, check that - Fix #13, support C++
extern "C" {}for header files
v2.0.2 - 2018-05-10
Fixes
- Fix issue #12, missing includes in
strlite.hfor standalone use - FTBFS
strtonum.con older systems w/oLLONG_MAXandLLONG_MIN
v2.0.1 - 2017-12-22
Changes
- Add missing
initscr()declaration, regression in v2.0.0 - Add
#ifdefguards aroundmin()andmax()macros - Add
consttochar *args in multiple API:s:fexist()fgetint()fisslashdir()copyfile()movefile()ifconfig()lfopen()lfgetkey()lfgetint()
Fixes
- Fix #9, uncommon location of
whichcommand in unit test - Fix #10, supply unit test with a default
$PATH - Fix #11,
touch()command cannot handle relative paths when updating the mtime of an existing file
v2.0.0 - 2017-11-22
Changes
- Remove
tree(), moved to toolbox.git instead - Remove
fmode(), please usestat()instead, it's safer - Add support for keeping mtime in
copy()andrsync() - Move source files to an
src/sub-directory - Move
initscr()fromconio.htoconio.c - Update docs, recommend
mkpath()overmakepath() - Bump ABI version, major changes to library
Fixes
- Fix #7, inconsistent return value in
mkpath()andmakepath() - Fix #8, constify
mkpath()andmakepath()
v1.9.3 - 2017-10-24
Changes
initscr(), use stdout, not stderr, like the rest of theconio.hmacros. Also, stderr may be redirected by usertree(), update unit test, use standard directries
Fixes
initscr(), verify that both stdin and stdout are real TTYs before messing up output or blocking on input for the usertree(), increase internal buffer slightly, output may be truncated otherwise. Found by GCC 7.2
v1.9.2 - 2017-07-09
Changes
- Add
initscr()function to query screen size - Convert
printheader()to a static inline function
v1.9.1 - 2017-07-03
Changes
- Add missing
whichp()predicate function to accompanywhich() - Allow
which("ps aux"), which skips any arguments to command
v1.9.0 - 2017-07-02
Changes
- Add
which(), a C implementation of UNIX which(1) - Add
printheader(), prints a top-like table heading for client tools - Remove
UNUSED()macro, recommended to disable GCC warning instead
Fixes
- Fix issue #6:
touch()does not update mtime if file exists - Fix non-writable
tempfile(), now with proper unit test
v1.8.3 - 2017-01-08
Changes
- Support absolute path in
pidfile(). Needed by, e.g. Inadyn - Add initial
debian/packaging - Update README with note on remembering to set
umask()
Fixes
- In use-cases when
pidfile()is called consecutively, e.g. onSIGHUP, recreate PID file if it no longer exists
v1.8.2 - 2016-09-05
Changes
- Updated build instructions in README.
- Converted
touch(),makedir(),makefifo(), anderase()from macros to inline functions. Also removed implicit logging to stderr on error.
Fixes
- Fix small memory leak in
pidfile()... at exit. - Fixes for building on musl libc
v1.8.1 - 2016-06-25
Fixes
fparseln(), portability fix for NetBSDpidfile(), portability fix for NetBSD and OpenBSD
v1.8.0 - 2016-06-06
Changes
- Change return type of
fsendfile()fromsize_ttossize_t - Change
dir()semantics: do not assert and always return error without callingperror()or similar. - The OpenBSD
pidfile()function's prefix path_PATH_VARRUNcan now be overridden by setting the hidden__pidfile_pathvariable. E.g., to_PATH_TMP. Make sure read the docs! - Add new unit test framework
make check.
Fixes
- Fix bad path in new
strndupa()header file. - Add missing progress bar API's to
lite.h
v1.7.0 - 2016-06-05
Changes
- Add support for GNU
strdupa(), for Inadyn on NetBSD. - Add support for GNU
strndupa()andstrnlen()
Fixes
- Fix
mkpath()to handle creating relative directories.
v1.6.0 - 2016-05-13
Changes
- Add support for NetBSD
fparaseln()for the benefit of Mg - Add support for OpenBSD
reallocarray()for the benefit of Mg - Constify
fisdir()argument
v1.5.1 - 2016-04-17
Minor fix release.
Changes
- Update README.md, add help when libite is used in autotools projects. Spell checking and minor cleanup.
Fixes
- Activate use of
utimensat()whenpidfile()is called multiple times. This reduces the overhead of calling open+write+close to simply updating the mtime of the PID file. - Westermo fixes for
fcopyfile(): nothing copied on embedded PPC system when usingtmpfile()as source.
v1.5.0 - 2016-03-20
This release changes the header file namespace. Apologies for any problems this may cause!
Changes
- Change namespace for header files:
libite/tolite/, e.g. usingpkg-configyour C program must now#include <lite/lite.h> - Update
pidfile()to useutimensat()to update atime+mtime instead of opening and writing PID again. Less overhead and nanonsecond res.
v1.4.4 - 2016-02-23
Changes
- Add
ibite.pc.inforpkg-configsupport.
Fixes
- Fix issue #3:
tempfile()fails with badO_TMPFILEon some embedded targets, in particular PowerPC. On systems with older GLIBC but with a sufficiently new kernelO_TMPFILEis missing and the local libite definition was wrong, hard coded for x86. Fixed by Johan Askerin.
v1.4.3 - 2016-02-02
Fixes
- Remove symlinks to Markdown files from GIT
- Distribute and install Markdown files: README.md, etc.
v1.4.2 - 2016-01-23
Fixes
- Fix issue #2: GCC6
-Wmisleading-indentationcausing FTBFS in pimd, which enables-Werror
v1.4.1 - 2016-01-22
Fixes
- Fix install path for include files, regression in v1.4.0 With the introduction of GNU autotools include file namespace was unfortunately lost. All include files were therefore installed in $(prefix)/include instead of $(prefix)/include/libite.
v1.4.0 - 2016-01-22
Changes
- Change to GNU configure and build system
- Add Niels Provos' splay and red-black tree implementation from OpenBSD
sys/tree.h, r1.14 - Make
pidfile()file name accessible as__pidfile_name - Step ABI revision to 2.1, with help from http://250bpm.com/blog:41
v1.3.0 - 2016-01-07
Changes
- Add highly useful typeless
min()/max()macros tolite.h, courtesy of Tobias Waldekranz - Add BSD
queue.hand Borland inspiredconio.htoinstall-devtarget. Needed by Finit. - Note, this release update
queue.hto OpenBSD v1.43, which removes support for circular queues (CIRCLEQ). - Update
strlcpy.cto OpenBSD v1.12, readability fixes. - Update
strlcat.cto OpenBSD v1.14, readability fixes. - Update
strtonum.cto OpenBSD v1.7, tiniest of style tweaks.
Fixes
- Only update mtime if
pidfile()is called more than once, do not install multipleatexit()handlers. - Add
#ifndef pidfile, as for other BSD functions, in case the user already have a local copy, or a C library with one.
v1.2.0 - 2015-11-23
Changes
- Add simple parser for UNIX configuration files, e.g.
/etc/group,/etc/passwd, and/etc/protocols: lfopen()lfclose()lftok()lfgetkey()lfgetint()fgetint()
Fixes
- Do not allow
VERSIONto be overloaded by build system. - Make sure we don't inherit
LDFLAGSfrom environment.
v1.1.1 - 2015-09-27
Fixes
- Silence annoying warnings from GNU ar
- Fix macro definitions for compat APIs
v1.1.0 - 2015-09-16
Changes
- Support for
make distdirused by automake based projects lite.hmove fromerror.hto more BSD friendlyerr.h- Add highly useful
NELEMS()and bitmanip macros - Lots of autotests added
- Add support for running autotests from Travis
- Add
progress()simple progress bar - Add
tree()simple command line tree replacement - Bump
SONAMEtolibite.so.2on behalf of Finit
Fixes
pidfile()upgrade to OpenBSD r1.11- Lots of README updates, fixes and additions
v1.0.0 - 2015-07-12
Initial extraction of frog DNA from Finit. See README for API details.