Skip to content

Commit

Permalink
Release 1.14.13
Browse files Browse the repository at this point in the history
  • Loading branch information
bertfrees committed Jun 19, 2023
2 parents 60e1d96 + 05a626c commit e9a2694
Show file tree
Hide file tree
Showing 52 changed files with 2,140 additions and 2,706 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
# Makefile
/make/java/*.java
/make/java/*.class
/src/main/jre/

# Maven
Expand Down
180 changes: 37 additions & 143 deletions Makefile

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,43 @@
Changes in release v1.14.13
===========================

## Framework

- Simplified and improved script & job API
- **NEW** Web API: added "desc" attribute to <result> elements in job XML
- **FIX** Make "log" link available in job XML also when a job errors
- Other bugfixes

## Modules

- **NEW** NIMAS support: the scripts that produce HTML, EPUB 3 and ZedAI from DTBook now also
support NIMAS as input
- **NEW** DAISY 3 Upgrader script to upgrade a DAISY 3 publication from version 1.1.0 (Z39.86-2002)
to version 2005 (Z39.86-2005)
- **NEW** Support for Z39.86-2002 in DAISY 3 to DAISY 2.02
- **NEW** Options in DAISY 3 Upgrader and DAISY 3 to DAISY 2.02 to ensure that the output uses
allowed audio file formats only (MP2, MP3 and WAVE in the case of DAISY 2.02; MP3, MPEG-4 AAC and
WAVE in the case of DAISY 3). Audio files in other formats are transcoded to MP3.
- **FIX** Preserve heading hierarchy in DTBook to HTML and DTBook to EPUB 3
- **FIX** Wrong EPUB page list heading (in Arabic instead of the requested language) when the
`xml:lang` defined in the DTBook is a three-letter code such as "eng"
- **FIX** Issue in Google TTS adapter: clicking sound at beginning of phrases
- **FIX** Issues in SAPI adapter
- Various other bugfixes
- Changes to braille production scripts, see [release notes of braille modules v1.14.14](https://github.com/daisy/pipeline-modules/blob/master/braille/NEWS.md#v11414)

## Details

See [all the closed issues of this release](https://github.com/orgs/daisy/projects/1).

Changes in release v1.14.12
===========================

## Details

- [Closed issues in pipeline-assembly](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-assembly+milestone%3Av1.14.12)
- [Closed issues in pipeline-modules](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-modules+milestone%3Av1.14.12)

Changes in release v1.14.11
===========================

Expand Down
106 changes: 25 additions & 81 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,43 @@
Assembly for the DAISY Pipeline 2 distribution
==============================================

The default Pipeline 2 distribution is assembled with the [Maven Assembly Plugin](http://maven.apache.org/plugins/maven-assembly-plugin/).
This project provides two things:

The library dependencies and list of Pipeline 2 modules are configured in the main `pom.xml` and copied in a set of goals of the `maven-dependency-plugin`.
1. A build script to package a DAISY Pipeline 2 distribution.
2. A Maven POM file for using DAISY Pipeline 2 as a library.

The project allows to build the following distributions:

- the "CLI" distribution (with the command line user interface), packaged as a ZIP (_default_)
- the "macOS Application Bundle" distribution
- the "Windows installer" distribution
- the "Debian" distribution (DEB package)
- the "Red Hat" distribution (RPM package)
- the "minimal" distribution, being a ZIP containing the updater and any files not downloaded by the updater

See the following sections for more details on how to enable these distributions.
- a ZIP for Linux/maxOS/Windows
- a "minimal" ZIP distribution that will complete itself upon first update
- a Debian package
- a Red Hat package
- a Docker image

Run `make help` to get the full list of commands.

CLI Distribution
ZIP Distribution
----------------

Build the default distribution with:
The following options are available to customize what is included in the ZIP:

make
- `--without-jre`
- `--with-jre32`
- `--without-osgi`
- `--without-persistence`
- `--without-webservice`
- `--without-cli`
- `--without-updater`
- `--with-simple-api`

On Windows and macOS, the Windows installer and macOS application bundle distributions are respectively enabled by default.

macOS Application Bundle Distribution
--------------------------------------

To build a MacOS application bundle:

make dmg

The `dmg` target will package the DAISY Pipeline as a macOS application bundle (`.app` package), and will put it inside a disk image (`.dmg` file).

The disk image is created with the [`node-appdmg` tool](https://github.com/LinusU/node-appdmg), run with a local version of Node installed by the Maven build in the `target` directory.

This distribution can only be built on a Mac.

Windows Installer Distribution
--------------------------------------

To build an installer for Windows:

make exe

The `exe` target will package the DAISY Pipeline into an executable installer.

The installer is created with [NSIS](http://nsis.sourceforge.net/Main_Page).

Note that for some reason the build script doesn't work with newer
versions of NSIS. We've tested with NSIS 3.02.1 on MacOS, NSIS 3.04 on
Debian Stretch, and NSIS 3.02.1 on CentOS 7.

To install NSIS 3.02.1 on MacOS:

brew install bertfrees/pipeline/makensis@3.02.1

To install NSIS 3.04 on Debian Buster:

apt-get install nsis

To install NSIS 3.04 on Debian Stretch:

curl -L http://ftp.br.debian.org/debian/pool/main/n/nsis/{nsis-common_3.04-1_all.deb,nsis_3.04-1_amd64.deb} -o /tmp/#1
dpkg -i /tmp/nsis*.deb
"Minimal" distribution
----------------------

To install NSIS 3.02.1 on CentOS 7 (from http://blog.shahada.abubakar.net/post/build-nsis-for-centos):
This distribution contains the updater and any files not downloaded by the updater. To build it:

curl -L https://jaist.dl.sourceforge.net/project/nsis/NSIS%203/3.02.1/{nsis-3.02.1-src.tar.bz2,nsis-3.02.1.zip} -o /tmp/#1
cd /usr/local
unzip /tmp/nsis-3.02.1.zip
rpm -Uvh http://prdownloads.sourceforge.net/scons/scons-2.5.0-1.noarch.rpm
yum install -y gcc gcc-c++ zlib-devel
cd /tmp/nsis-3.02.1-src \
scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all \
NSIS_CONFIG_CONST_DATA_PATH=no \
PREFIX=/usr/local/nsis-3.02.1/bin \
install-compiler
ln -s /usr/local/nsis-3.02.1/bin/makensis /usr/local/bin/makensis
make minimal-zip

Debian Distribution
Debian distribution
-------------------

Build a Debian package with:
Expand All @@ -101,7 +57,7 @@ To uninstall:

dpkg -r daisy-pipeline

Red Hat/CentOS Distribution
Red Hat/CentOS distribution
---------------------------

Build an RPM package with:
Expand All @@ -115,15 +71,3 @@ OS after installing rpmbuild.
To install the package:

rpm -i target/rpm/pipeline2/RPMS/x86_64/*.rpm

"Minimal" Distribution
----------------------

This distribution contains the updater and any files not downloaded by the updater. To build it:

make minimal-zip


Release Procedure
-----------------
See https://github.com/daisy/pipeline/wiki/Releasing#release-procedure.
170 changes: 170 additions & 0 deletions build-jre.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.daisy</groupId>
<artifactId>daisy</artifactId>
<version>5</version>
<relativePath />
</parent>
<groupId>org.daisy.pipeline</groupId>
<artifactId>jre</artifactId>
<version>0.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jlink-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<noHeaderFiles>true</noHeaderFiles>
<noManPages>true</noManPages>
<compress>1</compress>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>build-jre-linux</id>
<!--
this profile needs to be run with JDK 11
-->
<build>
<plugins>
<plugin>
<artifactId>maven-jlink-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id> <!-- run directly from Makefile -->
<goals>
<goal>jlink</goal>
</goals>
<configuration>
<classifier>linux</classifier>
<addModules>
<addModule>java.base</addModule>
<addModule>java.desktop</addModule>
<addModule>java.instrument</addModule>
<addModule>java.security.jgss</addModule>
<addModule>java.scripting</addModule> <!-- for gui -->
<addModule>java.sql</addModule>
<addModule>java.xml</addModule>
<addModule>jdk.management.agent</addModule>
<addModule>jdk.unsupported</addModule> <!-- for gui -->
<addModule>jdk.zipfs</addModule>
</addModules>
<modulePaths>
<modulePath>src/main/jre/OpenJDK11U-jdk_x64_linux_hotspot_11.0.13_8/jdk-11.0.13+8/jmods</modulePath>
</modulePaths>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>build-jre-mac</id>
<!--
this profile needs to be run with JDK 17
-->
<build>
<plugins>
<plugin>
<artifactId>maven-jlink-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id> <!-- run directly from Makefile -->
<configuration>
<classifier>mac</classifier>
<addModules>
<addModule>java.base</addModule>
<addModule>java.desktop</addModule>
<addModule>java.instrument</addModule>
<addModule>java.security.jgss</addModule>
<addModule>java.scripting</addModule> <!-- for gui -->
<addModule>java.sql</addModule>
<addModule>java.xml</addModule>
<addModule>jdk.management.agent</addModule>
<addModule>jdk.unsupported</addModule> <!-- for gui -->
<addModule>jdk.zipfs</addModule>
</addModules>
<modulePaths>
<modulePath>src/main/jre/OpenJDK17U-jdk_x64_mac_hotspot_17.0.3_7/jdk-17.0.3+7/Contents/Home/jmods</modulePath>
</modulePaths>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>build-jre-win32</id>
<!--
this profile needs to be run with JDK 11
-->
<build>
<plugins>
<plugin>
<artifactId>maven-jlink-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id> <!-- run directly from Makefile -->
<configuration>
<classifier>win32</classifier>
<addModules>
<addModule>java.base</addModule>
<addModule>java.desktop</addModule>
<addModule>java.instrument</addModule>
<addModule>java.sql</addModule>
<addModule>java.xml</addModule>
<addModule>jdk.management.agent</addModule>
<addModule>jdk.zipfs</addModule>
</addModules>
<modulePaths>
<modulePath>src/main/jre/OpenJDK11U-jdk_x86-32_windows_hotspot_11.0.13_8/jdk-11.0.13+8/jmods</modulePath>
</modulePaths>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>build-jre-win64</id>
<build>
<plugins>
<plugin>
<artifactId>maven-jlink-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id> <!-- run directly from Makefile -->
<configuration>
<classifier>win64</classifier>
<addModules>
<addModule>java.base</addModule>
<addModule>java.desktop</addModule>
<addModule>java.instrument</addModule>
<addModule>java.sql</addModule>
<addModule>java.xml</addModule>
<addModule>jdk.management.agent</addModule>
<addModule>jdk.zipfs</addModule>
</addModules>
<modulePaths>
<modulePath>src/main/jre/OpenJDK11U-jdk_x64_windows_hotspot_11.0.13_8/jdk-11.0.13+8/jmods</modulePath>
</modulePaths>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
2 changes: 2 additions & 0 deletions make/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/recipes/
.DS_Store
11 changes: 0 additions & 11 deletions make/Makefile

This file was deleted.

21 changes: 21 additions & 0 deletions make/enable-java-shell.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ifneq ($(firstword $(sort $(MAKE_VERSION) 3.82)), 3.82)
$(error "GNU Make 3.82 is required to run this script")
endif

ifeq ($(OS),Windows_NT)
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))eval-java.exe
else
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))eval-java
endif
.SHELLFLAGS :=

JAVA_VERSION := $(shell println(getJavaVersion());)

ifeq ($(JAVA_VERSION),)
# probably because java not found or exited with a UnsupportedClassVersionError
$(error "Java 8 is required to run this script")
else ifeq ($(shell println($(JAVA_VERSION) >= 8);), false)
$(error "Java 8 is required to run this script")
endif

OS := $(shell println(getOS());)
Binary file modified make/eval-java
Binary file not shown.
Loading

0 comments on commit e9a2694

Please sign in to comment.