* Fix FLAM record interface stubs for Micro Focus EDZ support (introduced with SSH support for FLAMFILEs)
** Add new target libfl4recuc.dll/so to provide the FLMXXX functions in upper case
** Without the libfl4recuc, the function names are in lower case prefixed with '_' and appended with '1' (_flmxxx1)
* Set always record format, record length and block size in inverse command of FIOREC
* Improve error messages of FL4REC (separation between DMS and FLAM internal error)
* Support escape sequences for special characters and code pages for all strings, file names and labels
* Correct and check file pointer for print outs concerning quiet and silence switches of FLCL
* Check feature code for CNVAVS (anti virus scanning)
* Avoid conflict with flamdoc package for several Linux distributions
* Improved version of FLEDIT (flgt -c edit filename) GUI tool
5.1.19-22166
ATTENTION: Change of default CCSIDs and environment variable handling for APIs
Only relevant if no LANG variable is set:
To fix inconsistency problems concerning different default CCSIDs in FL5
and the command line parser CLEP, default CCSIDs have been unified. On
ASCII-based systems, ISO-8859-1 (Latin-1) is the default. It EBCDIC
systems this is IBM-1047 (Open Systems Latin-1).
A system not using IBM-1047 (e.g. IBM-1141 for a German host), the
environment variable LANG must be set appropriately to avoid charset
issues (see install.txt for z/OS). Additional escape sequences, CCSID
areas in commend strings and a new environment variable for CCSID of the
CLP string are now supported. The latter two features are designed to
support literals with inconsistent CCSIDs, if FLAM APIs are used with
CLP strings.
The subprogram, byte, stream and record APIs up to version 5.1.18 loaded
system variables and standard environment variables as part of the API
calls. This prevents control about the environment by the application
programmer. Starting with FLAM 5.1.19, API functions no longer load any
system or environment variables, but provide new functions (fcbenv,
FCRENV, flucenv and FCUENV) for it. These functions allow application
programmer to set those variables as needed.
* Add FLUC subsystem for z/OS (FLUCSUB)
** Application transparent conversion (FB/VB, TXT, CSV, XML, ASCII/EBCDIC/UNICODE), compression (GZIP, BZIP2, XZ, ZIP), encryption (PGP), encoding (BASE64/32/16) and transfer (SSH)
** FILE DD DSN=&SYSUID.TEST.DAT,DISP=SHR,SUBSYS(FLUC,'read.text(file=ssh://user@server/test.gz) format.record(recf=FB recl=80)')
** Improve DCB handling to simplify usage of subsystems
*** Add function to determine DCB parameter for DD names
*** If DCB parameter is provided, plausibility check is performed when opening
**** If a DISP=OLD/MOD allocation is used with DCB parameter in FALLOC object, then the parameter must now fit with the existing file
***** In the past these parameter are ignored and only used if DISP=NEW required
* Add support for anti virus scanning in access method for original data
** Arbitrary anti virus solutions can be used by implementing your own service provider interface (FAVE) that can be used in the AV conversion component (CNVAVS)
** A default implementation using a ClamAV daemon is provided
** Usable on FLAM APIs, the subsystems and the utility (FLCL)
** The solution conforms to PCI DSS requirement 5: Malware and Anti-Virus
* Don't load environment variables as part of a function call anymore
** The application developer needs control over the environment
** Add new functions (fcbenv, FCRENV, flucenv, FCUENV) to APIs to load the environment before the first API call
* Add several solutions to simplify code page issues on EBCDIC systems
** Support escape sequences for critical punctuation characters for EBCDIC systems (&HSH;)
** Parts of a command string can be in a charset different from the local charset by prepending a CCSID in an escape sequence (e.g. &1140;)
** Support environment variable (CLP_STRING_CCSID) for command string interpretation
** Support for entering hexadecimal values (&xFF;)
* SSH support for FLAMFILEs (remote reading and writing of FLAMFILEs through FLCL, FLUCSUB, FLUC, byte-, stream- and record interfaces)
* Support flucFS on z/Linux
* Update of libssh to version 0.8.3
** New cipher supported: chacha20-poly1305@openssh.com
** Support for curve25519-sha256 key exchange method as alias for curve25519-sha256@libssh.org
** Support for new rsa-sha2 hostkey algorithm
** Added support for diffie-hellman-group18-sha512 and diffie-hellman-group16-sha512
** Improved performance and reduced memory footprint for sftp
* Reduce memory consumption (in general and specifically for XML format in table component)
* Improve error trace by temporary file name if a ZIP archive is reorganized (for better error determination)
* z/OS and z/USS code are now built for minimum target zOSv2r1 (still for minimum architecture 8 and tune level 11)
* On Unix-like and Windows systems, environment variables are read from the file ".stdenv" in the working directory or (if it doesn't exist) in the home directory
* Support default values for empty strings in integer and float components (including empty indication)
* Improved handling of temporary files (required for ZIP archives and others)
* Use command mode as default for FLCC commander
* Support RECFORMAT=ORG(inal) in record preparation
** Use the original record format when writing
* Enforce DISP=NEW allocation if the RENEW is switch enabled
** No failed DISL=OLD allocation in front anymore
* Support up to 254 sub system parameters with maximum length of 67 characters
* Support re-keying of secure key rings in FKM5-PGP software implementation
* Improved log messages for I/O components (especially for debug log)
* Support first valid letter (if alpha) of the system symbol '&SYSCLONE' as default 'ENVID' on z/OS
* Add new function fcbsym() and FCRSYM() to byte and record interface to load/set environment variables, JCL and system symbols
* Support two new environment variables for better Micro Focus EDZ support concerning FCRSYM() and FCRENV()
** FLAM4MF_STATIC_SYSVAR - static system variables are read from filename into the environment (Windows or Linux filename in local character set, Syntax: SYMBOL=value)
** FLAM4MF_DYNAMIC_SYSVAR - dynamic system variables are read from filename into the environment (in conjunction with the JCL User Exit of MF-EDZ to add dynamic variables)
* Support additional 'DD:SYSVAR' for Micro Focus EDZ environments (requires EBCDIC support on ASCII system and separation with semicolon)
* Support EBCDIC and ASCII auto detection and additional separation by semicolon in all files defining environment variables
* Add new GUI tool 'flgt' including editing formatted, compressed and encrypted files on Windows and Unix-like systems
** The GUI tools 'flinfo', 'flview' are now included in the new tool 'flgt'
** All functions can be used via parameters (flgt -c=view filename)
** The default command of 'flgt' is edit
* Support "write.dummy" as abbreviation for "write.binary(file=dummy)"
* Add new PGP FKM5 parameter "newpass" to re-encrypt secret key rings
* Add more plausibility checks about row definitions for XML formats
* Support charset and endianness 'LOCAL' in addition to SYSTEM
** LOCAL represents the real character set or endianness on this machine (Windows: CP1252/ASCII with little endianness)
** SYSTEM represents the logical default character set or endianness defined in the environment (MF-EDZ: IBM1141/EBCDIC with big endianness)
** The system endianness is no longer the local endianness (in MF-EDZ environments)
* Add feature check for SSH connections and hash calculations
* Add fallback and warnings if test of random number generator fails
** If seed has not enough entropy, a warning is written to the log (results in completion code 1)
** On z/OS, this can happen if ICSF is not active
* Bugfixes
** Correct stack allocation for big numbers (lple64 failed, because the 1280 byte are not enough)
** Don't use unsafe function tmpnam() anymore
** Fix several issues concerning dia-critical character support for EBCDIC
*** Fix inconsistent default and system code pages (result in strange character conversion if no LANG variable defined)
*** Correct all printouts to conform to the defined system CCSID on EBCDIC systems (see environment variable LANG)
*** Don't use dia-critical characters before the environment is loaded
*** Implement a real singleton for critical punctuation characters which is loaded only once
** Fix completion codes (some times SYSTEM (36) and MEMORY (48) errors are mismatched)
** Use correct delimiter if CX7 files encoded in ASCII or EBCDIC
** Correct character set in internal default value conversion
*** Prevent error in MF-EDZ support at conversion/mapping string to integers and floats
** Ensure removal of written file if error in close functions occur (required if virus is found)
** Correct handling of FLMRTC_AIR (prevent wrong data after re-alloc with pointer change at delayed read from memory)
** Fix missing end-of-table (EOT) for the first record during in-memory conversion if the first record does not match the first row definition
*** This wrong behavior only occurs at the first record if single record conversion with EOT handling done
*** The fix will always result in a FLMRTC_EOT at the beginning if the ENDOFT switch is enabled
** Increase final random check verification from 32 to 64 bit to prevent clashes
** Move hash verification from close to final function (to ensure removal of written file if hash verification fails)
** Ensure XML prolog is in the first line of each XML document
** Correct prolog and comment handling in TABXML (print comment and prolog in front of each table)
** Fix directory walk on statically allocated PDS member (FILE='DD:INP(*)')
** Fix replacement of environment variables in parameter strings (correct support for more than one <XXX>)
** Fix removal of PO datasets if no member is left (check if the file really is a PDS)
** Correct FLVEDIT line command on z/OS if an error occurs while writing (PF3 will always result in a save (no cancel possible anymore))
** Use original record length when reading FLAMFILEs if platform is FL5 (FLUC)
** Correct adjustment of block size in record I/O component
** Don't write DCBs in record I/O component to inverse command on systems with catalog (z/OS)
- 0000862: [2.2 Subprogram FLUC (CONV)] Support of more then one XML document per file (Tilo Eckert) - resolved. - 0000920: [3. Subsystem, Driver, Plugin, SPI] Add GUI tool like FLVEDIT of ISPF to edit encrpyted, compressed and converted files on windows (Mykhailo Moldavskyy) - resolved. - 0000951: [2.2 Subprogram FLUC (CONV)] Add password change for keyrings to PGP support (Falk Reichbott) - resolved. - 0000954: [1.2 FLCC] Support write.dummy (Falk Reichbott) - resolved. - 0000704: [3. Subsystem, Driver, Plugin, SPI] Add a FLUC I/O subsystem to write transparent different formats for and to different platforms on z/OS (Falk Reichbott) - resolved. - 0000950: [2.2 Subprogram FLUC (CONV)] Support anti virus scanning at read and write with FLAM (Falk Reichbott) - resolved. - 0000825: [2.2 Subprogram FLUC (CONV)] SSH-Support for FLAMFILEs (Tilo Eckert) - resolved. - 0000946: [4. Element, Byte, Record or other API] Don't load environment (SYSVAR, STDENV) in API functions (Falk Reichbott) - resolved.