Item 35: CSECTs deliberately omitted from scrubbing
Item 35: CSECTs deliberately omitted from scrubbing
The allegation is that Winsopia deliberately omitted from the scrubbing process certain CSECTs when load modules were exported to LzLabs for use in development of the SDM. There is a large measure of agreement between the experts as to the relevant technical facts as set out in their second expert joint statement.
CEESTART is an initialisation CSECT comprising both data and code. For COBOL programs, CEESTART is taken from the SCEELKED library distributed with z/OS Base and link-edited into load modules by the z/OS Binder. In PL/I programs, CEESTART is inserted by the IBM Enterprise PL/I compiler. In either case, CEESTART is populated at bind time with values relative to the load module in which it is contained.
Mr Palmer confirmed in cross-examination that CEESTART was originally removed from COBOL programs and replaced by Winsopia stubs. However it was not removed from PL/I programs because the Winsopia stubs only replaced link-edited CSECTs; not those inserted at compilation stage. Therefore, initially, CEESTART was not removed from PL/I load modules sent from Winsopia to LzLabs. The introduction of the CPX scrubber enabled the removal of CEESTART from both PL/I and COBOL programs but, from 22 February 2017, CEESTART was taken off the scrub list. Thereafter, as Mr Palmer and Mr Stephens confirmed, any PL/I or COBOL load modules sent to LzLabs would contain CEESTART.
IGZUOPT is a data only CSECT that can be used by a mainframe user to specify COBOL options. IGZUOPT is generated by a mainframe user by creating an assembler program that calls the assembler macro IGZXOPT provided by IBM in the SCEEMAC library supplied with z/OS. The mainframe user specifies required parameter values for the IGZXOPT macro in the assembler code. The experts agree that IGZUOPT is not scrubbed by CPX; it is likely that it has been sent by Winsopia to LzLabs.
CEEROPT is a data only CSECT that can be used by a mainframe user to specify z/OS Language Environment options. CEEROPT is generated by a mainframe user by creating an assembler program that calls the assembler macro CEEXOPT provided by IBM in the SCEEMAC library supplied with z/OS. The mainframe user specifies required parameter values for the CEEXOPT macro in the assembler code. The experts agree that CEEROPT is not scrubbed by CPX; it is likely that it has been sent by Winsopia to LzLabs.
CEEMAIN and CEEFMAIN are data only CSECTs bound with COBOL and PL/I programs. They are obtained from the SCEELKED library provided with z/OS for COBOL programs and bound or inserted by the compiler for PL/I programs. The experts agree that they are not scrubbed by CPX; it is likely that they have been sent by Winsopia to LzLabs.
DFS* modules are data only CSECTs relating to IMS. The format of the modules and default values populating the data structures are built by IBM-provided macros. Some of the data in these CSECTs is dependent on parameters provided by the IMS administrator during generation. These modules are placed in a dataset called ‘RESLIB’ or ‘SDFSRESL’ library. The RESLIB / SDFSRESL library where these modules are placed may also contain modules supplied by IBM with the IMS product. The experts agree that these modules are not scrubbed by CPX; it is likely that they have been sent by Winsopia to LzLabs.
The defendants submit that none of the CSECTs the subject of this allegation is an ICA Program. The CSECTs are custom-built by the customer, based on: (i) the individual configuration and/or parameters that the customer has selected based on their business requirements, using IBM-supplied macros and sample programs to generate the relevant CSECTs; and/or (ii) statements made by the programmer in the source code of their customer application, or metadata relating to the entry point specific to their executable customer application. Further, they submit that the CSECTs are subject to different licensing terms, which permit distribution, with or without modifications for the purpose of developing, using, marketing or distributing application programs.
I reject that submission. The CSECTs are selected by the customer based on their business requirements but implementation of the customer’s stated requirements in an application is determined by IBM, through its design of the CSECTs, its choice as to when and how code is inserted and/or generated, and its decision as to the mode of execution. The Licensed Program Specification and other sample program terms and conditions provided that distribution of such programs would be subject to IBM copyright notices and for the purposes of developing, using, marketing or distributing application programs “conforming to the application programming interface for the operating platform for which the sample programs are written” that is, for use with z/OS. Therefore, such permission did not extend to distribution of load modules containing such CSECTs for the purpose of developing an alternative operating system such as the SDM.
CEESTART is a component of z/OS Base and IBM Enterprise PL/I for z/OS, both of which are agreed to be ICA Programs. As such, for the reasons set out earlier in this Judgment, it is an ICA Program. Mr Swanson agreed in cross-examination that the functional content of this CSECT, whether inserted at the compilation or link-editing stage, is materially the same.
Likewise, CEEMAIN and CEEFMAIN are supplied by IBM as part of the z/OS Language Environment SCEELKED dataset. As such, for the reasons set out earlier in this Judgment, they are ICA Programs.
IGZUOPT and CEEROPT are data-only CSECTs which can be used by a mainframe user to override default runtime operations in z/OS. Mr Stephens explained in his evidence that IBM supplies, as part of the z/OS Language Environment, a job control language (“JCL”) script, assembler source code to invoke a macro, and the macro itself. The user adds its details to the JCL script and amends the assembler source code to select the required default option from the range of options set out in JCL samples compiler dataset (.SCEESAMP) or the z/OS Language Environment Programming Guide. Running the JCL causes the Assembler to assemble the source code, invoke the macro and generate the CSECT. The macros were designed by IBM and provided in source code as part of z/OS Base. They are machine-readable instructions and data; as such, they are ICA Programs within the ICA definition.
DFS* CSECTs are data only modules generated as part of the IMS installation process. Mr Swanson and Mr Stephens concurred that during IMS system generation, IBM-supplied macros can be customised by users and assembled by running the IBM-supplied JCL to generate the load modules. Alternatively, the user can simply select unmodified load modules supplied by IBM. The load modules contain code, data and structures designed by IBM. Although the user can specify parameters and values that are unique to its business requirements, such configuration does not change the fact that the CSECTs are essential components of IMS. IMS versions 12, 14 and 15 are ICA Programs. As such, the CSECTs are ICA Programs within the ICA definition.
For the reasons set out earlier in this Judgment, the above findings are not affected by the fact that the CSECTs are incorporated into the customer applications or generated by software that itself is an ICA Program. The CSECTs remain subject to the terms of the ICA.
The defendants submit that the CSECTs were deliberately omitted from the scrubbing exercise because they were necessary to enable customer applications to run on the SDM. The expert evidence did not support that argument.
The experts agreed in their second joint statement that the SDM does not need CEESTART for COBOL programs. Mr Jaeger stated that LzLabs worked out an alternative way to obtain the relevant information so that CEESTART became unnecessary for PL/I programs.
Mr Swanson’s opinion was that, although the CSECT information might be needed to execute a load module on the SDM, Winsopia could have analysed the load module prior to scrubbing to identify the relevant information required and scrubbed the load module before transfer to LzLabs. It would have been open to LzLabs to obtain the information from published documentation and develop replacement functionality on the SDM. Mr Stephens agreed that what was necessary was not the CSECTs themselves but the information that was contained within them.
In summary on this item:
Load modules sent by Winsopia to LzLabs included CSECTs that were ICA Programs within the meaning of the ICA.
Winsopia’s supply of such modules to LzLabs constituted breach of clauses 4.1, 4.1.2(b) and/or 4.1.3(b) of the ICA.
Winsopia’s actions were not necessary in order to achieve interoperability of customer applications with the SDM and, as such, were not permitted by Article 6 of the Software Directive.
- Heading
- Mrs Justice O’Farrell
- Section II - Background to the dispute
- The SDM
- Hercules
- Neon litigation
- Formation of LzLabs and Winsopia
- The ICA
- SDM development and the clean room procedures
- Launch of the SDM
- Project Eiger
- Further development of the SDM
- Audit request and termination
- Section III - The proceedings
- The Issues
- The factual witnesses
- Section IV - Construction of the ICA
- Approach to construction of the ICA
- Scope of licence
- The ICA Programs
- Customer applications
- Licensed Program Specifications
- Independent software vendors (ISVs)
- Debugging tools
- Restrictions on use of ICA Programs
- Legislative framework
- Berne Convention
- TRIPS
- WIPO
- Software Directive
- Copyright, Designs and Patents Act 1988 (CDPA)
- Applicable legal principles
- Conclusions on ICA
- Section V - Alleged breaches of the ICA
- Disassembly, decompilation and translation
- Item 2: Load Module Decompiler (“the LMD”) (Paragraph 11.2 of the Technical Particulars)
- Item 3: CICS Control Blocks Document (Paragraph 11.3 of the Technical Particulars)
- Item 4: EXEC DLI (Paragraphs 27.18 & 28.19 of RRRAPOC)
- Item 5: IBM Binder Software (Paragraph 11.4 of the Technical Particulars)
- Compiler listings – summary of the dispute
- Item 6: IGZCIVL COBOL runtime module (Paragraph 11.6 of the Technical Particulars)
- Item 7: CICS Translators (Paragraph 20.1-2 of the Technical Particulars)
- Item 8: Floating point rounding rules (Paragraph 20.3 of the Technical Particulars)
- Item 9: IBM PL/1 compiler (Paragraph 20.4 of the Technical Particulars & Paragraph 27 of the POC)
- Item 10: XML Parse statements (Paragraphs 33-38 of the Technical Particulars)
- Item 11: COBOL initialisation, branching and I/O declaratives (Paragraphs 27.4&27.5 RRRAPOC)
- Item 12: PL/I Condition handling (Paragraphs 27.10-27.12 of RRRAPOC)
- Reverse engineering through the systematic use of traces, dumps, slip traps, packet sniffing and other debugging tools techniques – summary of the dispute
- Item 13: CICS-to-CICS communications (Paragraph 28.1 of the Technical Particulars)
- Item 14: AMBLIST analysis of CICS Stubs (Paragraph 28.2 of the Technical Particulars)
- Item 15: Colesoft z/XDC and COBOL initialisation (Paragraph 28.3 of the Technical Particulars)
- Item 16: XDC and IMS (Paragraph 28.4 of the Technical Particulars)
- Additional examples
- Item 17: SLIP Traps and CICS (Paragraph 28.5 of the Technical Particulars)
- Item 18: SLIP Traps and COBOL (Paragraph 28.6 of the Technical Particulars)
- Macros and Copybooks - introduction
- Macros (Paragraphs 32.1-32.9 of the Technical Particulars) – summary of the dispute
- Item 19: DR-3246 (Paragraph 32.1 of the Technical Particulars)
- Item 20: DR-10237 (Paragraph 32.2 of the Technical Particulars)
- Item 21: DR-2753 (Paragraph 32.3 of the Technical Particulars)
- Item 22: DR-2771 (Paragraph 32.4 of the Technical Particulars)
- Item 23: DR-2796 (Paragraph 32.5 of the Technical Particulars)
- Item 24: DR-3280 (Paragraph 32.6 of the Technical Particulars)
- Item 25: DR-4281 (Paragraph 32.7 of the Technical Particulars)
- Item 26: DR-4322 (Paragraph 32.8 of the Technical Particulars)
- Item 27: DR-0847 (Paragraph 32.9 of the Technical Particulars)
- Macros - discussion
- Copybooks (Paragraphs 2.1.1.3 and 32.10-32.12 of the Technical Particulars) – nature of the dispute
- Item 28: DR-715 (Paragraph 32.10 of the Technical Particulars)
- Item 29: DR-753 (Paragraph 32.11 of the Technical Particulars)
- Item 30: DR-756 (Paragraph 2.1.1.3 of the Technical Particulars)
- Copybooks - discussion
- Transferring “unscrubbed” materials
- Item 31:Epiphany
- Item 32: Db2 Catalog table metadata
- Item 33: DSS dump
- Item 34: Kednos
- Item 35: CSECTs deliberately omitted from scrubbing
- Items 36 and 42: Unscrubbed CSECTs
- Items 37 and 40: IMS PROCLIB & DLIBATCH
- Item 38: DFHEI1 module
- Item 39: IGZXANE
- Item 41: IGZXNE3N
- Item 43: CEEBETBL, CEEBLLST, IBMPINPL & CEESG*
- Item 44: DR-4617
- Item 45: DR-171
- Item 46: Scrubbing failures
- Item 47: @@TRGLOC CSECT
- Item 48: PARMLIB & PROCLIB
- Use outside Enterprise and beyond Designated Machine
- Item 49: Brad Taylor (Paragraph 44.2 of the Technical Particulars)
- Item 50: Winsopia Pizzabox (Paragraph 44.5 of the Technical Particulars)
- Item 51: Justin Bendich (Paragraph 44.6 of the Technical Particulars)
- Conclusions on technical breaches
- Section VI - Wrongful procurement of breach
- Applicable legal principles
- LzLabs
- LzLabs UK
- Claims against the directors
- Mr Moores
- Summary on unlawful procurement
- Section VII - Unlawful means conspiracy
- Applicable legal principles
- Knowledge of unlawfulness
- Summary on unlawful means conspiracy
- Section VIII – Audit and Termination
- Validity of audit request
- Validity of termination
- Section IX - Limitation
- Contractual limitation
- Statutory Limitation
- Deliberate concealment
- Finding - section 32(1)(b)
- Finding - Section 32(2)
- Actual or constructive knowledge – legal principles
- Date of knowledge issues
- ICA 2013
- Mr Knight - 2017
- Mr Anzani - 2018
- Conclusions
![HT-2021-000363 - [2025] EWHC 532 (TCC)](https://backend.juristeca.com/files/emisores/logo_yJUntHA.png)