Created Date: 05 May, 2022 15:12
Last Modifed Date: 05 May, 2022 15:12


Introduction

This is a follow-up release that addresses an issue discovered during the release testing of Mako 6.5.0.

Since the principal issue concerns Mako’s internal renderer, all platforms are released, including Windows UWP (C++/WinRT) that was absent from the last release.

An additional Java distribution is included, built for macOS and Java 11.

Issues fixed

MAKO-4006

MakoSeparator Produces Incorrect Output


This release completes some remedial work to Mako’s internal renderer that began when release testing of Mako 6.5.0 uncovered a minor regression. It concerned the unusual situation where a job called for a completely transparent object (zero opacity) being painted into a knockout group, and in a few cases producing an incorrect result.

The problem is now eliminated, and all test suites pass normally.

MAKO-4011

MAKOSUP-10982 Error: typecheck; OffendingCommand: @PDFfileexec


The customer exhibit triggered an exception because the PDF contained Lab color spaces whose WhitePoint, BlackPoint or Range values were PDF reference objects. These are now dereferenced correctly and processing completes normally.

MAKO-4017

The nativestream sample in the SWIG Simple Examples is failing on Mac and Linux


Testing showed one of the C# code samples included with the SDK (in the simpleexamples folder) sometimes failed. Investigation confirmed that the problem was caused by premature garbage collection of either the callback or helper object.

Since the callback is referenced by the helper, a call to GC.KeepAlive() is added, making it ineligible for garbage collection and thereby ensuring the processing can complete normally.

Along with the using keyword, this is another useful technique for C# developers to ensure the continued existence of a reference to an object that is at risk of being prematurely reclaimed by the garbage collector. This might happen when there are no references to the object in managed code or data, but the object is still in use in Mako’s unmanaged code.

MAKO-4023

Fix UWP build


The Mako distribution for UWP/WinRT (Universal Windows Platform/Windows Runtime) was absent from Mako 6.5.0 due to a build error. It is included in this release.

Distribution

MAKO Version 6.5.1 is built for the following platforms:

  • iOS
  • macOS
  • Linux (for Debian-based distributions, eg Ubuntu, Mint)
  • Linux (Centos)
  • Linux (Red Hat Enterprise v7.0)
  • Linux (Red Hat Enterprise v8.4)
  • Linux (for Debian Buster) (arm32v7 for Raspberry Pi)
  • Linux (for Debian Bullseye) (arm64v8 for Raspberry Pi)
  • Linux (for Debian Stretch)
  • Linux (for Debian Bullseye)
  • Linux (for MUSL distributions, eg Alpine Linux)
  • Linux (for Ubuntu 20.04 LTS)
  • Windows (static and dynamic libs, VS 2019 (V142), x86 and x64)
  • Windows (static and dynamic libs, VS 2017 (V141), x64)
  • Windows UWP/WinRT

Note that the Android build has been dropped from this release pending a tooling change. Please contact Mako support if you need a Mako release for Android later than Mako 6.1.0.

Mako supports the following programming languages

  • C++ (Mako is written in C++)
  • C# (.Net Core and .Net Framework)
  • Java (built with OpenJDK11)
  • Java (built with OpenJDK15)
  • Python (v3.8)

The alternatives to C++ are built using SWIG (www.swig.org) which provides a translation to the native libraries, are found in these distribution folders:

  • Linux_SWIG_(C#-Java-Python)
  • Linux_Centos7_SWIG_(C#-Java-Python)
  • Linux_Centos8_SWIG_(C#-Java-Python)
  • Linux_Ubuntu_SWIG_(C#-Java-Python)
  • macOS_SWIG_(C#-Java-Python)
  • macOS_SWIG_(C#-Java11-Python)
  • Windows_SWIG_(C#-Java-Python)
  • Windows_SWIG_(C#-Java11-Python)