From 3c168c48daa3c5bc962e9d86c1bafab7ede011be Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Fri, 4 Apr 2025 16:13:35 +0200 Subject: [PATCH 01/11] Update to CLI 2.3.0 --- .mvn/settings.xml | 20 ++++++++++++++++++ pom.xml | 2 +- src/main/resources/cli/config.yml | 34 +++++++++++++++++++++---------- 3 files changed, 44 insertions(+), 12 deletions(-) diff --git a/.mvn/settings.xml b/.mvn/settings.xml index f1e43075..bcf61232 100644 --- a/.mvn/settings.xml +++ b/.mvn/settings.xml @@ -50,9 +50,29 @@ + + staged-releases + + false + + + + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/content/groups/staging/ + + true + + + false + + + + central-https snapshots + staged-releases diff --git a/pom.xml b/pom.xml index 48ddbd47..0150db8e 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ HEAD - 2.2.1 + 2.3.0 Qds;T{K9`wk*-(k(yP41f`993v>k{^6f0}LKe42d-4}$gA%rT0( zuA2{Y_T||0eL3@TDL5~;JQrS3E=uWbp3YsLYg5)90{ zQC~b18w6^wWEgNn%PGpvl()o?-b(pa%!1lp(vZKDwlz&bOUk(8bEXLm({k?4u`ER@ zM8PuAL!ZY}9=B8A@s#INLKh)|1CA-X9xymhF@dd?F7vfaY<|pZG@I!0K!YobKGZ0h zL>o{js+3$?Ij-^%R)zdbnIi;oK@j*EtS^c{h+>A=#(f#D;JD0+N?0TA%XlUsNEX(J zy&1 zs1+&+m^*5HR*T?gwH~cQ=EZgXQHRh!>b$Jb%XQvU=sns_=rH&tG`TJg)(ap^wJfar zv0^{2d!(+wouC5*V{MNva0l|g$_K(%`4ekdCNB(BNKw&Vn5i`<<;ACz8J~Ywe&ov8 z<|;c)x8}c@5Yot3ZBz2+cifVSAgpu>GU$8PrGHKSP*()HChZ;kmrbtZV<05?*S*sXh5OwV!mh z%|Gev$!8OueD)(}1MQKsw<)yk>^Bv9^X&QO5PIaCt#Y=W^Y%GJzJ1Ppzaw%y;%J|>JJv3BWPrWZoX}}aSYD2`n{!5`h`DFIdA4$@RdVm68FI$~7dHyj zg0>57)K^u`-%#*LL29qrruS@fTm-y(cPZQEVJ?qP}vRryoAjT^C z@~lVOCszbFF?JO&6{^y(P3`~LUSQ60)x^O3v;FQwFkdqE2~h9*-PYe_&$k8uqQBXZ zXb-mj?)~3Yf&V^8PAIt=tTs^G2prL&c&Gr<-m$9jKq(5w(wvfllUNm;13I2085^9_5)`V^T62)&h~~w z>I)#|XwoC15|?Z%xEQ)7-h z1CSUzX==n39DB|@awc44+*!

>f1t91Dse!R$G6|CuysKN%BN>~Uw^eHO8gob$vv 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

m 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�HnCwGw28CF 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 m*?Y8iwE4Y?u(OkA8KZ`~Lugp(^D7 diff --git a/make/enable-java-shell.mk b/make/enable-java-shell.mk index 80b7674e..76fbc7b8 100644 --- a/make/enable-java-shell.mk +++ b/make/enable-java-shell.mk @@ -2,38 +2,77 @@ 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)))bin/windows_amd64/eval-java.exe +ifneq (,$(findstring Windows,$(OS))$(findstring WINDOWS,$(OS))) +EVAL_JAVA := $(dir $(lastword $(MAKEFILE_LIST)))bin/windows_amd64/eval-java.exe +SHELL := $(EVAL_JAVA) else +ifneq ($(patsubst %.exe,%,$(notdir $(SHELL))),eval-java) UNAME_S := $(shell uname -s) -UNAME_P := $(shell uname -p) +UNAME_P := $(shell uname -m) ifeq ($(UNAME_S),Darwin) ifneq ($(filter arm%,$(UNAME_P))$(filter aarch%,$(UNAME_P)),) -SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/darwin_arm64/eval-java +EVAL_JAVA := $(dir $(lastword $(MAKEFILE_LIST)))bin/darwin_arm64/eval-java else -SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/darwin_amd64/eval-java +EVAL_JAVA := $(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 +EVAL_JAVA := $(dir $(lastword $(MAKEFILE_LIST)))bin/linux_arm64/eval-java else -SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/linux_amd64/eval-java +EVAL_JAVA := $(dir $(lastword $(MAKEFILE_LIST)))bin/linux_amd64/eval-java endif +endif +ifneq ($(shell \ + if ! $(EVAL_JAVA) --verify 2>/dev/null; then \ + echo "$(EVAL_JAVA) can not be executed on this platform. Compiling it from source" >&2; \ + echo "cc $(dir $(lastword $(MAKEFILE_LIST)))eval-java.c -o $(EVAL_JAVA)" >&2; \ + cc $(dir $(lastword $(MAKEFILE_LIST)))eval-java.c -o $(EVAL_JAVA); \ + fi; \ + echo $$? ),0) +$(error Failed to compile eval-java.c) else -SHELL := $(dir $(lastword $(MAKEFILE_LIST)))bin/windows_amd64/eval-java.exe +SHELL := $(EVAL_JAVA) endif endif endif + .SHELLFLAGS := +# Reset environment variables to avoid pass-through, when one Makefile +# invokes make in another directory. +CLASSPATH := +IMPORTS := +STATIC_IMPORTS := +JAVA_REPL_PORT := +unexport CLASSPATH IMPORTS STATIC_IMPORTS JAVA_REPL_PORT + 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") +$(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") +$(error Java 8 is required to run this script) endif OS := $(shell println(getOS());) + +ifneq ($(OS), WINDOWS) +export JAVA_REPL_KILL_AFTER_IDLE := 10 +# The following is not enabled by default, because starting the server +# now means that any changes to environment variables after the +# include of enable-java-shell.mk will not be noticed by +# java-eval. This includes the environment variables JAVA_HOME, IMPORTS +# and STATIC_IMPORTS, and any other environment variables used by a +# recipe. Users may optionally include this line in their Makefile, at +# a position of their liking. +#export JAVA_REPL_PORT := $(shell --spawn-repl-server) +endif + +# utility function for helping with the migration from bash to java shell +define \n + + +endef +quote-for-java = "$(subst ${\n},\n,$(subst ",\",$(subst \,\\,$(1))))" +bash = exec("bash", "-c", $(call quote-for-java,$1)); diff --git a/make/eval-java.c b/make/eval-java.c new file mode 100644 index 00000000..abd3c661 --- /dev/null +++ b/make/eval-java.c @@ -0,0 +1,281 @@ +#include +#include +#include +#include +#include +#ifdef _WIN32 +#include +#else +#include +#include +#include +#include +#include +#endif + +char *quote(char *string) { + int len = strlen(string); + int new_len = len + 2; + for (int i = 0; i < len; i++) { + int k = 0; + while (i + k < len && string[i + k] == '\\') + k++; + if (string[i + k] == '"') + new_len++; + } + char *quoted = malloc(new_len + 1); + int j = 0; + quoted[j++] = '"'; + for (int i = 0; i < len; i++) { + int k = 0; + while (i + k < len && string[i + k] == '\\') + k++; + if (string[i + k] == '"') + quoted[j++] = '\\'; + quoted[j++] = string[i]; + } + quoted[j++] = '"'; + quoted[j++] = '\0'; + return quoted; +} + +#ifdef _WIN32 +#define PATH_SEPARATOR ';' +#else +#define PATH_SEPARATOR ':' +#endif + +void exec_java(char *this_executable, char *java_executable, char *java_code, int argc, char **argv) { + char *classpath = malloc(strlen(this_executable) + strlen("/../../..") + 1); + *classpath = '\0'; + strcat(classpath, this_executable); + strcat(classpath, "/../../.."); +#ifdef _WIN32 + char **java_argv = malloc((8 + argc) * sizeof (char *)); +#else + char **java_argv = malloc((7 + argc) * sizeof (char *)); +#endif + int i = 0; + java_argv[i++] = java_executable; + java_argv[i++] = "-classpath"; + java_argv[i++] = classpath; +#ifdef _WIN32 + // to work around a bug in ProcessBuilder + java_argv[i++] = "-Djdk.lang.Process.allowAmbiguousCommands=false"; +#endif + java_argv[i++] = "eval_java"; + java_argv[i++] = this_executable; + java_argv[i++] = java_code; + for (int j = 0; j < argc; j++) + java_argv[i++] = argv[j]; + java_argv[i] = NULL; +#ifdef _WIN32 + // because of how spawnvp works we need to quote the arguments + // (see https://docs.microsoft.com/en-us/cpp/c-runtime-library/spawn-wspawn-functions) + for (i = 0; java_argv[i]; i++) + java_argv[i] = quote(java_argv[i]); + int child_status = spawnvp(P_WAIT, java_executable, java_argv); + if (child_status == -1) { + fprintf(stderr, "%s: error running command `%s' (%s)\n", this_executable, java_executable, strerror(errno)); + exit(EXIT_FAILURE); + } + exit(child_status); +#else + pid_t child_pid; + pid_t w; + int child_status; + child_pid = fork(); + if (child_pid == -1) { + perror("fork"); + exit(EXIT_FAILURE); + } else if (child_pid == 0) { + execvp(java_executable, java_argv); + // command above only returns if error occurs + fprintf(stderr, "%s: error running command `%s' (%s)\n", this_executable, java_executable, strerror(errno)); + exit(EXIT_FAILURE); + } else { + do { + w = waitpid(child_pid, &child_status, 0); + if (w == -1) { + perror("waitpid"); + exit(EXIT_FAILURE); + } + if (WIFEXITED(child_status)) + // Note that trying to run this class with Java < 8 will result in: + // + // Exception in thread "main" java.lang.UnsupportedClassVersionError: eval_java : + // Unsupported major.minor version 52.0 + // + // This error can not be caught in Java and because the exit code is 1 it can not be + // caught in C either. + exit(WEXITSTATUS(child_status)); + else { + fprintf(stderr, "%s: command `%s' did not exit normally\n", this_executable, java_executable); + exit(EXIT_FAILURE); + } + } while (!WIFEXITED(child_status)); + } + exit(EXIT_SUCCESS); +#endif +} + +#ifndef _WIN32 +void exec_java_repl_client(char *this_executable, char *java_code, int port) { + int sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd == -1) + // Failed to create socket. This should not happen, but fall back to evaluating Java + // directly. + return; + struct sockaddr_in servaddr; + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); + servaddr.sin_port = htons(port); + if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) != 0) + // Failed to connect to REPL on address 127.0.0.1 and specified port. Perhaps the server was + // started but was stopped in the meantime. Fall back to evaluating Java directly. + return; + write(sockfd, java_code, strlen(java_code)); + static char NEWLINE = '\n'; + write(sockfd, &NEWLINE, 1); + FILE *in_stream= fdopen(sockfd, "r"); + unsigned int buflen = 1000; + char buf[buflen]; + int new_line = 1; + FILE *out_stream = stdout; + int exit_value = 0; + int done = 0; + for (;;) { + bzero(buf, buflen); + if (fgets(buf, buflen, in_stream) == NULL) + break; + if (done) + goto unexpected; + if (new_line) { + switch (buf[0]) { + case '1': + out_stream = stdout; + break; + case '2': + out_stream = stderr; + break; + case 'x': + if (buf[1] != ':') + goto unexpected; + intmax_t v = strtoimax(&buf[2], NULL, 10); + if (errno) { + fprintf(stderr, "%s: could not parse exit value: %s\n", this_executable, &buf[2]); + fflush(stdout); + fflush(stderr); + exit(EXIT_FAILURE); + } + exit_value = v; + done = 1; + continue; + default: + goto unexpected; + } + if (buf[1] != ':') + goto unexpected; + fprintf(out_stream, "%s", &buf[2]); + } else + fprintf(out_stream, "%s", buf); + new_line = (buf[strlen(buf) - 1] == '\n'); + } + if (!done) { + fprintf(stderr, "%s: server hung up without providing exit value. System.exit() might have been called.\n", this_executable); + exit_value = 1; + } + cleanup: + fclose(in_stream); + close(sockfd); + fflush(stdout); + fflush(stderr); + exit(exit_value); + unexpected: + fprintf(stderr, "%s: received unexpected message from server: %s\n", this_executable, buf); + exit_value = 1; + goto cleanup; +} +#endif + +int main(int argc, char **argv) { + char *this_executable_path = argv[0]; + if (argc < 2) { + fprintf(stderr, "%s: expected at least one argument\n", argv[0]); + exit(EXIT_FAILURE); + } + if (argc == 2 && strcmp(argv[1], "--verify") == 0) + // just checking that the binary can be executed on the current platform + exit(EXIT_SUCCESS); + char *java_code = argv[1]; + int extra_argc = 0; + char **extra_argv = NULL; + if (argc > 2) { + if (strcmp(argv[2], "--") != 0) { + fprintf(stderr, "%s: unexpected argument: %s\n", argv[0], argv[2]); + exit(EXIT_FAILURE); + } + extra_argc = argc - 3; + extra_argv = &argv[3]; + } +#ifndef _WIN32 + if (extra_argc == 0) { + char *JAVA_REPL_PORT = getenv("JAVA_REPL_PORT"); + if (JAVA_REPL_PORT && *JAVA_REPL_PORT) { + // try to connect with REPL + intmax_t port = strtoimax(JAVA_REPL_PORT, NULL, 10); + if (errno) { + fprintf(stderr, "%s: could not parse JAVA_REPL_PORT: %s\n", this_executable_path, JAVA_REPL_PORT); + exit(EXIT_FAILURE); + } + if (port < 0 || port > 65535) { + fprintf(stderr, "%s: not a valid port number: %jd\n", this_executable_path, port); + exit(EXIT_FAILURE); + } + exec_java_repl_client(this_executable_path, java_code, port); + } + } +#endif + char *JAVA_HOME = getenv("JAVA_HOME"); + if (JAVA_HOME) { + char *java = malloc(strlen(JAVA_HOME) + 14); + strcpy(java, JAVA_HOME); +#ifdef _WIN32 + strcat(java, "\\bin\\java.exe"); +#else + strcat(java, "/bin/java"); +#endif + FILE *f; + if ((f = fopen(java, "r"))) { + fclose(f); + exec_java(this_executable_path, java, java_code, extra_argc, extra_argv); + } + free(java); + } + char *PATH = strdup(getenv("PATH")); + char *dir = PATH; + char *sep = NULL; + do { + sep = strchr(dir, PATH_SEPARATOR); + if (sep != NULL) + sep[0] = '\0'; + char *java = malloc(strlen(dir) + 10); + strcpy(java, dir); +#ifdef _WIN32 + strcat(java, "\\java.exe"); +#else + strcat(java, "/java"); +#endif + FILE *f; + if ((f = fopen(java, "r"))) { + fclose(f); + exec_java(this_executable_path, java, java_code, extra_argc, extra_argv); + } + free(java); + dir = sep ? sep + 1 : NULL; + } while (dir != NULL); + free(PATH); + fprintf(stderr, "%s: Java is required to run this script (but not found in JAVA_HOME or on PATH)\n", this_executable_path); + exit(EXIT_FAILURE); +} diff --git a/make/eval_java$MultiplexedOutputStream.class b/make/eval_java$MultiplexedOutputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..cf7a7e5d66023e24f8bb47714129174cee96a3f1 GIT binary patch literal 1292 zcmZ`(Yi|r;6n@U`PDiJsR;|`$7j@n4qVAW{s$Ip>5~&CwVcNcpVeM|_QstA|2ls12 zd{9O3S)$v7M8rq`!p}g0bEdk~<-CmaIivOGefKyaoD|yRZqMpH*=3c2st#^zbPV>Y zl4lnSu8u9dp*LT2d85%?^qpR{-Igx3YQV}L6=ll>2#Il({~X&y9E}3)Cbpu%#4OA< zQ7_R9%rr4isu^TWY(s~M?P%1o!^BSH1a=ARHnCXJorK29;S0O`yl0p4YEbq4?g63U zzZElAC@3eJw_I1b?Be*~EX-5R#4e%38N#%2Ms9D#8p6!~xG%1Ti@wL7z_rh^Rcv&Q zP~#OV&TuK&B%L)!xr&*w@e?MVuAO#lk2^$?Iq9k=4`*^gq;Vvf>WUHUV2rOH5JsK& z%2AzI8?0=0P$B*R3BJs8_$|lGFt3fNx1d9#2#q3~O1(zpJ!k}4Dm{X#RD1;bD<<)^ zWUPnA;W^aMdDPPd%%+Q&N0+$DpAVs+?I-3$m^+Xf#UyU0l~Fx}6JwFlIkwh>Tf=RM z^t-2MOD9%GjbW_dLKQ!H8K#8MmY+d7o`@Wa_mweO(q+{0YwM*jz5MOxLOSo9)(_(uK|ewkO|N=K?ZHdG*dt&A5n%9twS z^YfQLA(X+4I$^LtHg4K49g9)TIv%l(A=dF24K$4T^aN>oijDLP?erYm=tVHA2KtKj W-{uQpNnl74n|YPrSPUDn3C0f^$`KR* literal 0 HcmV?d00001 diff --git a/make/eval_java.class b/make/eval_java.class index e2f3b6a1932405ac04e03a3a38527f2acc05a273..f58226f9a1957f45079bea4916293ec59e503f5c 100644 GIT binary patch literal 14146 zcma)D34B!5)j#LHnRzdh2ZVv3!x|A4LKb!*AQ}QlAPGni44^Pf9xyVQi8B)xx2jdE zqE@Z8qP8wo(^jmCH3=Z#Qqj7vRoiN{t#xT@tF^AweE;*71A0+R+d+)jDp8cGA z-^!<#HJ(J>w0Y5T;c;F^tBfJf6%`bUr>z`CMY~ zRJl)+ONCsfhv`I~A(s=v0Gw&?iGt@O!Bc7QEJ0BvjoCWS3DaO_&AA4joX_*PT43kP zWr4vpvSzKpb%JQ2!HcAQiVQ9`xZdC;VLp|Y%4L~cPSc1wJ9Ta_c)3urB1~mmuJcNr zPY=^XK11hK2Coj&WG**2X7Cz=<1)}_uqF4kVP41Ubx!DfW|&Um4Z=lI*lm(aN`})y zOS4?gl1oO|$qHP~;1;28W0*JbX1Rd>O`OwtOPCh%**c$N@VNqhUYO74@92DiG%hsw zB0=oA(yQNUup1F248LP_YJM+jYJ-Oc(Jl4Zcr??iaN^VDJuuJ~jA3gMTGZ59!=yaJy))BSOS`^LZaX zl82E;!~7UOF3n#X{6v_px`LShG`dnB@+2s=WldA5T?ES z-!SdrZ{^Yn%Ti=0282>#OW!k;W~hLnf`$qiN*9vT5SKFKl4q!}U@S+s%9o32s6OaX zeGSzwtO`_rxkO;VYJi~z8mdsH4Kmabaz7FhR?)B;tcK`nXjlzX!(mlwgszGN*HJ>n zNL}enN7S|?bBX4pwb^Q1*ph2*$<^mFR;-E1tWKq@OjRzE=nXT~daC;~mcktSc zJiDr|T@~wUtgcG1V#aF5ieMLLG&ImPdij`Y+a8Yx>)Gbmrqp5p)mxd3 zRt65p6rQs=ZZ+o;=@fLVH8oCVI<^-I#`w5!iPBZ6t{{wZD0-chn-8fkwK7>?f(~-& zQy14T4R=v_Cg7q;S-EnIPls)S#(27UOShl^TAk`L!|7f6^&97OTQA92)0)QED3SB1 z2{6Xd)ni;idHA6`KhSulWBj}=%B15~Hap$V+|qQS5p<0^Xe!#qjCj(usBnF{B@?&A zs=>Svuu6=sOfDwI75GlqF6C0qP`G2?8=! zJke}r%U#OUER+5&Yxna8Tt75<7#EoI51TG~J=+5-Gnv>HaYK_nrhmdfl8H62J5yDG zN;O-}G1Xjk0(1!0Gp0IO&4asE)l}BkFRENJ&s5bM#iW(lv8I}@7MQ9=)k3hPevTo) z`ISp6S1q2isAkoog^QQKt4vj=7Mg02I>l6rxqxY8w+O0}No!p!iTKmfWTkRl=F1eV zOXrGWMbJi~v8Xwn$rYt+Kd&ef3Dq-==*HqifVt^RQ_PQ|(1sB6aa^Q69p7Mq`G1Qr z2iSvRp9_7f4qRlfBuj6MC6W?TDvFp&>e5APGnVBL(lu0+NEKxeF0G;!Q^$=PS5h=} z+_Y(@!(oKp3h>Y^iv`s+HLEJ;E}64=K6opEyH~ahTjsTp($x zCWUx1pqB_}vd($PDd}ukD%OM*(i}BavzVj4DUoVSZ_1kLECnmf&}X_rcq{1EzZ1hu zl@q6F5vvU3GA)t~=2XpF2qPBIvP8P9m}y8h7t1B$MRu34RaUpE#>fhbUSnI6K(iiFO%i5{e26Weizm<8D_3B#j4;XUa`X!Z1 zs;gFYb?7cQ45_Gi<;qcB(6F7@Ua1`EHD_f~rrM}BnQF7zqN}q_b&fb_>X>Xe+}yGz z2`24$P_)AK;kwG&Ij0w$(>3NUvJoM&NRsAgM~W*>FN&v|nqsL&$*pkA?3kjQC_Y=% zrGLR9tDJ}bJruEU&6!p_2bCq7Y?p=Tr-$8VQ=O~MV`2oi^VN3%;{>f$CLbwe=liHM z)dlK8JIe%)Kqt>yL5H8san-7s3=VJGxc*67pD4!L|-QXxkn(9~TAt9*ERPCz6R6Er!*KwRe(q6z+ zyVb+G+GDD{Y9G^Bn_pYl8Eb747K0*TV>%AMOsAH_GN?bgVu-08QI8^Ic&;`Z`9LFwx2tsc)2DnWkS~iC~LaOsY}JKh7rDS2@YO@km`s;K zLp@`vXC;D7Q_sOqR!T@TTP3j`)ReWk z8N#(1i;z}Ogh^(3N!6O_WeN2|<|4siESD~_3zs6v*+p*Q0%~4?gVfHRtgBZ|^_u#v zsa{uaNL})#TM3n+=yd8sHNH&N#6VzWSsCo@9Q8X>{a*b+S8tg-T)pkdSd6YVmRyTO zZ8f4~?2;hLY*YPFy(2m2U9Zw|P1IC>LdxQ!cx1O3dKIV}gI)cma)`nZwH>$1WxA8` znFe~o_s0t_xAm-15sz(P+a0A?>am6!9GFIR1NGvwuBW2$o^HhM z&IjfcL-y*v-a>zQ?PLe1R)>Qwib;@iYUYB`Zq41TmJs$uu_Ur|4;)TjbJF&+-#*9nM!-3>W~eM8@@4dD0UM6W7x>09oAqa9v`+KT!xXT znx*ba%0_5yvL%acZ9qZ}ZorH!<T&qUk@{+u?M}O^0af zQ2)Ty!EAOJ)OnB$Jv~5%Apl#cji4*roD_nN>rFJh6kC`I4zf8Af&C>g8O^aw)~Zg4 z{CmSu4JjbTv{(z*%HFz%Kru_)4w5z?COZ%xq$E%6hX|%yNoLl{)u-J8Qk0D#-3)35 zcq-}kW-QbXjQ8~9BRx2X(mw*=!QJZVF;XSEJKW%M8B}tT&~1;tzzwvTT`$UB+1HQk z>LbKAfC)jcSPg_ncGKerkOe~k0gXLi{9fR}%#l(x7*D3NVkjVC)|Q-DQ~(x*=n&k5 zFo2QZ=oPbMN*|bBJ-k1Iyl24(Jqm0y?<(qSD|L!$JNDVTMIgGonONJGR#6w7TvE0?ZGZ^9uIPLxn-qyEg~Tnq1KyBM-+e8ZAVERJC( zkJ{+`=Pck6CsR#QVP@wvH49oDGKHVtl=%jER1$_b=!j zC-~;qI+HNpDWwh_0(Wu>07fd4IKv5?nHEbr>9A|~9HSa#y=<|(b$f=QkfhES3}l)g zm&>Z((GTl#!nI2q(`-MM9$fn<>d}8_Bn84y(}u=G#*S#tJTIP!@eT5?;RP?TQgPzS zHQ98sC1*LOg`uo_SUJRVB3rahuN+C@By)OL{aO9xpku9Gxb3pRk?#6kH2GL_$$_UJ zxg=prBYG^nwj~vplC*rT`_NP6J?KI}Xo@v6O?8*EDL)i}E5Ba&f}1wu%(UJ@D30aQ zu*o6awS&7F*IMWorgnQGLf3+?YVhC{uAJaHL)dw%u!xX#Z8npda z@`c|fyhAvz;?Z82zN%XN7RqcuahDl3%DESAOmJn5x1I+h-+$x2$QBR6Nr!(cWMWgKKV! z9F61s*?a1*66|6d5Da^or4O46-NRN68HQ=X)ewKP>sxX-NJ-VDH~E;i#V3WXSj47S zB8PJ{S^j;|trtH1aa{&K5b^t2=rVPb13q`rb7?z|FirLgq*rLK8uG8zqfm4V1&-ow zk-c_L9Xq{XrVw0LrBR)1&iS^v*ok?BJK3ds2aGvmy!7U7KBoJkg%62sT7}5gz2Wz2 zibK##IMflrodWL!zlFJxX!+rmJGdXD_6K{jt#}fJc%yS1aZrkJar)DO%|Z`<_BP-S z2B7twg!CMPaVM}#7kliHeO#aNFXMLky{jv3L_qdIdwgHjWXlX1bj}$;j#M``)xKJ= zTd)8q@QK0RxF1w}x>E4d;_+pJ1BLHMzQ+(O4Jxj*&kGXH+alvMdCa)|6MheJs#wN6U^Jj9c%{VwhhZ*&=hNhPwCN$eK! z)Mx=XjYL-5i*fmEs9VCqj+1D*c9XRz6JzV}(r+EGIYnG`3eg^~xtPZHg4pGxcLb1c zsL@3gl7dunKeiA(B1;!9Ui!3E?DqQTc6$yL9agd5QbG1zyHUr5t1)ESnbd6`0#O49 zylso2GPWyb+3bK&Pzc#bfsb-Kox##5KXmn>sXkKwFnKf|Yw|I28O|e2KAK1Mc(LKQ zN_ma_RtwG*TN{(aEoE?1cS~1z4HK$Kr#G~qc6in=TNi=jm-BEOi#_8g2htyu4wX@l ziA%OLTYm8W|Ddzv|DNmDgNs>mVLf&qcu~_PUH8rQc*?V;Blbq z>yGcHi4B6MohH?^QbJ%Scj21i$94R^{v%HER_{OJPVm-q^6-j4D`_Pa0l^no4bX;K z2r{s&wey9sPf{Pj9GTiq$M5qgeOmVtPd1oA*GkJG^`3W`9kfK8hpNz194y}3L8m@KOFL-UjL2yn)X+xDBP-fy zgs1^Gg?m?o(G>T}INFfg>ReLq$ktCi6rb*?s4o8{gYV0@XjQd>ofv{_oM zhPFy+8?}wJSbI#{ulCES&S9lnkl5qyqCpgE3)(r8?ZX)ONFrV^S@rBp{{ zbPAQzY8ppdX*}IP6X*__NZV-=Jx-J9MVdmt$Md^%Jl^?FMVy<409L^fn$E*$1|LHw z@Hn)m&`hqRO0J?=Jcp`y0nO&qXfCg&lewAZ@m5*@?yLD4n$P!8Ew|$Xv|Uuk57R<^ zofh-kRL>vKsr(r&g;bXDS9BU5pn4Ud6>1QzR7G@#nntVf#X?L~QCuygwUAn)swYdO zXoJd9Qk_dp>RM`6cT-l~LpgOnwWx<^qk5P&sYhwE+D~VzXXqUDBAu&Vqw~}!biVqW zE>Pdlh4`}XA}vVYh2$^L`k_4#?I_wq>0(Gf2}xh9W$6+~`ciEZU8Y?^S7=w$Robm| zwRRs}t35>5X^+wM+J5>Gv~Yv=G;PzKr`w>3TeO$y$J%e{C)ywAR_z_SoxXxzhS0I! z&?%i{QBbF)I(@CvH;lA#^p_Ouq@yY1^&Y^33>0@#kQfc3Z)uuN|JCVRoem71rBmn7 zIvr(S=rmjdg?&1qM$MiMm;*AWb4Vv`qx`Nuo$>ky-*jm@2kf7q^8i@ZI%$Brx=il^ zB{~Iz`6uHt&xPuHC_>np`~!fED?iW)JM^E)ByuG0@*lceN#vMklqDL@e)Nt@p6bdsy#1B)o?+y@w6XLnP@Yp%d*S zwAzji6A>y`+qteH5Dn~|64a)I3PXj#J180r6ow{L=p|7vvxSh^{u*flmWI0hbczql zoWo)n>tXQ%ZVCZcVz5MfhpvkS@2in?0b=f1U_2w$Lv}$V7u-WF4VpJ`Bj!XlA&+d9 zhb<0<`i4MpeFvSrz=Jvm{m855I>U9vk@G;>`52b^1r>xH_0iQg@*M{R6@+k(Jbn{j z>42do=?1%?8_X^wf^Br+vfXr1Lp0b<-<8;29J#oSE|JWEz+Wd9WP&~whW!*ZkRdO9 z64BfrsJD?3`CcmpBbPl$mqsp!M5UJ4PveCE?>DNW#)w=20)auuG@^!GZsf~-D`tWt zhng!J3PP~H1`Uu9N#v^fh9K&iopd$RF8V&vPP#_X4!X93uG>jJQ1l3`s&5EIuCH%E z>I9Ol^$muUNn7jN>4rA?VTB&-pdVEjyXnS;sL@W_D)ORvQGFNPB)D!yt>rXt@tWF{ zaA6o$Gboz3lYYzq`U%sri^EXuM^R%Z-HKK#6;yzBrxDHHCuVTl6qtJ$xyZ>#h2d=! zDhzMmO}9f|9s_r{4D6zx%F~@f|6Lt)cN?{~)6XhE>fJ*8&r1VQJpUqcPhbyiZ_px3 z>)YsFMgwLv7SF!~3AME)kJ5eHXj;i5bYC0YUmJMhEa>ondzaesy`dob}cN(b;)3zWd z4o5DO`;FRm?Oy6|?>iAdBp04Z%K>{I;^_Sd56H<-))0D-M$$vbifzbx?KFcrXb#w~ zgG!gtZsf&>DM5QELwjj6?W4;em7mk2nE41GAEW1yCI3mk#@D)!a{)cUN6~(sN>3yI z?dOH`EU%^KI7QF%RrCViKriyI=q27mFY{CMD!)Rn@f-9yzeU2`>-;|MAJLoqFZvxm z{C!LHr?-*&{-`F=J8A~Kt7g+*)B+rkHPZX)O8P)uPamqA=_7R;eT-oyQG^o7D#A&}A+$Z=n48hxdO>1(ZkzR?EJ0c{BVR~t^9+A#>NmCRZV zD{TpD+FA~184hY2xlr4}A?<9|wF}wMF6TV$M$XsnU{h=5KH9z9SNkRR)7m+r?dAd6 zqdZW1oCiscqo-(KUj+Kiq)Q?}mgBJVAo=V|8u~4bMlW+GY7pcI7X;tf(+dYrL3+g3 z(#p;hd4nqfJfoAYl9c90>_X|Bud}IhA1w1V9XTI4#q6ZPl4*ND%Sy{hIlXS~o7hc> zox=L&eNFikmXFNbge3br`4>cC_wYe^hzA1{U%VX*ie1?upu=rYe4Q>^LC%L&27z@m zK*!eXrag#Id*Pi`?X<6*9;xLzIK`t9M4zNkE1gjKB;~siw60VlYu^Gm_+!hWfym?7 zgWW_&mO82O*Me{GO)?38=+N4^yOkocA9|v@Iz_EovK@2;DTZosvg0kZm_BRrypSHuaLX3`#mH;g! z{10nAO+aGLII57HldXuzH0%bpQ6WT*r)S&fIZ+R`U&MNnS)x@hJ#9i|G}vw?%&m>Edg$$socHoT}5d z=0H~)y6B`aa0Ylz(4a~9v8%kL@KT&>NO!15w>_awdBEIDI+U|7# z4$B%J0SW@ZHktC|`#eX{bPZ|fC8~|!<~0=JI4Ej_ORc4myv|-dkJJHiivtGM z!m*#b)?BP5jlkoE<;7HkMaqNV0y$Ef5 z&9x4`zAtt_$JO0v$PQtn3Unz`A@ckKJDh;^B?TKxA<-T0O!z-1p6~9$5-M zIA*@@eeZkkegAiTJNnK$uU-Oh6P;JF08h(!MnwqEDmbm+^D3Uh^D6rAg>oL9QSn85 zNye8|sCZhz3l(?~FDdwnf|nJXRq%>}a|*ty;A;xLuAnG(PAHg^!NQ|>RXi>z_;nQ* zaY?~zGQJ_>H&oOKY2Os@-&F8hV%KjgcwNlDB_`ii@H;9Vz;_h|FKy62L(S7?|)SAPYQmj;AaZ{SqS+T89$ftuL}N6;PCG{qxe<@ z{ujR}=f(e1@k_idrtc`YtfH3~vtA4Cu&5`L^F}qHsD9x2=o{9`zuh4vzZlDF?QK!<4w2-Z* zMG7reXo(muRcM)b*NesFd=hF}jKfAt+Q^Ky#O+)vGukdTR>o~3F%~nj z4nM~j<0jK;nbyd36C2J7#*=FaOY3LYKb<7gT8y-J;R0g6|qvCsg}}519!D*tIhdy_*ZE zbkbxX<K8^b6cIM8RiB#4+pyA`zfAAf z=mCNB2WXQ<57G%g8oZqE6mi&N85|9)?1MEpSwj!;=;0bXDfE3vqYu*~?7yo@g-jpO z=%e&8jUJ_s3y>MMPtYed`V@WIOG&p}Itn=RXDFc>eTE*FiH-X#o%D-?16wJyHF`q$ zM~ZD(E7RvRdXi3Q^b|cU(=#G4pVjCzecr1{&4>Ns7+TdV7M|q@+SlCN!0AWNY4kjO zL8CMDMVY>&;j{E*E}Kr&2qa=gdc?|&n@KL0rRqyq;4nBQb*IzjsFCK1Z<{3!aqt)X zlIS7IVNt4^TtgiRPKj`foe!j6stL0l7M=&=mYq4YnLCHGmNyfHT*^My(rd*FiGv;K zQH!Ss$4hn)7W+bWW%7lr$Z0dVHIuNC+^Yg?wKH`hPS0RmI(3$_l3R|MIm`p|?t+od z6Q*o-YfJm`z3d&QCfB+>htJW^4bn@$cHga2$(&tT!IT!A%t$6VrSjQyic8h9nGBpE zc348f8qYd?s(FSz-ChfvUYyw^dEBrQ2Sxo`6WrQ)(8$I4ux2JvYN3JsF?SR1pH}z1 zC2mYPGn+ONW=ERSxy;CB%?ux|DX7KGd%s0bFUl-Ge8>{_j$4DEZ6e9!WMbpqX`iYqR+&UTevq?fL`z0ME?9*MB>9m`Fm(o{+xGAaSStb@=7O@b-zvP{6PUtHhmTk-V89-PY1YkyPKR2BtmQV=v zExt3D1{d2(?vJ_;g#Z08Rh9=$1E| zlNqe=&Jm_WTh1I20pH?EV6lO#?bJ0cDXGk1Ym7_Jlt$utDyYUI1!J+~&uZsdz?ZDV z*g%f^sGo(U8&HgI)5fT|B{gb_pN^sgc4s)gxn&bp%>bIGW@Z6=qOznXs!UW_QFa6A zz~Rcj7&!^%)OSw_b`L#nAo;>DC#+Klu1bg!k6);QjW^&jk1vQvX{*8|DsQqGBHd=# z<9`F-cd13X!P(7c)0_(C&8Knn2!95JmTuh~i!zfvIfd)% zmLBJm0!N22Vu-pZ+R*rwnM@N5aF1n;6}Vn&-I)xxClT_Z?R__>+LPzT*)}7SI8Nci zjd*~+S&Dzk_|qAGbm8X-p3Ubse^5ZAVFL6D4+tOhm;fE+cnA->tY!NkGX>Jw3kVH1 zNUJ9x^)!T6$MmosnM7F;@=2)YpfnayegW#>1S)!)bnQGUL)g=#SNVf#e^BEOX88l% zA6(-PX1fEumNm46qv6-FDjL@36me}^BpSKYS|+v1wQ_CQX+)!uT6uMw(iBzPJtt&3 zbNR>mbv4Q)=CV=q^y`b5AJcD$T*QJw=>qE5#2fX6MJ&=6H%(%R7%b&S5zFF(;l}tR z>SI3Fa;7&H;nkwrrPfNR zwW_wNw(>NZqFQa$>b7dfifZhjsO;L%J6Kb85q*PF zRAcY!{qey_wER5y6VZ7L6i zPg#mr=D`m0?!)3Z&3bXe^WmLitcZ zys=0+B|U=-e|_g{r!L&iv|3bP4yti2uE%v)gt=IOdANyZ8@Wt$;RgP)zW{ge-wq5e zCx@^QdFHwYi*Y}e;3+J{8GgTnWw?ZT`~Z#k3BP}aW(uQ)DzTEHSVc>*n)Ux zBUno(&`OWuW_khZXcFt`n>_wD+UO0m(~q!$-o!?F8=FE3ZVA=k*3evR4Ar3{RFBP} z+t3;6$Cl6#xzYLFq>9l^QW5t;RlS9rjBbai_EycS+k|NJ$J!7824CB&A1SN+&TQox&KS zH!3}ggVOUzNiX1#^fJ=;5M$YjS#M*Jj1S9r#74w3dyux^v zbB>EcapT`6Qv`OiYoJ!`LlAk`o}*DRwgeGrkMt delta 50 zcmZn=Xb{-2kd2A)>Ey+1SzL@S7$4%f$F@au~Y>NOA&%I>l}V0F*-y A@Bjb+ diff --git a/make/lib/lib/util$OS.class b/make/lib/lib/util$OS.class index ef005dc0426b0099431dd9853a92bacac8a3e4f3..909f317bbe8db11d625de72165f920b073883497 100644 GIT binary patch delta 51 zcmaFL{*-;g9wtVw$$Odff#h2z9Uv*iJVn%-ftSIDL5jhbL7l;m!Gyt|!I8mh@?mBr E0Ec)Cxc~qF delta 51 zcmaFL{*-;g9wtVo$$Odff#h2z9Uv*iJVn%*ftSIBL5jhZL7l;k!Gyt`!I8mf@?mBr E0D&+JaR2}S diff --git a/make/lib/lib/util$SystemExit.class b/make/lib/lib/util$SystemExit.class new file mode 100644 index 0000000000000000000000000000000000000000..33350b1e6e5ebf02647c180b7a01c3e1fa4cab35 GIT binary patch literal 416 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%0A1g&^F$rrISF-v`a8 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 Date: Thu, 10 Apr 2025 14:43:35 +0200 Subject: [PATCH 03/11] Springsource repository does not exist anymore --- pom.xml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/pom.xml b/pom.xml index 0150db8e..5bfd94c2 100644 --- a/pom.xml +++ b/pom.xml @@ -4023,17 +4023,5 @@ false - - - com.springsource.repository.bundles.external - SpringSource Enterprise Bundle Repository - External Bundle Releases - https://repository.springsource.com/maven/bundles/external - - true - - - false - - From 2cd9445fa34dbd76e420c3ec38a3802441c48598 Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Thu, 10 Apr 2025 14:44:05 +0200 Subject: [PATCH 04/11] Install espeak in Docker image --- src/main/docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile index e4a21303..aac96370 100644 --- a/src/main/docker/Dockerfile +++ b/src/main/docker/Dockerfile @@ -1,5 +1,6 @@ FROM debian:bookworm LABEL maintainer="DAISY Consortium (http://www.daisy.org/)" +RUN apt-get update && apt-get install -y espeak ADD daisy-pipeline /opt/daisy-pipeline2 ADD logback.xml /opt/daisy-pipeline2/etc/logback.xml ARG TARGETARCH From e6784856d8de9f5fea7024c4c380c7b8930d8e3a Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Fri, 11 Apr 2025 17:10:23 +0200 Subject: [PATCH 05/11] Align with latest super build --- Makefile | 53 +++++++++++++++++++++++++++++++++++------------------ deps.mk | 9 +-------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index 03a903d8..dcb8050f 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,23 @@ +EXTRA_CLASSPATH := $(CLASSPATH) +EXTRA_IMPORTS := $(IMPORTS) +EXTRA_STATIC_IMPORTS := $(STATIC_IMPORTS) + include make/enable-java-shell.mk +CLASSPATH := $(CLASSPATH) $(EXTRA_CLASSPATH) +IMPORTS := $(IMPORTS) $(EXTRA_IMPORTS) +STATIC_IMPORTS := $(STATIC_IMPORTS) $(EXTRA_STATIC_IMPORTS) + +export CLASSPATH IMPORTS STATIC_IMPORTS + ifeq ($(OS), WINDOWS) -MVN ?= mvn.cmd +MVN ?= try { \ + System.setProperty("jdk.lang.Process.allowAmbiguousCommands", "true"); \ + exec(cons("mvn.cmd", commandLineArgs)); } \ + finally { \ + System.setProperty("jdk.lang.Process.allowAmbiguousCommands", "false"); } else -MVN ?= mvn +MVN ?= exec(cons("mvn", commandLineArgs)); endif DOCKER := docker @@ -71,11 +85,12 @@ $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-mac.zip \ $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-win.zip \ $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-minimal.zip : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)% : target/assembly-$(assembly/VERSION)% ifndef DUMP_PROFILES - exec("$(MVN)", "install:install-file", \ - "-Dfile=$<", \ - "-DpomFile=pom.xml", \ - "-Dclassifier=$(patsubst -%,%,$(patsubst assembly-$(assembly/VERSION)%,%,$(basename $(notdir $@))))", \ - "-Dpackaging=$(patsubst .%,%,$(suffix $@))"); + exec("$(SHELL)", $(call quote-for-java,$(MVN)), "--", \ + "install:install-file", \ + "-Dfile=$<", \ + "-DpomFile=pom.xml", \ + "-Dclassifier=$(patsubst -%,%,$(patsubst assembly-$(assembly/VERSION)%,%,$(basename $(notdir $@))))", \ + "-Dpackaging=$(patsubst .%,%,$(suffix $@))"); exit(new File("$@").exists()); endif @@ -172,7 +187,7 @@ ifeq ($(OS), MACOSX) } \ } endif - exec("$(MVN)", "assembly:single", "-Passemble-mac-zip"); + exec("$(SHELL)", $(call quote-for-java,$(MVN)), "--", "assembly:single", "-Passemble-mac-zip"); exit(new File("$@").exists()); endif target/assembly-$(assembly/VERSION)-win.zip : mvn -Pcopy-artifacts \ @@ -191,7 +206,7 @@ target/assembly-$(assembly/VERSION)-win.zip : endif # --with-jre32 # -Passemble-win-zip run separately because -Pbuild-jre-win64 also run separately ifndef DUMP_PROFILES - exec("$(MVN)", "assembly:single", "-Passemble-win-zip"); + exec("$(SHELL)", $(call quote-for-java,$(MVN)), "--", "assembly:single", "-Passemble-win-zip"); exit(new File("$@").exists()); endif endif # --without-jre @@ -241,7 +256,7 @@ dir-word-addin : -Pbuild-jre-win32 \ -Pbuild-jre-win64 ifndef DUMP_PROFILES - exec("$(MVN)", "assembly:single", "-Passemble-win-dir"); + exec("$(SHELL)", $(call quote-for-java,$(MVN)), "--", "assembly:single", "-Passemble-win-dir"); endif ifneq ($(OS), WINDOWS) @@ -348,7 +363,7 @@ endif # neq ($(OS), WINDOWS) .PHONY : clean clean : - exec("$(MVN)", "clean"); + exec("$(SHELL)", $(call quote-for-java,$(MVN)), "--", "clean"); rm("make/recipes"); # process-sources generate-resources process-resources prepare-package package @@ -472,7 +487,9 @@ endif mvn : ifndef DUMP_PROFILES @List cmd = new ArrayList<>(); \ - cmd.add("$(MVN)"); \ + cmd.add("$(SHELL)"); \ + cmd.add($(call quote-for-java,$(MVN))); \ + cmd.add("--"); \ cmd.add("clean"); \ cmd.add("install"); \ cmd.add("-Dclassifier=$(--classifier)"); \ @@ -482,7 +499,7 @@ ifndef DUMP_PROFILES line -> { if (line.startsWith("-P")) cmd.add(line); }, \ Arrays.asList("$(MAKE) -s --no-print-directory ECHO=true DUMP_PROFILES=true -- $(MAKECMDGOALS)".split("\\s")))); \ println(String.join(" ", cmd)); \ - exec(runInShell(cmd)); + exec(cmd); endif .PHONY : $(addprefix -P,$(PROFILES)) @@ -513,19 +530,19 @@ ifeq ($(OS), MACOSX) -Pbuild-jre-linux -Pbuild-jre-linux-arm64 -Pbuild-jre-win32 -Pbuild-jre-win64 -Pbuild-jre-mac : src/main/jre/OpenJDK17U-jdk_x64_mac_hotspot_17.0.7_7/jdk-17.0.7+7 ifndef DUMP_PROFILES exec(env("JAVA_HOME", "$(CURDIR)/$ println(f.toString().replace(" ", "\\ ")));) -else -assembly/SOURCES := $(assembly/BASEDIR)/pom.xml \ - $(shell [ -d $(assembly/BASEDIR)/src/main/ ] && \ - find $(assembly/BASEDIR)/src/main/ -type f | sed 's/ /\\ /g') -endif + $(shell Files.walk(Paths.get("$(assembly/BASEDIR)/src")).filter(Files::isRegularFile).forEach(f -> println(f.toString().replace(" ", "\\ ")));) .SECONDARY : assembly/SOURCES assembly/SOURCES : $(assembly/SOURCES) From 8e3a34c26f71bc3bfd03db7a4a8db57c03ae9fb1 Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Mon, 28 Apr 2025 13:31:30 +0200 Subject: [PATCH 06/11] Drop updater --- Makefile | 50 +----- pom.xml | 155 +----------------- src/main/assembly/components/updater-all.xml | 29 ---- .../assembly/components/updater-linux.xml | 13 -- src/main/assembly/components/updater-mac.xml | 13 -- src/main/assembly/components/updater-win.xml | 13 -- src/main/assembly/dist-linux.xml | 1 - src/main/assembly/dist-mac.xml | 1 - src/main/assembly/dist-minimal.xml | 15 -- src/main/assembly/dist-win.xml | 1 - 10 files changed, 10 insertions(+), 281 deletions(-) delete mode 100644 src/main/assembly/components/updater-all.xml delete mode 100644 src/main/assembly/components/updater-linux.xml delete mode 100644 src/main/assembly/components/updater-mac.xml delete mode 100644 src/main/assembly/components/updater-win.xml delete mode 100644 src/main/assembly/dist-minimal.xml diff --git a/Makefile b/Makefile index dcb8050f..6a3cd239 100644 --- a/Makefile +++ b/Makefile @@ -44,9 +44,7 @@ help : "make zip-win:" + "\n" + \ " Builds a ZIP for Windows" + "\n" + \ "make dir-word-addin:" + "\n" + \ - " Builds a directory to be included in SaveAsDAISY" + "\n" + \ - "make zip-minimal:" + "\n" + \ - " Builds a minimal ZIP that will complete itself upon first update"); \ + " Builds a directory to be included in SaveAsDAISY"); \ if (getOS() != OS.WINDOWS) \ err.println( \ "make docker:" + "\n" + \ @@ -64,14 +62,13 @@ INSTALL_DIR := $(MVN_LOCAL_REPOSITORY)/org/daisy/pipeline/assem include deps.mk -.PHONY : deb rpm zip-linux zip-mac zip-win zip-minimal deb-cli rpm-cli +.PHONY : deb rpm zip-linux zip-mac zip-win deb-cli rpm-cli deb : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER).deb rpm : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER).rpm zip-linux : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-linux.zip zip-mac : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-mac.zip zip-win : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-win.zip -zip-minimal : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-minimal.zip deb-cli : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-cli.deb rpm-cli : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-cli.rpm @@ -82,8 +79,7 @@ target/release-descriptor/releaseDescriptor.xml : mvn -Pgenerate-release-descrip # some artifacts are installed through command line $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-linux.zip \ $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-mac.zip \ -$(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-win.zip \ -$(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-minimal.zip : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)% : target/assembly-$(assembly/VERSION)% +$(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-win.zip : $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)% : target/assembly-$(assembly/VERSION)% ifndef DUMP_PROFILES exec("$(SHELL)", $(call quote-for-java,$(MVN)), "--", \ "install:install-file", \ @@ -96,17 +92,14 @@ endif $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER).deb : mvn -Pcopy-artifacts \ -Pgenerate-release-descriptor \ - -Punpack-updater-linux \ -Ppackage-deb target/assembly-$(assembly/VERSION)-linux.zip : mvn -Pcopy-artifacts \ -Pgenerate-release-descriptor \ -Punpack-cli-linux \ - -Punpack-updater-linux \ -Passemble-linux-zip target/assembly-$(assembly/VERSION)-mac.zip : mvn -Pcopy-artifacts \ -Pgenerate-release-descriptor \ - -Punpack-cli-mac \ - -Punpack-updater-mac + -Punpack-cli-mac ifneq (--without-jre,$(filter --without-jre --with-jre,$(MAKECMDGOALS))) target/assembly-$(assembly/VERSION)-mac.zip : mvn -Pbuild-jre-mac endif @@ -192,8 +185,7 @@ endif endif target/assembly-$(assembly/VERSION)-win.zip : mvn -Pcopy-artifacts \ -Pgenerate-release-descriptor \ - -Punpack-cli-win \ - -Punpack-updater-win + -Punpack-cli-win ifeq (--without-jre,$(filter --without-jre --with-jre,$(MAKECMDGOALS))) target/assembly-$(assembly/VERSION)-win.zip : mvn -Passemble-win-zip ifndef DUMP_PROFILES @@ -210,12 +202,6 @@ ifndef DUMP_PROFILES exit(new File("$@").exists()); endif endif # --without-jre -target/assembly-$(assembly/VERSION)-minimal.zip : mvn -Pcopy-artifacts \ - -Pgenerate-release-descriptor \ - -Punpack-updater-mac \ - -Punpack-updater-linux \ - -Punpack-updater-win \ - -Passemble-minimal-zip $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-cli.deb : mvn -Pcopy-artifacts \ -Pgenerate-release-descriptor \ -Punpack-cli-linux \ @@ -244,13 +230,12 @@ endif # eq ($(OS), REDHAT) .PHONY : dir-word-addin # Note that when `dir-word-addin' is enabled together with other targets, it is as if --without-osgi, --without-persistence, -# --without-webservice, --without-cli, --without-updater and --with-simple-api were also specified. +# --without-webservice, --without-cli and --with-simple-api were also specified. dir-word-addin : assembly/SOURCES dir-word-addin : mvn -Pwithout-osgi \ -Pwithout-persistence \ -Pwithout-webservice \ -Pwithout-cli \ - -Pwithout-updater \ -Pwith-simple-api \ -Pcopy-artifacts \ -Pbuild-jre-win32 \ @@ -332,20 +317,17 @@ jre/target/maven-jlink/classifiers/linux-arm64 : mvn -Pb target/assembly-$(assembly/VERSION)-mac/daisy-pipeline/bin/pipeline2 : mvn -Pcopy-artifacts \ -Pgenerate-release-descriptor \ -Punpack-cli-mac \ - -Punpack-updater-mac \ -Passemble-mac-dir target/assembly-$(assembly/VERSION)-linux/daisy-pipeline/bin/pipeline2 : mvn -Pcopy-artifacts \ -Pgenerate-release-descriptor \ -Punpack-cli-linux \ - -Punpack-updater-linux \ -Passemble-linux-dir endif # neq ($(OS), WINDOWS) $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER).deb \ $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-cli.deb \ -target/assembly-$(assembly/VERSION)-linux.zip \ -target/assembly-$(assembly/VERSION)-minimal.zip \ +target/assembly-$(assembly/VERSION)-linux.zip \ target/assembly-$(assembly/VERSION)-mac/daisy-pipeline/bin/pipeline2 \ target/assembly-$(assembly/VERSION)-linux/daisy-pipeline/bin/pipeline2 : ifndef DUMP_PROFILES @@ -393,16 +375,12 @@ clean : # unpack-cli-mac unpack-cli-mac # unpack-cli-linux unpack-cli-linux # unpack-cli-win unpack-cli-win -# unpack-updater-mac unpack-updater-mac -# unpack-updater-linux unpack-updater-linux -# unpack-updater-win unpack-updater-win # assemble-mac-dir assemble-mac-dir # assemble-linux-dir assemble-linux-dir # assemble-win-dir assemble-win-dir # assemble-mac-zip assemble-mac-zip # assemble-linux-zip assemble-linux-zip # assemble-win-zip assemble-win-zip -# assemble-minimal-zip assemble-minimal-zip # package-deb filter-deb-resources package-deb # package-deb-cli package-deb-cli # package-rpm package-rpm @@ -417,17 +395,13 @@ PROFILES := \ assemble-mac-zip \ assemble-win-dir \ assemble-win-zip \ - assemble-minimal-zip \ package-deb \ package-deb-cli \ package-rpm \ package-rpm-cli \ unpack-cli-linux \ unpack-cli-mac \ - unpack-cli-win \ - unpack-updater-linux \ - unpack-updater-mac \ - unpack-updater-win + unpack-cli-win .PHONY : --with-persistence --without-persistence --without-persistence : -Pwithout-persistence @@ -461,14 +435,6 @@ else .PHONY : -Pwithout-cli endif -.PHONY : --with-updater --without-updater ---without-updater : -Pwithout-updater -ifneq (--with-updater,$(filter --with-updater,$(MAKECMDGOALS))) -PROFILES += without-updater -else -.PHONY : -Pwithout-updater -endif - .PHONY : --with-simple-api --without-simple-api --with-simple-api : -Pwith-simple-api ifneq (--without-simple-api,$(filter --without-simple-api,$(MAKECMDGOALS))) diff --git a/pom.xml b/pom.xml index 5bfd94c2..267b3bad 100644 --- a/pom.xml +++ b/pom.xml @@ -51,11 +51,6 @@ cli ${cli.version} - - org.daisy.pipeline - updater - 1.0.2 - org.apache.felix org.apache.felix.main @@ -100,7 +95,7 @@ @@ -2768,6 +2763,7 @@ + generate-release-descriptor @@ -2971,96 +2967,6 @@ - - unpack-updater-mac - - - - maven-dependency-plugin - - - unpack-updater-mac - generate-resources - - unpack - - - - - org.daisy.pipeline - updater - zip - darwin_amd64 - ${project.build.directory}/updater/mac32 - - - - - - - - - - - unpack-updater-linux - - - - maven-dependency-plugin - - - unpack-updater-linux - generate-resources - - unpack - - - - - org.daisy.pipeline - updater - zip - linux_386 - ${project.build.directory}/updater/linux32 - - - - - - - - - - - unpack-updater-win - - - - maven-dependency-plugin - - - unpack-updater-win - generate-resources - - unpack - - - - - org.daisy.pipeline - updater - zip - windows_386 - ${project.build.directory}/updater/win32 - - - - - - - - - assemble-mac-dir @@ -3262,39 +3168,6 @@ - - assemble-minimal-zip - - - - maven-assembly-plugin - - - assemble-minimal-zip - package - - single - - - false - - zip - - - src/main/assembly/dist-minimal.xml - - - src/main/assembly/dist.properties - src/main/assembly/dist-linux.properties - - true - - - - - - - package-exe @@ -3923,30 +3796,6 @@ - - without-updater - - - - maven-dependency-plugin - - - unpack-updater-mac - none - - - unpack-updater-linux - none - - - unpack-updater-win - none - - - - - - test-batch diff --git a/src/main/assembly/components/updater-all.xml b/src/main/assembly/components/updater-all.xml deleted file mode 100644 index 86da2fba..00000000 --- a/src/main/assembly/components/updater-all.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - target/updater/linux32 - updater/linux - - pipeline-updater* - - 0755 - - - target/updater/mac32 - updater/mac - - pipeline-updater* - - 0755 - - - - - target/updater/win32/pipeline-updater.exe - updater/windows - pipeline-updater.exe - 0755 - - - diff --git a/src/main/assembly/components/updater-linux.xml b/src/main/assembly/components/updater-linux.xml deleted file mode 100644 index 9897be05..00000000 --- a/src/main/assembly/components/updater-linux.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - target/updater/linux32 - updater - - pipeline-updater* - - 0755 - - - diff --git a/src/main/assembly/components/updater-mac.xml b/src/main/assembly/components/updater-mac.xml deleted file mode 100644 index a02fdfe1..00000000 --- a/src/main/assembly/components/updater-mac.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - target/updater/mac32 - updater - - pipeline-updater* - - 0755 - - - diff --git a/src/main/assembly/components/updater-win.xml b/src/main/assembly/components/updater-win.xml deleted file mode 100644 index f13af1c2..00000000 --- a/src/main/assembly/components/updater-win.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - target/updater/win32 - updater - - pipeline-updater.exe - - 0755 - - - diff --git a/src/main/assembly/dist-linux.xml b/src/main/assembly/dist-linux.xml index cbdaf6c0..13ea4db3 100644 --- a/src/main/assembly/dist-linux.xml +++ b/src/main/assembly/dist-linux.xml @@ -12,7 +12,6 @@ src/main/assembly/components/jars.xml src/main/assembly/components/jars-linux.xml src/main/assembly/components/cli-linux.xml - src/main/assembly/components/updater-linux.xml src/main/assembly/components/simple-api.xml diff --git a/src/main/assembly/dist-mac.xml b/src/main/assembly/dist-mac.xml index 5cb61040..cf303cd5 100644 --- a/src/main/assembly/dist-mac.xml +++ b/src/main/assembly/dist-mac.xml @@ -12,7 +12,6 @@ src/main/assembly/components/jars.xml src/main/assembly/components/jars-mac.xml src/main/assembly/components/cli-mac.xml - src/main/assembly/components/updater-mac.xml src/main/assembly/components/simple-api.xml src/main/assembly/components/jre-mac.xml diff --git a/src/main/assembly/dist-minimal.xml b/src/main/assembly/dist-minimal.xml deleted file mode 100644 index 2eb61d0b..00000000 --- a/src/main/assembly/dist-minimal.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - minimal - - zip - dir - - daisy-pipeline - - src/main/assembly/components/base.xml - src/main/assembly/components/bin-linux.xml - src/main/assembly/components/bin-win.xml - src/main/assembly/components/updater-all.xml - - diff --git a/src/main/assembly/dist-win.xml b/src/main/assembly/dist-win.xml index 6dbd73c9..43340fdd 100644 --- a/src/main/assembly/dist-win.xml +++ b/src/main/assembly/dist-win.xml @@ -12,7 +12,6 @@ src/main/assembly/components/jars.xml src/main/assembly/components/jars-win.xml src/main/assembly/components/cli-win.xml - src/main/assembly/components/updater-win.xml src/main/assembly/components/simple-api.xml src/main/assembly/components/jre-win.xml From 77b9f32b221fc0c22250eace43748bbf4923c111 Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Mon, 28 Apr 2025 13:35:13 +0200 Subject: [PATCH 07/11] Make --without-osgi the default --- Makefile | 16 ++- pom.xml | 330 ++++++++++++++++++++++++++----------------------------- 2 files changed, 160 insertions(+), 186 deletions(-) diff --git a/Makefile b/Makefile index 6a3cd239..c36752ef 100644 --- a/Makefile +++ b/Makefile @@ -229,11 +229,10 @@ $(INSTALL_DIR)/assembly-$(assembly/VERSION)$(CLASSIFIER)-cli.rpm : endif # eq ($(OS), REDHAT) .PHONY : dir-word-addin -# Note that when `dir-word-addin' is enabled together with other targets, it is as if --without-osgi, --without-persistence, +# Note that when `dir-word-addin' is enabled together with other targets, it is as if --without-persistence, # --without-webservice, --without-cli and --with-simple-api were also specified. dir-word-addin : assembly/SOURCES -dir-word-addin : mvn -Pwithout-osgi \ - -Pwithout-persistence \ +dir-word-addin : mvn -Pwithout-persistence \ -Pwithout-webservice \ -Pwithout-cli \ -Pwith-simple-api \ @@ -247,8 +246,7 @@ endif 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 \ +docker : mvn \ jre/target/maven-jlink/classifiers/linux \ jre/target/maven-jlink/classifiers/linux-arm64 \ target/assembly-$(assembly/VERSION)-linux/daisy-pipeline/bin/pipeline2 @@ -412,11 +410,11 @@ else endif .PHONY : --with-osgi --without-osgi ---without-osgi : -Pwithout-osgi -ifneq (--with-osgi,$(filter --with-osgi,$(MAKECMDGOALS))) -PROFILES += without-osgi +--with-osgi : -Pwith-osgi +ifneq (--without-osgi,$(filter --without-osgi,$(MAKECMDGOALS))) +PROFILES += with-osgi else -.PHONY : -Pwithout-osgi +.PHONY : -Pwith-osgi endif .PHONY : --with-webservice --without-webservice diff --git a/pom.xml b/pom.xml index 267b3bad..14d583d3 100644 --- a/pom.xml +++ b/pom.xml @@ -1733,101 +1733,6 @@ maven-dependency-plugin - - copy-felix-launcher - process-sources - - copy - - - ${project.build.directory}/jars/osgi/bootstrap - - - org.apache.felix - org.apache.felix.main - felix.jar - - - - - - copy-felix-bundles - process-sources - - copy - - - ${project.build.directory}/jars/osgi/bundles - - - org.apache.felix - org.apache.felix.configadmin - 1.6.0 - - - org.apache.felix - org.apache.felix.dependencymanager - 3.1.0 - - - org.apache.felix - org.apache.felix.eventadmin - 1.3.2 - - - org.apache.felix - org.apache.felix.fileinstall - 3.2.6 - - - org.apache.felix - org.apache.felix.log - 1.0.1 - - - org.apache.felix - org.apache.felix.metatype - 1.0.6 - - - org.apache.felix - org.apache.felix.scr - 2.0.14 - - - org.osgi - org.osgi.enterprise - - - - - - copy-felix-gogo - process-sources - - copy - - - ${project.build.directory}/jars/osgi/gogo - - - org.apache.felix - org.apache.felix.gogo.command - 0.14.0 - - - org.apache.felix - org.apache.felix.gogo.runtime - 0.12.1 - - - org.apache.felix - org.apache.felix.gogo.shell - 0.10.0 - - - - copy-framework process-sources @@ -1949,26 +1854,6 @@ - - copy-framework-osgi - process-sources - - copy - - - ${project.build.directory}/jars/osgi/bundles - - - org.daisy.pipeline - woodstox-osgi-adapter - - - org.daisy.libs - logback-osgi-adapter - - - - copy-framework-no-osgi process-sources @@ -2090,22 +1975,6 @@ - - copy-persistence-osgi - process-sources - - copy - - - ${project.build.directory}/jars/osgi/persistence - - - org.eclipse.gemini - org.apache.derby - - - - copy-persistence-no-osgi process-sources @@ -2644,45 +2513,6 @@ - - copy-modules-osgi - process-sources - - copy - - - ${project.build.directory}/jars/osgi/bundles - - - - org.daisy.libs - jing - 20120724.0.0 - - - - org.codehaus.jackson - jackson-core-asl - - - org.codehaus.jackson - jackson-mapper-asl - - - - org.daisy.libs - jnaerator - - - - copy-modules-linux process-sources @@ -3721,7 +3551,7 @@ - without-osgi + with-osgi @@ -3729,27 +3559,173 @@ copy-felix-launcher - none + process-sources + + copy + + + ${project.build.directory}/jars/osgi/bootstrap + + + org.apache.felix + org.apache.felix.main + felix.jar + + + copy-felix-bundles - none + process-sources + + copy + + + ${project.build.directory}/jars/osgi/bundles + + + org.apache.felix + org.apache.felix.configadmin + 1.6.0 + + + org.apache.felix + org.apache.felix.dependencymanager + 3.1.0 + + + org.apache.felix + org.apache.felix.eventadmin + 1.3.2 + + + org.apache.felix + org.apache.felix.fileinstall + 3.2.6 + + + org.apache.felix + org.apache.felix.log + 1.0.1 + + + org.apache.felix + org.apache.felix.metatype + 1.0.6 + + + org.apache.felix + org.apache.felix.scr + 2.0.14 + + + org.osgi + org.osgi.enterprise + + + copy-felix-gogo - none + process-sources + + copy + + + ${project.build.directory}/jars/osgi/gogo + + + org.apache.felix + org.apache.felix.gogo.command + 0.14.0 + + + org.apache.felix + org.apache.felix.gogo.runtime + 0.12.1 + + + org.apache.felix + org.apache.felix.gogo.shell + 0.10.0 + + + copy-framework-osgi - none + process-sources + + copy + + + ${project.build.directory}/jars/osgi/bundles + + + org.daisy.pipeline + woodstox-osgi-adapter + + + org.daisy.libs + logback-osgi-adapter + + + copy-modules-osgi - none + process-sources + + copy + + + ${project.build.directory}/jars/osgi/bundles + + + + org.daisy.libs + jing + 20120724.0.0 + + + + org.codehaus.jackson + jackson-core-asl + + + org.codehaus.jackson + jackson-mapper-asl + + + + org.daisy.libs + jnaerator + + + copy-persistence-osgi - none + process-sources + + copy + + + ${project.build.directory}/jars/osgi/persistence + + + org.eclipse.gemini + org.apache.derby + + + From e3613eb35b6d972ec167744409003b87de457967 Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Fri, 4 Apr 2025 16:39:09 +0200 Subject: [PATCH 08/11] Update to framework 1.15.2 and modules 1.15.1 --- pom.xml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 14d583d3..a8ecca8d 100644 --- a/pom.xml +++ b/pom.xml @@ -64,14 +64,14 @@ org.daisy.pipeline framework-bom - 1.15.0 + 1.15.2 pom import org.daisy.pipeline.modules modules-bom - 1.15.0 + 1.15.1 pom import @@ -591,6 +591,16 @@ + + org.daisy.pipeline.modules + dtbook-to-ebraille + + + * + * + + + org.daisy.pipeline.modules dtbook-to-epub3 @@ -2121,6 +2131,10 @@ org.daisy.pipeline.modules dtbook-break-detection + + org.daisy.pipeline.modules + dtbook-to-ebraille + org.daisy.pipeline.modules dtbook-to-epub3 From 024ee3be1c2f9bbe3016b57ac365457062641eeb Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Thu, 15 May 2025 13:05:09 +0200 Subject: [PATCH 09/11] Release notes --- NEWS.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/NEWS.md b/NEWS.md index 4d11e233..c253c9ba 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,18 @@ +Changes in release v1.15.1 +=========================== + +## Modules + +- **NEW** DTBook to eBraille script +- **FIX** Better gap length between sentences for Azure voices +- **FIX** User lexicon feature was broken +- **FIX** Issue handling EPUBs that have spaces in file names +- **FIX** Issues in Word to DTBook regarding page numbers and character styles translation +- **FIX** ncc:maxPageNormal metadata created by DAISY 3 to DAISY 2.02 +- **FIX** Don't insert cryptic annotations at frontmatter start in DTBook to EPUB 3 +- Changes to braille production scripts, see release notes of braille modules [v1.15.1](https://github.com/daisy/pipeline-modules/blob/master/braille/NEWS.md#v1151) +- Various other bugfixes and improvements + Changes in release v1.15.0 =========================== From 6fb826e11b7fbda298ca3b57aa7eeaaafda1161c Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Thu, 15 May 2025 13:42:16 +0200 Subject: [PATCH 10/11] [maven-release-plugin] prepare release v1.15.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a8ecca8d..f69eae21 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.daisy.pipeline assembly - 1.15.1-SNAPSHOT + 1.15.1 jar DAISY Pipeline 2 :: Assembly Builds the main distribution of the DAISY Pipeline 2. @@ -17,7 +17,7 @@ scm:git:git@github.com:daisy/pipeline-assembly.git scm:git:git@github.com:daisy/pipeline-assembly.git scm:git:git@github.com:daisy/pipeline-assembly.git - HEAD + v1.15.1 2.3.0 From e548c74ed361c7eeebb900d42287c6bec0cb1461 Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Thu, 15 May 2025 13:42:16 +0200 Subject: [PATCH 11/11] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f69eae21..3b4cb904 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.daisy.pipeline assembly - 1.15.1 + 1.15.2-SNAPSHOT jar DAISY Pipeline 2 :: Assembly Builds the main distribution of the DAISY Pipeline 2. @@ -17,7 +17,7 @@ scm:git:git@github.com:daisy/pipeline-assembly.git scm:git:git@github.com:daisy/pipeline-assembly.git scm:git:git@github.com:daisy/pipeline-assembly.git - v1.15.1 + HEAD 2.3.0