Compare commits

..

No commits in common. "c10s" and "c8" have entirely different histories.
c10s ... c8

20 changed files with 2098 additions and 407 deletions

20
.gitignore vendored
View File

@ -1,18 +1,2 @@
/poppler-test-2009-05-13_0d2bfd4af4c76a3bac27ccaff793d9129df7b57a.tar.xz SOURCES/poppler-20.11.0.tar.xz
/poppler-0.61.1.tar.xz SOURCES/poppler-test-2009-05-13_0d2bfd4af4c76a3bac27ccaff793d9129df7b57a.tar.xz
/poppler-0.62.0.tar.xz
/poppler-0.63.0.tar.xz
/poppler-0.67.0.tar.xz
/poppler-0.73.0.tar.xz
/poppler-test-2018-12-18-45f55f1e03b9bf3fbd334c31776b6f5e472889ec.tar.xz
/poppler-0.84.0.tar.xz
/poppler-0.90.0.tar.xz
/poppler-test-2021-01-11-03a4b9eb854a06a83c465e82de601796c458bbe9.tar.xz
/poppler-21.01.0.tar.xz
/poppler-21.07.0.tar.xz
/poppler-21.08.0.tar.xz
/poppler-22.01.0.tar.xz
/poppler-22.08.0.tar.xz
/poppler-23.02.0.tar.xz
/poppler-23.08.0.tar.xz
/poppler-24.02.0.tar.xz

2
.poppler.metadata Normal file
View File

@ -0,0 +1,2 @@
0aa751121aed6ee2220ef3ea16b9df8f9b2e81c1 SOURCES/poppler-20.11.0.tar.xz
b58229322eb8f44a2bb1d98114b9fa3dfbef6a0a SOURCES/poppler-test-2009-05-13_0d2bfd4af4c76a3bac27ccaff793d9129df7b57a.tar.xz

View File

@ -0,0 +1,279 @@
From 0ab1f29d4ce315b0fca260c0e0f3007024d00342 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Tue, 28 Jan 2014 15:13:24 +0100
Subject: [PATCH] TextOutputDev: Respect orientation when selecting words
Take rotation into account when visiting selection.
This doesn't fix all problems (there are still problems
on line and block levels).
https://bugs.freedesktop.org/show_bug.cgi?id=16619
---
poppler/TextOutputDev.cc | 193 ++++++++++++++++++++++++++++++++++++-----------
1 file changed, 150 insertions(+), 43 deletions(-)
diff --git a/poppler/TextOutputDev.cc b/poppler/TextOutputDev.cc
index 7c2ca78..e93908c 100644
--- a/poppler/TextOutputDev.cc
+++ b/poppler/TextOutputDev.cc
@@ -178,6 +178,12 @@
// to read the underlying image. Issue #157
#define glyphlessSelectionOpacity 0.4
+// Returns whether x is between a and b or equal to a or b.
+// a and b don't need to be sorted.
+#define XBetweenAB(x,a,b) (!(((x) > (a) && (x) > (b)) || \
+ ((x) < (a) && (x) < (b))) ? \
+ true : false)
+
namespace {
inline bool isAscii7(Unicode uchar)
@@ -4411,11 +4417,37 @@ void TextSelectionSizer::visitLine (TextLine *line,
PDFRectangle *rect;
double x1, y1, x2, y2, margin;
- margin = (line->yMax - line->yMin) / 8;
- x1 = line->edge[edge_begin];
- y1 = line->yMin - margin;
- x2 = line->edge[edge_end];
- y2 = line->yMax + margin;
+ switch (line->rot) {
+ default:
+ case 0:
+ margin = (line->yMax - line->yMin) / 8;
+ x1 = line->edge[edge_begin];
+ x2 = line->edge[edge_end];
+ y1 = line->yMin - margin;
+ y2 = line->yMax + margin;
+ break;
+ case 1:
+ margin = (line->xMax - line->xMin) / 8;
+ x1 = line->xMin - margin;
+ x2 = line->xMax + margin;
+ y1 = line->edge[edge_begin];
+ y2 = line->edge[edge_end];
+ break;
+ case 2:
+ margin = (line->yMax - line->yMin) / 8;
+ x1 = line->edge[edge_end];
+ x2 = line->edge[edge_begin];
+ y1 = line->yMin - margin;
+ y2 = line->yMax + margin;
+ break;
+ case 3:
+ margin = (line->xMax - line->xMin) / 8;
+ x1 = line->xMin - margin;
+ x2 = line->xMax + margin;
+ y1 = line->edge[edge_end];
+ y2 = line->edge[edge_begin];
+ break;
+ }
rect = new PDFRectangle(floor(x1 * scale), floor(y1 * scale), ceil(x2 * scale), ceil(y2 * scale));
list->push_back(rect);
@@ -4499,19 +4531,56 @@ void TextSelectionPainter::visitLine (TextLine *line,
{
double x1, y1, x2, y2, margin;
- margin = (line->yMax - line->yMin) / 8;
- x1 = floor(line->edge[edge_begin]);
- y1 = floor(line->yMin - margin);
- x2 = ceil(line->edge[edge_end]);
- y2 = ceil(line->yMax + margin);
+ switch (line->rot) {
+ default:
+ case 0:
+ margin = (line->yMax - line->yMin) / 8;
+ x1 = line->edge[edge_begin];
+ x2 = line->edge[edge_end];
+ y1 = line->yMin - margin;
+ y2 = line->yMax + margin;
+ break;
+ case 1:
+ margin = (line->xMax - line->xMin) / 8;
+ x1 = line->xMin - margin;
+ x2 = line->xMax + margin;
+ y1 = line->edge[edge_begin];
+ y2 = line->edge[edge_end];
+ break;
+ case 2:
+ margin = (line->yMax - line->yMin) / 8;
+ x1 = line->edge[edge_end];
+ x2 = line->edge[edge_begin];
+ y1 = line->yMin - margin;
+ y2 = line->yMax + margin;
+ break;
+ case 3:
+ margin = (line->xMax - line->xMin) / 8;
+ x1 = line->xMin - margin;
+ x2 = line->xMax + margin;
+ y1 = line->edge[edge_end];
+ y2 = line->edge[edge_begin];
+ break;
+ }
+
+ ctm.transform(x1, y1, &x1, &y1);
+ ctm.transform(x2, y2, &x2, &y2);
- ctm.transform(line->edge[edge_begin], line->yMin - margin, &x1, &y1);
- ctm.transform(line->edge[edge_end], line->yMax + margin, &x2, &y2);
+ if (x1 < x2) {
+ x1 = floor(x1);
+ x2 = ceil(x2);
+ } else {
+ x1 = ceil(x1);
+ x2 = floor(x2);
+ }
- x1 = floor(x1);
- y1 = floor(y1);
- x2 = ceil(x2);
- y2 = ceil(y2);
+ if (y1 < y2) {
+ y1 = floor(y1);
+ y2 = ceil(y2);
+ } else {
+ y1 = ceil(y1);
+ y2 = floor(y2);
+ }
ictm.transform(x1, y1, &x1, &y1);
ictm.transform(x2, y2, &x2, &y2);
@@ -4589,17 +4658,26 @@ void TextWord::visitSelection(TextSelectionVisitor *visitor,
void TextWord::visitSelection(TextSelectionVisitor *visitor, const PDFRectangle *selection, SelectionStyle style)
{
int i, begin, end;
- double mid;
+ double mid, s1, s2;
+
+ if (rot == 0 || rot == 2) {
+ s1 = selection->x1;
+ s2 = selection->x2;
+ } else {
+ s1 = selection->y1;
+ s2 = selection->y2;
+ }
begin = len;
end = 0;
for (i = 0; i < len; i++) {
mid = (edge[i] + edge[i + 1]) / 2;
- if (selection->x1 < mid || selection->x2 < mid)
- if (i < begin)
- begin = i;
- if (mid < selection->x1 || mid < selection->x2)
- end = i + 1;
+ if (XBetweenAB (mid, s1, s2)) {
+ if (i < begin)
+ begin = i;
+
+ end = i + 1;
+ }
}
/* Skip empty selection. */
@@ -4615,26 +4694,41 @@ void TextLine::visitSelection(TextSelectionVisitor *visitor,
TextWord *p, *begin, *end, *current;
int i, edge_begin, edge_end;
PDFRectangle child_selection;
+ double s1, s2, p_min, p_max;
+
+ if (rot == 0 || rot == 2) {
+ s1 = selection->x1;
+ s2 = selection->x2;
+ } else {
+ s1 = selection->y1;
+ s2 = selection->y2;
+ }
begin = nullptr;
end = nullptr;
current = nullptr;
for (p = words; p != nullptr; p = p->next) {
+ if (rot == 0 || rot == 2) {
+ p_min = p->xMin;
+ p_max = p->xMax;
+ } else {
+ p_min = p->yMin;
+ p_max = p->yMax;
+ }
+
if (blk->page->primaryLR) {
- if ((selection->x1 < p->xMax) || (selection->x2 < p->xMax))
- if (begin == nullptr)
- begin = p;
+ if (((s1 < p_max) || (s2 < p_max)) && begin == nullptr)
+ begin = p;
- if (((selection->x1 > p->xMin) || (selection->x2 > p->xMin)) && (begin != nullptr)) {
+ if (((s1 > p_min) || (s2 > p_min)) && begin != nullptr) {
end = p->next;
current = p;
}
} else {
- if ((selection->x1 > p->xMin) || (selection->x2 > p->xMin))
- if (begin == nullptr)
- begin = p;
+ if (((s1 > p_min) || (s2 > p_min)) && begin == nullptr)
+ begin = p;
- if (((selection->x1 < p->xMax) || (selection->x2 < p->xMax)) && (begin != nullptr)) {
+ if (((s1 < p_max) || (s2 < p_max)) && begin != nullptr) {
end = p->next;
current = p;
}
@@ -4650,23 +4740,41 @@ void TextLine::visitSelection(TextSelectionVisitor *visitor,
child_selection = *selection;
if (style == selectionStyleWord) {
- child_selection.x1 = begin ? begin->xMin : xMin;
- if (end && end->xMax != -1) {
- child_selection.x2 = current->xMax;
+ if (rot == 0 || rot == 2) {
+ child_selection.x1 = begin ? begin->xMin : xMin;
+ if (end && end->xMax != -1) {
+ child_selection.x2 = current->xMax;
+ } else {
+ child_selection.x2 = xMax;
+ }
} else {
- child_selection.x2 = xMax;
+ child_selection.y1 = begin ? begin->yMin : yMin;
+ if (end && end->yMax != -1) {
+ child_selection.y2 = current->yMax;
+ } else {
+ child_selection.y2 = yMax;
+ }
}
}
+ if (rot == 0 || rot == 2) {
+ s1 = child_selection.x1;
+ s2 = child_selection.x2;
+ } else {
+ s1 = child_selection.y1;
+ s2 = child_selection.y2;
+ }
+
edge_begin = len;
edge_end = 0;
for (i = 0; i < len; i++) {
double mid = (edge[i] + edge[i + 1]) / 2;
- if (child_selection.x1 < mid || child_selection.x2 < mid)
- if (i < edge_begin)
- edge_begin = i;
- if (mid < child_selection.x2 || mid < child_selection.x1)
- edge_end = i + 1;
+ if (XBetweenAB (mid, s1, s2)) {
+ if (i < edge_begin)
+ edge_begin = i;
+
+ edge_end = i + 1;
+ }
}
/* Skip empty selection. */
--
1.8.4.2

View File

@ -0,0 +1,205 @@
--- poppler/glib/poppler-document.cc
+++ poppler/glib/poppler-document.cc
@@ -3405,6 +3405,7 @@ PopplerFormField *poppler_document_get_f
unsigned fieldNum;
FormPageWidgets *widgets;
FormWidget *field;
+ PopplerFormField *formField;
FormWidget::decodeID(id, &pageNum, &fieldNum);
@@ -3417,8 +3418,14 @@ PopplerFormField *poppler_document_get_f
return nullptr;
field = widgets->getWidget(fieldNum);
- if (field)
- return _poppler_form_field_new(document, field);
+ if (field) {
+ formField = _poppler_form_field_new(document, field);
+ delete widgets;
+
+ return formField;
+ }
+
+ delete widgets;
return nullptr;
}
--- poppler/poppler/CairoOutputDev.cc
+++ poppler/poppler/CairoOutputDev.cc
@@ -2921,8 +2921,10 @@ void CairoOutputDev::setMimeData(GfxStat
// colorspace in stream dict may be different from colorspace in jpx
// data
- if (strKind == strJPX && colorSpace)
+ if (strKind == strJPX && colorSpace) {
+ delete colorSpace;
return;
+ }
// only embed mime data for gray, rgb, and cmyk colorspaces.
if (colorSpace) {
--- poppler/poppler/TextOutputDev.cc
+++ poppler/poppler/TextOutputDev.cc
@@ -1619,7 +1619,6 @@ TextBlock::~TextBlock()
void TextBlock::addWord(TextWord *word)
{
- pool->addWord(word);
if (xMin > xMax) {
xMin = word->xMin;
xMax = word->xMax;
@@ -1639,6 +1638,7 @@ void TextBlock::addWord(TextWord *word)
yMax = word->yMax;
}
}
+ pool->addWord(word);
}
void TextBlock::coalesce(const UnicodeMap *uMap, double fixedPitch)
@@ -3064,11 +3064,13 @@ void TextPage::coalesce(bool physLayout,
word0 = pool->getPool(startBaseIdx);
pool->setPool(startBaseIdx, word0->next);
word0->next = nullptr;
- blk = new TextBlock(this, rot);
- blk->addWord(word0);
fontSize = word0->fontSize;
minBase = maxBase = word0->base;
+
+ blk = new TextBlock(this, rot);
+ blk->addWord(word0);
+
colSpace1 = minColSpacing1 * fontSize;
colSpace2 = minColSpacing2 * fontSize;
lineSpace = maxLineSpacingDelta * fontSize;
@@ -3095,9 +3097,9 @@ void TextPage::coalesce(bool physLayout,
}
word1 = word1->next;
word2->next = nullptr;
+ newMinBase = word2->base;
blk->addWord(word2);
found = true;
- newMinBase = word2->base;
} else {
word0 = word1;
word1 = word1->next;
@@ -3123,9 +3125,9 @@ void TextPage::coalesce(bool physLayout,
}
word1 = word1->next;
word2->next = nullptr;
+ newMaxBase = word2->base;
blk->addWord(word2);
found = true;
- newMaxBase = word2->base;
} else {
word0 = word1;
word1 = word1->next;
@@ -3198,12 +3200,12 @@ void TextPage::coalesce(bool physLayout,
}
word1 = word1->next;
word2->next = nullptr;
- blk->addWord(word2);
if (word2->base < minBase) {
minBase = word2->base;
} else if (word2->base > maxBase) {
maxBase = word2->base;
}
+ blk->addWord(word2);
found = true;
break;
} else {
@@ -3246,12 +3248,12 @@ void TextPage::coalesce(bool physLayout,
}
word1 = word1->next;
word2->next = nullptr;
- blk->addWord(word2);
if (word2->base < minBase) {
minBase = word2->base;
} else if (word2->base > maxBase) {
maxBase = word2->base;
}
+ blk->addWord(word2);
found = true;
break;
} else {
--- poppler/poppler/XRef.cc
+++ poppler/poppler/XRef.cc
@@ -402,6 +402,7 @@ int XRef::reserve(int newSize)
void *p = greallocn_checkoverflow(entries, realNewSize, sizeof(XRefEntry));
if (p == nullptr) {
+ entries = nullptr;
return 0;
}
@@ -835,7 +836,6 @@ bool XRef::constructXRef(bool *wasRecons
int offset = 0;
resize(0); // free entries properly
- gfree(entries);
capacity = 0;
size = 0;
entries = nullptr;
--- poppler/test/pdf-inspector.cc
+++ poppler/test/pdf-inspector.cc
@@ -43,6 +43,7 @@ class PdfInspector
{
public:
PdfInspector();
+ ~PdfInspector();
void set_file_name(const char *file_name);
void load(const char *file_name);
@@ -108,6 +109,11 @@ PdfInspector::PdfInspector()
load(nullptr);
}
+PdfInspector::~PdfInspector(void)
+{
+ delete output;
+}
+
void PdfInspector::set_file_name(const char *file_name)
{
GtkWidget *widget;
--- poppler/utils/HtmlOutputDev.cc
+++ poppler/utils/HtmlOutputDev.cc
@@ -1337,6 +1337,7 @@ void HtmlOutputDev::drawPngImage(GfxStat
// TODO can we calculate the resolution of the image?
if (!writer->init(f1, width, height, 72, 72)) {
error(errInternal, -1, "Can't init PNG for image '{0:t}'", fName);
+ delete fName;
delete writer;
fclose(f1);
return;
--- poppler/utils/pdftotext.cc
+++ poppler/utils/pdftotext.cc
@@ -329,6 +329,7 @@ int main(int argc, char *argv[])
fputs("<pre>\n", f);
if (f != stdout) {
fclose(f);
+ f = nullptr;
}
}
}
@@ -348,8 +349,9 @@ int main(int argc, char *argv[])
printWordBBox(f, doc, textOut, firstPage, lastPage);
}
}
- if (f != stdout) {
+ if (f != stdout && f != nullptr) {
fclose(f);
+ f = nullptr;
}
} else {
textOut = new TextOutputDev(textFileName->c_str(), physLayout, fixedPitch, rawOrder, htmlMeta, discardDiag);
@@ -390,7 +392,7 @@ int main(int argc, char *argv[])
fputs("</pre>\n", f);
fputs("</body>\n", f);
fputs("</html>\n", f);
- if (f != stdout) {
+ if (f != stdout && f != nullptr) {
fclose(f);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
From dcd5bd8238ea448addd102ff045badd0aca1b990 Mon Sep 17 00:00:00 2001
From: crt <chluo@cse.cuhk.edu.hk>
Date: Wed, 27 Jul 2022 08:40:02 +0000
Subject: pdfseparate: Check XRef's Catalog for being a Dict
diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
index 351140af..c26a41c4 100644
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -886,6 +886,10 @@ int PDFDoc::savePageAs(const GooString &name, int pageNo)
// get and mark output intents etc.
Object catObj = getXRef()->getCatalog();
+ if (!catObj.isDict()) {
+ error(errSyntaxError, -1, "XRef's Catelog is not a dictionary");
+ return errOpenFile;
+ }
Dict *catDict = catObj.getDict();
Object pagesObj = catDict->lookup("Pages");
Object afObj = catDict->lookupNF("AcroForm").copy();

View File

@ -0,0 +1,35 @@
From 4f478daa6a9734b8f269a6586bdce2909844bb6f Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Wed, 23 Dec 2020 23:52:58 +0100
Subject: Fix opening files by some generators that are a bit broken
But Adobe opens it and it's easy to fix
diff --git a/poppler/XRef.cc b/poppler/XRef.cc
index 66d3f04a..c36c747a 100644
--- a/poppler/XRef.cc
+++ b/poppler/XRef.cc
@@ -45,6 +45,7 @@
#include <cctype>
#include <climits>
#include <cfloat>
+#include <limits>
#include "goo/gfile.h"
#include "goo/gmem.h"
#include "Object.h"
@@ -793,8 +794,13 @@ bool XRef::readXRefStreamSection(Stream *xrefStr, const int *w, int first, int n
gen = (gen << 8) + c;
}
if (gen > INT_MAX) {
- error(errSyntaxError, -1, "Gen inside xref table too large (bigger than INT_MAX)");
- return false;
+ if (i == 0 && gen == std::numeric_limits<uint32_t>::max()) {
+ // workaround broken generators
+ gen = 65535;
+ } else {
+ error(errSyntaxError, -1, "Gen inside xref table too large (bigger than INT_MAX)");
+ return false;
+ }
}
if (entries[i].offset == -1) {
switch (type) {

View File

@ -0,0 +1,30 @@
--- poppler-20.11.0/glib/poppler-attachment.cc
+++ poppler-20.11.0/glib/poppler-attachment.cc
@@ -114,17 +114,21 @@ PopplerAttachment *_poppler_attachment_n
if (embFile->createDate()) {
priv->ctime = _poppler_convert_pdf_date_to_date_time(embFile->createDate());
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- /* This will overflow on dates from after 2038. This field is
- * deprecated, only kept for backward compatibility. */
- attachment->ctime = (GTime)g_date_time_to_unix(priv->ctime);
+ if (priv->ctime != NULL) {
+ /* This will overflow on dates from after 2038. This field is
+ * deprecated, only kept for backward compatibility. */
+ attachment->ctime = (GTime)g_date_time_to_unix(priv->ctime);
+ }
G_GNUC_END_IGNORE_DEPRECATIONS
}
if (embFile->modDate()) {
priv->mtime = _poppler_convert_pdf_date_to_date_time(embFile->modDate());
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- /* This will overflow on dates from after 2038. This field is
- * deprecated, only kept for backward compatibility. */
- attachment->mtime = (GTime)g_date_time_to_unix(priv->mtime);
+ if (priv->mtime != NULL) {
+ /* This will overflow on dates from after 2038. This field is
+ * deprecated, only kept for backward compatibility. */
+ attachment->mtime = (GTime)g_date_time_to_unix(priv->mtime);
+ }
G_GNUC_END_IGNORE_DEPRECATIONS
}

View File

@ -0,0 +1,34 @@
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -1757,6 +1757,9 @@ void PDFDoc::replacePageDict(int pageNo,
{
Ref *refPage = getCatalog()->getPageRef(pageNo);
Object page = getXRef()->fetch(*refPage);
+ if (!page.isDict()) {
+ return;
+ }
Dict *pageDict = page.getDict();
pageDict->remove("MediaBoxssdf");
pageDict->remove("MediaBox");
--- a/utils/pdfunite.cc
+++ b/utils/pdfunite.cc
@@ -293,9 +293,18 @@ int main(int argc, char *argv[])
const PDFRectangle *cropBox = nullptr;
if (docs[i]->getCatalog()->getPage(j)->isCropped())
cropBox = docs[i]->getCatalog()->getPage(j)->getCropBox();
- docs[i]->replacePageDict(j, docs[i]->getCatalog()->getPage(j)->getRotate(), docs[i]->getCatalog()->getPage(j)->getMediaBox(), cropBox);
Ref *refPage = docs[i]->getCatalog()->getPageRef(j);
Object page = docs[i]->getXRef()->fetch(*refPage);
+ if (!page.isDict()) {
+ fclose(f);
+ delete yRef;
+ delete countRef;
+ delete outStr;
+ error(errSyntaxError, -1, "PDFDoc::replacePageDict failed.");
+ return -1;
+ } else {
+ docs[i]->replacePageDict(j, docs[i]->getCatalog()->getPage(j)->getRotate(), docs[i]->getCatalog()->getPage(j)->getMediaBox(), cropBox);
+ }
Dict *pageDict = page.getDict();
Object *resDict = docs[i]->getCatalog()->getPage(j)->getResourceDictObject();
if (resDict->isDict()) {

View File

@ -0,0 +1,45 @@
From 3cc28b66132e66ed2dfe13a9a285ac41ac7267d5 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Wed, 23 Dec 2020 23:27:02 +0100
Subject: [PATCH] FoFiType1C: Fix crashes with broken files
---
fofi/FoFiType1C.cc | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/fofi/FoFiType1C.cc b/fofi/FoFiType1C.cc
index 0387b0a87..4c2e9a770 100644
--- a/fofi/FoFiType1C.cc
+++ b/fofi/FoFiType1C.cc
@@ -194,7 +194,6 @@ void FoFiType1C::convertToType1(const char *psName, const char **newEncoding, bo
Type1CIndexVal val;
GooString *buf;
char buf2[256];
- const char **enc;
bool ok;
int i;
@@ -299,9 +298,9 @@ void FoFiType1C::convertToType1(const char *psName, const char **newEncoding, bo
} else {
(*outputFunc)(outputStream, "256 array\n", 10);
(*outputFunc)(outputStream, "0 1 255 {1 index exch /.notdef put} for\n", 40);
- enc = newEncoding ? newEncoding : (const char **)encoding;
+ const char **enc = newEncoding ? newEncoding : (const char **)encoding;
for (i = 0; i < 256; ++i) {
- if (enc[i]) {
+ if (enc && enc[i]) {
buf = GooString::format("dup {0:d} /{1:s} put\n", i, enc[i]);
(*outputFunc)(outputStream, buf->c_str(), buf->getLength());
delete buf;
@@ -1945,7 +1944,7 @@ bool FoFiType1C::parse()
readPrivateDict(0, 0, &privateDicts[0]);
} else {
getIndex(topDict.fdArrayOffset, &fdIdx, &parsedOk);
- if (!parsedOk) {
+ if (!parsedOk || fdIdx.len <= 0) {
return false;
}
nFDs = fdIdx.len;
--
GitLab

View File

@ -0,0 +1,58 @@
From 81044c64b9ed9a10ae82a28bac753060bdfdac74 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Tue, 15 Mar 2022 15:14:32 +0100
Subject: Hints::readTables: bail out if we run out of file when reading
Fixes #1230
diff --git a/poppler/Hints.cc b/poppler/Hints.cc
index 79f04088..4707e1c6 100644
--- a/poppler/Hints.cc
+++ b/poppler/Hints.cc
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright 2010, 2012 Hib Eris <hib@hiberis.nl>
-// Copyright 2010, 2011, 2013, 2014, 2016-2019 Albert Astals Cid <aacid@kde.org>
+// Copyright 2010, 2011, 2013, 2014, 2016-2019, 2021, 2022 Albert Astals Cid <aacid@kde.org>
// Copyright 2010, 2013 Pino Toscano <pino@kde.org>
// Copyright 2013 Adrian Johnson <ajohnson@redneon.com>
// Copyright 2014 Fabio D'Urso <fabiodurso@hotmail.it>
@@ -189,21 +189,31 @@ void Hints::readTables(BaseStream *str, Linearization *linearization, XRef *xref
char *p = &buf[0];
if (hintsOffset && hintsLength) {
- Stream *s = str->makeSubStream(hintsOffset, false, hintsLength, Object(objNull));
+ std::unique_ptr<Stream> s(str->makeSubStream(hintsOffset, false, hintsLength, Object(objNull)));
s->reset();
for (unsigned int i = 0; i < hintsLength; i++) {
- *p++ = s->getChar();
+ const int c = s->getChar();
+ if (unlikely(c == EOF)) {
+ error(errSyntaxWarning, -1, "Found EOF while reading hints");
+ ok = false;
+ return;
+ }
+ *p++ = c;
}
- delete s;
}
if (hintsOffset2 && hintsLength2) {
- Stream *s = str->makeSubStream(hintsOffset2, false, hintsLength2, Object(objNull));
+ std::unique_ptr<Stream> s(str->makeSubStream(hintsOffset2, false, hintsLength2, Object(objNull)));
s->reset();
for (unsigned int i = 0; i < hintsLength2; i++) {
- *p++ = s->getChar();
+ const int c = s->getChar();
+ if (unlikely(c == EOF)) {
+ error(errSyntaxWarning, -1, "Found EOF while reading hints2");
+ ok = false;
+ return;
+ }
+ *p++ = c;
}
- delete s;
}
MemStream *memStream = new MemStream(&buf[0], 0, bufLength, Object(objNull));

View File

@ -0,0 +1,26 @@
From 27354e9d9696ee2bc063910a6c9a6b27c5184a52 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Thu, 25 Aug 2022 00:14:22 +0200
Subject: JBIG2Stream: Fix crash on broken file
https://github.com/jeffssh/CVE-2021-30860
Thanks to David Warren for the heads up
diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc
index 662276e5..9f70431d 100644
--- a/poppler/JBIG2Stream.cc
+++ b/poppler/JBIG2Stream.cc
@@ -1976,7 +1976,11 @@ void JBIG2Stream::readTextRegionSeg(unsigned int segNum, bool imm, bool lossless
for (i = 0; i < nRefSegs; ++i) {
if ((seg = findSegment(refSegs[i]))) {
if (seg->getType() == jbig2SegSymbolDict) {
- numSyms += ((JBIG2SymbolDict *)seg)->getSize();
+ const unsigned int segSize = ((JBIG2SymbolDict *)seg)->getSize();
+ if (unlikely(checkedAdd(numSyms, segSize, &numSyms))) {
+ error(errSyntaxError, getPos(), "Too many symbols in JBIG2 text region");
+ return;
+ }
} else if (seg->getType() == jbig2SegCodeTable) {
codeTables->push_back(seg);
}

View File

@ -3,6 +3,7 @@ From: Albert Astals Cid <aacid@kde.org>
Date: Fri, 7 Jun 2024 00:54:55 +0200 Date: Fri, 7 Jun 2024 00:54:55 +0200
Subject: pdfinfo: Fix crash in broken documents when using -dests Subject: pdfinfo: Fix crash in broken documents when using -dests
Modified by Marek Kasik due to the backport.
diff --git a/utils/pdfinfo.cc b/utils/pdfinfo.cc diff --git a/utils/pdfinfo.cc b/utils/pdfinfo.cc
index 5d37ef64..7d569749 100644 index 5d37ef64..7d569749 100644
@ -12,36 +13,36 @@ index 5d37ef64..7d569749 100644
// under GPL version 2 or later // under GPL version 2 or later
// //
// Copyright (C) 2006 Dom Lachowicz <cinamod@hotmail.com> // Copyright (C) 2006 Dom Lachowicz <cinamod@hotmail.com>
-// Copyright (C) 2007-2010, 2012, 2016-2022 Albert Astals Cid <aacid@kde.org> -// Copyright (C) 2007-2010, 2012, 2016-2020 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2007-2010, 2012, 2016-2022, 2024 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2007-2010, 2012, 2016-2020, 2024 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Hib Eris <hib@hiberis.nl> // Copyright (C) 2010 Hib Eris <hib@hiberis.nl>
// Copyright (C) 2011 Vittal Aithal <vittal.aithal@cognidox.com> // Copyright (C) 2011 Vittal Aithal <vittal.aithal@cognidox.com>
// Copyright (C) 2012, 2013, 2016-2018, 2021 Adrian Johnson <ajohnson@redneon.com> // Copyright (C) 2012, 2013, 2016-2018 Adrian Johnson <ajohnson@redneon.com>
@@ -113,16 +113,21 @@ static const ArgDesc argDesc[] = { { "-f", argInt, &firstPage, 0, "first page to @@ -107,6 +107,23 @@ static const ArgDesc argDesc[] = { { "-f
{ "-?", argFlag, &printHelp, 0, "print usage information" }, { "-?", argFlag, &printHelp, 0, "print usage information" },
{} }; {} };
-static void printTextString(const GooString *s, const UnicodeMap *uMap)
+static void printStdTextString(const std::string &s, const UnicodeMap *uMap) +static void printStdTextString(const std::string &s, const UnicodeMap *uMap)
{
char buf[8];
- std::vector<Unicode> u = TextStringToUCS4(s->toStr());
+ const std::vector<Unicode> u = TextStringToUCS4(s);
for (const auto &c : u) {
int n = uMap->mapUnicode(c, buf, sizeof(buf));
fwrite(buf, 1, n, stdout);
}
}
+static void printTextString(const GooString *s, const UnicodeMap *uMap)
+{ +{
+ printStdTextString(s->toStr(), uMap); + char buf[8];
+ Unicode *u;
+ int i, len;
+ GooString *s1 = new GooString(s);
+
+ if (s1 != nullptr) {
+ len = TextStringToUCS4(s1, &u);
+ for (i = 0; i < len; i++) {
+ int n = uMap->mapUnicode(u[i], buf, sizeof(buf));
+ fwrite(buf, 1, n, stdout);
+ }
+ delete s1;
+ }
+} +}
+ +
static void printUCS4String(const Unicode *u, int len, const UnicodeMap *uMap) static void printInfoString(Dict *infoDict, const char *key, const char *text, const UnicodeMap *uMap)
{ {
char buf[8]; const GooString *s1;
@@ -294,11 +299,6 @@ static void printStruct(const StructElement *element, unsigned indent) @@ -278,11 +295,6 @@ static void printStruct(const StructElem
} }
} }
@ -53,7 +54,7 @@ index 5d37ef64..7d569749 100644
static void printLinkDest(const std::unique_ptr<LinkDest> &dest) static void printLinkDest(const std::unique_ptr<LinkDest> &dest)
{ {
GooString s; GooString s;
@@ -369,29 +369,25 @@ static void printLinkDest(const std::unique_ptr<LinkDest> &dest) @@ -353,29 +365,25 @@ static void printLinkDest(const std::uni
static void printDestinations(PDFDoc *doc, const UnicodeMap *uMap) static void printDestinations(PDFDoc *doc, const UnicodeMap *uMap)
{ {
@ -89,11 +90,18 @@ index 5d37ef64..7d569749 100644
} }
} }
@@ -405,9 +401,8 @@ static void printDestinations(PDFDoc *doc, const UnicodeMap *uMap) @@ -389,16 +397,8 @@ static void printDestinations(PDFDoc *do
printf("%4d ", i); printf("%4d ", i);
printLinkDest(it.second); printLinkDest(it.second);
printf(" \""); printf(" \"");
- printTextString(it.first, uMap); - Unicode *u;
- char buf[8];
- const int len = TextStringToUCS4(it.first, &u);
- for (int j = 0; j < len; j++) {
- const int n = uMap->mapUnicode(u[j], buf, sizeof(buf));
- fwrite(buf, 1, n, stdout);
- }
- gfree(u);
+ printStdTextString(it.first, uMap); + printStdTextString(it.first, uMap);
printf("\"\n"); printf("\"\n");
- delete it.first; - delete it.first;

View File

@ -0,0 +1,48 @@
From efb68686784f0c58668b7ced990fd173e09346db Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Thu, 18 Aug 2022 23:41:24 +0200
Subject: pdfunite: Don't crash in broken documents
diff --git a/utils/pdfunite.cc b/utils/pdfunite.cc
index 86e75555..a154f40d 100644
--- a/utils/pdfunite.cc
+++ b/utils/pdfunite.cc
@@ -106,16 +106,21 @@ static void doMergeNameDict(PDFDoc *doc, XRef *srcXRef, XRef *countRef, int oldR
}
}
-static void doMergeFormDict(Dict *srcFormDict, Dict *mergeFormDict, int numOffset)
+static bool doMergeFormDict(Dict *srcFormDict, Dict *mergeFormDict, int numOffset)
{
Object srcFields = srcFormDict->lookup("Fields");
Object mergeFields = mergeFormDict->lookup("Fields");
if (srcFields.isArray() && mergeFields.isArray()) {
for (int i = 0; i < mergeFields.arrayGetLength(); i++) {
const Object &value = mergeFields.arrayGetNF(i);
+ if (!value.isRef()) {
+ error(errSyntaxError, -1, "Fields object is not a Ref.");
+ return false;
+ }
srcFields.arrayAdd(Object({ value.getRef().num + numOffset, value.getRef().gen }));
}
}
+ return true;
}
///////////////////////////////////////////////////////////////////////////
@@ -332,7 +337,13 @@ int main(int argc, char *argv[])
if (afObj.isNull()) {
afObj = pageCatDict->lookupNF("AcroForm").copy();
} else if (afObj.isDict()) {
- doMergeFormDict(afObj.getDict(), pageForm.getDict(), numOffset);
+ if (!doMergeFormDict(afObj.getDict(), pageForm.getDict(), numOffset)) {
+ fclose(f);
+ delete yRef;
+ delete countRef;
+ delete outStr;
+ return -1;
+ }
}
}
objectsCount += docs[i]->writePageObjects(outStr, yRef, numOffset, true);

View File

@ -0,0 +1,41 @@
From 4631115647c1e4f0482ffe0491c2f38d2231337b Mon Sep 17 00:00:00 2001
From: crt <chluo@cse.cuhk.edu.hk>
Date: Fri, 29 Jul 2022 20:51:11 +0000
Subject: Check isDict before calling getDict
Issue #1276
diff --git a/utils/pdfunite.cc b/utils/pdfunite.cc
index b96b0378..050927d3 100644
--- a/utils/pdfunite.cc
+++ b/utils/pdfunite.cc
@@ -197,6 +197,14 @@ int main(int argc, char *argv[])
Object ocObj;
if (docs.size() >= 1) {
Object catObj = docs[0]->getXRef()->getCatalog();
+ if(!catObj.isDict()){
+ fclose(f);
+ delete yRef;
+ delete countRef;
+ delete outStr;
+ error(errSyntaxError, -1, "XRef's Catalog is not a dictionary.");
+ return -1;
+ }
Dict *catDict = catObj.getDict();
intents = catDict->lookup("OutputIntents");
afObj = catDict->lookupNF("AcroForm").copy();
@@ -295,6 +303,14 @@ int main(int argc, char *argv[])
}
}
Object pageCatObj = docs[i]->getXRef()->getCatalog();
+ if(!pageCatObj.isDict()){
+ fclose(f);
+ delete yRef;
+ delete countRef;
+ delete outStr;
+ error(errSyntaxError, -1, "XRef's Catalog is not a dictionary.");
+ return -1;
+ }
Dict *pageCatDict = pageCatObj.getDict();
Object pageNames = pageCatDict->lookup("Names");
if (!pageNames.isNull() && pageNames.isDict()) {

View File

@ -1,39 +1,57 @@
%global test_sha 03a4b9eb854a06a83c465e82de601796c458bbe9 %global test_sha 0d2bfd4af4c76a3bac27ccaff793d9129df7b57a
%global test_date 2021-01-11 %global test_date 2009-05-13
%bcond qt 1
%if %{with qt}
# Enable qt5 support (or not)
# RHEL 10 drops support for Qt5, adds Qt6
%if %{undefined rhel} || 0%{?rhel} < 10
%global qt5 1
%endif
%if %{undefined rhel} || 0%{?rhel} >= 10
%global qt6 1
%endif
%endif
Summary: PDF rendering library Summary: PDF rendering library
Name: poppler Name: poppler
Version: 24.02.0 Version: 20.11.0
Release: 5%{?dist} Release: 12%{?dist}
License: (GPL-2.0-only OR GPL-3.0-only) AND GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT License: (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+ and MIT
URL: http://poppler.freedesktop.org/ URL: http://poppler.freedesktop.org/
Source0: http://poppler.freedesktop.org/poppler-%{version}.tar.xz Source0: http://poppler.freedesktop.org/poppler-%{version}.tar.xz
# git archive --prefix test/ # git archive --prefix test/
Source1: %{name}-test-%{test_date}-%{test_sha}.tar.xz Source1: %{name}-test-%{test_date}_%{test_sha}.tar.xz
Patch1: poppler-0.90.0-position-independent-code.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1185007
Patch0: poppler-0.30.0-rotated-words-selection.patch
Patch3: poppler-21.01.0-glib-introspection.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1602662
# https://bugzilla.redhat.com/show_bug.cgi?id=1638712
Patch4: poppler-0.66.0-covscan.patch
# https://issues.redhat.com/browse/RHEL-44326 # https://bugzilla.redhat.com/show_bug.cgi?id=1618766
Patch4: poppler-24.02.0-pdfinfo-dests.patch Patch21: poppler-0.66.0-nss.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1981108
Patch22: poppler-20.11.0-check-gdatetime.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2002575
Patch23: poppler-20.11.0-bad-generation.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2087190
Patch24: poppler-20.11.0-hints.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2124527
Patch25: poppler-20.11.0-jbig-symbol-overflow.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2189815
Patch26: poppler-20.11.0-pdfunite-broken-document.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2189811
Patch27: poppler-20.11.0-pdfunite-check-isDict.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2189814
Patch28: poppler-20.11.0-check-isDict.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2189810
Patch29: poppler-20.11.0-XRef-check-isDict.patch
# https://issues.redhat.com/browse/RHEL-4255
Patch30: poppler-20.11.0-fix-crash-in-FoFiType1C.patch
# https://issues.redhat.com/browse/RHEL-44330
Patch31: poppler-20.11.0-pdfinfo-dests.patch
BuildRequires: make
BuildRequires: cmake BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: gettext-devel BuildRequires: gettext-devel
BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(cairo-ft) BuildRequires: pkgconfig(cairo-ft)
@ -45,7 +63,7 @@ BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(gtk-doc) BuildRequires: pkgconfig(gtk-doc)
BuildRequires: pkgconfig(lcms2) BuildRequires: pkgconfig(lcms2)
@ -55,23 +73,12 @@ BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libtiff-4) BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(poppler-data) BuildRequires: pkgconfig(poppler-data)
BuildRequires: pkgconfig(libcurl)
BuildRequires: cmake(Gpgmepp)
%if 0%{?qt5}
BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Test) BuildRequires: pkgconfig(Qt5Test)
BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5Xml) BuildRequires: pkgconfig(Qt5Xml)
%endif BuildRequires: python3-devel
%if 0%{?qt6}
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(Qt6Gui)
BuildRequires: cmake(Qt6Test)
BuildRequires: cmake(Qt6Widgets)
BuildRequires: cmake(Qt6Xml)
%endif
BuildRequires: boost-devel
Requires: poppler-data Requires: poppler-data
@ -111,11 +118,9 @@ BuildArch: noarch
%description glib-doc %description glib-doc
%{summary}. %{summary}.
%if 0%{?qt5}
%package qt5 %package qt5
Summary: Qt5 wrapper for poppler Summary: Qt5 wrapper for poppler
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-qt < 0.90.0-9
%description qt5 %description qt5
%{summary}. %{summary}.
@ -124,26 +129,8 @@ Summary: Development files for Qt5 wrapper
Requires: %{name}-qt5%{?_isa} = %{version}-%{release} Requires: %{name}-qt5%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release} Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: qt5-qtbase-devel Requires: qt5-qtbase-devel
Obsoletes: %{name}-qt-devel < 0.90.0-9
%description qt5-devel %description qt5-devel
%{summary}. %{summary}.
%endif
%if 0%{?qt6}
%package qt6
Summary: Qt6 wrapper for poppler
Requires: %{name}%{?_isa} = %{version}-%{release}
%description qt6
%{summary}.
%package qt6-devel
Summary: Development files for Qt6 wrapper
Requires: %{name}-qt6%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: qt6-qtbase-devel
%description qt6-devel
%{summary}.
%endif
%package cpp %package cpp
Summary: Pure C++ wrapper for poppler Summary: Pure C++ wrapper for poppler
@ -169,65 +156,61 @@ other formats.
%prep %prep
%autosetup -p1 -b 1 %autosetup -p1 -b 1
chmod -x poppler/CairoFontEngine.cc chmod -x poppler/CairoFontEngine.cc
%build %build
mkdir build
cd build
export CC="gcc -fPIC" # hack to make the cmake call pass
%cmake \ %cmake \
-DENABLE_CMS=lcms2 \ -DENABLE_CMS=lcms2 \
-DENABLE_DCTDECODER=libjpeg \ -DENABLE_DCTDECODER=libjpeg \
-DENABLE_GTK_DOC=ON \ -DENABLE_GTK_DOC=ON \
-DENABLE_LIBOPENJPEG=openjpeg2 \ -DENABLE_LIBOPENJPEG=openjpeg2 \
%if ! 0%{?qt5}
-DENABLE_QT5=OFF \
%endif
%if ! 0%{?qt6}
-DENABLE_QT6=OFF \
%endif
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
-DENABLE_ZLIB=OFF \ -DENABLE_ZLIB=OFF \
-DENABLE_NSS=ON \
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
-DENABLE_QT6=OFF \
.. ..
%cmake_build unset CC
make %{?_smp_mflags}
%install %install
%cmake_install cd build
make install DESTDIR=$RPM_BUILD_ROOT
%check %check
%make_build test make %{?_smp_mflags} test
# verify pkg-config sanity/version # verify pkg-config sanity/version
export PKG_CONFIG_PATH=%{buildroot}%{_datadir}/pkgconfig:%{buildroot}%{_libdir}/pkgconfig export PKG_CONFIG_PATH=%{buildroot}%{_datadir}/pkgconfig:%{buildroot}%{_libdir}/pkgconfig
test "$(pkg-config --modversion poppler)" = "%{version}" test "$(pkg-config --modversion poppler)" = "%{version}"
test "$(pkg-config --modversion poppler-cairo)" = "%{version}"
test "$(pkg-config --modversion poppler-cpp)" = "%{version}" test "$(pkg-config --modversion poppler-cpp)" = "%{version}"
test "$(pkg-config --modversion poppler-glib)" = "%{version}" test "$(pkg-config --modversion poppler-glib)" = "%{version}"
%if 0%{?qt5}
test "$(pkg-config --modversion poppler-qt5)" = "%{version}" test "$(pkg-config --modversion poppler-qt5)" = "%{version}"
%endif test "$(pkg-config --modversion poppler-splash)" = "%{version}"
%if 0%{?qt6}
test "$(pkg-config --modversion poppler-qt6)" = "%{version}"
%endif
%ldconfig_scriptlets %post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%ldconfig_scriptlets glib %post glib -p /sbin/ldconfig
%postun glib -p /sbin/ldconfig
%if 0%{?qt5} %post qt5 -p /sbin/ldconfig
%ldconfig_scriptlets qt5 %postun qt5 -p /sbin/ldconfig
%endif
%if 0%{?qt6} %post cpp -p /sbin/ldconfig
%ldconfig_scriptlets qt6 %postun cpp -p /sbin/ldconfig
%endif
%ldconfig_scriptlets cpp
%files %files
%doc README.md %doc README.md
%license COPYING %license COPYING
%{_libdir}/libpoppler.so.134* %{_libdir}/libpoppler.so.104*
%files devel %files devel
%{_libdir}/pkgconfig/poppler.pc %{_libdir}/pkgconfig/poppler.pc
%{_libdir}/pkgconfig/poppler-splash.pc
%{_libdir}/libpoppler.so %{_libdir}/libpoppler.so
%dir %{_includedir}/poppler/ %dir %{_includedir}/poppler/
# xpdf headers # xpdf headers
@ -242,6 +225,7 @@ test "$(pkg-config --modversion poppler-qt6)" = "%{version}"
%files glib-devel %files glib-devel
%{_libdir}/pkgconfig/poppler-glib.pc %{_libdir}/pkgconfig/poppler-glib.pc
%{_libdir}/pkgconfig/poppler-cairo.pc
%{_libdir}/libpoppler-glib.so %{_libdir}/libpoppler-glib.so
%{_datadir}/gir-1.0/Poppler-0.18.gir %{_datadir}/gir-1.0/Poppler-0.18.gir
%{_includedir}/poppler/glib/ %{_includedir}/poppler/glib/
@ -250,7 +234,6 @@ test "$(pkg-config --modversion poppler-qt6)" = "%{version}"
%license COPYING %license COPYING
%{_datadir}/gtk-doc/ %{_datadir}/gtk-doc/
%if 0%{?qt5}
%files qt5 %files qt5
%{_libdir}/libpoppler-qt5.so.1* %{_libdir}/libpoppler-qt5.so.1*
@ -258,17 +241,6 @@ test "$(pkg-config --modversion poppler-qt6)" = "%{version}"
%{_libdir}/libpoppler-qt5.so %{_libdir}/libpoppler-qt5.so
%{_libdir}/pkgconfig/poppler-qt5.pc %{_libdir}/pkgconfig/poppler-qt5.pc
%{_includedir}/poppler/qt5/ %{_includedir}/poppler/qt5/
%endif
%if 0%{?qt6}
%files qt6
%{_libdir}/libpoppler-qt6.so.3*
%files qt6-devel
%{_libdir}/libpoppler-qt6.so
%{_libdir}/pkgconfig/poppler-qt6.pc
%{_includedir}/poppler/qt6/
%endif
%files cpp %files cpp
%{_libdir}/libpoppler-cpp.so.0* %{_libdir}/libpoppler-cpp.so.0*
@ -283,303 +255,182 @@ test "$(pkg-config --modversion poppler-qt6)" = "%{version}"
%{_mandir}/man1/* %{_mandir}/man1/*
%changelog %changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 24.02.0-5 * Fri Jul 26 2024 Marek Kasik <mkasik@redhat.com> - 20.11.0-12
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Fri Jul 26 2024 Marek Kasik <mkasik@redhat.com> - 24.02.0-4
- Fix crash in broken documents when using -dests - Fix crash in broken documents when using -dests
- Resolves: RHEL-44326 - Fix versions in changelog
- Resolves: RHEL-44330
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 24.02.0-3 * Thu Oct 12 2023 Marek Kasik <mkasik@redhat.com> - 20.11.0-11
- Bump release for June 2024 mass rebuild - Fix crashes in FoFiType1C
- Rebuild for inclusion of poppler-glib-doc in CRB
- Resolves: RHEL-4255, RHEL-4273
* Tue Feb 6 2024 Marek Kasik <mkasik@redhat.com> - 24.02.0-2 * Fri Jun 9 2023 Marek Kasik <mkasik@redhat.com> - 20.11.0-10
- Migrated to SPDX license - Check XRef's Catalog for being a Dict
- Resolves: #2189816
* Fri Feb 2 2024 Marek Kasik <mkasik@redhat.com> - 24.02.0-1 * Fri Jun 9 2023 Marek Kasik <mkasik@redhat.com> - 20.11.0-9
- Update to 24.02.0 - Check isDict before calling getDict 2
- Resolves: #2237549 - Resolves: #2189837
* Fri Feb 2 2024 Marie Loise Nolden <loise@kde.org> - 24.01.0-1 * Fri Jun 9 2023 Marek Kasik <mkasik@redhat.com> - 20.11.0-8
- update to 24.01.9 - Check isDict before calling getDict
- Resolves: #2189823
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 23.08.0-3 * Fri Jun 9 2023 Marek Kasik <mkasik@redhat.com> - 20.11.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - Don't crash in broken documents
- Resolves: #2189844
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 23.08.0-2 * Tue Sep 20 2022 Marek Kasik <mkasik@redhat.com> - 20.11.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Aug 2 2023 Marek Kasik <mkasik@redhat.com> - 23.08.0-1
- Update to 23.08.0
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 23.02.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Mon Jun 19 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 23.02.0-2
- Disable qt5 in RHEL 10 builds
- Enable qt6 on s390x
* Fri Feb 3 2023 Marek Kasik <mkasik@redhat.com> - 23.02.0-1
- Update to 23.02.0
- Resolves: #2123190
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 22.08.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Nov 29 2022 Marek Kasik <mkasik@redhat.com> - 22.08.0-4
- Update font after restore in Cairo
- Provide Unicode marker when ensuring fonts
* Wed Oct 05 2022 Marek Kasik <mkasik@redhat.com> - 22.08.0-3
- Check for overflow when computing number of symbols - Check for overflow when computing number of symbols
- in JBIG2 text region - in JBIG2 text region
- Resolves: #2124530 - Resolves: #2126361
* Tue Sep 6 2022 Amit Shah <amitshah@fedoraproject.org> - 22.08.0-2 * Fri Jun 17 2022 Marek Kasik <mkasik@redhat.com> - 20.11.0-5
- Allow building without Qt
* Tue Aug 2 2022 Marek Kasik <mkasik@redhat.com> - 22.08.0-1
- Update to 22.08.0
- Resolves: #2049336
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 22.01.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jun 15 2022 Marek Kasik <mkasik@redhat.com> - 22.01.0-5
- Don't run out of file for Hints - Don't run out of file for Hints
- Resolves: #2090965 - Rebuild for #2096452
- Resolves: #2090969, #2096452
* Fri May 20 2022 Sandro Mani <manisandro@gmail.com> - 22.01.0-4 * Thu Sep 9 2021 Marek Kasik <mkasik@redhat.com> - 20.11.0-4
- Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 - Fix opening files with streams with wrong generations
- Resolves: #2002575
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 22.01.0-3 * Wed Aug 4 2021 Marek Kasik <mkasik@redhat.com> - 20.11.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - Fix crash when processing dates of embedded files
- Resolves: #1981108
* Fri Jan 14 2022 Sandro Mani <manisandro@gmail.com> - 22.01.0-2 * Tue Dec 8 2020 Marek Kasik <mkasik@redhat.com> - 20.11.0-2
- Enable qt6 - Improve python3 build dependency
- Resolves: #1896335
* Thu Jan 13 2022 Marek Kasik <mkasik@redhat.com> - 22.01.0-1 * Fri Nov 6 2020 Marek Kasik <mkasik@redhat.com> - 20.11.0-1
- Update to 22.01.0 - Rebase poppler to 20.11.0
- Resolves: #2000346 - Modify/remove patches as needed
- Resolves: #1644423
* Mon Aug 2 2021 Marek Kasik <mkasik@redhat.com> - 21.08.0-1 * Thu Apr 16 2020 Marek Kasik <mkasik@redhat.com> - 0.66.0-27
- Update to 21.08.0 - Fix crash on broken file in tilingPatternFill()
- Resolves: #1923798, #1988844 - Resolves: #1801341
* Mon Jul 26 2021 Marek Kasik <mkasik@redhat.com> - 21.07.0-2 * Tue Aug 13 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-26
- Disable qt6 frontend as it doesn't build on s390x - Coverity scan related fixes
- Resolves: #1923798 - Related: #1618766
* Mon Jul 26 2021 Marek Kasik <mkasik@redhat.com> - 21.07.0-1 * Tue Aug 13 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-25
- Update to 21.07.0 - Check whether input is RGB in PSOutputDev::checkPageSlice()
- Add requirement of boost for performance gain in splash - also when using "-optimizecolorspace" flag
- Add qt6 subpackages - Resolves: #1697576
- Resolves: #1923798
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 21.01.0-8 * Fri Aug 9 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - Check whether input is RGB in PSOutputDev::checkPageSlice()
- Resolves: #1697576
* Tue Jun 1 2021 Marek Kasik <mkasik@redhat.com> - 21.01.0-7 * Fri Aug 9 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-23
- Fix showing of non-ASCII characters in annotations
- Resolves: #1958673
* Tue Mar 30 2021 Jonathan Wakely <jwakely@redhat.com> - 21.01.0-6
- Rebuilt for removed libstdc++ symbol (#1937698)
* Tue Feb 9 2021 Marek Kasik <mkasik@redhat.com> - 21.01.0-5
- Obsolete Qt4 frontend
- Resolves: #1926010
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 21.01.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 15 2021 Marek Kasik <mkasik@redhat.com> - 21.01.0-3
- Improve the previous fix
- Resolves: #1915776
* Wed Jan 13 2021 Marek Kasik <mkasik@redhat.com> - 21.01.0-2
- Fix multilib property of poppler-glib
- by using the same build directory for all architectures
- Resolves: #1915776
* Mon Jan 11 2021 Marek Kasik <mkasik@redhat.com> - 21.01.0-1
- Update to 21.01.0
- Remove the Qt4 frontend
- Resolves: #1673727
* Mon Dec 07 2020 Marek Kasik <mkasik@redhat.com> - 0.90.0-8
- Build Qt4 frontend on Fedora only
* Sat Oct 31 2020 Jeff Law <law@redhat.com> - 0.90.0-7
- Fix bogus volatiles caught by gcc-11
* Tue Aug 04 2020 Marek Kasik <mkasik@redhat.com> - 0.90.0-6
- Align poppler with
- https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds
- Resolves: #1865248
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.90.0-5
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.90.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jul 10 2020 Marek Kasik <mkasik@redhat.com> - 0.90.0-3
- Fix some other issues.
- Resolves: #1673727
* Fri Jul 10 2020 Marek Kasik <mkasik@redhat.com> - 0.90.0-2
- Compile poppler with position independent code turned on.
- Otherwise it doesn't build on Fedora 33.
- Resolves: #1673727
* Wed Jul 08 2020 Marek Kasik <mkasik@redhat.com> - 0.90.0-1
- Update to 0.90.0
- Resolves: #1673727
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.84.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jan 17 2020 Marek Kasik <mkasik@redhat.com> - 0.84.0-1
- Update to 0.84.0
- Resolves: #1673727
* Fri Dec 20 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-15
- Check scaled dimensions for 0
- Resolves: #1785416
* Wed Jul 24 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-14
- Ignore dict Length if it is broken - Ignore dict Length if it is broken
- Resolves: #1732342 - Resolves: #1733027
* Thu May 30 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-13 * Fri Aug 9 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-22
- Don't read outside of image buffer in PSOutputDev
- Resolves: #1696640
* Thu May 30 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-12
- SplashXPathScanner::clipAALine: Fix crash on broken file
- Resolves: #1696640
* Thu May 30 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-11
- Restrict filling of overlapping boxes in Splash
- Resolves: #1696640
* Wed May 29 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-10
- Fail gracefully if not all components of JPEG2000Stream - Fail gracefully if not all components of JPEG2000Stream
- have the same size - have the same size
- Resolves: #1713585 - Resolves: #1723505
* Wed Apr 17 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-9 * Fri Jun 28 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-21
- Fix infinite loop in broken files - Implement crypto functions using NSS
- Resolves: #1699863 - Resolves: #1618766
* Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-8 * Wed Apr 3 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-20
- Fix stack overflow on broken file
- Resolves: #1691887
* Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-19
- Constrain number of cycles in rescale filter - Constrain number of cycles in rescale filter
- Compute correct coverage values for box filter - Compute correct coverage values for box filter
- Resolves: #1686803 - Resolves: #1688418
* Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-7 * Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-18
- Fix stack overflow on broken file
- Resolves: #1691725
* Mon Mar 11 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-6
- Fix possible crash on broken files in ImageStream::getLine() - Fix possible crash on broken files in ImageStream::getLine()
- Resolves: #1683633 - Resolves: #1685268
* Fri Mar 8 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-5 * Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-17
- Synchronize previous patch with upstream
- Related: #1665274
* Wed Feb 20 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-4
- Check Catalog from XRef for being a Dict - Check Catalog from XRef for being a Dict
- Resolves: #1665274 - Resolves: #1677347
* Wed Feb 20 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-3 * Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-16
- Move the fileSpec.dictLookup call inside fileSpec.isDict if
- Resolves: #1677028
* Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-15
- Do not try to construct invalid rich media annotation assets
- Resolves: #1677025
* Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-14
- Defend against requests for negative XRef indices - Defend against requests for negative XRef indices
- Resolves: #1672420 - Resolves: #1673699
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.73.0-2 * Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - Do not try to parse into unallocated XRef entry
- Resolves: #1677057
* Fri Jan 25 2019 Marek Kasik <mkasik@redhat.com> - 0.73.0-1 * Mon Apr 1 2019 Marek Kasik <mkasik@redhat.com> - 0.66.0-12
- Update to 0.73.0
* Tue Jan 22 2019 Marek Kasik <mkasik@redhat.com> - 0.67.0-10
- Avoid global display profile state becoming an uncontrolled - Avoid global display profile state becoming an uncontrolled
- memory leak - memory leak
- Resolves: #1646549 - Resolves: #1646552
* Mon Jan 21 2019 Marek Kasik <mkasik@redhat.com> - 0.67.0-9 * Fri Dec 14 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-11
- Do not try to parse into unallocated XRef entry - Fix tiling patterns when pattern cell is too far
- Resolves: #1665268 - Resolves: #1644094
* Mon Jan 21 2019 Marek Kasik <mkasik@redhat.com> - 0.67.0-8 * Fri Nov 16 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-10
- Move the fileSpec.dictLookup call inside fileSpec.isDict if
- Resolves: #1665264
* Mon Jan 21 2019 Marek Kasik <mkasik@redhat.com> - 0.67.0-7
- Do not try to construct invalid rich media annotation assets
- Resolves: #1665260
* Thu Nov 15 2018 Marek Kasik <mkasik@redhat.com> - 0.67.0-6
- Check for valid file name of embedded file - Check for valid file name of embedded file
- Resolves: #1649451 - Resolves: #1649453
* Thu Nov 15 2018 Marek Kasik <mkasik@redhat.com> - 0.67.0-5 * Fri Nov 16 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-9
- Check for valid embedded file before trying to save it - Check for valid embedded file before trying to save it
- Resolves: #1649441 - Resolves: #1649443
* Thu Nov 15 2018 Marek Kasik <mkasik@redhat.com> - 0.67.0-4 * Fri Nov 16 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-8
- Check for stream before calling stream methods - Check for stream before calling stream methods
- when saving an embedded file - when saving an embedded file
- Resolves: #1649436 - Resolves: #1649438
* Mon Nov 12 2018 Marek Kasik <mkasik@redhat.com> - 0.67.0-3 * Thu Nov 15 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-7
- Avoid cycles in PDF parsing
- Resolves: #1626620
* Wed Oct 17 2018 Marek Kasik <mkasik@redhat.com> - 0.67.0-2
- Fix crash on missing embedded file - Fix crash on missing embedded file
- Resolves: #1569334 - Resolves: #1649460
* Tue Aug 14 2018 Marek Kasik <mkasik@redhat.com> - 0.67.0-1 * Thu Nov 15 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-6
- Update to 0.67.0 - Avoid cycles in PDF parsing
- Resolves: #1568641 - Resolves: #1626623
* Tue Aug 7 2018 Marek Kasik <mkasik@redhat.com> - 0.63.0-8 * Fri Oct 12 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-5
- Fix tiling patterns when pattern cell is too far - Fix crash when accessing list of selections
- Resolves: #1557355 - Resolves: #1638712
* Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 0.63.0-7 * Mon Sep 24 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-4
- Rebuild with fixed binutils - Fix important issues found by covscan
- Resolves: #1602662
* Fri Jul 27 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.63.0-6 * Tue Aug 14 2018 Petr Viktorin <pviktori@redhat.com> - 0.66.0-3
- Rebuild for new binutils - Fix BuildRequires for /usr/bin/python3
- Resolves: #1615561
* Thu Jul 26 2018 Marek Kasik <mkasik@redhat.com> - 0.63.0-5 * Thu Jul 26 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-2
- Fix crash when Object has negative number (CVE-2018-13988) - Fix crash when Object has negative number (CVE-2018-13988)
- Resolves: #1607461 - Resolves: #1607463
* Mon Jul 23 2018 Marek Kasik <mkasik@redhat.com> - 0.63.0-4 * Thu Jul 12 2018 Marek Kasik <mkasik@redhat.com> - 0.66.0-1
- Use /usr/bin/python3 explicitly - Rebase poppler to 0.66.0
- https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3#Transition_Steps - Resolves: #1600553
- Resolves: #1605490
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.63.0-3 * Mon Jun 11 2018 Marek Kasik <mkasik@redhat.com> - 0.62.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - Drop reversion of removal of Qt4 frontend
* Mon May 28 2018 Marek Kasik <mkasik@redhat.com> - 0.63.0-2 * Fri May 25 2018 Marek Kasik <mkasik@redhat.com> - 0.62.0-3
- Fix infinite recursion (CVE-2017-18267) - Fix infinite recursion (CVE-2017-18267)
- Resolves: #1578780 - Resolves: #1578779
* Fri Mar 23 2018 Marek Kasik <mkasik@redhat.com> - 0.63.0-1 * Thu May 24 2018 Marek Kasik <mkasik@redhat.com> - 0.62.0-2
- Update to 0.63.0 - Fix building of poppler with python3 only
- Resolves: #1558001 - Resolves: #1580849
* Wed Mar 07 2018 Rex Dieter <rdieter@fedoraproject.org> - 0.62.0-2
- BR: gcc-c++, use %%ldconfig_scriptlets %%make_build %%make_install
* Wed Feb 14 2018 David Tardon <dtardon@redhat.com> - 0.62.0-1 * Wed Feb 14 2018 David Tardon <dtardon@redhat.com> - 0.62.0-1
- new upstream release - new upstream release

View File

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

View File

@ -1,12 +0,0 @@
--- poppler-0.90.0/CMakeLists.txt
+++ poppler-0.90.0/CMakeLists.txt
@@ -17,6 +17,9 @@ else()
include(MacroOptionalFindPackage)
find_package(PkgConfig)
+
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)
include(CheckFileOffsetBits)

View File

@ -1,11 +0,0 @@
--- poppler-21.01.0/glib/CMakeLists.txt
+++ poppler-21.01.0/glib/CMakeLists.txt
@@ -121,7 +121,7 @@ if (HAVE_INTROSPECTION AND BUILD_SHARED_
# General gir: Reset object-list for introspection & load tool args
set(INTROSPECTION_GIRS)
- set(INTROSPECTION_SCANNER_ARGS "--add-include-path=${CMAKE_CURRENT_SOURCE_DIR}" "--warn-all")
+ set(INTROSPECTION_SCANNER_ARGS "--add-include-path=${CMAKE_CURRENT_SOURCE_DIR}" "--warn-all" "--sources-top-dirs=${CMAKE_SOURCE_DIR}" "--sources-top-dirs=${CMAKE_BINARY_DIR}")
set(INTROSPECTION_COMPILER_ARGS ${INTROSPECTION_COMPILER_ARGS} "--includedir=${CMAKE_CURRENT_SOURCE_DIR}")
# Poppler: Assign package to gir & export keys

View File

@ -1,2 +0,0 @@
SHA512 (poppler-test-2021-01-11-03a4b9eb854a06a83c465e82de601796c458bbe9.tar.xz) = 257133b261b07076d3207456e3edad324e29911a45a960d4953eb84813ac175bc65be713a10454b52b96711870fcbeee533fd0fd7de8550a87390e833b1af8c5
SHA512 (poppler-24.02.0.tar.xz) = 95a208d21ac4d2d308a7ab3da43b95092ef78cd55ebe873c97e0d6c12d8b9d5c4614f83087616c35e1ed9d67ca606a5e008a98698bd12a332a8206ed4cf55500