Linux STREAMS (LiS) -- history of user visible changes. 2007-06-24 $Id$ Copyright (c) 2001-2007 OpenSS7 Corporation. Copyright (c) 1997-2000 Brian Bidulock See the end for copying conditions (for this file). The sections that follow provide information on OpenSS7 releases of the Linux STREAMS (LiS) package. Major changes for release LiS-2.18.6 ------------------------------------- This is an internal release of LiS. It is only available for download by subscribers and sponsors of the OpenSS7 Project. There are too many packages that cannot build against LiS due to its implementation deficiencies. Do not use this release (even if you are a subscriber or sponsor). Port to Linux Fast-STREAMS. Do not report bugs on this release. The OpenSS7 Project no longer actively maintains LiS. Major features since the last public release are as follows: - Support build on openSUSE 10.2. - Support build on Fedora 7 with 2.6.21 kernel. - Support build on CentOS 5.0 (RHEL5). - Support build on Ubuntu 7.04. - Updated to gettext 0.16.1. - Changes to support build on 2.6.20-1.2307.fc5 and 2.6.20-1.2933.fc6 kernel. - Supports build on Fedora Core 6. - Support for recent distributions and tool chains. Major changes for release LiS-2.18.5 ------------------------------------- This is an internal release of LiS. There are too many packages now that cannot build against LiS because it is lacking fundamental capabilities in the Stream head. Do not use this release. Port to Linux Fast-STREAMS. Do not report bugs on this release. (Yup, there are lots of 'em, but that's LiS.) Major features since the last public release are as follows: - Added versions to all exported symbols. Made LiS functions GPL export. - Improvements to the common build environment with better support for standalone package builds on 2.4 kernels. - Support for autoconf 2.61, automake 2.10 and gettext 0.16. - Support for Ubuntu 6.10 distribution and bug fixes for i386 kenels. Major changes for release LiS-2.18.4 ------------------------------------- This is the final release of LiS. There are too many packages now that cannot build against LiS because it is lacking fundamental capabilities in the Stream head. This release builds both 32-bit compatibility and 64-bit native libraries and functions on 64-bit architectures. One of the major reasons for doing this for LiS was to demonstrate its sad lack of ability to sustain any form of 32-bit compatibility on most 64-bit architectures. Test suites now run first 64-bit native and then 32-bit compatibility tests to demonstrate LiS' dismal failure in this regard. Do not use this release. Port to Linux Fast-STREAMS. Do not report bugs on this release. (Yup, there are lots of 'em, but that's LiS.) Major features since the last public release are as follows: - Support for most recent 2.6.18 kernels (including Fedora Core 5 with inode diet patchset). - Added `send-pr' scripts for automatic problem report generation. (Please do not report bugs on LiS.) - Added `--disable-devel' `configure' option to suppress building and installing development environment. This feature is for embedded or pure runtime targets that do not need the development environment (static libraries, manual pages, documentation). - Corrected start of assignment of major devices numbers (back to 230). - Improved compiler flag generation and optimizations for recent `gcc' compilers and some idiosyncratic behaviour for some distributions (primarily SUSE). - Optimized compilation is now available also for user level programs in addition to kernel programs. Added new `--with-optimize' option to `configure' to accomplish this. - Better detection of SUSE distributions, release numbers and SLES distributions: support for additional `SuSE' distributions on `ix86' as well as `x86_64'. Added distribution support includes `SLES 9', `SLES 9 SP2', `SLES 9 SP3', `SLES 10', `SuSE 10.1'. - Many documentation updates for all OpenSS7 packages. Automated release file generation making for vastly improved and timely text documentation present in the release directory. - Bug fixes to STREAMS library for proper asynchronous thread cancellation handling. Versions for all library symbols. - Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modules and drivers. The `make installcheck' target will now automatically test both 64-bit native and 32-bit compatibility versions, one after the other, on 64-bit platforms. - The package will now build doxygen(1) html documentation with the 'doxy' make target. See 'make help' or README-make in the distribution for more information. Major changes for release LiS-2.18.4.rc3 ----------------------------------------- Third release candidate. LiS is really not supported any longer. Use Linux Fast-STREAMS instead. The purpose of this release is to demonstrate the inability of the LiS package to properly support 32-bit compatibility on 64-bit architectures. - Minor bug fixes to STREAMS library. isastream(3) and fattach(3) must not contain an asynchronous thread cancellation point, but they could. Added asynchronous thread cancellation protection to these functions to remove any thread cancellation points. - The package will now build doxygen(1) html documentation with the 'doxy' make target. See 'make help' or README-make in the distribution for more information. - Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modules and drivers. The `make installcheck' target will now automatically test both 64-bit native and 32-bit compatibility versions, one after the other, on 64-bit platforms. - Added versions for all library symbols. - Automated release file generation making for vastly improved and timely text documentation present in the release directory. - Many documentation updates for all OpenSS7 packages. - This release candidate includes the changes made to the strsctp drivers at the `2006 SCTP Interop' at the `University of British Columbia'. This version was interoperability tested with all implementations present. - This release candidate provides support for additional `SuSE' distributions on `ix86' as well as `x86_64'. Added distribution support includes `SLES 9', `SLES 9 SP2', `SLES 9 SP3', `SLES 10', `SuSE 10.1'. - Better detection of SUSE distributions, release numbers and SLES distributions. - Optimized compilation is now available also for user level programs in addition to kernel programs. Added new `--with-optimize' option to `configure' to accomplish this. - Improved compiler flag generation and optimizations for recent `gcc' compilers and some idiosyncratic behaviour for some distributions (primarily SUSE): - Remove `-fno-reorder-blocks' and `-fno-reorder-functions' options added by some recent 2.6 `Makefile's for `x86_64' architecture: it impedes performance optimizations. - Remove `-ffunction-sections' option added by some recent 2.6 `Makefile's for `x86_64' architecture: this is an insane option and should never have been used. - Add `-ffreestanding' that some older 2.6 `Makefile's (such as that with `SLES 9 2.6.5' kernel) neglect to add to the `gcc' command line. - `SLES 10' expands the directory before `autoconf.h' on the `gcc' command line for some reason. `configure' script watches out for this now. - Updated `init' scripts for proper addition and removal of modules. - Start assigning majors at major device number 231 instead of major device number 230. Assign major device number 230 explicitly to the clone device. - `Linux Fast-STREAMS' now supports expanded addressable minor device numbers, permitting 2^16 addressable minor devices per major device number on 2.6 kernels: `LiS' cannot support this change. This was an internal alpha test release candidate and was not released publicly. This release was only available to subscribers to and sponsors of the OpenSS7 Project. Major changes for release LiS-2.18.4.rc2 ----------------------------------------- Second release candidate. - Added `--enable-devel' `configure' option for embedded targets. - Added `send-pr' script for automatic problem report generation. This was an internal alpha test release candidate and was not released publicly. This release was only available to subscribers to and sponsors of the OpenSS7 Project. Major changes for release LiS-2.18.4rc1 ---------------------------------------- First release candidate. This was an internal alpha test release candidate and was not released publicly. This release was only available to subscribers to and sponsors of the OpenSS7 Project. Major changes for release LiS-2.18.3 ------------------------------------- Corrections for and testing of 64-bit clean compile and test runs on x86_64 architecture. Some bug corrections resulting from gcc 4.0.2 compiler warnings. Corrected build flags for Gentoo and 2.6.15 kernels as reported on mailing list. Builds on FC4 2.6.15 kernel and with gcc 4.0.2. Added in many of Paul's 64-bit corrections. The `Linux STREAMS (LiS) 2.18.3' is still largely unusable on 64-bit or SMP kernels. Linux STREAMS (LiS) package is deprecated. Do not use it. The package contains many unresovled bugs. Use `Linux Fast-STREAMS' instead. Major changes for release LiS-2.18.2 ------------------------------------- Cross-build support for newer `NexusWare' releases. Build support for (recent FC4) 2.6.14 kernel. Corrected installation support (init scripts) for SuSE 9.2. Binary compatibility backward compatible to GCOM 2.18.0 included. This includes exported symbols changed to not generate version symbols on 2.4 kernels. Also, exported symbols are always compiled `attribute((regparm(0)))' on regparm capable architectures, regardless of the kernel version or compile options.(1) For actual binary compatibility packaging, see the `strcompat' package. A major change for 2.18.2 is the port-back of POSIX/SUSv3 XSR/XSI conformance test suites and performance programs from Linux Fast-STREAMS. The purpose of porting back theses tests suites and supporting modules and drivers is to provide the ability to do comparison tests between LiS and Linux Fast-STREAMS. Another change is a module unloading safe vstrlog hook register and unregister functions register_strlog() and unregister_strlog(). Some bug corrections and fixes for glaring SMP errors reported by Kutluck. This might be the last OpenSS7 release of "Linux STREAMS (LiS)". You should seriously consider using the Linux Fast-STREAMS package (streams-0.7a.4 or later) instead. If you need compatibility to LiS (or other STREAMS implementation), investigate the strcompat package, which provides some binary compatibility to LiS under Linux Fast STREAMS. ---------- Footnotes ---------- (1) Regparm capable architectures are really just `__i386__' and similar such as `__x86_64__' and `k8'. Major changes for release LiS-2.18.1 ------------------------------------- Initial autoconf/RPM packaging of the `LiS' release. This is a port forward of most of the build and patches from 2.16.19 forward and applied over 2.18.0. This is our first LiS-2.18 release. All further development on 2.16.19 will now cease. 2.18.1 is maintained on both 2.4 and 2.6 kernels. No active development will be performed on 2.18.1, only maintenance. For an active development release, see the Linux Fast-STREAMS releases. Major changes from LiS-2.18.0 include all of the autoconf build system, manual pages and texi/pdf manual for LiS that were applied on the 2.16.19 release. This includes a number of 64 bit, HPPA, PARISC, printf, atomic stats, HZ calculations for 64bit machines, DMA patch for mblk buffer alignment, flush handling patch, panic patch, smp patch, parisc syscall patch, appq patch, and multi-threaded test program patches, POSIX threads compliant library functions. Additional changes made to support later 2.6 kernels and distributions. Switched putpmsg()/getpmsg() to use ioctl for system call emulation instead of read()/write(), primarily because 2.6.11 kernels check for a valid count before calling the driver's read()/write() file operations. Updates to the build system to support a wider range of kernels and distributions. See the installation and reference manual for a complete list of supported kernels and distributions. Please note that the entire package is released under GPL. Major changes for release LiS-2.16.19 -------------------------------------- Not publicly released. Major changes for release LiS-2.16.18-22 ----------------------------------------- Replaced m4 and automake files with common equivalents. This allows the same set of m4 macros and automake fragments to be used with all of the OpenSS7 release packages. Maintenance is easier as one correction will propagate across all items. Performed similar function with texinfo documentation pieces. Major changes for release LiS-2.16.18-21 ----------------------------------------- Removed all XTI/TLI and Linux networking code, headers and documentation from LiS distribution and bumped epoch to 2. Linux networking code has been migrated to the *strxns*, *strxnet*, *strinet* and *strsctp* packages. The purpose for doing this was to allow the Linux networking to build against Linux Fast-STREAMS as well as "Linux STREAMS (LiS)" and is a preparation for phasing out LiS and phasing in LfS. Added missing `configure.nexusware' to distribution. LiS cache options now default to 'no' because of instabilities with timers. Not publicly released. Major changes for release LiS-2.16.18-20 ----------------------------------------- Minor corrections: made conflicting manpage `xti_sctp.3' dependent on OpenSS7 SCTP kernel. Not publicly released. Major changes for release LiS-2.16.18-19 ----------------------------------------- Changes to compile, install and builds rpms for Fedora Core 1 (FC1), Whitebox Enterprise Linux (WBEL) and RedHat Enterprise Linux 3 (EL3). Included explicit epoch in internal dependencies in spec file for RPM versions 4.2.1, 4.2.2 and higher. Added hugemem kernel detection and moved getpmsg and putpmsg manual pages. Correction to symbolic linking and system map file location during non-rpm autoconf installation. Correction to zero `maxlen' behaviour in `t_rcvconnect()'. Major changes for release LiS-2.16.18-18 ----------------------------------------- Added check for `CONFIG_REGPARM', addition of `-mregparm=3' `CFLAGS', addition of `regparm_' prefix for exported ksyms. Minor corrections to separate build directory install of devices and caching of detected ksyms. Major changes for release LiS-2.16.18-17 ----------------------------------------- Added option `--disable-k-modversions' to suppress versions for LiS exported symbols. A couple of corrections to the build process reported by Gurol. Changed order of build in `make rebuild' target to build tools last so that the rpm debug package is built correctly on RH9. Change `MODULE_PARM' to static so that `make install-strip' does not strip module parameter symbols. Added `lis_check_mem_region()', `lis_release_mem_region()' and `lis_request_mem_region()' for memory mapped io instead of just io. Added `printk' patches discussed on linux-stream mailing list. Added gcc `printf' checking and corrected errors in LiS debugging `printk' statements. Added HP patches. There are a couple of questionable components in the HP patches that I reversed. They include; - modification of `lis_msgsize' to `lis_msgdsize'. This would change the calculation of queue counts. Queue counts aren't `M_DATA' counts, they are "data" message counts. LiS probably doesn't have this the right way, but `lis_msgdsize' is not correct either. - addition of `qi_mstat->ms_pcnt' increment on `lis_safe_putmsg'. Same for `ms_scnt', `ms_ocnt', `ms_ccnt'. STREAMS is not supposed to increment counts. It is the module writer's responsibility to increment counts in their own queue procedures. Added HP `ldl' patches. Made modifications to `putq()', `putbq()', `insq()' and `appq()' discussed on linux-streams mailing list. These do not free messages on failure. Modified all occurrences internal to LiS to free the message on error to ensure old behaviour. Added HP dejagnu patches to `strtst' and added dejagnu testsuite directory and file. Added the `make check' target. Use `DEJATOOLS' on the make command line to invoke the tests, such as ``make DEJATOOLS=strtst check'' to invoke the tests. Because a patched `netperf' is not commonly available and `netperf' will not be distributed with the package, GNU `autotest' might be a better choice. But that's for a later release. Major changes for release LiS-2.16.18-16 ----------------------------------------- General updates to the build process, optimization options, build options. Corrected library linkage. Synced TLI modules and INET driver to Linux Fast-STREAMS. Removed deadlock from INET driver and loosened locking. Unfortunately suitable libraries must be installed before distcheck will clear. Smoother and more reliable stripping of kernel symbols, starts with /proc/ksyms if applicable then System.map then modversions.h to attempt to choose symbols most closely synced with an installed or running kernel. Improvements to autoconf installation of manpages (autocompressed now) and info and pdf manuals are distributed. install-strip target will actually properly strip kernel modules. Included an option to build and install only kernel or user parts of package to speed rpm rebuild process for multiple kernel. Added `rebuild' target to rebuild the rpms from srpm for multiple kernel and architectures. Added a `sign' and `resign' target to sign srpm and rebuilt rpms respectively. Greatly enhanced cross-build and cross-compile support, primarily in support of the NexusWare embedded target. Added NexusWare helper script and documentation. DESTDIR is now a blessed environment variable used by configure to set the cross-build root as well as the install root. Try adding -with-k-optimize='size' to configure to optimize for size for embedded targets. Builds clean against NexusWare24 (810p0674.10-rc4). Added start of an option to build as linkable object for embedded targets rather than loadable kernel module. Major changes for release LiS-2.16.18-15 ----------------------------------------- Fixed several symbol errors that made -13 and -14 unusable. Corrected error in calculation of kernel debug flags. Major changes for release LiS-2.16.18-14 ----------------------------------------- A few more enhancements to the build process to work with autoconf 2.59. Major changes for release LiS-2.16.18-13 ----------------------------------------- Enhanced build process for autoconf-2.59, automake-1.8.3, gettext-0.14.1, and libtool-1.5.6. Major changes for release LiS-2.16.18-12 ----------------------------------------- Added defaults for SK_WMEM_MAX and SK_RMEM_MAX for lastest 2.4.25 and 2.4.26 kernel builds. Enhanced build process. All kernel symbols exported by LiS have versions on kernels that have versions on symbols. This makes it safer to compile kernel modules against kernel/LiS combinations. This is in preparation for splitting off the strxnet package, and the technique was imported from the Linux Fast-STREAMS build. Major changes for release LiS-2.16.18-11 ----------------------------------------- Ripped three additional kernel symbols in support of INET driver that were missing in -10 release. Major changes for release LiS-2.16.18-10 ----------------------------------------- Added support for cooked manpages both for non-rpm systems and for rpm systems. It is still better to leave manpages uncooked for rpm releases because they are much smaller that way. Give the -with-cooked-manpages flag to configure if you want cooked manpages. You still need grefer on the build system. Updates to all manual pages in man7, and some others (xti) in man3. Removed unused .macros and .refs files. Moved automake fragments into separate directory. Cleaned up automake fragments. Rearranged header files in the xti subdirectory to install in LiS package include directory instead. Reworked xti, tihdr and tiuser file groups to include properly from kernel or user space independent of order. tiuser and xti still cannot be included together. Added older TLI interface that is still consistent with newer XTI interface. Changed references in man pages to XTI/TLI instead of just XTI. Added ticlts.h, ticots.h and ticotsord.h header files. Updated dlpi.h and npi.h header files. Removed sys/LiS/tpicommon.h because it is largely replaced by sys/tli.h and sys/tpi.h. Removed the, now redundant, xti header file subdirectory. A series of bug fixes to xnet.c (libxnet) that resulted from discussions with Gurol Akman on openss7-develop mailing list. Mostly surrounding t_alloc and t_getinfo behaviour and the behaviour when NULL pointers are passed to various XTI/TLI library calls. Updated xti documentation as well. Many changes to the inet.c INET driver. Wildcard IP addresses can now be bound and wildcard addresses will be assigned with no address is passed to most providers. (/dev/rawip still requires an address or TNOADDR is returned.) Option management has been extensively rewritten to closer conform to XNS documentation. Test programs test-inet_raw, test-inet_udp, test-inet_tcp have been upgraded and converted to multiple child processes. A number of fixes to SMP lock behaviour and M_FLUSH have been added as reported by Dave Grothe. Corrected all level and TBADOPT behaviour on negotiation. Although this driver is now closer to expected behaviour, it has not been tested for XNS 5.2 compliance, nor will it be until someone has the time to extend the test programs to handle all test cases in a similar manner as was done for the library. Your mileage many vary. Remember, there is no warranty. Major changes for release LiS-2.16.18-9 ---------------------------------------- Changes primarily in support of builds on HPPA (PARISC) architectures. LiS doesn't build too well on PARISC so some modifications where used from the Linux Fast-STREAMS package to correct deficiencies. Better building on recent 2.4 kernels (2.4.23, 2.4.24, 2.4.25) is also provided. Major changes for release LiS-2.16.18-8 ---------------------------------------- Changes to permit better builds on recent RedHat kernels, and especially kernel-2.4.20-30.9. Major changes for release LiS-2.16.18-7 ---------------------------------------- Fixed a module loading bug in LiS. Previously modules would not demand load. Major changes for release LiS-2.16.18-6 ---------------------------------------- Fixed a possible null pointer dereference in libxnet. Corrected t_bind to return TNOADDR instead of TBADADDR on wildcard bind attempt. Module loading bug patched. Major changes for release LiS-2.16.18-5 ---------------------------------------- Fixes a t_open and t_bind problem in libxnet. Fixes alignment of data portion of mblks. Adds (untested) ticots_ord, ticots and ticlts devices over UNIX domain sockets. Major changes for release LiS-2.16.18-4 ---------------------------------------- Adds back in missing strms_up/down/status scripts to distribution and install. Major changes for release LiS-2.16.18-3 ---------------------------------------- Not publicly released. Major changes for release LiS-2.16.18-2 ---------------------------------------- Not publicly released. Major changes for release LiS-2.16.18-1 ---------------------------------------- This OpenSS7 release of LiS-2.16.18 updates the previous LiS-2.16.16 rpm release to the latest LiS-2.16 release level. Initial release LiS-2.16.16-1 ------------------------------ This OpenSS7 release of LiS-2.16.16 includes autoconf for configuration, complete manual pages and documentation, and packaging in source and binary RPMs for ease and repeatability of installation. The package also builds and installs properly versions LiS shared object libraries. Before the OpenSS7 release of LiS, it was necessary to have a significant working knowledge of the Linux kernel, kernel source, headers and other intricacies. This made it difficult to distribute software based on LiS to users not proficient in those areas. The OpenSS7 release removes the configuration and installation tasks from the user and permits distribution of applications, modules and driver software based on LiS to users without sufficient kernel expertise to install the package. This OpenSS7 release fixes few of the outstanding bugs and deficiencies of the LiS software. This release is intended to package and distribute LiS in an efficient manner and, for the most part, does not address LiS deficiencies or errors. This OpenSS7 release is compatible with Linux 2.4 kernels only and will refuse to configure for older or newer kernels. Following are the new features of the OpenSS7 release of LiS: - adds configuration using the GNU tools, autoconf, automake and autotest. These tools greatly enhance the ability to maintain a repeatable and testable release cycle as well as being compatible with most major package managers such as Redhat's RPM. - adds long options to all LiS utilities. This change was necessitated because we use GNITS (the strictest level) of configuration with autoconf that requires for distribution checking that all utility programs support the `--help' and `--version' long options without side-effects. - provides a source and binary release mechanism using both autoconf distributions as well as RedHat source and binary RPMs. Use of the RPM mechanism for release permits add-on packages to ensure that they have sufficient level of support and versions for the LiS load during their build and installation process. It is now also possible to ensure that add on binaries are compatible with a loaded LiS during installation. - includes a complete set of kernel programmer manual pages for all LiS exported kernel functions for use by STREAMS module and driver developers. - includes a complete set of user manual pages for all libLiS functions and separate administrative utilities. - includes the OpenSS7 strinet driver providing XTI/TLI access to the Linux native NET4 IP stack including TCP, UDP, IP and (and OpenSS7 SCTP if your kernel is so equipped). - includes functional `tirdwr' and `timod' modules for use with the included XTI/TLI library.(1) - includes complete, thread-safe XNS 5.2 XTI/TLI library support with the `libxnet' library, complete manual pages and documentation released under the LGPL (*note GNU Lesser General Public License::). The next release may include some "strss7" software. ---------- Footnotes ---------- (1) The `tirdwr' module included with the Gcom LiS-2.16.18 (and even more current) releases is almost completely disfunctional and has been replaced in entirety. ----- ========================================================================= Copyright (c) 2001-2007 OpenSS7 Corporation Copyright (c) 1997-2000 Brian Bidulock All Rights Reserved. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one Since the Linux kernel and libraries are constantly changing, this manual page may be incorrect or out-of-date. The author(s) assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. The author(s) may not have taken the same level of care in the production of this manual, which is licensed free of charge, as they might when working professionally. Formatted or processed versions of this manual, if unaccompanied by the source, must acknowledge the copyright and authors of this work. ------------------------------------------------------------------------- U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on behalf of the U.S. Government ("Government"), the following provisions apply to you. If the Software is supplied by the Department of Defense ("DoD"), it is classified as "Commercial Computer Software" under paragraph 252.227-7014 of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any successor regulations) and the Government is acquiring only the license rights granted herein (the license rights customarily provided to non-Government users). If the Software is supplied to any unit or agency of the Government other than DoD, it is classified as "Restricted Computer Software" and the Government's rights in the Software are defined in paragraph 52.227-19 of the Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR (or any successor regulations). ========================================================================= Commercial licensing and support of this software is available from OpenSS7 Corporation at a fee. See http://www.openss7.com/ ========================================================================= vim: ft=README tw=72 nocindent nosmartindent formatoptions+=tcqlorn