2174 lines
75 KiB
Plaintext
2174 lines
75 KiB
Plaintext
***************** Important news ****************************
|
||
|
||
For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
|
||
|
||
***************** Please Test *********************************
|
||
|
||
NEW features of cdrtools-3.01:
|
||
|
||
This is the first localization step for cdrtools. All programs now (hopefully)
|
||
call gettext() for all strings that need localization.
|
||
|
||
- The next step will include dgettext() calls for the libraries.
|
||
|
||
- The following step will include the extracted strings
|
||
|
||
- The last step will include German translations and install support
|
||
for the resulting binary message object files.
|
||
|
||
----------> Please test and report compilation problems! <---------
|
||
|
||
***** NOTE: As mentioned since 2004, frontends to cdrtools should *****
|
||
***** call all programs from cdrtools in the "C" locale *****
|
||
***** by e.g. calling: LC_ALL=C cdrecord .... *****
|
||
***** unless these frontends support localized strings *****
|
||
***** used by the cdrtools with NLS support. *****
|
||
|
||
This version compiles on Win-DOS using the Microsoft compiler cl.exe but
|
||
warning: due to missing POSIX compliance with basic features (e.g. stat()
|
||
does not return inode numbers), there are many problems with the resulting
|
||
code and thus it is recommended to better use a POSIX layer on top of
|
||
WIN-DOS.
|
||
|
||
*** WARNING ***
|
||
*** Need new smake ***
|
||
|
||
*** Due to the fact that schily-2014-04-03 introduced to use new macro
|
||
*** expansions and a related bug fix in smake, you need a new smake
|
||
*** to compile this source. To ensure this, get a recent "schily"
|
||
*** tarball from http://sourceforge.net/projects/schilytools/files/
|
||
*** and call:
|
||
|
||
cd ./psmake
|
||
./MAKE-all
|
||
cd ..
|
||
psmake/smake
|
||
psmake/smake install
|
||
|
||
The new smake version mentioned above is smake-1.2.4.
|
||
Note that smake-1.2.5 exists and is preferrable.
|
||
|
||
Now you have a new smake that is able to compile this source.
|
||
|
||
Note that the major makefile restructuring introduced in
|
||
schily-2014-04-03 is now more than one month ago and thus seems
|
||
to work without problems.
|
||
|
||
WARNING: the new version of the isoinfo program makes use of the
|
||
*at() series of functions that have been introduced by Sun
|
||
in August 2001 and added to POSIX.1-2008. For older platforms,
|
||
libschily now includes emulations for these functions but
|
||
these emulations have not yet been tested thoroughly.
|
||
Please report problems!
|
||
|
||
|
||
All:
|
||
|
||
- The macros XARCH_GEN & XARCH_OPT are now in RULES/cc-sunpro*.rul
|
||
|
||
- The include file include/schily/ccomdefs.h now allows to disable
|
||
the printf() format checks for GCC with -DNO_PRINTFLIKE
|
||
This is needed in order to allow star to compile in the Solaris ON
|
||
consolidation as GCC id too dumb for the printf() extensions.
|
||
|
||
- All include files (even those created by autoconf) are now protected
|
||
against multiple inclusion.
|
||
|
||
- New autoconf test for pathconf() and fpathconf()
|
||
|
||
- New autoconf test for /dev/stdin, /dev/stdout, /dev/stderr,
|
||
/dev/fd/0, /dev/fd/1, /dev/fd2
|
||
|
||
- New autoconf tests for: qecvt() qfcvt() qgcvt()
|
||
_ldecvt() _ldfcvt() _ldgcvt() _ldecvt_r() _ldfcvt_r() _ldgcvt_r()
|
||
qeconvert() qfconvert() qgconvert()
|
||
needed for long double support.
|
||
|
||
- New autoconf test for _qecvt() _qfcvt() _qgcvt()
|
||
and _qecvt_r() _qfcvt_r() _qgcvt_r() on AIX
|
||
|
||
- All linker map files have been modified to allow platform
|
||
dependent #ifdef's
|
||
|
||
- include/schily/wchar.h now includes a workaround for platforms
|
||
that do not have wcwidth().
|
||
|
||
- Make NLS the default (i.e. gettext() is called in case that schily/nlsdefs.h
|
||
was included)
|
||
|
||
- include/schily/nlsdefs.h now includes macros _(s) and __(s) to support
|
||
gettext() and xgettext(1)
|
||
|
||
- The makefile system now by default disables smake Simple Suffix Rules
|
||
and the POSIX Suffix Rules in order to speed up inference rule search.
|
||
|
||
- A new rule RULES/profiled.lnk allows to call:
|
||
|
||
smake COPTX=-pg LDOPTX=-pg LINKMODE=profiled
|
||
|
||
to create binaries that use gprof.
|
||
|
||
- The Makefile System is now able to switch gmake-3.82 into a more POSIX
|
||
compliant mode to tell the shell to report problems back to gmake.
|
||
|
||
- New autoconf tests on whether printf supoorts %lld and %jd
|
||
|
||
- Fixed the vc9-setup files to make VC9 work.
|
||
|
||
- Newer Cygwin "tail" versions do no longer support UNIX syntax.
|
||
change tail +2 to tail -n +2 in RULES/cc-mcs.rul to allow to use
|
||
the Microsoft compiler again
|
||
|
||
- A new environment variable MKLINKS_COPY allows to tell all
|
||
MKLINKS scripts to generate file copies rather than symlinks.
|
||
Call:
|
||
MKLINKS_COPY=true
|
||
export MKLINKS_COPY
|
||
to enable this feature
|
||
|
||
- Run an additional test -h command in MKLINKS to verify whether mingw
|
||
supports symlinks
|
||
|
||
- MKLINKS now creates copies instead of symlinks when we use MSC
|
||
as MSC does not support to read symlink files
|
||
|
||
- Fixed a typo in include/schily/libport.h (group functions have been
|
||
defined to return struct passwd* instead of struct group*
|
||
|
||
- Fixed wrong bracketing for C++ in include/schily/stdlib.h
|
||
|
||
- Fixed wrong bracketing for C++ in include/schily/utypes.h
|
||
|
||
- Added a workaround for MSC to include/schily/utypes.h
|
||
MSC believes that a 32 bit int and a 32 bit long are incompatible
|
||
and cannot even be casted, so we need to make uint32_t a n unsigned long
|
||
|
||
- Let include/schily/archdefs.h define the standard processor #defines
|
||
when compiling with MSC.
|
||
|
||
- New include file include/schily/windows.h works around the oddities
|
||
from the MSC include file windows.h
|
||
|
||
- include/schily/stdio.h now defines popen()/pclose() to _popen()/_pclose()
|
||
if on WIN-DOS
|
||
|
||
- include/schily/limits.h now defines PIPE_BUF
|
||
|
||
- include/schily/utsname.h now defines struct utsname for our MSC uname()
|
||
emulation.
|
||
|
||
- The setup for the PATHs needed by Visual Studio 9 has been
|
||
corrected.
|
||
|
||
- autoconf has been modified to avoid optimizing away code that
|
||
is intended for testing. This help to work against a problem
|
||
with detecting mbrtowc() on MinGW
|
||
|
||
- autoconf now tests for mbtowc() and wctomb()
|
||
|
||
- RULES/i*86-mingw32_nt-gcc.rul now link against -lmingw32 instead
|
||
of -lmgw32.
|
||
|
||
- include/schily/stat.h now defines S_IREAD/S_IWRITE/S_IEXEC
|
||
These macros are available on typical UNIX systems but not
|
||
on Android. The definition comes from UNIX V7 and is not in
|
||
POSIX. Needed by SCCS and the Bourne Shell
|
||
|
||
- include/schily/wait.h now defines WIFCONTINUED() if needed
|
||
|
||
- include/schily/wchar.h now defines mbtowc() to mbrtowc() if
|
||
needed (e.g. on Android)
|
||
|
||
- include/schily/ccomdefs.h now correctly knows about the GCC
|
||
release that introduced __attribute__ (used).
|
||
|
||
- Android is not POSIX (by not defining various functions as functions
|
||
in libc as required by POSIX) because it tries to define many
|
||
functions that are part of the standard as inline macros in
|
||
include files only. This breaks autoconf, so we needed to rewrite
|
||
some tests (e.g for getpagesize, tcgetpgrp, tcsetpgrp)
|
||
|
||
- The Schily autoconf system has been enhanced to support cross
|
||
compilation. Schily autoconf is based on GNU autoconf and
|
||
GNU autoconf does not support cross compilation because it needs
|
||
to run scripts on the target system for some of the tests.
|
||
|
||
The "configure" script that is delivered with the Schily makefile
|
||
system runs 718 tests and 68 of them need to be run on the target
|
||
system.
|
||
|
||
The Schily autoconf system now supports a method to run these 68
|
||
tests natively on a target system. You either need a machine with
|
||
remote login features or you need an emulator with a method to
|
||
copy files into the emulated system and to run binaries on the
|
||
emulated system as e.g. the Android emulator.
|
||
|
||
We currently deliver three scripts for "remote" execution of
|
||
programs on the target system:
|
||
|
||
runrmt_ssh runs the commands remove via ssh
|
||
runrmt_rsh runs the commands remove via rsh
|
||
runrmt_android runs the commands remove via the debug bridge
|
||
|
||
If you need to remotely run programs on a system that is not
|
||
supported by one of there three scripts, you need to modify one
|
||
of them to match your needs.
|
||
|
||
To enable Cross Compilation use the following environment variables:
|
||
|
||
CONFIG_RMTCALL= Set up to point to a script that does
|
||
the remote execution, e.g.:
|
||
|
||
CONFIG_RMTCALL=`pwd`/conf/runrmt_ssh
|
||
|
||
CONFIG_RMTHOST= Set up to point to your remote host, e.g.:
|
||
|
||
CONFIG_RMTHOST=hostname
|
||
or
|
||
CONFIG_RMTHOST=user@hostname
|
||
|
||
use a dummy if you like to use something
|
||
like to the Android emulator.
|
||
|
||
CONFIG_RMTDEBUG= Set to something non-null in order to
|
||
let the remote execution script mark
|
||
remote commands. This will result in
|
||
configure messages like:
|
||
|
||
checking bits in minor device number... REMOTE 8
|
||
|
||
Note that smake includes automake features that automatically
|
||
retrieve system ID information. For this reason, you need to overwrite
|
||
related macros from the command line if you like to do a
|
||
cross compilation.
|
||
|
||
Related make macros:
|
||
|
||
K_ARCH= # (sun4v) Kernel ARCH filled from uname -m / arch -k
|
||
M_ARCH= # (sun4) Machine filled from arch
|
||
P_ARCH= # (sparc) CPU ARCH filled from uname -p / mach
|
||
OSNAME= # sunos, linux, ....
|
||
OSREL= # 5.11
|
||
OSVERSION= # snv_130
|
||
CCOM= # generic compiler name (e.g. "gcc")
|
||
CC_COM= # compiler to call (name + basic args)
|
||
|
||
ARCH= overwrites M_ARCH and P_ARCH
|
||
|
||
It is usually sufficient to set ARCH and OSNAME.
|
||
|
||
In order to use a cross compiler environment instead of a native compiler,
|
||
set the make macro CC_COM to something different than "cc".
|
||
|
||
If you are on Linux and like to compile for Android, do the following:
|
||
|
||
1) set up CC acording to the instructions from the cross compiler
|
||
tool chain
|
||
|
||
2) set environment variables CONFIG_RMTCALL / CONFIG_RMTHOST, e.g.:
|
||
setenv CONFIG_RMTCALL `pwd`/conf/runrmt_android
|
||
setenv CONFIG_RMTHOST NONE
|
||
|
||
3) call smake:
|
||
|
||
smake ARCH=armv5 OSNAME=linux CCOM=gcc "CC_COM=$CC"
|
||
|
||
|
||
- Several programs no longer test for HAVE_DEV_* but for HAVE__DEV_*
|
||
as we did switch from hand written tests for /dev/tty, /dev/null
|
||
and similar to AC_CHECK_FILES(/dev/tty /dev/null /dev/zero)
|
||
|
||
- The Makefile system now links dynamic libraries on Mac OS X against
|
||
libgcc_s.1 instead of libgcc.
|
||
|
||
|
||
- The file COPYING has been reworded to be more obvious with
|
||
explaining work limits.
|
||
|
||
- A workaround for a bug in llvm-gcc-4.2 has been introduced in
|
||
inc/avoffset.c. The llvm-gcc-4.2 bug caused an endless loop at an
|
||
unexpected place.
|
||
|
||
- New target "htmlxn" to only rebuild html versions of man pages
|
||
only in case there was a change
|
||
|
||
- The CSW packaging definitions in the schily makefilesystem was
|
||
enhanced to permit referencing files in the package definition directory
|
||
|
||
- include/schily/sigset.h added new macros: blocked_sigs(),
|
||
block_sigs()
|
||
|
||
- include/schily/fcntl.h now includes O_SEARCH for POSIX.1-2008 compliance.
|
||
|
||
- Schily autoconf now tests for the size of mode_t, uid_t, gid_t, pid_t,
|
||
dev_t, major_t, minor_t
|
||
|
||
- Schily autoconf now defines a promoted type for mode_t that can be
|
||
used together with varargs. This is needed as mode_t is smaller than
|
||
int on some systems.
|
||
|
||
- New autoconf tests for getdelim() and strncasecmp()
|
||
|
||
- Added a workaround for a auto-dependency creation bug in the HP-UX
|
||
c-compiler that resulted in wrong dependency files for all files
|
||
in libshcily/stdio/ and for these files prevented an automated
|
||
recompilation in case that an include file was changed.
|
||
|
||
- Added links for:
|
||
|
||
amd64-freebsd-cc.rul
|
||
amd64-freebsd-gcc.rul
|
||
|
||
amd64-openbsd-cc.rul
|
||
amd64-openbsd-gcc.rul
|
||
|
||
x86_64-darwin-cc.rul
|
||
x86_64-darwin-gcc.rul
|
||
x86_64-darwin-cc64.rul
|
||
x86_64-darwin-gcc64.rul
|
||
x86_64-darwin-cc32.rul
|
||
x86_64-darwin-gcc32.rul
|
||
|
||
- RULES/rules.loc now makes $(PTARGET) depend on $(ARCHDIR) to
|
||
support make -j 2
|
||
|
||
- New include files include/schily/inttypes.h and include/schily/stdint.h
|
||
|
||
- The script conf/makeinc is no longer confused by OpenBSD
|
||
that has man.7 and mandoc.7 and both match on man*
|
||
|
||
|
||
|
||
- conf/runrmt_android has been enhanced to better deal with the
|
||
"runrmt -r file-to-test" calling variant.
|
||
|
||
- configure now ignores a stramge directory that is created on Mac OS X
|
||
when compiling with cc -g and that is in conflict with other rules.
|
||
|
||
- Introduce a dependency for man page subdiretories to allow syncing
|
||
parallel make calls.
|
||
|
||
- Try to support Debian with FreeBSD kernel
|
||
|
||
- Better support for Win32 sockets when using cl.exe
|
||
|
||
- Avoid problems with the non-standard prototypes for link() unlink()
|
||
read() and write() from cl.exe
|
||
|
||
- Support for Pyro (a Syllable clone) was added.
|
||
Thanks to Flemming H. S<>rensen
|
||
|
||
- Add support for semi-static (preconfigured) include files for Android:
|
||
include/schily/armv5tejl-linux-gcc/xconfig.h
|
||
|
||
- New include files include/schily/err_*.h are used to encapsulate
|
||
#error CPP statements that would otherwise always prevent compilation
|
||
with K&R compilers.
|
||
|
||
- The make program specific configuration files for the Schily Makefilesystem
|
||
RULES/mk-.id (for SunPro make), RULES/mk-smake.id RULES/mk-gmake.id
|
||
now include definitions for the macros:
|
||
|
||
SPACE A single space character (' ')
|
||
NUMBER_SIGN The ASCII number sing ('#')
|
||
|
||
Note that the POSIX standard otherwise requires the make program
|
||
to be unable to have the '#' appear in non-comment sections of
|
||
Makefiles.
|
||
|
||
- Try to work around an imprudent change in the file windef.h from
|
||
Cygwin-1.7.17 (Autumn 2012) related to the type BOOL that makes
|
||
windefs.h from the recent Cygwin no longer compatible to the
|
||
original file from Microsoft. The fix is in include/schily/windows.h
|
||
|
||
Thanks to Alain Hoang, Thomas Plank and others for reporting and
|
||
help with getting a fix for the problem named above
|
||
|
||
|
||
|
||
- The Schily makefilesystem now supports CC++_COM for all platforms to
|
||
allow to overwrite the low level command for the C++-compiler.
|
||
|
||
|
||
- include/schily/stat.h now contains macros to set the nanoseconds
|
||
in timestamps in a OS-independent way
|
||
|
||
|
||
- Fixed a typo in include/schily/stat.h related to nanosecond
|
||
handling for NetBSD and OpenBSD
|
||
|
||
- New autoconf tests for sys/capability.h and cap_*() functions
|
||
from Linux -lcap
|
||
|
||
WARNING: If you do not see this:
|
||
|
||
checking for cap_get_proc in -lcap... yes
|
||
checking for cap_get_proc... yes
|
||
checking for cap_set_proc... yes
|
||
checking for cap_set_flag... yes
|
||
checking for cap_clear_flag... yes
|
||
|
||
your Linux installation is insecure in case you ever use the
|
||
command "setcap" to set up file capabilities for executable commands.
|
||
|
||
Note that cdrtools (as any other command) need to be capabylity-aware
|
||
in order to avoid security leaks with enhanced privileges. In most
|
||
cases, privileges are only needed for a very limited set of operations.
|
||
If cdrtools (cdrecord, cdda2wav, readcd) are installed suid-root, the
|
||
functions to control privileges are in the basic set of supported
|
||
functions and thus there is no problem for any program to control it's
|
||
privileges - if they have been obtained via suid root, you are on a
|
||
secure system.
|
||
|
||
If you are however on an incomplete installation, that supports to
|
||
raise privileges via fcaps but that does not include developer support
|
||
for caps, the programs get the privileges without being able to know
|
||
about the additional privileges and thus keep them because they cannot
|
||
control them.
|
||
|
||
WARNING: If you are on a Linux system that includes support for
|
||
fcaps (this is seems to be true for all newer systems with
|
||
Linux >= 2.6.24) and there is no development support for capabilities
|
||
in the base system, you are on an inherently insecure system that allows
|
||
to compile and set up programs with enhanced privileges that cannot
|
||
control them.
|
||
|
||
In such a case, try to educate the security manager for the related
|
||
Linux distribution. Note that you may turn your private installation
|
||
into a secure installation by installing development support for libcap.
|
||
|
||
|
||
- The autofconf tests for broken Linux kernel headers now avoid to
|
||
warn for /usr/src/linux/include if this directory is missing.
|
||
|
||
- include/schily/priv.h now includes sys/capabilitiy.h if available.
|
||
|
||
|
||
- Due to an incorrect message from last release, here is corrected
|
||
information on when a Linux installation is potentially dangerous:
|
||
|
||
New autoconf tests for sys/capability.h and cap_*() functions
|
||
from Linux -lcap
|
||
|
||
WARNING: If you do not see this:
|
||
|
||
checking for sys/capability.h... yes
|
||
|
||
...
|
||
|
||
checking for cap_get_proc in -lcap... yes
|
||
checking for cap_get_proc... yes
|
||
checking for cap_set_proc... yes
|
||
checking for cap_set_flag... yes
|
||
checking for cap_clear_flag... yes
|
||
|
||
your Linux installation is insecure in case you ever use the
|
||
command "setcap" to set up file capabilities for executable commands.
|
||
|
||
Note that cdrtools (as any other command) need to be capabylity-aware
|
||
in order to avoid security leaks with enhanced privileges. In most
|
||
cases, privileges are only needed for a very limited set of operations.
|
||
If cdrtools (cdrecord, cdda2wav, readcd) are installed suid-root, the
|
||
functions to control privileges are in the basic set of supported
|
||
functions and thus there is no problem for any program to control it's
|
||
privileges - if they have been obtained via suid root, you are on a
|
||
secure system.
|
||
|
||
If you are however on an incomplete installation, that supports to
|
||
raise privileges via fcaps but that does not include developer support
|
||
for caps, the programs get the privileges without being able to know
|
||
about the additional privileges and thus keep them because they cannot
|
||
control them.
|
||
|
||
WARNING: If you are on a Linux system that includes support for
|
||
fcaps (this is seems to be true for all newer systems with
|
||
Linux >= 2.6.24) and there is no development support for capabilities
|
||
in the base system, you are on an inherently insecure system that allows
|
||
to compile and set up programs with enhanced privileges that cannot
|
||
control them.
|
||
|
||
In such a case, try to educate the security manager for the related
|
||
Linux distribution. Note that you may turn your private installation
|
||
into a secure installation by installing development support for libcap.
|
||
|
||
- WARNING: the include structure of include/schily/*.h and several sources
|
||
has been restructured to cause less warnings with older OS platforms.
|
||
If you see any new problem on your personal platform, please report.
|
||
|
||
- New includefiles:
|
||
|
||
schily/poll.h Support poll()
|
||
schily/stdarg.h An alias to schily/varargs.h (but using the std name)
|
||
schily/sunos4_proto.h Missing prototypes for SunOS-4.x to make gcc quiet
|
||
schily/timeb.h Needed for users of ftime()
|
||
|
||
- Many minor bug-fixes for the files include/schily/*.h
|
||
|
||
- include/schily/archconf.h now defines __SUNOS5 for easier coding
|
||
|
||
- include/schily/priv.h now defines platform-independent fine-grained privileges
|
||
|
||
- Updated README.compile:
|
||
|
||
Some typo patches from Jan Engelhardt <jengelh@inai.de>
|
||
|
||
Documented the "LINKMODE=" macro to explain how to create dynamically
|
||
linked bynaries.
|
||
|
||
|
||
- The SCCS keyword expansion for "Mocsw" has been limited to
|
||
prevent expansion of date '+%Y%m%d%H%M%S'
|
||
|
||
- Mocsw now sets link mode to -Bdirect for recent OpenCSW rules
|
||
|
||
- pkgdefs/OCSW/*/checkpkg_override modified to match current OpenCSW
|
||
rules.
|
||
|
||
- Make sure that all schily include files except the primary wrappers
|
||
include schily/*.h instead of including the system include files directly.
|
||
|
||
- Allow a "static" compilation (a compilation without using dynamic -I
|
||
Paths) on Linux x86 by adding static #includes for Linux x86 in:
|
||
|
||
include/schily//align.h
|
||
include/schily//archdefs.h
|
||
include/schily//avoffset.h
|
||
include/schily//xconfig.h
|
||
|
||
This is needed if you like to install the schily include files
|
||
to /usr/include/schily and allow users to "manually" compile
|
||
programs that use e.g libparanoia.
|
||
|
||
To allow this, the autoconf results need to be installed as:
|
||
|
||
<schily/i686-linux-gcc/*.h>
|
||
and
|
||
<schily/x86_64-linux-gcc/*.h>
|
||
|
||
|
||
|
||
- The Schily Makefilesystem no longer uses CC= for internal tasks.
|
||
People who now set $CC to a different value will fail in a similar
|
||
way as they would fail with other build systems.
|
||
|
||
- Added automatic support for ARMv5 and ARMv6. This makes compilation
|
||
on the RaspberryPI also possible with the non automake-aware gmake.
|
||
|
||
- Allow "static" compilation (a compilation that does not use the
|
||
dynamic defines from the Schily Makefilesystem) on Linux ARMv6 (which
|
||
is used by RaspberryPI).
|
||
|
||
- Allow a "static" compilation (a compilation without using dynamic -I
|
||
Paths) on Linux on ARMv5 and ARMv6 by adding static #includes for
|
||
Linux ARM in:
|
||
|
||
include/schily//align.h
|
||
include/schily//archdefs.h
|
||
include/schily//avoffset.h
|
||
include/schily//xconfig.h
|
||
|
||
This is needed if you like to install the schily include files
|
||
to /usr/include/schily and allow users to "manually" compile
|
||
programs that use e.g libparanoia.
|
||
|
||
To allow this, the autoconf results need to be installed as:
|
||
|
||
<schily/armv5l-linux-gcc/*.h>
|
||
and
|
||
<schily/armv6l-linux-gcc/*.h>
|
||
|
||
|
||
- Many sources have been modified to deal __CYGWIN32__ like __CYGWIN__
|
||
This is neded as newer Cygwin versions that run in 64 Bit mode
|
||
do no longer define __CYGWIN32__ but __CYGWIN__
|
||
|
||
- Added rules for non-automake enabled make programs (like gmake)
|
||
for: ppc64-linux-cc.rul and ppc64-linux-gcc.rul
|
||
|
||
- Added new OS version ID rules for various WIN-DOS versions:
|
||
|
||
os-interix-nt-6.0.id
|
||
os-interix-nt-6.1.id
|
||
os-cygwin_nt-6.2-wow64.id
|
||
os-cygwin_nt-6.2.id
|
||
os-cygwin_nt-6.3-wow64.id
|
||
os-cygwin_nt-6.3.id
|
||
|
||
- New autoconf test in whether struct timespec is defined.
|
||
|
||
|
||
- New autoconf tests for:
|
||
|
||
- NFSv4 ACL support
|
||
|
||
- issetugid()
|
||
|
||
- lpathconf()
|
||
|
||
- utimens()
|
||
- futimens()
|
||
- lutimens()
|
||
|
||
|
||
- The rules in the Schily Makefilesystem have been restructured in order
|
||
to allow to avoid problems on platforms like FreeBSD and Mac OS X:
|
||
|
||
FreeBSD and Mac OS X banned the not-free-enough (because GPLd)
|
||
software to /usr/local, forcing us to add -I/usr/local/include
|
||
and -L/usr/local/lib. Unfortunately, /usr/local/include frequently
|
||
carries a _very_ outdated and thus wrong copy of "cdda_paranoia.h"
|
||
which is more than 10 years old and definitely incompatible with
|
||
dynamic linking on Mac OS X. This defective copy was first in the
|
||
search path and prevented compilation.
|
||
|
||
We now have a new macro: DEFOSINCDIRS= that grants to add include
|
||
directories to the end of the search PATH to allow us to find the
|
||
correct "cdda_paranoia.h" first.
|
||
|
||
Please test and report in case of problems.
|
||
|
||
- gmake and SunPro make include COMPILE.c with wrong content in their
|
||
built-in rules. We now clear this macro in RULES/rules.top. It is
|
||
still possible to provide a modified version from command line
|
||
or from the environment.
|
||
|
||
- include/schily/stdio.h was reordered, as it prevented compilation
|
||
of the "bsh" on Linux. This was a problem recently introduced,
|
||
when we added #ifndef NO_SCHILY_STDIO_H
|
||
|
||
- Fixed autoconf typo HAVE_MKNODKAT -> HAVE_MKNODAT
|
||
|
||
- include/schily/intcvt.h is now self contained.
|
||
|
||
- include/schily/windows.h now includes the same type workaround
|
||
for MINGW32 as for the Microsoft C compiler, as there are the same
|
||
autoconf detection problems.
|
||
|
||
- Added missing include/schily/err_type.h
|
||
|
||
- New file include/schily/shedit.h
|
||
|
||
|
||
- New Schily Makefiles rules for armv7l-linux
|
||
|
||
- autoconf/xconfig.h.in now treats MinGW32 the same as when compiling
|
||
with cl.exe
|
||
|
||
|
||
- Define DEV_NULL in include/schily/mconfig.h to address the missing
|
||
/dev/null on DOS
|
||
|
||
- New autoconf tests for:
|
||
getc_unlocked getchar_unlocked putc_unlocked putchar_unlocked
|
||
flockfile funlockfile ftrylockfile
|
||
|
||
- Symlinks for
|
||
armv4tl-linux-cc.rul s390x-linux-cc.rul armv5tel-linux-cc.rul
|
||
new, to support non automake-aware make programs such as gmake.
|
||
|
||
|
||
- Do not define a gethostname() prototype in schily/hostname.h
|
||
for MinGW, as MinGW as a wrong prototype is in the non-standard
|
||
file winsock.h
|
||
|
||
- include/schily/stdio.h now implements code that partially unhides
|
||
the FILE * data structures from the 64 bit Solaris libc.
|
||
This allows to implement a getc_unlocked() macro even for 64 bit
|
||
Solaris as done by libc, so libschily is able to achieve similar
|
||
stdio I/O performance, which is needed to be able to implement
|
||
a printf() in libschily that is faster than printf() from libc.
|
||
|
||
|
||
- include/schily/varargs.h now includes a new type va_lists_t
|
||
that is a structure that covers va_list.
|
||
|
||
- include/schily/getargs.h now has comments for the arguments and
|
||
return code of the getargs() callback functions.
|
||
|
||
- The schily makefilesystem now includes a new symlink
|
||
ppc64le-linux-cc.rul for non automake-aware make implementations
|
||
such as gmake.
|
||
|
||
- New autoconf tests for strspn() strcspn() wcsspn() wcscspn()
|
||
|
||
- Typo fix in README.compile for the mail address.
|
||
Thanks to Dennis Clarke for the catch!
|
||
|
||
- Fixed the autoconf test for #pragma weak, so it will not
|
||
believe that "clang" supports #pragma weak in a compatible way.
|
||
This is needed in order to compile libmdigest/sha2.c using clang.
|
||
|
||
- New autoconf tests added for:
|
||
|
||
libexpat
|
||
libpcsclite / winscard.lib
|
||
libcrypto / libeay32.lib
|
||
libssl / ssleay32.lib
|
||
|
||
- New autoconf test for expat.h
|
||
|
||
- The makefile system added the INVERSE_SUBARCHDIR= to allow local
|
||
autoconfiguration for shared libraries.
|
||
|
||
- RULES/rules.top now also calls MKLINKS in the directory TEMPLATES
|
||
|
||
- New compiler configuration files:
|
||
|
||
RULES/cc-clang.rul
|
||
RULES/cc-clang32.rul
|
||
RULES/cc-clang64.rul
|
||
|
||
- The Mac OS X related rules now support a new macro:
|
||
|
||
LDFRAMEWORKS=
|
||
|
||
that allows to add Apple specific libraries.
|
||
|
||
- Added a new WIN32_LIBS= macro for Win-DOS specific libraries.
|
||
These libraries have to be specified in the portable -lfoo
|
||
format for "libfoo" and also work when compiling for MinGW32.
|
||
When cl.exe is used, -lfoo is converted to foo.lib.
|
||
|
||
- New configuration files:
|
||
|
||
RULES/i386-darwin-clang.rul
|
||
RULES/i386-darwin-clang32.rul
|
||
RULES/i386-darwin-clang64.rul
|
||
|
||
- New configuration files:
|
||
|
||
RULES/i386-freebsd-clang.rul
|
||
RULES/i586-linux-clang.rul
|
||
RULES/x86_64-linux-clang.rul
|
||
RULES/i86pc-sunos5-clang.rul
|
||
RULES/sun4-sunos5-clang.rul
|
||
|
||
Note that these files have not been tested yet.
|
||
|
||
- RULES/cc-sunpro.rul now also includes rules for
|
||
RULES/cc-sunpro32.rul and
|
||
RULES/cc-sunpro64.rul
|
||
|
||
- RULES/cc-gcc.rul now also includes rules for
|
||
RULES/cc-gcc32.rul and
|
||
RULES/cc-gcc64.rul
|
||
|
||
- RULES/cc-sunpro32.rul added for orthogonality
|
||
|
||
- RULES/cc-sunpro32.rul and
|
||
RULES/cc-sunpro64.rul are symlinks to RULES/cc-sunpro.rul
|
||
and RULES/cc-sunpro.rul uses a macro to include
|
||
cc-sunpro.rul
|
||
cc-sunpro32.rul
|
||
cc-sunpro64.rul
|
||
as needed
|
||
|
||
- RULES/i86pc-sunos5-cc.rul now also includes rules for
|
||
RULES/i86pc-sunos5-cc32.rul and
|
||
RULES/i86pc-sunos5-cc64.rul
|
||
|
||
- RULES/i86pc-sunos5-gcc.rul now also includes rules for
|
||
RULES/i86pc-sunos5-gcc32.rul and
|
||
RULES/i86pc-sunos5-gcc64.rul
|
||
|
||
- RULES/sun4-sunos5-cc.rul now also includes rules for
|
||
RULES/sun4-sunos5-cc32.rul and
|
||
RULES/sun4-sunos5-cc64.rul
|
||
|
||
- RULES/sun4-sunos5-gcc.rul now also includes rules for
|
||
RULES/sun4-sunos5-gcc32.rul and
|
||
RULES/sun4-sunos5-gcc64.rul
|
||
|
||
- RULES/i586-linux-suncc.rul now also includes rules for
|
||
RULES/i586-linux-suncc32.rul and
|
||
RULES/i586-linux-suncc64.rul
|
||
|
||
- RULES/9000-725-hp-ux-cc.rul now also includes rules for
|
||
RULES/9000-725-hp-ux-cc32.rul and
|
||
RULES/9000-725-hp-ux-cc64.rul
|
||
|
||
- RULES/i486-cygwin32_nt-cc.rul now also includes rules for
|
||
RULES/i486-cygwin32_nt-cc32.rul and
|
||
RULES/i486-cygwin32_nt-cc64.rul
|
||
|
||
- RULES/i486-cygwin32_nt-gcc.rul now also includes rules for
|
||
RULES/i486-cygwin32_nt-gcc32.rul and
|
||
RULES/i486-cygwin32_nt-gcc64.rul
|
||
|
||
- RULES/ip22-irix-cc.rul now also includes rules for
|
||
RULES/ip22-irix-cc64.rul
|
||
|
||
- RULES/ip22-irix-gcc.rul now also includes rules for
|
||
RULES/ip22-irix-gcc64.rul
|
||
|
||
- RULES/power-macintosh-darwin-cc.rul now also includes rules for
|
||
RULES/power-macintosh-darwin-cc32.rul and
|
||
RULES/power-macintosh-darwin-cc64.rul
|
||
|
||
- RULES/power-macintosh-darwin-gcc.rul now also includes rules for
|
||
RULES/power-macintosh-darwin-gcc32.rul and
|
||
RULES/power-macintosh-darwin-gcc64.rul
|
||
|
||
- conf/makeinc now knows that a compiler name may not follow
|
||
the "cc*" text rule. This helps to support "clang".
|
||
|
||
- conf/cc-config.sh has been enhanced to detect whether
|
||
"cc" or "gcc" are emulated via "clang".
|
||
|
||
- New files in TEMPLATES/ related to "clang"
|
||
|
||
- TEMPLATES/ now includes config files for gcc32 and gcc64
|
||
|
||
- TEMPLATES/ now includes config files for clang, clang32 and clang64
|
||
|
||
- Add comment to DEFAULTS_CSW/sparc-cc.defs
|
||
|
||
- config.guess now understands Mac OS X on 64 bit Intel
|
||
|
||
|
||
- Fixed a typo in autoconf/xconfig.h.in that caused the Win-DOS function
|
||
LoadLibrary() not to be recognised correctly.
|
||
|
||
- Added compile support for: amd64-freebsd-clang*.rul
|
||
|
||
- include/schily/unistd.h now extends some exceptions to work around
|
||
problems with the MS C-compiler to MinGW32.
|
||
|
||
|
||
- Various README's, scripts and man pages have been revised to replace
|
||
berlios.de by sourceforge.net
|
||
|
||
Note that some files have not yet been completely updated for that
|
||
change as there is no easy way to deal with a site like sourceforge
|
||
that does not support ftp:
|
||
|
||
./conf/src-get
|
||
./conf/setup.sh
|
||
|
||
Because we now assume that any UNIX distro includes a ftp(1) program,
|
||
but we cannot assume that there is wget.
|
||
|
||
- include/schily/dlfcn.h now includes a #define HAVE_LOADABLE_LIBS
|
||
in case we compile on a system that implements runtime loadable
|
||
libraries and that libschily implements an adoption for this
|
||
local method to the POSIX dlopen()/dlsym()/dlclose(). This is currently
|
||
true for Solaris (and similar) that implement dlopen()/dlsym()/dlclose()
|
||
natively and for HP-UX and Win-DOS.
|
||
|
||
- The makefile rules for installing man pages have been changed so that
|
||
OBJ/<archdir>/man/ is no longer a direct dependency of the man page.
|
||
This results in repeated "make install" calls not to reinstall
|
||
up-to-date man pages again.
|
||
|
||
- The makefile rules for installing localized scripts have been changed so
|
||
that OBJ/<archdir>/ is no longer a direct dependency of the man page.
|
||
This results in repeated "make install" calls not to reinstall
|
||
up-to-date scripts again.
|
||
|
||
- New autoconf test checks whether printf() supports %z
|
||
|
||
- Some documentation now mentions sourceforge instead of BerliOS
|
||
|
||
- README.compile now mentions how to use instrumented compilers with
|
||
the Schily Makefilesystem.
|
||
|
||
- Support for ARM-64 (aarch64) was added
|
||
|
||
- rules.dep (r-make.dep, r-smake.dep, r-gmake.dep) now create
|
||
$(ARCHDIR)/man together with $(ARCHDIR) to make sure this
|
||
directory exists before someone calls "*make install" as root.
|
||
|
||
- rules.dep (r-make.dep, r-smake.dep, r-gmake.dep) now make sure
|
||
that $(ARCHDIR)/Dnull will not be touched in case it already
|
||
exists. This prevents some unneeded file rebuilds if the make
|
||
program is changed between two builds.
|
||
|
||
Note that echo > $(ARCHDIR)/Dnull already enforces a shell (because
|
||
the command contains a ">") and the use of an if statement thus
|
||
does not cause extra costs.
|
||
|
||
- $(ARCHDIR)/Dnull no longer depends on $(ARCHDIR), this prevents
|
||
attempts to re-create $(ARCHDIR)/Dnull after an update in $(ARCHDIR)
|
||
|
||
- it is now ensured that $(SRCROOT)/incs/Dnull will not be touched
|
||
in case it already exists.
|
||
|
||
- TEMPLATES/MKLINKS now creates a dummy link to allow it to recognise
|
||
whether the links already exist.
|
||
|
||
- include/schily/sysexits.h adopts to the recent changes on Haiku that
|
||
prevent usual autoconf tests as #include <sysexits.h> works but symbols
|
||
are only defined with #define _BSD_SOURCE
|
||
|
||
- include/schily/wait.h now knows about the Haiku specific macro
|
||
WIFCORED() and #defines WCOREDUMP() to WIFCORED().
|
||
|
||
- Support for x86_64-haiku-cc.rul and x86_64-haiku-gcc.rul was added
|
||
to the makefile system.
|
||
|
||
- The file RULES/r-gmake.dep was modified to make sure that the
|
||
dependency files (*.d) depend on the include files as well.
|
||
Previous versions included xxx.d instead of $(ARCHDIR)/xxx.d
|
||
|
||
- Makefile system: two new targets have been added:
|
||
|
||
man creates localized versions of the man pages in the
|
||
OBJ directory
|
||
|
||
installman installs only the manual pages
|
||
|
||
- include/schily/signal.h now includes siginfo.h to make sure it
|
||
compiles even on very old Solaris versions where signal.h did not
|
||
yet include siginfo.h.
|
||
|
||
- include/schily/wait.h add a missing closing bracket for Haiku
|
||
|
||
- include/schily/wait.h added CLD_* macros and the enum idtype_t in case
|
||
they are missing. This allows to implement a waitid() emulation.
|
||
|
||
- include/schily/wait.h now includes schily/signal.h in case that
|
||
the local /usrinclude/sys/wait.h is non-POSIX and does not
|
||
define siginfo_t. This is e.g. the case on FreeBSD.
|
||
|
||
- The configure tests now includes a test that correctly identifies
|
||
Mac OS X as non-POSIX with respect to waitid(). This prevents
|
||
potential users ofwaitid() from the unusable implementation on
|
||
Mac OS X.
|
||
|
||
The rule for accepting an existing waitid() is the following:
|
||
|
||
- si.si_pid is set to be equal to the awaited pid
|
||
|
||
- si.si_code == CLD_EXITED for a chilt terminated by exit(2)
|
||
|
||
- si.si_status contains at least 16 bits from the exit(2)
|
||
code. This is still not POSIX but better than what we would
|
||
get from a historical wait*() call.
|
||
|
||
- The configure tests now check for the new FreeBSD wait6() and for
|
||
idtype_t.
|
||
|
||
- A new symlink for x86_64-cygwin32_nt-gcc.rul was added
|
||
|
||
- Added support for cygwin32_wow (not the already present cygwin32_wow64).
|
||
|
||
- The makefile system now allows to use:
|
||
|
||
COPTX=-DNO_PRAGMA_WEAK
|
||
|
||
to disable the use of #pragma weak. This may help to debug some
|
||
oddities of the GNU linker.
|
||
|
||
- The makefile system now includes a new test that needs constraints
|
||
that are not really supported by autoconf: it checks whether the
|
||
linker supports to link against external weak symbols in another
|
||
file. For this reason, a handcrafted conftest was written.
|
||
This (currently) should fail on Cygwin due to a Cygwin bug.
|
||
A platform that allows to link against weak symbols defines
|
||
HAVE_LINK_WEAK. This permits the system to automatically detect
|
||
usability once e.g. linking on Cygwin will be fixed.
|
||
|
||
Thanks to Thomas Plank for reporting the known #pragma weak problem
|
||
in a new source file (libschily/error.c). Note that error() is a
|
||
UNIX (UNOS) libc function that exists since 1980 but some libc
|
||
implementors do not follow the rule not to introduce incompatible
|
||
interfaces for existing names. So we need to find a workaround
|
||
on these platforms.
|
||
|
||
- autoconf now checks for the type rlim_t in sys/resource.h
|
||
|
||
- README.compile now includes an example on how to cross compile
|
||
on Linux for Android.
|
||
|
||
- include/schily/find.h modified to avoid a GCC warning from
|
||
using libfind in the Bourne Shell.
|
||
|
||
- include/schily/dlfcn.h modified to avoid a GCC warning from
|
||
the new builtin management code in the Bourne Shell.
|
||
|
||
- Support for Win-10 when compiling with no automake-aware
|
||
make implementations like "gmake" was added.
|
||
|
||
- include/schily/mconfig.h fixed a typo: "-DDBD_MALLOC"
|
||
|
||
- include/schily/resource.h better comment
|
||
|
||
- include/schily/stat.h fixed a typo S_ISCNT -> S_ISCTG and
|
||
S_IFCNT -> S_IFCTG
|
||
|
||
- include/schily/stat.h now includes #define lstat stat in case lstat()
|
||
does not exist on the current platform.
|
||
|
||
- include/schily/dbgmalloc.h: Added a workaround for source files
|
||
that first #include <schily/standard.h> and thus have no viable
|
||
BOOL defintion while <schily/mconfig.h> is included. This now permits
|
||
to compile the whole libschily with
|
||
|
||
smake COPTX=-DDBG_MALLOC LDOPTX=-ldbgmalloc
|
||
|
||
in order to debug malloc()/free() calls.
|
||
|
||
Libschily:
|
||
|
||
- libschily/?eterrno.c no longer overwrite the _TS_ERRNO definition
|
||
in order to pass the compile constraints in the Solaris ON consoliation.
|
||
|
||
- Several new global symbols in the mapfile for libschily/libschily-mapvers
|
||
|
||
- libschily/wcsndup.c had forgotten code and still did internaly implement
|
||
strndup()
|
||
|
||
- libschily now by default renames getline(), fgetline() and
|
||
fexec*() into js_getline(), js_fgetline() and js_fexec*().
|
||
This was needed because the POSIX standard commitee ignored
|
||
POSIX basic rules not to define functions that are in conflict
|
||
with existing published functions. The functions from libschily
|
||
have been in the public since more than 25 years and the
|
||
functions defined by POSIX.1-2008 even violate POSIX naming rules.
|
||
The POSIX fexec*() functions would e.g. have to be correctly called
|
||
fdexec*().
|
||
|
||
Existing programs can keep the official names getline(), fgetline()
|
||
and fexec*() as they are by default #defined to the new js_*() names.
|
||
To disable this convenience, add:
|
||
|
||
#define NO_SCHILY_GETLINE To disable schily getline(), fgetline()
|
||
#define NO_SCHILY_FEXEC To disable schily fexec*()
|
||
#define NO_SCHILY_FSPAWN To disable schily fspawn*()
|
||
|
||
- Libschily now has new "long double" support functions:
|
||
qftoes() and qftofs()
|
||
|
||
- Libschily now supports a locale dependend decimal point for printing
|
||
floating point numbers.
|
||
|
||
- Libschily now supports to print long double numbers using the
|
||
format() based portable printf() implementation. If this does not
|
||
work for your platform or if this does not work correctly for
|
||
your platform, please report. This was needed for our new "od"
|
||
implementation.
|
||
|
||
- The option parsing implementation getargs()/getfiles() from
|
||
libschily now supports to combine single character boolean
|
||
flags even in case the option string mentions to call a callback
|
||
function if a valid option was found. This was needed for our new
|
||
"od" implementation.
|
||
|
||
- filereopen() from libschily no longer calls open() internally
|
||
as long as there is no need to create or truncate the file.
|
||
|
||
- libschily's findinpath() now includes a new path parameter
|
||
to allow to use the function from bsh.
|
||
|
||
- fnmatch is now always available as js_fnmatch()
|
||
|
||
- New autoconf test for _qecvt() _qfcvt() _qgcvt()
|
||
and _qecvt_r() _qfcvt_r() _qgcvt_r() on AIX
|
||
|
||
- smake's searchfileinpath() moved into libschily to allow it
|
||
to be generally used for searching for program resources.
|
||
|
||
- New functions mkgmtime() mklgmtime() and timegm()
|
||
|
||
- New function permtostr() in libschily allows to convert a
|
||
mode_t like stat.st_mode into a chmod compliant string like:
|
||
|
||
u=rw,g=r,o=r
|
||
|
||
that is accepted by libschily::getperm() to allow a conversion
|
||
back to a mode_t variable.
|
||
|
||
- libschily::rename() now uses mktemp() to temorarily save the
|
||
rename target file.
|
||
|
||
- comerr() now maps exit codes that would fold to '0' to EX_CLASH
|
||
which is -64
|
||
|
||
- New functions zerobytes() and cmpmbytes() added to libschily.
|
||
|
||
- New functions strstr() and wcsstr() added to libschily.
|
||
|
||
- libschily/fexec.c moved the workaround against the Mac OS X linker
|
||
for "environ" upwards to cover the new code also.
|
||
|
||
- Fixed libschily/gettimeofday.c to compile with MSC
|
||
|
||
- Fixed libschily/sleep.c to compile with MSC
|
||
|
||
- Fixed libschily/usleep.c to be empty with MSC as sleep.c includes
|
||
a working usleep()
|
||
|
||
- libschily/gethostname.c enhanced to support Win-DOS with cl.exe
|
||
|
||
- libschily/uname.c New function to support Win-DOS with cl.exe
|
||
|
||
- libschily/dirent.c New functions: opendir()/closedir()/readdir()
|
||
to support Win-DOS with cl.exe
|
||
|
||
- libschily/kill.c New function to support Win-DOS with cl.exe
|
||
|
||
- libschily/stdio/fgetline.c 64 bit speedup by calling fgets() in
|
||
case that getc() is not a macro.
|
||
|
||
- libschily/stdio/fgetstr.c 64 bit speedup by calling fgets() in
|
||
case that getc() is not a macro.
|
||
|
||
- libschily/chown.c new to support Win-DOS with cl.exe
|
||
|
||
- New functions strstr() and wcsstr()
|
||
|
||
- New libschily::fgetaline() and libschily::getaline() implement the
|
||
functionality of the POSIX violating "getline()" from POSIX.1-2008.
|
||
|
||
- New file libschily/abspath.c
|
||
|
||
- New file libschily/resolvepath.c
|
||
|
||
- New file libschily/mkdirs.c
|
||
|
||
- An openat() emulation was added to libschily for platforms that
|
||
miss openat().
|
||
|
||
- An fchdir() emulation was added to libschily for platforms that
|
||
miss fchdir()
|
||
|
||
- libschily/at-defs.h new support file for internals from the *at()
|
||
emulation
|
||
|
||
- libschily/lxchdir.c new file to support chdir() to long
|
||
path names
|
||
|
||
- libschily/procnameat.c new file to support *at() functions in case
|
||
that a newer /proc file system implementation is available
|
||
|
||
- libschily/savewd.c new file to support to save the current working
|
||
directory regardless of whether fchdir() is present or not.
|
||
|
||
- libschily/wdabort.c new file with abort functions that are needed
|
||
in libschily for the case that no system fchdir is available and
|
||
an attempt to emulate *at() functions fails
|
||
|
||
- New functions strcasecmp() and strncasecmp() for libschily.
|
||
|
||
- New functions diropen() dirrdopen() dirclose() for libschily.
|
||
These functions are needed in order to emulate fchdir() on platforms
|
||
that do not support fchdir().
|
||
|
||
- file_raise(NULL, FALSE) now also affects files that have been
|
||
opened before the file_raise() call.
|
||
|
||
- getperm.c now correctly supports umask +w
|
||
|
||
- Libschily is now linked against $(LIB_INTL) when a shared libschily
|
||
is created.
|
||
|
||
- Avoid warnings from cl.exe for libschily/gettimeofday.c
|
||
|
||
- Better comment in comerr.c to help to understand exit() code folding
|
||
to 8 bits and how it may be avoided.
|
||
|
||
- libschily::fexecv() now allows to use the parameter "ac" with the
|
||
value -1 to indicate that the arg count is to be determined by the
|
||
NULL pointer at the end of the arg list.
|
||
|
||
- Added #include <schily/libport.h> to libschily/fnmatch.c
|
||
|
||
- Various Cstyle changes in the include/schily directory.
|
||
|
||
- New include file: include/schily/shedit.h
|
||
|
||
- Make sure that include/schily/time.h always includes a struct timespec
|
||
definition.
|
||
|
||
- new functions getnstimeofday() and setnstimeofday()
|
||
|
||
- New files for libschily:
|
||
|
||
at-base.c generic implementation for *at() functions.
|
||
fchownat.c fchownat()
|
||
fdopendir.c fdopendir()
|
||
fstatat.c fstatat()
|
||
futimens.c futimens()
|
||
futimesat.c futimesat() Solaris specific old for utimensat()
|
||
lutimens.c lutimens()
|
||
linkat.c linkat()
|
||
mkdirat.c mkdirat()
|
||
mkfifo.c mkfifo()
|
||
mkfifoat.c mkfifoat()
|
||
mknodat.c mknodat()
|
||
readlinkat.c readlinkat()
|
||
renameat.c renameat()
|
||
symlinkat.c symlinkat()
|
||
unlinkat.c unlinkat()
|
||
utimens.c utimens()
|
||
utimensat.c utimensat()
|
||
at-base.c The base code for all single fd *at() functions.
|
||
at-base2.c The base code for all double fd *at() functions.
|
||
|
||
contain emulations for system interfaces introduced in summer 2001 by Sun
|
||
and with POSIX.1-2008.
|
||
|
||
- New functions in libschily:
|
||
|
||
absfpath()
|
||
resolvefpath()
|
||
|
||
allow to better control the behavior using flags.
|
||
|
||
- The linker map file for libschily now adds some forgotten functions.
|
||
|
||
- libschily/strstr.c and libschily/wcsstr.c now include a
|
||
CDDL License hint
|
||
|
||
- libschily::format.c (printf) now supports length modifiers
|
||
like h hh l ll t z for the %n format.
|
||
|
||
- libschily::format.c has been restructured for parsing the
|
||
field width parameters in a way that would allow to later
|
||
introduce support for %n$
|
||
|
||
- Try to take care about the fact that MinGW32 does not support
|
||
a standard compliant mkdir() function with two parameters.
|
||
This applies top libschily/mkdirat.c and libschily/mkdirs.c
|
||
|
||
- Corrected a typo in libschily/mkfifoat.c that called mkdir()
|
||
instead of mkfifo()
|
||
|
||
- libschily/getdtablesize.c needs the same treatment for MinGW32 as for
|
||
cl.exe
|
||
|
||
- New functions xcomerr(), xcomerrno(), fxcomerr(), fxcomerrno()
|
||
in libschily allow error message and exit with an exit value
|
||
that differs from errno.
|
||
|
||
- a bug in libschily/format.c that caused %.*s to be printed
|
||
incorrectly has been fixed.
|
||
|
||
- libschily/format.c has been redesigned to allow the code to be
|
||
reused for fprformat() via #include.
|
||
|
||
- libschily/fprformat.c
|
||
New function fprformat() in libschily is implementing the same
|
||
direct interface as doprnt() from libc and thus allows to implement
|
||
printf() faster than the printf() from libc on Solaris.
|
||
|
||
- libschily/jsprintf.c
|
||
For Solaris, jsprintf() now is implemented based on fprformat().
|
||
This allows printf() from libschily to be aprox. 33% faster than
|
||
printf() from libc on Solaris and aprox. 2x as fast as jsprintf()
|
||
in libschily has been before. This gives another performance boost
|
||
for printf() bound programs like hdump/od that is used as a OSS
|
||
replacement for the closed source od(1) on OpenSolaris. This
|
||
now makes the OSS od(1) on OpenSolaris typically 5x faster then
|
||
the closed source version.
|
||
|
||
- libschily/getdtablesize.c now treats MinGW the same as when compiling
|
||
on Win-DOS using cl.exe.
|
||
|
||
- libschily/mkdirat.c and libschily/mkdirs.c now take care of the fact
|
||
that MinGW has a non standard compliant mkdir()
|
||
|
||
- libschily/mkfifoat.c fixed a type from, cut/paste the file from mkdirat.c
|
||
|
||
- libschily now implements strspn() strcspn() wcsspn() wcscspn()
|
||
|
||
- libschily/format.c (the low level printf() implementation) now
|
||
implements support for %n$ argument repositioning for the
|
||
case that "n" is 1..30, or if larger points to an int type arg.
|
||
|
||
- libschily/fprformat.c fixed a bug that would prevent to use
|
||
stdio macros with newer OpenSolaris versions, making printf()
|
||
not as fast as expected.
|
||
|
||
- libschily/sleep.c and libschily/usleep.c have been modified to work
|
||
with MinGW.
|
||
|
||
- libschily/format.c fixed to compile again with K&R C that does
|
||
not support "long double".
|
||
|
||
- No longer use fgets() for fgetaline(), fgetline() and fgetstr()
|
||
as fgets() cannot deal with embedded '\0' chars before the '\n'.
|
||
|
||
- libschily/fstream.c now supports local flags (for the caller)
|
||
and pushable streams to keep blocks of pushed text atomically.
|
||
|
||
- libschily/fchmodat.c was added, it has been forgotten when
|
||
the emulations for the *at() functions have been introduced.
|
||
It is needed for the new enhanced isoinfo command.
|
||
|
||
- libschily/mknodat.c now correctly provides a mknodat() function even
|
||
when there is no mknod() command.
|
||
|
||
- libschily/futimens.c now is more Sun specific when trying to implement
|
||
futimens() via utimensat(), as only Solaris supports a f*() interface
|
||
in case that the path name is a NULL pointer.
|
||
|
||
- libschily/faccessat.c with a faccessat() was added. This has been forgotten
|
||
when the *at() functions have been implemented.
|
||
|
||
- libschily/eaccess.c no longer calls access() in case that the OS does not
|
||
implement eaccess() but rather first checks whether uid == euid and gid == egid.
|
||
|
||
- libschily/eaccess.c compiles again in HP-UX using the HP C-compiler
|
||
|
||
- libschily/dlfcn.c new file to emulate dlopen() and friends on Win-DOS
|
||
and HP-UX
|
||
|
||
- libschily/lchmod.c was added
|
||
|
||
- libschily/fchmodat.c no longer contains lchmod()
|
||
|
||
- The linker mapfile libschily/libschily-mapvers now correctly
|
||
makes the entry faccessat() depend on HAVE_FACCESSAT
|
||
|
||
- strlcatl() wcslcatl(): new functions
|
||
|
||
- libschily::linkat.c now manually null-terminates the result from
|
||
resolvepath() as the Solaris syscall implementation does not
|
||
null-terminate it in all cases.
|
||
|
||
- libschily::resolvepath.c comment added to remind on the fact that
|
||
in contrary to our implementation the Solaris resolvepath() syscall
|
||
does not null-terminate the buffer.
|
||
|
||
|
||
- New function j_error() works where error() is too generic.
|
||
|
||
- make strlcatl() and wcslcatl() work with K&R compilers
|
||
|
||
- libschily/getargs.c now is more careful with calling va_arg()
|
||
and only calls it as many times as a related format is found in the
|
||
format string.
|
||
|
||
- libschily now contains a getdelim() implementation and always uses
|
||
getdelim() to implement the fgetaline() function.
|
||
|
||
- libschily: the *mem.c implementations now include new *mexval()
|
||
functions to set the exit code on failure to a static value instead
|
||
of the default "errno" value for the failure.
|
||
|
||
- libschily: the linker map file now also lists the forgotten new entries:
|
||
strlcatl() and wcslcatl()
|
||
|
||
- libschily/spawn.c:wait_chld() no longer returns 0 if the child process
|
||
was killed by a signal.
|
||
|
||
- libschily now adds some of the existing (old) man pages for various
|
||
functions from libschily.
|
||
|
||
- libschily/comerr.c and libschily/fcomerr.c now have better
|
||
comment.
|
||
|
||
- libschily now uses the test:
|
||
|
||
#if defined(HAVE_PRAGMA_WEAK) && defined(HAVE_LINK_WEAK)
|
||
|
||
to prevent assuming that is sufficient when the compiler supports
|
||
#pragma weak. We also need to have a linker that links against
|
||
weak symbols in libraries. HAVE_LINK_WEAK is e.g. not defined
|
||
on Cygwin...
|
||
|
||
- libschily/resolvepath.c now #define's lstat stat if lstat()
|
||
is missing.
|
||
|
||
- libschily/error.c now allows to be compiled without weak
|
||
symbols by using -DNO_WEAK_SYMBOLS
|
||
|
||
|
||
Libedc (Optimized by J<>rg Schilling, originated by Heiko Ei<45>feldt heiko@hexco.de):
|
||
|
||
- Some cstyle changes
|
||
|
||
- Added #include <schily/libport.h>
|
||
|
||
|
||
Libcdrdeflt:
|
||
|
||
Libdeflt:
|
||
|
||
- The function defltcntl() in libdeflt is now working and allows to
|
||
select a case insensitive mode.
|
||
|
||
- New function defltsect() in libdeflt allows to create sub-sections
|
||
in configuration files. These subsections need to be named:
|
||
"[section-name]" and the '[' must be at the beginning of a line.
|
||
|
||
- Added #include <schily/libport.h>
|
||
|
||
- Added defltsect() to the list of exported functions for the
|
||
shared library version
|
||
|
||
|
||
Libfile:
|
||
|
||
Libfind:
|
||
|
||
- New functions: find_hasprint() and find_hasexec()
|
||
|
||
- New flag WALK_STRIPLDOT to strip leading "./" like star does
|
||
|
||
- libfind no longer aborts with a lack of memory but writes an error
|
||
message
|
||
|
||
- libfind now correctly frees memory that has been allocated internaly
|
||
from treewalk()
|
||
|
||
|
||
- libfind/find.c disables -exec in case there is no fork().
|
||
This is in order to support MINGW
|
||
|
||
- libfind/walk.c now uses O_SEARCH to open directories
|
||
|
||
- dirname -> dir_name to avoid a gcc warning
|
||
|
||
- Fixed a filedesrciptor leak in libfind that hits when using
|
||
-empty on empty directories.
|
||
|
||
- Libfind now allows to check for -type P (Solaris event port).
|
||
A missing "case 'P':" was added to the parser.
|
||
|
||
- libfind/idcache.c now saves uname/gname as long as possible and uses
|
||
strlcpy() instead of strncpy().
|
||
|
||
- libfind: the forgotten entries find_hasexec() and find_hasprint()
|
||
have been added to the linker map file
|
||
|
||
- Workaround a problem with vfork() on Linux caused by missing vfork()
|
||
definitions in the system include files that cause a coredump from
|
||
free() when using find -exec
|
||
|
||
|
||
Libhfs_iso:
|
||
|
||
- Rename variable "utime" to "uxtime" to avoid a compiler warning
|
||
|
||
Libmdigest:
|
||
|
||
- Cygwin is broken, when using #pragma weak, so we cannot create
|
||
weak symbols on Cygwin for sha2.c
|
||
|
||
- Some cstyle changes
|
||
|
||
- CSTYLED comment added
|
||
|
||
- libmdigest now uses the test:
|
||
|
||
#if defined(HAVE_PRAGMA_WEAK) && defined(HAVE_LINK_WEAK)
|
||
|
||
to prevent assuming that is sufficuent when the compiler supports
|
||
#pragma weak. We also need to have a linker that links against
|
||
weak symbols in libraries. HAVE_LINK_WEAK is e.g. not defined
|
||
on Cygwin...
|
||
|
||
Libparanoia (Ported/enhanced by J<>rg Schilling, originated by Monty xiphmont@mit.edu):
|
||
|
||
- memset() call in i_silence_match() now uses the correct size
|
||
instead of sizeof (avec).
|
||
Thanks to a hint from Andrew Dudman <ajdudman@sbcglobal.net>
|
||
|
||
- Use dynamic arrays instead of alloca()/malloc() if available.
|
||
|
||
- libparanoia now implements the first stage in C2 error pointer
|
||
support: it now is able to deal with input data that contains
|
||
C2 pointers and it implements new callbacks to report C2
|
||
statistics back to the caller.
|
||
|
||
- libparanoia now supports to control the size of the read-ahead buffer.
|
||
This allows libparanoia to be adapted to the current constraints.
|
||
|
||
|
||
Libsiconv:
|
||
|
||
- new function sic_base() returns the dynamically retrieved install base
|
||
for the siconv database.
|
||
|
||
- sic_open() no longer tries to open all characterset names as files in
|
||
the current directory but only if the name contains a slash.
|
||
Thanks to a report from Vladimir Marek <Vladimir.Marek@oracle.com>
|
||
|
||
- libsiconv: the forgotten sic_base() was added to the linker map file
|
||
|
||
|
||
Libscg:
|
||
|
||
- libscg/scg/aspi-dos.h now uses void instead of VOID to allow a compilation
|
||
with gcc.
|
||
|
||
- libscg/scsi-wnt.c (MS-WIN) now supports 64 SCSI busses
|
||
|
||
- libscg/scsi-bsd.c tries to better support the SCSI sense data
|
||
length in the recently upgrades in FreeBSDs ATAPI/CAM module.
|
||
|
||
- try to keep SCSI status and error codes when doing a manual GET SENSE
|
||
on AIX, UnixWare, VMS, Linux Parallel Port, Apollo Domain
|
||
|
||
- libscg::scsi-aix.c was updated with some experimental code to support
|
||
two new SCSI kernel interfaces on AIX.
|
||
|
||
- Allow to disable the SCSI low level transport adoption layer
|
||
from libscg by adding -DNO_SCSI_IMPL
|
||
|
||
- libscg/scsihack.c now supports the MSC compiler
|
||
|
||
- Several small changes to work around oddoties fount in MS include files
|
||
|
||
- Trying to better support AIX again.
|
||
|
||
- struct scsi_inquiry is now using a union around the vendor ID strings in
|
||
order to avoid incorrect buffer overflow warnings from GCC-4.x
|
||
|
||
- Some cstyle changes
|
||
|
||
- For newer Cygwin versions, we need an own PACKED definition in
|
||
libscg/scg/aspi-win32.h
|
||
|
||
- Trying to support suid-root-less installation of librscg users on Linux.
|
||
librscg now understands that a non-root program may be able to
|
||
create sockets for a privileged port.
|
||
|
||
- Repositioned #ifdefs to avoid unused variable definitions in
|
||
libscg/scsi-sun.c
|
||
|
||
- libscg/scsi-linux-ata.c now aborts early if errno == EPERM. This now
|
||
makes it behave like libscg/scsi-linux-sg.c
|
||
|
||
- A new scg flag SCGF_PERM_PRINT tells libscg to print a more verbose error
|
||
in case that a SCSI command was aborted with errno == EPERM.
|
||
|
||
- Sources have been modified to deal __CYGWIN32__ like __CYGWIN__
|
||
This is neded as newer Cygwin versions that run in 64 Bit mode
|
||
do no longer define __CYGWIN32__ but __CYGWIN__
|
||
|
||
- Some cstyle changes
|
||
|
||
- For newer Cygwin versions, we need an own PACKED definition in
|
||
libscg/scg/aspi-win32.h
|
||
|
||
- Trying to support suid-root-less installation of librscg users on Linux.
|
||
librscg now understands that a non-root program may be able to
|
||
create sockets for a privileged port.
|
||
|
||
- Repositioned #ifdefs to avoid unused variable definitions in
|
||
libscg/scsi-sun.c
|
||
|
||
- libscg/scsi-linux-ata.c now aborts early if errno == EPERM. This now
|
||
makes it behave like libscg/scsi-linux-sg.c
|
||
|
||
- A new scg flag SCGF_PERM_PRINT tells libscg to print a more verbose error
|
||
in case that a SCSI command was aborted with errno == EPERM.
|
||
|
||
- Sources have been modified to deal __CYGWIN32__ like __CYGWIN__
|
||
This is neded as newer Cygwin versions that run in 64 Bit mode
|
||
do no longer define __CYGWIN32__ but __CYGWIN__
|
||
|
||
|
||
Libscgcmd:
|
||
|
||
Libsiconv:
|
||
|
||
- sic_open() no longer tries to open all characterset names as files in
|
||
the current directory but only if the name contains a slash.
|
||
Thanks to a report from Vladimir Marek <Vladimir.Marek@oracle.com>
|
||
|
||
Rscsi:
|
||
|
||
Cdrecord:
|
||
|
||
- A typo in cdrecord.c was corrected.
|
||
|
||
- cdrecord/cue.c now uses a correct byte order for RAW audio data in
|
||
Intel byte-order
|
||
|
||
- Cdrecord now uses gettext() to translate texts.
|
||
There are currently not yet translated texts. The cdrtools project needs help
|
||
with translating the texts.
|
||
|
||
- cdrecord now warns and aborts if someone tries to write more CD-Text
|
||
for a single language than permitted by the standard.
|
||
|
||
- cdrecord now warns about the correct max. CD-Text size
|
||
for a single language that is permitted by the standard.
|
||
|
||
- Several changes to support mingw and MSC
|
||
|
||
- cdrecord man page corrected some small typos in the EXAMPLES section.
|
||
|
||
- cdrecord has been converted to be able to run completely root-less
|
||
and suid-root-less and with no script that calls pfexec(1). This
|
||
works on OpenSolaris ONNV_140 or later because the functionality
|
||
of pfexec(1) has been integrated into the kernel.
|
||
|
||
To enable this feature. edit the file /etc/security/exec_attr and add:
|
||
|
||
Basic Solaris User:solaris:cmd:::/usr/bin/cdrecord:privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr
|
||
or
|
||
Basic Solaris User:solaris:cmd:::/opt/schily/bin/cdrecord:privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr
|
||
|
||
depending on where you install cdrecord.
|
||
No special shell is needed anymore.
|
||
|
||
- struct scsi_inquiry is now using a union around the vendor ID strings in
|
||
order to avoid incorrect buffer overflow warnings from GCC-4.x
|
||
|
||
- Trying to support suid-root-less installation of cdrecord on Linux.
|
||
NOTE: You need "file caps" support built into your Linux installation.
|
||
|
||
Call:
|
||
|
||
setcap cap_sys_resource,cap_dac_override,cap_sys_admin,cap_sys_nice,cap_net_bind_service,cap_ipc_lock,cap_sys_rawio+ep /opt/schily/bin/cdrecord
|
||
To set up the capabilities on Linux.
|
||
|
||
|
||
- Allow to compile without Linux libcap using "smake COPTX=-DNO_LINUX_CAPS LIB_CAP="
|
||
|
||
- Cdrecord now checks whether there are sufficient fine-grained privileges.
|
||
|
||
- Cdrecord now uses the new flag SCGF_PERM_PRINT to get better warnings if the
|
||
permissions granted by the OS are not sufficient.
|
||
|
||
- Sources have been modified to deal __CYGWIN32__ like __CYGWIN__
|
||
This is neded as newer Cygwin versions that run in 64 Bit mode
|
||
do no longer define __CYGWIN32__ but __CYGWIN__
|
||
|
||
- Typo correction in a comment
|
||
|
||
- Trying to avoid to confuse users
|
||
on Solaris and Linux where a fine-grained privilege implementation
|
||
exists. Before, fine-grained privileges have been given up after
|
||
initializing the program and this may result in a root user that
|
||
is treated as a normal user that cannot write into directories
|
||
without global write permission. The named programs now no longer
|
||
give up privileges in case they have been called with the needed
|
||
privileges already and thus the programs cannot be used for
|
||
privilege escalations anymore.
|
||
|
||
- Fixed some typos in cdrecord
|
||
|
||
- Better comment about cdrecord specific enhancements in CUE files.
|
||
|
||
- cdrecord/cue.c now has a better comment related to cdrtools specific
|
||
CUE enhancements.
|
||
|
||
- Fixed a typo in cdrecord.dfl
|
||
|
||
- The timediff function now in addition prints the time diff in
|
||
hours : minutes : seconds . thausands of a second.
|
||
|
||
Thanks to a hint from Donald R Laster Jr from Slackware.
|
||
|
||
- The programs cdrecord adopts to the recent Haiku
|
||
changes with a randomized address space and now use B_EXACT_ADDRESS
|
||
instead of B_ANY_ADDRESS for the clone_area() call to get shared memory
|
||
for a FIFO.
|
||
|
||
|
||
Cdda2wav (Maintained/enhanced by J<>rg Schilling, originated by Heiko Ei<45>feldt heiko@hexco.de):
|
||
|
||
- Fixed a typo in cdda2wav/cdda2ogg.1 (man page)
|
||
|
||
- Cdda2wav now uses gettext() to translate texts.
|
||
There are currently not yet translated texts. The cdrtools project needs help
|
||
with translating the texts.
|
||
|
||
- many typo fixes to the cdda2wav.1 man page, thanks to John Bradshaw
|
||
|
||
- Several changes to support mingw and MSC
|
||
|
||
- cdda2wav has been converted to be able to run completely root-less
|
||
and suid-root-less and with no script that calls pfexec(1). This
|
||
works on OpenSolaris ONNV_140 or later because the functionality
|
||
of pfexec(1) has been integrated into the kernel.
|
||
|
||
To enable this feature. edit the file /etc/security/exec_attr and add:
|
||
|
||
Basic Solaris User:solaris:cmd:::/usr/bin/cdda2wav:privs=file_dac_read,sys_devices,proc_priocntl,net_privaddr
|
||
or
|
||
Basic Solaris User:solaris:cmd:::/opt/schily/bin/cdda2wav:privs=file_dac_read,sys_devices,proc_priocntl,net_privaddr
|
||
|
||
depending on where you install cdda2wav.
|
||
No special shell is needed anymore.
|
||
|
||
- Better handling of CLONE AREAs on newer Haiku versions.
|
||
|
||
- Some cstyle changes
|
||
|
||
- cdda2wav now only prints "load cdrom please and press enter" once
|
||
per line and does not repeat the text for garbage characters that
|
||
have been in stdin. Thanks to Phi Tran from Oracle for reporting.
|
||
|
||
- Trying to support suid-root-less installation of cdda2wav on Linux.
|
||
NOTE: You need "file caps" support built into your Linux installation.
|
||
|
||
Call:
|
||
|
||
setcap cap_dac_override,cap_sys_admin,cap_sys_nice,cap_net_bind_service,cap_sys_rawio+ep /opt/schily/bin/cdda2wav
|
||
To set up the capabilities on Linux.
|
||
|
||
|
||
- Include file reordering to avoid warnings on older platforms
|
||
|
||
- Allow to compile without Linux libcap using "smake COPTX=-DNO_LINUX_CAPS LIB_CAP="
|
||
|
||
- Repositioned #ifdefs to avoid unused variable definitions in
|
||
cdda2wav/sndconfig.c
|
||
|
||
- Cdda2wav now checks whether there are sufficient fine-grained privileges.
|
||
|
||
- Work around a bug in sys/param.h FreeBSD-9.1, that #define's __FreeBSD_kernel__
|
||
instead of #define __FreeBSD_kernel__ 9 that would be needed for Debian
|
||
k-FreeBSD compatibility.
|
||
The bug affects cdda2wav/mycdrom.h
|
||
|
||
- Sources have been modified to deal __CYGWIN32__ like __CYGWIN__
|
||
This is neded as newer Cygwin versions that run in 64 Bit mode
|
||
do no longer define __CYGWIN32__ but __CYGWIN__
|
||
|
||
- Typo correction in a comment
|
||
|
||
- Fixed fine-grained privilege handling for Linux.
|
||
Thanks for Daniel Pielmeier from Gentoo for reporting and testing.
|
||
|
||
- Trying to avoid to confuse users
|
||
on Solaris and Linux where a fine-grained privilege implementation
|
||
exists. Before, fine-grained privileges have been given up after
|
||
initializing the program and this may result in a root user that
|
||
is treated as a normal user that cannot write into directories
|
||
without global write permission. The named programs now no longer
|
||
give up privileges in case they have been called with the needed
|
||
privileges already and thus the programs cannot be used for
|
||
privilege escalations anymore.
|
||
|
||
- Cddda2wav now flushes stderr before asking for a specific cddb
|
||
entry index. It seems that on Linux stderr may not be unbuffered
|
||
as expected.
|
||
|
||
- Cdda2wav moved the option parsing code into a separate function
|
||
gargs().
|
||
|
||
- cdda2wav now prints the number of read operations per track when
|
||
in paranoia mode
|
||
|
||
- cdda2wav now prints the read overhead (in percent) per track when
|
||
in paranoia mode
|
||
|
||
- cdda2wav adds a new paraopts= mode: "c2check" to run libparanoia
|
||
in C2 mode.
|
||
|
||
- cdda2wav did get a major overhoul for libparanoia that may
|
||
make the extract quality better up to a factor of 100x:
|
||
|
||
A new suboption "readahead=" for paraopts= allows to modify
|
||
the read-ahead buffer size to make it large ebough for the amount
|
||
of RAM in modern drives.
|
||
|
||
The interpratation of "problem sectors" was changed to better deal
|
||
with the fact that in case of bad areas, the libparanoia code
|
||
tends to do repeated reads in those bad areas. The computation
|
||
of the percentage of bad sectors now takes care of re-read sectors.
|
||
Repeated reads still increase the value but no longer in a
|
||
quadratical way.
|
||
|
||
- Better documentation for the libparanoia interface in cdda2wav
|
||
allows to better understand how it works and how modifying
|
||
parameters could influence the extract quality.
|
||
|
||
- Add another instance of #undef interface in hope to help with
|
||
compiling using MinGW32
|
||
|
||
- Avoid a redefined xxx warning for cdda2wav/exitcodes.h
|
||
|
||
- Added a #undef interface to cdda2wav/interface.h to make sure that
|
||
the #define interface from windows.h does not cause problems even
|
||
when using MinGW
|
||
|
||
- Cdda2wav no longer includes the new paranoia mode "c2check" in the macro
|
||
"proof". This has been done because of a report from G<>raud Meyer <graud@gmx.com>
|
||
that gives hints that the drive:
|
||
Type: ROM, Vendor 'TSSTcorp' Model 'CDDVDW SH-222AB ' Revision 'SB00' MMC+CDDA
|
||
does not handle hidden tracks when "c2check" is active.
|
||
|
||
- Flush stderr before a question in cdda2wav. This is a workaround
|
||
for a Linux libc bug (stderr must be unbuffered acording to the
|
||
standard).
|
||
|
||
- The programs cdda2wav adopts to the recent Haiku
|
||
changes with a randomized address space and now use B_EXACT_ADDRESS
|
||
instead of B_ANY_ADDRESS for the clone_area() call to get shared memory
|
||
for a FIFO.
|
||
|
||
|
||
Readcd:
|
||
|
||
|
||
- Readcd now uses gettext() to translate texts.
|
||
There are currently not yet translated texts. The cdrtools project needs help
|
||
with translating the texts.
|
||
|
||
- Better algorithm for -edc-corr
|
||
|
||
- readcd has been converted to be able to run completely root-less
|
||
and suid-root-less and with no script that calls pfexec(1). This
|
||
works on OpenSolaris ONNV_140 or later because the functionality
|
||
of pfexec(1) has been integrated into the kernel.
|
||
|
||
To enable this feature. edit the file /etc/security/exec_attr and add:
|
||
|
||
Basic Solaris User:solaris:cmd:::/usr/bin/readcd:privs=file_dac_read,sys_devices,net_privaddr
|
||
or
|
||
Basic Solaris User:solaris:cmd:::/opt/schily/bin/readcd:privs=file_dac_read,sys_devices,net_privaddr
|
||
|
||
depending on where you install readcd.
|
||
No special shell is needed anymore.
|
||
|
||
- Cygwin is broken, when using #pragma weak, so we cannot create
|
||
weak symbols on Cygwin for sha2.c
|
||
|
||
- avoid a GCC warning when compiling readcd.c
|
||
|
||
- Trying to support suid-root-less installation of readcd on Linux.
|
||
NOTE: You need "file caps" support built into your Linux installation.
|
||
|
||
Call:
|
||
|
||
setcap cap_dac_override,cap_sys_admin,cap_net_bind_service,cap_sys_rawio+ep /opt/schily/bin/readcd
|
||
To set up the capabilities on Linux.
|
||
|
||
|
||
- Allow to compile without Linux libcap using "smake COPTX=-DNO_LINUX_CAPS LIB_CAP="
|
||
|
||
- Readcd now checks whether there are sufficient fine-grained privileges.
|
||
|
||
- Typo correction in a comment
|
||
|
||
- Trying to avoid to confuse users
|
||
on Solaris and Linux where a fine-grained privilege implementation
|
||
exists. Before, fine-grained privileges have been given up after
|
||
initializing the program and this may result in a root user that
|
||
is treated as a normal user that cannot write into directories
|
||
without global write permission. The named programs now no longer
|
||
give up privileges in case they have been called with the needed
|
||
privileges already and thus the programs cannot be used for
|
||
privilege escalations anymore.
|
||
|
||
- readcd -c2scan now also prints the percentage of sectors with C2 errors.
|
||
|
||
Scgcheck:
|
||
|
||
- Scgcheck now uses gettext() to translate texts.
|
||
There are currently not yet translated texts. The cdrtools project needs help
|
||
with translating the texts.
|
||
|
||
- Several changes to support mingw and MSC
|
||
|
||
- Link now against $(LIB_CAP) also as librscg needs it on Linux
|
||
|
||
|
||
Scgskeleton:
|
||
|
||
- Scgskeleton now uses gettext() to translate texts.
|
||
There are currently not yet translated texts. The cdrtools project needs help
|
||
with translating the texts.
|
||
|
||
- Link now against $(LIB_CAP) also as librscg needs it on Linux
|
||
|
||
|
||
Btcflash:
|
||
|
||
- Btcflash now uses gettext() to translate texts.
|
||
There are currently not yet translated texts. The cdrtools project needs help
|
||
with translating the texts.
|
||
|
||
- Link now against $(LIB_CAP) also as librscg needs it on Linux
|
||
|
||
Mkisofs (Maintained/enhanced by J<>rg Schilling since 1997, originated by Eric Youngdale):
|
||
|
||
- Added a hint that the option -b needs a boot image argument that is
|
||
located inside the ISO image tree.
|
||
|
||
- Added an additional hint on changed files in case that mkisofs encounteres
|
||
a file that did grow or shrink.
|
||
|
||
- Removed a superfluous second #include <schily/stat.h> from isoinfo.c
|
||
|
||
- Typo corrections in mkisofs/mkisofs.8 man page
|
||
|
||
- A bug was fixed with -sort and files > 4 GB. Mkisofs now correctly sorts the
|
||
disk addresses of the file content is such a case.
|
||
|
||
- New options -long-rr-time -no-long-rr-time -short-rr-time allow to control
|
||
the time format used for files with Rock Ridge extensions.
|
||
|
||
- The short time format supports year 1900..2155 with a one second
|
||
granularity
|
||
|
||
- The long time format supports year 0..9999 with a 10ms granularity.
|
||
|
||
Note that the Linux kernel only implements partial Rock Ridge support and
|
||
unfortunately does not support the long time format. It is planned to
|
||
make the long time stamp format the default in the future, so I encourage
|
||
the Linux kernel folks to add support for this time format.
|
||
|
||
- isoinfo now supports the new option -find (via libfind) and allows to use
|
||
find expressions on ISO-9660 images. If the find expression neither contains
|
||
-print nor -ls and isoinfo is called:
|
||
|
||
isoinfo -i xxx.iso -l -find .....
|
||
|
||
the ISO-9660 listing function from isoinfo is called whenever the find expression
|
||
returns TRUE. If there is a print or list primary in the find expression, then
|
||
the ISO-9660 listing is never called.
|
||
|
||
|
||
- Mkisofs and the diagnostic programs now use gettext() to translate texts.
|
||
There are currently not yet translated texts. The cdrtools project needs help
|
||
with translating the texts.
|
||
|
||
- Add several forgotten options to the mkisofs man page.
|
||
|
||
- Fixed several typos in the mkisofs man page and in mkisofs
|
||
|
||
- Mkisofs now correctly supports El Torito multi boot entries by introducing
|
||
a Boot Section Header before a list of alternate boot entries.
|
||
|
||
- New option -eltorito-platform allows to set the El Torito platform id
|
||
for a boot entry or for a list of boot entries. Supported values for the
|
||
parameter are:
|
||
|
||
- x86 the standard value vor x86 based PCs
|
||
|
||
- PPC the Power PC platform
|
||
|
||
- Mac The Apple Mac platform
|
||
|
||
- efi EFI based boot for PCs
|
||
|
||
- # an arbitrary numerical value
|
||
|
||
- New option -modification-date allows to specify a predictable UUID for grub.
|
||
|
||
The syntax is: YYYY[MM[DD[HH[MM[SS]]]]][.hh][+-GHGM] and is forgiving
|
||
enought to accept the pupular POSIX date format created by:
|
||
|
||
date "+%Y-%m-%d %H:%M:%S %z"
|
||
|
||
- The mkisofs diagnostic tools now support MSC that does not support
|
||
POSIX terminal handling.
|
||
|
||
- While introducing the new option -modification-date, we did accidently remove the
|
||
code to set up the creation date in te PVD. Now creation date again contains
|
||
correct data.
|
||
|
||
- Avoid to access illegal memory from dvd_file.c::uniq()
|
||
|
||
- Avoid a 32 bit integer overflow while computing sector addresses for
|
||
Rock Ridge CE entries.
|
||
|
||
- A compile bug with QNX was corrected
|
||
|
||
- A new option -ignore-error alows to continue on some errors.
|
||
|
||
- Revert a change to dvd_file.c::uniq() that was made because of a "valgrind"
|
||
warning that claims illegal memory access. With the change from 3.01a09, mkisofs
|
||
however does not deal correctly with DVD-Video padding, so the valgrind warning is
|
||
wrong.
|
||
|
||
- mkisofs now reserves more space for the file names to avoid a
|
||
path buffer overrun
|
||
|
||
- Fixed a bug that caused to put more than one UDF direcory entry for a file
|
||
in case that the file is a ISO-0660 multi-segment file.
|
||
|
||
- Fixed a bug that caused the wrong start sector address to be used for UDF
|
||
in case that the file is a ISO-9660 multi-segment file and the -sort option
|
||
was used.
|
||
|
||
- mkisofs now identifies itdelf by default (inside the APPID string)
|
||
as being UDF capable.
|
||
|
||
- mkisofs now sets link count and "unique id" == inode number for files.
|
||
Note that this may still not result in useful hardlinked files on all
|
||
platforms as e.g. Solaris and Linux ignore the UDF unique ID and rather
|
||
use the location of the file_entry as inode number. This will never
|
||
return the same number for different filenames that point to the
|
||
same file data and thus prevents hard linked files from being visible.
|
||
|
||
This is however not a Solaris problem, the problem is rather in the
|
||
UDF standard that does not require the unique id to be in a 32 bit
|
||
range as long as the media size is = 8 TB. Note that 32 bit UNIX
|
||
programs cannot access files with an inode number that cannot be
|
||
expressed as 32 bit number, so inode numbers that do not fit into
|
||
32 bits may cause problems. Ths only way to work around this problem
|
||
would be to enance the Solaris and Linux UDF filesystem module to
|
||
recognize whether a filesystem has been created by mkisofs that grants
|
||
useful inode numbers. The same is already done for ISO-9660.
|
||
|
||
- mkisofs now supports additional file types with UDF:
|
||
|
||
- named pipes
|
||
- sockets
|
||
- character devices
|
||
- block devices
|
||
|
||
- mkisofs now supports all three UNIX times with microsecond granularity in UDF
|
||
|
||
- mkisofs now sets correct user/group/permission for symlinks in UDF
|
||
|
||
- mkisofs now supports S_ISUID, S_ISGID, S_ISVTX (set uid, set gid, sticky) in UDF
|
||
|
||
- -new-dir-mode now just superseeds the effect of -dir-mode on
|
||
directories that have been "invented" by mkisofs.
|
||
This is a more intuitive behavior.
|
||
|
||
- Link now against $(LIB_CAP) also as librscg needs it on Linux
|
||
|
||
- Make mkisofs compile without -DUDF and without -DDVD_VIDEO
|
||
Thanks to a hint from rmd4work@mail.ru
|
||
|
||
- Fixed a typo in the mkisofs man page (had \-max\-ISO-9660\-filenames
|
||
instead of \-max\-iso9660\-filenames)
|
||
|
||
- mkisofs/mkisofs.8 fixed illegal troff sequence "\\" to "\e"
|
||
|
||
- Try to avoid a direct string "/dev/null" in mkisofs.c to allow
|
||
it to work on Win-DOS without POSIX layer.
|
||
|
||
- Better error messages in mkisofs/apple.c
|
||
|
||
- mkisofs now inplements a new option -legacy that allows to get back the
|
||
options -H/-L/-P that have been deprecated in 2002 and disabled in 2006
|
||
in the definition from the 1990s.
|
||
If you like to use this feature, write a wrapper shell script that calls:
|
||
|
||
mkisofs -legacy "$@"
|
||
|
||
Note that -H/-L/-P have been disabled in 2006 and mkisofs will soon
|
||
introduce -H/-L/-P with a POSIX compatible definition as announced since
|
||
2002. So take care to convert your scripts to call:
|
||
|
||
-map for the old definition of -H
|
||
(valid between 2000 and 2002)
|
||
-allow-leading-dots for the old definition of -L
|
||
(valid between 1995 and 2002)
|
||
-publisher for the old definition of -P
|
||
(valid between 1993 and 2002)
|
||
|
||
- The mkisofs now correctly documents the new behavior from libsiconv
|
||
|
||
- mkisofs was slightly modified to reduce CPU time requirements.
|
||
It now reads/writes in 64kBytes chunks instead of stdio buffer
|
||
size which is typically 8 kB.
|
||
|
||
- Fixed a typo in the mkisofs man page.
|
||
Thanks to a hint from Donald R Laster Jr from Slackware.
|
||
|
||
- Mkisofs now in addition prints "-iso-level 3 or more required"
|
||
in case that a large file was skipped because of the current mkisofs settings.
|
||
|
||
Thanks to a hint from Donald R Laster Jr from Slackware.
|
||
|
||
- A problem in isoinfo has been fixed.
|
||
This problem caused "isoinfo -R -find -ls" to print Jan 1 1970 timestamps
|
||
in case that Rock Ridge was not present.
|
||
|
||
WARNING: the new version of the isoinfo program makes use of the
|
||
*at() series of functions that have been introduced by Sun
|
||
in August 2001 and added to POSIX.1-2008. For older platforms,
|
||
libschily now includes emulations for these functions but
|
||
these emulations have not yet been tested thouroughly.
|
||
Please report problems!
|
||
|
||
- The man page isoinfo.8 was enhanced by mentioning the option -s (print
|
||
file sizes in multiple if 2048 byte sectors) and by documenting the
|
||
list format that is used with -l.
|
||
|
||
- isoinfo now evaluates the Rock Ridge "PN" signature and thus supports
|
||
to display and use the major/minor device numbers.
|
||
|
||
- isoinfo now extracts time stamps with sub second granularity in
|
||
order to be able to set fine-grained file timestamps, see -X option
|
||
below.
|
||
|
||
- isoinfo now knows how to find out whether a ISO-9660 filesystem was
|
||
created by a newer mkisofs and thus includes useful inode numbers
|
||
in ISO-9660. These ISO-9660 based inode numbers are used in case that
|
||
there is no Rock Ridge-1.12 that includes inode numbers in the "PX"
|
||
signature.
|
||
|
||
- isoinfo now has a new option -X that extracts all files (in case that
|
||
-find is not used) or files selected by a -find expression. Note that
|
||
-find expressions may include -chown, -chgrp and -chmod to modify the
|
||
meta data of files.
|
||
|
||
- Fixed a bug in mkisofs: -eltorito-platform Mac no longer uses the
|
||
constant EL_TORITO_ARCH_PPC but EL_TORITO_ARCH_MAC as expected.
|
||
Thanks to Ady <ady-sf@hotmail.com> for reporting.
|
||
|
||
- Fixed an option parsing bug in mkisofs that was a result from
|
||
option names that are beginning substrings of others. Mkisofs did
|
||
try to fix this in 2006, but it seems that one option was missed
|
||
in 2006. Now -hide-hfs was fixed, thanks to: Valery Ushakov
|
||
|
||
- The mkisofs program isoinfo no longer tries to print Rock Ridge
|
||
attribute data for ISO images that do not have correct RR data.
|
||
|
||
- The mkisofs program isovfy no longer tries to print Rock Ridge
|
||
attribute data for ISO images that do not have correct RR data.
|
||
|
||
- The mkisofs program isodump no longer tries to print Rock Ridge
|
||
attribute data for ISO images that do not have correct RR data.
|
||
|
||
This is a result from trying to use these programs on the
|
||
plan9 CD image.
|
||
|
||
|
||
- mkisofs: isodump did not compile on non c99 compilers.
|
||
|
||
- mkisofs/diag/isoinfo.c now test for HAVE_MKNOD in order to avoid
|
||
calling mknod() on MINGW32.
|
||
|
||
- mkisofs has also been corrected to use
|
||
S_IFCTG and S_ISCTG instead of the S_IFCNT and S_ISCNT
|
||
|
||
|
||
HELIOS TODO:
|
||
|
||
- Add the HELIOS UNICODE mapping code. This needs to be done
|
||
at UCS-2 level for Joliet and UDF (instead of UTF-8) and only
|
||
for Rock Ridge (in case of a UTF-8 based target locale) using
|
||
UTF-8 based translations.
|
||
|
||
- Make the Apple extensions work again with "mkisofs -find"
|
||
|
||
TODO:
|
||
|
||
- read Joliet filenames with multi-session if no TRANS.TBL
|
||
or RR is present. I am looking for a volunteer for this task!
|
||
|
||
Note that this can never be 100% correct as there is no relation
|
||
between the names on the master (UNIX) filesystem, the ISO-9660
|
||
names and the Joliet names. Only the Rock Ridge names are
|
||
untranslated with respect to the original files on the
|
||
master (UNIX) filesystem.
|
||
|
||
- add libecc/edc for CDI and similar.
|
||
|
||
|
||
CYGWIN NT-4.0 NOTES:
|
||
|
||
To compile on Cygwin32, get Cygwin and install it.
|
||
For more information read README.win32
|
||
|
||
The files are located on:
|
||
|
||
http://sourceforge.net/projects/cdrtools/files/alpha/ ...
|
||
|
||
NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
|
||
minor trouble. If you like a 100% POSIX compliant tar, get star from
|
||
http://sourceforge.net/projects/s-tar/files/ of from the schily-*
|
||
tarball at: http://sourceforge.net/projects/schilytools/files/
|
||
|
||
WARNING: Do not use 'winzip' to extract the tar file!
|
||
Winzip cannot extract symbolic links correctly.
|
||
|
||
Joerg
|