Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v1.14.20 #231

Merged
merged 21 commits into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 61 additions & 31 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -112,34 +112,64 @@ ifeq ($(OS), MACOSX)
if (identities.isEmpty()) \
err.println("No identity found to sign code"); \
else { \
// replace signature of binary files within jars \
String id = identities.size() == 1 ? identities.get(0) : null; \
File tmpDir = new File("target/codesign-workaround/"); \
File jar = new File("target/jars/common/com.microsoft.cognitiveservices.speech.client-sdk-1.27.0.jar"); \
File unzipDir = new File(tmpDir, jar.getName().replaceAll(".jar$$", "")); \
mkdirs(unzipDir); \
// FIXME: not using unzip() because it currently does not preserve file permissions \
//unzip(jar, unzipDir); \
exitOnError(captureOutput(err::println, unzipDir, "unzip", jar.getAbsolutePath())); \
// replace signature of *.extension.kws.ort.dylib files \
for (File f : glob(unzipDir.getPath() + "/ASSETS/osx-*/*.extension.kws.ort.dylib")) { \
exitOnError(captureOutput(err::println, "codesign", "--remove-signature", f.getPath())); \
if (id == null) { \
err.println("Choose identity to sign code (move with arrows and press ENTER):"); \
try { \
id = identities.get(prompt(identityDescriptions)); \
} catch (IOException e) { \
System.exit(1); \
} \
LinkedList<String> paths = new LinkedList<>(); \
LinkedList<File> unpacked = new LinkedList<>(); \
for (String p : new String[]{ \
"com.microsoft.cognitiveservices.speech.client-sdk-*.jar/ASSETS/osx-*/*.extension.kws.ort.dylib", \
"net.java.dev.jna.jna-*.jar/com/sun/jna/darwin-*/libjnidispatch.jnilib", \
"org.daisy.libs.io.bit3.jsass-*.jar/darwin-*/libjsass.dylib", \
"*.audio-encoder-lame-*.jar/macosx/lame", \
"mac/*.libhyphen-utils-*-mac.jar/native/macosx/*/libhyphen.dylib", \
"mac/*.liblouis-utils-*-mac.jar/native/macosx/*/liblouis.dylib", \
"mac/*.liblouis-utils-*-mac.jar/native/macosx/*/liblouisutdml/file2brl", \
"mac/*.liblouis-utils-*-mac.jar/native/macosx/*/liblouisutdml/*.dylib", \
"*.tts-adapter-acapela-3.1.5.jar/jnaerator-0.11-p1.jar/com/sun/jna/darwin/libjnidispatch.jnilib" \
}) \
paths.add("target/jars/common/" + p); \
while (!paths.isEmpty()) { \
String p = paths.pop(); \
String jarPath = p.substring(0, p.indexOf(".jar") + 4); \
File jar = glob(jarPath).get(0); \
File unpackDir = new File(jar.getParentFile(), jar.getName().replaceAll(".jar$$", "")); \
if (!unpackDir.exists()) { \
mkdirs(unpackDir); \
// FIXME: not using unzip() because it currently does not preserve file permissions \
//unzip(jar, unpackDir); \
exitOnError(captureOutput(err::println, unpackDir, "unzip", jar.getAbsolutePath())); \
unpacked.push(unpackDir); } \
p = p.substring(jarPath.length()); \
if (p.contains(".jar")) \
paths.add(unpackDir.getPath() + p); \
else { \
for (File f : glob(unpackDir.getPath() + p)) { \
exitOnError(captureOutput(err::println, "codesign", "--remove-signature", f.getPath())); \
if (id == null) { \
err.println("Choose identity to sign code (move with arrows and press ENTER):"); \
try { \
id = identities.get(prompt(identityDescriptions)); \
} catch (IOException e) { \
System.exit(1); \
} \
} \
if (f.getName().matches(".*\\.(dylib|jnilib)$$")) \
exitOnError(captureOutput(err::println, "codesign", "-s", id, "-v", f.getPath())); \
else \
exitOnError(captureOutput(err::println, "codesign", "--options", "runtime", \
"-s", id, "-v", f.getPath())); \
exitOnError(captureOutput(err::println, "codesign", "--verify", "-v", f.getPath())); \
if (!f.getName().matches(".*\\.(dylib|jnilib)$$")) \
exitOnError(captureOutput(err::println, "codesign", "--display", "-v", f.getPath())); } \
} \
exitOnError(captureOutput(err::println, "codesign", "-s", id, "-v", f.getPath())); } \
// delete META-INF folder with signature files \
rm(new File(unzipDir, "META-INF")); \
File fixedJar = new File(tmpDir, jar.getName()); \
exitOnError( \
captureOutput(err::println, "jar", "cvf", fixedJar.getPath(), "-C", unzipDir.getPath(), ".")); \
rm(jar); \
cp(fixedJar, jar); \
rm(tmpDir); \
} \
for (File f : unpacked) { \
File jar = new File(f.getAbsolutePath() + ".jar"); \
rm(jar); \
exitOnError( \
captureOutput(err::println, "ditto", "-c", "-k", f.getPath(), jar.getPath())); \
rm(f); \
} \
}
endif
exec("$(MVN)", "assembly:single", "-Passemble-mac-zip");
Expand Down Expand Up @@ -219,7 +249,7 @@ ifneq ($(OS), WINDOWS)
.PHONY : docker
# Note that when `docker' is enabled together with other targets, it is as if --without-osgi was also specified.
docker : mvn -Pwithout-osgi \
target/maven-jlink/classifiers/linux \
jre/target/maven-jlink/classifiers/linux \
target/assembly-$(assembly/VERSION)-linux/daisy-pipeline/bin/pipeline2
ifndef DUMP_PROFILES
mkdirs("target/docker"); \
Expand Down Expand Up @@ -249,9 +279,9 @@ dev-launcher : target/dev-launcher/pipeline2
target/dev-launcher/pipeline2 : pom.xml
ifdef BUILD_JRE_FOR_DEV_LAUNCHER
ifeq ($(OS), MACOSX)
target/dev-launcher/pipeline2 : target/maven-jlink/classifiers/mac target/assembly-$(assembly/VERSION)-mac/daisy-pipeline/bin/pipeline2
target/dev-launcher/pipeline2 : jre/target/maven-jlink/classifiers/mac target/assembly-$(assembly/VERSION)-mac/daisy-pipeline/bin/pipeline2
else
target/dev-launcher/pipeline2 : target/maven-jlink/classifiers/linux target/assembly-$(assembly/VERSION)-linux/daisy-pipeline/bin/pipeline2
target/dev-launcher/pipeline2 : jre/target/maven-jlink/classifiers/linux target/assembly-$(assembly/VERSION)-linux/daisy-pipeline/bin/pipeline2
endif
ifndef DUMP_PROFILES
mkdirs("$(dir $@)"); \
Expand All @@ -278,8 +308,8 @@ ifndef DUMP_PROFILES
endif
endif

target/maven-jlink/classifiers/mac : mvn -Pbuild-jre-mac
target/maven-jlink/classifiers/linux : mvn -Pbuild-jre-linux
jre/target/maven-jlink/classifiers/mac : mvn -Pbuild-jre-mac
jre/target/maven-jlink/classifiers/linux : mvn -Pbuild-jre-linux

target/assembly-$(assembly/VERSION)-mac/daisy-pipeline/bin/pipeline2 : mvn -Pcopy-artifacts \
-Pgenerate-release-descriptor \
Expand Down
23 changes: 23 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
Changes in release v1.14.20
===========================

## Framework

- **NEW** API for voice previews
- **NEW** Allow setting `org.daisy.pipeline.tts.config` property through settings API
- **FIX** Remove error stack traces from webservice responses
- **FIX** Java API: Make job input parser more relaxed about boolean option values

## Modules

- **NEW** Support for Microsoft natural voices over [NaturalVoicesSAPIAdapter](https://github.com/gexgd0419/NaturalVoiceSAPIAdapter)
- **FIX** Support standard CSS's `voice-family` property (backward compatibility with the old behavior is ensured)
- **FIX** Compatibility with espeak-ng
- **FIX** Wrong doctype declaration of SMIL files in output of DAISY 3 to DAISY 2.02
- **FIX** Indent TTS log output
- Various other bugfixes and improvements

## Details

See [all the closed issues of this release](https://github.com/orgs/daisy/projects/6). To view using the [Github CLI](https://cli.github.com/): `gh project --owner daisy item-list 6`

Changes in release v1.14.19
===========================

Expand Down
Binary file added make/bin/darwin_arm64/eval-java
Binary file not shown.
Binary file added make/bin/linux_arm64/eval-java
Binary file not shown.
14 changes: 12 additions & 2 deletions make/enable-java-shell.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,21 @@ endif
ifeq ($(OS),Windows_NT)
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/windows_amd64/eval-java.exe
else
ifeq ($(shell uname -s),Darwin)
UNAME_S := $(shell uname -s)
UNAME_P := $(shell uname -p)
ifeq ($(UNAME_S),Darwin)
ifneq ($(filter arm%,$(UNAME_P))$(filter aarch%,$(UNAME_P)),)
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/darwin_arm64/eval-java
else
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/darwin_amd64/eval-java
endif
else
ifeq ($(UNAME_S),Linux)
ifneq ($(filter arm%,$(UNAME_P))$(filter aarch%,$(UNAME_P)),)
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/linux_arm64/eval-java
else
ifeq ($(shell uname -s),Linux)
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/linux_amd64/eval-java
endif
else
SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/windows_amd64/eval-java.exe
endif
Expand Down
12 changes: 9 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</parent>
<groupId>org.daisy.pipeline</groupId>
<artifactId>assembly</artifactId>
<version>1.14.20-SNAPSHOT</version>
<version>1.14.21-SNAPSHOT</version>
<packaging>jar</packaging>
<name>DAISY Pipeline 2 :: Assembly</name>
<description>Builds the main distribution of the DAISY Pipeline 2.</description>
Expand Down Expand Up @@ -69,17 +69,23 @@
<dependency>
<groupId>org.daisy.pipeline</groupId>
<artifactId>framework-bom</artifactId>
<version>1.14.19</version>
<version>1.14.20</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.daisy.pipeline.modules</groupId>
<artifactId>modules-bom</artifactId>
<version>1.14.26</version>
<version>1.14.29</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- temporary until updated to modules 1.14.29 -->
<dependency>
<groupId>com.microsoft.cognitiveservices.speech</groupId>
<artifactId>client-sdk</artifactId>
<version>1.37.0</version>
</dependency>
<!-- missing from framework-bom -->
<dependency>
<groupId>com.nwalsh</groupId>
Expand Down
Loading
Loading