[packages/calibre] upstream patch for fixing build with icu >= 68
atler
atler at pld-linux.org
Sat Aug 14 22:17:37 CEST 2021
commit a117af9743dff7996d0c5e8dfd03f2528dcc0464
Author: Jan Palus <atler at pld-linux.org>
Date: Sat Aug 14 22:16:38 2021 +0200
upstream patch for fixing build with icu >= 68
calibre.spec | 2 +
icu68.patch | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 121 insertions(+)
---
diff --git a/calibre.spec b/calibre.spec
index 9d18245..a5a2df2 100644
--- a/calibre.spec
+++ b/calibre.spec
@@ -24,6 +24,7 @@ Patch1: %{name}-locales.patch
Patch2: shebang-python-fix.patch
Patch3: desktop-integration.patch
Patch4: %{name}-env_module.patch
+Patch5: icu68.patch
%define baeutifulsoup_ver 3.0.5
%define pil_ver 1.1.6
%define pyqt5_ver 5.3.1
@@ -186,6 +187,7 @@ Pakiet ten dostarcza uzupełnianie nazw dla calibre w powłoce zsh.
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
# 64bit target build fix
%{__sed} -i -e "s!'/usr/lib'!'%{_libdir}'!g" setup/build_environment.py
diff --git a/icu68.patch b/icu68.patch
new file mode 100644
index 0000000..61cee29
--- /dev/null
+++ b/icu68.patch
@@ -0,0 +1,119 @@
+From ca0aa5f6960c09e5cf5cb20249f895628fd97449 Mon Sep 17 00:00:00 2001
+From: Heiko Becker <heirecka at exherbo.org>
+Date: Sat, 5 Dec 2020 11:30:42 +0100
+Subject: [PATCH] Fix build with ICU >= 68
+
+ICU stopped defining the macros FALSE and TRUE in its headers with 68:
+https://github.com/unicode-org/icu/commit/c3fe7e09d844
+---
+ src/calibre/utils/icu.c | 6 ++++--
+ src/calibre/utils/matcher.c | 18 ++++++++----------
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/src/calibre/utils/icu.c b/src/calibre/utils/icu.c
+index 62d05de3101..36902dbdd25 100644
+--- a/src/calibre/utils/icu.c
++++ b/src/calibre/utils/icu.c
+@@ -1,5 +1,7 @@
+ #include "icu_calibre_utils.h"
+
++#include <stdbool.h>
++
+ #define UPPER_CASE 0
+ #define LOWER_CASE 1
+ #define TITLE_CASE 2
+@@ -238,14 +240,14 @@ icu_Collator_contains(icu_Collator *self, PyObject *args) {
+
+ a = python_to_icu(a_, &asz);
+ if (a == NULL) goto end;
+- if (asz == 0) { found = TRUE; goto end; }
++ if (asz == 0) { found = true; goto end; }
+ b = python_to_icu(b_, &bsz);
+ if (b == NULL) goto end;
+
+ search = usearch_openFromCollator(a, asz, b, bsz, self->collator, NULL, &status);
+ if (U_SUCCESS(status)) {
+ pos = usearch_first(search, &status);
+- if (pos != USEARCH_DONE) found = TRUE;
++ if (pos != USEARCH_DONE) found = true;
+ }
+ end:
+ if (search != NULL) usearch_close(search);
+diff --git a/src/calibre/utils/matcher.c b/src/calibre/utils/matcher.c
+index f38a7082cee..72715cc0ae3 100644
+--- a/src/calibre/utils/matcher.c
++++ b/src/calibre/utils/matcher.c
+@@ -9,15 +9,13 @@
+ #define NO_PYTHON_TO_ICU32
+ #include "icu_calibre_utils.h"
+ #include <float.h>
++#include <stdbool.h>
+
+ #ifdef _MSC_VER
+ // inline does not work with the visual studio C compiler
+ #define inline
+ #endif
+
+-typedef unsigned char bool;
+-#define TRUE 1
+-#define FALSE 0
+ #define MAX(x, y) ((x > y) ? x : y)
+ #define nullfree(x) if(x != NULL) free(x); x = NULL;
+
+@@ -240,10 +238,10 @@ static bool create_searches(UStringSearch **searches, UChar *haystack, int32_t h
+ U16_FWD_1(needle, i, needle_len);
+ if (pos == i) break;
+ searches[pos] = usearch_openFromCollator(needle + pos, i - pos, haystack, haystack_len, collator, NULL, &status);
+- if (U_FAILURE(status)) { PyErr_SetString(PyExc_ValueError, u_errorName(status)); searches[pos] = NULL; return FALSE; }
++ if (U_FAILURE(status)) { PyErr_SetString(PyExc_ValueError, u_errorName(status)); searches[pos] = NULL; return false; }
+ }
+
+- return TRUE;
++ return true;
+ }
+
+ static void free_searches(UStringSearch **searches, int32_t count) {
+@@ -259,14 +257,14 @@ static bool match(UChar **items, int32_t *item_lengths, uint32_t item_count, UCh
+ int32_t i = 0, maxhl = 0;
+ int32_t r = 0, *positions = NULL;
+ MatchInfo *matches = NULL;
+- bool ok = FALSE;
++ bool ok = false;
+ MemoryItem ***memo = NULL;
+ int32_t needle_len = u_strlen(needle);
+ UStringSearch **searches = NULL;
+
+ if (needle_len <= 0 || item_count <= 0) {
+ for (i = 0; i < (int32_t)item_count; i++) match_results[i].score = 0.0;
+- ok = TRUE;
++ ok = true;
+ goto end;
+ }
+
+@@ -289,7 +287,7 @@ static bool match(UChar **items, int32_t *item_lengths, uint32_t item_count, UCh
+
+ if (maxhl <= 0) {
+ for (i = 0; i < (int32_t)item_count; i++) match_results[i].score = 0.0;
+- ok = TRUE;
++ ok = true;
+ goto end;
+ }
+
+@@ -308,7 +306,7 @@ static bool match(UChar **items, int32_t *item_lengths, uint32_t item_count, UCh
+ convert_positions(positions, final_positions + i * needle_char_len, matches[i].haystack, needle_char_len, needle_len, match_results[i].score);
+ }
+
+- ok = TRUE;
++ ok = true;
+ end:
+ nullfree(positions);
+ nullfree(stack.items);
+@@ -401,7 +399,7 @@ static PyObject *
+ Matcher_calculate_scores(Matcher *self, PyObject *args) {
+ int32_t *final_positions = NULL, *p;
+ Match *matches = NULL;
+- bool ok = FALSE;
++ bool ok = false;
+ uint32_t i = 0, needle_char_len = 0, j = 0;
+ PyObject *items = NULL, *score = NULL, *positions = NULL, *pneedle = NULL;
+ UChar *needle = NULL;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/calibre.git/commitdiff/a117af9743dff7996d0c5e8dfd03f2528dcc0464
More information about the pld-cvs-commit
mailing list