Compare commits

..

No commits in common. "rawhide" and "f25" have entirely different histories.

20 changed files with 165 additions and 1132 deletions

20
.gitignore vendored
View file

@ -24,23 +24,3 @@ xpdf-3.02-novms.tar.gz
/xpdf-latin2-2011-aug-15.tar.gz
/xpdf-thai-2011-aug-15.tar.gz
/xpdf-turkish-2011-aug-15.tar.gz
/xpdf-4.00.tar.gz
/xpdf-chinese-simplified-2017-jul-25-NOCMAP.tar.gz
/xpdf-chinese-traditional-2017-jul-25-NOCMAP.tar.gz
/xpdf-japanese-2017-jul-25-NOCMAP.tar.gz
/xpdf-korean-2017-jul-25-NOCMAP.tar.gz
/xpdf-4.01.tar.gz
/xpdf-4.02.tar.gz
/xpdf-chinese-simplified-2020-dec-22-NOCMAP.tar.gz
/xpdf-chinese-traditional-2020-dec-22-NOCMAP.tar.gz
/xpdf-japanese-2020-dec-22-NOCMAP.tar.gz
/xpdf-korean-2020-dec-22-NOCMAP.tar.gz
/xpdf-4.03.tar.gz
/xpdf-4.04.tar.gz
/xpdf-4.05.tar.gz
/xpdf-chinese-simplified-2023-dec-05-NOCMAP.tar.gz
/xpdf-korean-2023-dec-05-NOCMAP.tar.gz
/xpdf-4.05.tar.gz.sig
/xpdf-thai.tar.gz
/xpdf-4.06.tar.gz
/xpdf-4.06.tar.gz.sig

View file

@ -1,62 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFhmydMBEACjLpJGlKBzA5WFopW+qYGpwPvWLH/Dd3sEdHffxMxEbas06I7Y
KE30JIlFfL4oZHaytDNSZraA7DpkoPQM0EOpFeK1sgxJUKH+CPeRxhdjAkH6SxU1
dOLWL4CQPVRYWBcuxwW1asxHTJZtaeGnTmstNuhuzwjj4BlTRmA6MbSh/DBCN104
6idBf+KCfm+SLYK2KxeYDEyYV/i6p1+TRs+PVmDXKyBanxiP3StZC+BCOLfXzg9S
+LFLFvbKRdq2Ofn5nLULmk7+1VT44eXLQgw0pgBJ5OlFCaL6S5ZUbtyDzGxK/ECL
4ozCwLDx93hrVtofPJpdqBfgAQpiGy0Rd9925EchkW7RTwkxSKa1YT8GI5fKatTj
BA1p5+YuQ+ml2UaPmHxpc/AizsRI9OBD7NmoxW2RNt7CBLhRb0JscDtXpm7jvTnO
bDPUOmH9klwKdkj+WACQaNrbD2BIN715JtTsRbgxpqQ3nHDug6xCVbZdvoln91+P
TCE8zJ3wLWXCXrXLVV0ZQhVUNGk/u3gLOxG8HmYCfwSZQhgxViwupTHkRU41BoLe
Iyja9GjuZw0CUPwABS7/jq0Td166ziFfzoBIxIsK1ikgW8kDhsfKXPOFo4qGAdjg
yURKBk70GXR/U7B97ZJ3StWTcm3Y0B5NiyRaxMIYs5weVg2PE0X9ch0y0QARAQAB
tBwtWHBkZi0gPHhwZGZAeHBkZnJlYWRlci5jb20+iQI3BBMBAgAhAhsDAh4BAheA
BQJYZstXBQsJCAcDBRUKCQgLBRYCAwEAAAoJEPSCX1OXJxNCLlUQAJqSTuBNgzsF
yvwccsbSbCXh79rr3xoYnlU4w7/sYEdAqUuXATUa9mxekecyauVWhpsm+LSUrquc
TCYZOtcy8lqdQhNZtfZa9K9CJLG5fAQrflDI0ABBUb3rGkv4wegVKDoD8Xj9vdPd
ThDsy7eV7tinfUAdoO9zguuGgQ7R1eYgMSwjIdK8lwcVwLorc3/RlrcV8fgnEW6m
pZDcnoH2ogbTZMN7CrCa8IE/ggKe8iOV2fVgnL+r0Bj3dSlP9ZXBpuw9u9tO6s0H
zI4NdbMoUzP5+H1FzeGJVt7NZJuGGmZz/FEVLWXwUElP1OGlAGNqsqXlChMEFDqo
+rXcKUJyQebr6vOtWcVyyITzEkshFET/JCi+aIID9vggDcL6RmFlA8JtAbPP90TI
tq94PXmFx+jQLrJ2vLhZGchlLn8wVZ/DeZP/y9rDZXUlhlllgLiN1CSD5iCMuL+T
qHftFFF+C7MPIHBMGRjjOwmJtAWR/wwe4mrkuyKt4gF6nKQBqOsVuNt2RWAA27Ac
CctX8ce8KuDfW4XJlr6BwIrzffa47nyBIZstGCptKMxGywvu+ufLgGz2kv78wO9X
bg2kgFIbI1C7YI1KUUuoACFjDGCVbdnzSUS7pWOebXNQ+cvqy82ExMvv/ieD6Rfg
jKZH7lj7cmA9YBqnUmXS/57GSQu94i18iQIcBBABCgAGBQJYZsySAAoJEBCYN7iF
KMl4kI8P/3d0YYUVrA5f7C3FEuW11sedr3o/DDv/QA8Aj68gb/efG0nCzi5cIuL0
7MM7St0VI9UypGl0kExforcu80Zk0x95RCYRb46e2lTNIXpNL3CstXquatDrZ66X
bdOHOV5I/PQ8PJhAyy8pPdlShIz4dfcPT+JXoCX85gtdp/0vg84kaiuQNpbm3wjk
/BJNPJovUea7K5c0KLwrcXy1vyPdW4I3vQvK9JWxewbZ/nK5Fu45yhK1lMvIqO2x
fGSpYizVFLhuq85+qm2E4IMnlTC48ygWd3t5N+dYSU1XRjqFRzw4+dPgBqBomajW
0yXgUUDnYS7a715ZhDblwt8sC5HgRIjpr7Sj4zgCW+MjrnyZBM22zu5CmUAfdkBx
VH3igHF7IWDpXonC/nrbFauo4cnW4y4Sv+oH56UheQwtUykRgj9yZXL1cNin6ZXb
vRPV7Kbza4d0y6m+kBFWXh0Befqijw4uXbXQIG1SSurKlQihV+cRBJSiMklDMVQ4
hkFKra1Pgom9ZmOixmPnJclKObeVwF7CWIVsdIyiNEwkDx0MjYqlvRvnCIdmJ1ej
5/d+D3uWpjI2UFkNI7KIdGARXE53dPh3frIwzwRWLh8InoK461z47ukQU3q3/eZI
Ar9LP/6g6AlsLVjsqHTs9oMdN/YItQxQb/1bZxIrG6wuk9imlnd4uQINBFhmydMB
EACc6p09brIdWJmpGOz1LxIEOOiL8hQo1oOlGeigFgLZ99TsJHV9rJ+oUuRsr9Kd
MTf0g13NEHOyp0/8KJXSN4R/zVDykBdvVblNIDYUEyOVvvueVjcMKTOOt6iV2naC
pkyRTDctgt04VeTau8r6hgYxWT5f2XtsKHNu+kv6RPc7GbSgubiaTujRcl+iOCXi
tNKUNFQ83G1rvYOEaiaoGXQ4dRHW7u+St4b0bJLgO+FUovVxd714RWNZ4UleDVV8
VzGkcU3j7B4u39GiVNgxGnmnfTA7AJ5YWLqRhfuf/uyEgs1Iety4/eZdwPtg2w0U
JTo/T+mbRBS0cDXBm4+kYMeKHpN1yMmeaYA3bv/miz/ik1/HKhlned4t47TlhUFu
jxkmvfTI6XtzRZ98607ICOAH7PKAv1YrQsxohSrVcRZK+4jofT4vMgcbFTFuRYMP
EemYMAphPyHBPJG+YAVIM/S9MaWYYC/LR7jtkt/MosI3SLzw09rf9e1mCajaYb6q
yCopfK84nao2gmFFE9vt7hOcmhGZ8WAlsL9rVW8nmBk3OZYIRWIxbB+iA0/et6E0
1K4iQbeEu6pRDCA+Lkw2NWAOBVXgBKuvUDzXYV86wI+7m94IXuQQ2BXugstuVMWw
AKqgbT+CTOc6Th1rzBI4bjJfUxm6eOsU/t3+2Gq1s8joxwARAQABiQIfBBgBAgAJ
BQJYZsnTAhsMAAoJEPSCX1OXJxNC7ysP+wfpmD5kboss1cNbEfdbFZvwsh982Y3H
FN4w0dvquJxJhSnfx64tnhjZCAPmVkUutfde3/fGylQ3v9j3kg/q0EJ56Df3QcFb
QcJpyM+rfVI3eKuO/zH1TjMlhzKI/TgES1xCOCqTlmMPFY+akWAVFKk6/fVz6rhg
tIJyj/7+lV7xWDNJZmyAuBPiNW6YPH92u4gDR3GPFQSClEetlD4heAOISph9C2fN
QPmivr8jYMhbWr2kGvsfY2wgBOzeijmUYRyfoXxjHOo9tkMYik1DCdsXfxevbAa3
Q6ybcwmx6QvjOlH4TLlv43JHettMudVGuiCBBTDtbUouX9+2vXRuCHeEzb7iusLC
ZINce8kxs83EiTfa1J00eJ4vTK6z5yZN+29DC/00SdmUX0Agnoo5Msxi10o6wJLz
Dsg81UFjL3rE0UQ2TBch6hAiUlvJF95E0fylWpL4rxuEeuxh4U/82wAR+1g4Fj3K
YNQXjW8sko60VnCMTEBeJ7s09U/GIygb9Ixcoz1OhgIbpXox/0lqVpI9V0ekddc+
n1LhYrjWIcBzK2t1t/0isI5mkkV4gztpRcVWoTEbynN37He3HFL90gN0zmGBE2oY
gTfCw3gRA3iUJ4varAX9DF0baTQzh9wVdnYk9RIlZovkzmn45z5ogZ7B1xpHtuhl
PYZrVz++lRb0
=6AFt
-----END PGP PUBLIC KEY BLOCK-----

25
sources
View file

@ -1,13 +1,12 @@
SHA512 (xpdf-arabic-2011-aug-15.tar.gz) = 1ddaee045c0c3576bda0ebf065021e66e1ac6673d6872aff8e8afb3bae33dd927d920d89761553bade040d20e4b60eb286131bdb2f2d75ec1e833b9a9ce58d3e
SHA512 (xpdf-cyrillic-2011-aug-15.tar.gz) = ab1197c90f8cd3d8664ebbdc7ecefdfb8ec12e24da2f7616cad1d5bc9c7fd172c48db6a18d76172de8342377acc8e1dcd78bcf0fb1ef9f05cf94729e90586827
SHA512 (xpdf-greek-2011-aug-15.tar.gz) = 2e0e281e09e1abc2f0e40b6787703538d52cb62edcd4c4156698700a5f908afee290c62ad9a6ff4ea74bc42e0a8fe9a7765a212efbc223512d4bb442448ea52f
SHA512 (xpdf-hebrew-2011-aug-15.tar.gz) = 0ebe652f8633151d13ef2403bd293682b511ab86c1391ce187f1fc0274f33bd9c7e6ec682c8f79ac4fd27c74ab81ad2ae334a75f26001092521cff9a73cd0b8a
SHA512 (xpdf-latin2-2011-aug-15.tar.gz) = 5fe0b60bfac7f0f4a26e3e7216de5043f6b94446f464c984b7c25431ec01a5912952c0dc66bb2c7159c9f63e4805689c6cfc761086aad9e59f1f21d0cddb5d15
SHA512 (xpdf-turkish-2011-aug-15.tar.gz) = a73e90bce8f2a12154b06ef29333a45d96258c0d653d5cb15afd2e5ad9e79a9b617e5f8ebeb20bde545684d50f3bc1349800c99f70c863bdd502c24c266b4fb1
SHA512 (xpdf-chinese-traditional-2020-dec-22-NOCMAP.tar.gz) = ff25947dbf09b51f9c97aff898b8d33441af230d25c827380f1f5dd4144b5c3d14fc0d1e1ed42e039ff706568a490925f1cafc94ff5f70ae7879827c82dfbc85
SHA512 (xpdf-japanese-2020-dec-22-NOCMAP.tar.gz) = aff90d0c8f26e1dffd2b178c5ee676cfa520086d28dd56af65ef3fcd016c2770361edeb35974f45328cd62d5cd7dff0ac719e38ee2594bef07e062869289a647
SHA512 (xpdf-chinese-simplified-2023-dec-05-NOCMAP.tar.gz) = 292a819cca4d6095b6835b30241abbbbb07354adc839c9a49b90f2dd9deb1fc7d8727a9bade3cab88da8e903e00199ecf8672727ae7310cc15e1ad8c282d218b
SHA512 (xpdf-korean-2023-dec-05-NOCMAP.tar.gz) = 3ca81eaee279122a8054fc26f16d85c668d0571a1b249a410346196c2b61081bcdfec61c140a7334a921d80738e908b507ac47a301f3aae37b3050c8e8b77f29
SHA512 (xpdf-thai.tar.gz) = c738ef97c57630feb4d1bae3df36ba02118f73e770caeef4bd3256740b9aadb94ec07b993a01a6abc9ba711d6dc2900f90eb7e1c7bbbf157f07160be1743d3f1
SHA512 (xpdf-4.06.tar.gz) = ace2d2c006411ef40f3510fe34809e6ed5fd4a2367ac11a75e9d4795aa5054e72f12e307165d11a25b12609d33b279b9b99d9c072442e98308a77ad022bc8355
SHA512 (xpdf-4.06.tar.gz.sig) = 2df5d491a2126c9f879896c623193cfb6e7b38da53a1eaac4060b77569d84b2d28a12e3a1285d31bb9a422f774f3d70238d47bfec388db1222fc041627da1ec7
3bc86c69c8ff444db52461270bef3f44 xpdf-3.04.tar.gz
ae8cdd4759295e02988506e7a570d00c xpdf-arabic-2011-aug-15.tar.gz
abd221d2df88de2011daad8d184dd66b xpdf-chinese-simplified-2011-sep-02-NOCMAP.tar.gz
63431231acd6d8f75e23bb3205793ff3 xpdf-chinese-traditional-2011-sep-02-NOCMAP.tar.gz
ea8ed8fd0ed26b8448e6558827249999 xpdf-cyrillic-2011-aug-15.tar.gz
2e988edf0c57def63717ee14bd6d30dd xpdf-greek-2011-aug-15.tar.gz
e1cb33f22bb71fb01998e5c59f538472 xpdf-hebrew-2011-aug-15.tar.gz
4033838d6bca641d5d2e76c7d1240c3e xpdf-japanese-2011-sep-02-NOCMAP.tar.gz
b9390fe8dc484d9d6ed78359fa520c33 xpdf-korean-2011-sep-02-NOCMAP.tar.gz
c135fe93f933edaa0f042a8d3cc9f799 xpdf-latin2-2011-aug-15.tar.gz
57fc888436f19cdf4a68ef17c17b86b7 xpdf-thai-2011-aug-15.tar.gz
640615c24581b26c4083210bef3013bf xpdf-turkish-2011-aug-15.tar.gz

51
xpdf-3.03-ext.patch Normal file
View file

@ -0,0 +1,51 @@
diff -up xpdf-3.03/goo/gfile.cc.ext xpdf-3.03/goo/gfile.cc
--- xpdf-3.03/goo/gfile.cc.ext 2011-08-15 17:08:53.000000000 -0400
+++ xpdf-3.03/goo/gfile.cc 2011-08-22 13:43:54.540304026 -0400
@@ -507,32 +507,14 @@ GBool openTempFile(GString **name, FILE
char *s;
int fd;
- if (ext) {
-#if HAVE_MKSTEMPS
- if ((s = getenv("TMPDIR"))) {
- *name = new GString(s);
- } else {
- *name = new GString("/tmp");
- }
- (*name)->append("/XXXXXX")->append(ext);
- fd = mkstemps((*name)->getCString(), strlen(ext));
-#else
- if (!(s = tmpnam(NULL))) {
- return gFalse;
- }
+#if HAVE_MKSTEMP
+ if ((s = getenv("TMPDIR"))) {
*name = new GString(s);
- (*name)->append(ext);
- fd = open((*name)->getCString(), O_WRONLY | O_CREAT | O_EXCL, 0600);
-#endif
} else {
-#if HAVE_MKSTEMP
- if ((s = getenv("TMPDIR"))) {
- *name = new GString(s);
- } else {
- *name = new GString("/tmp");
- }
- (*name)->append("/XXXXXX");
- fd = mkstemp((*name)->getCString());
+ *name = new GString("/tmp");
+ }
+ (*name)->append("/XXXXXX");
+ fd = mkstemp((*name)->getCString());
#else // HAVE_MKSTEMP
if (!(s = tmpnam(NULL))) {
return gFalse;
@@ -540,7 +522,7 @@ GBool openTempFile(GString **name, FILE
*name = new GString(s);
fd = open((*name)->getCString(), O_WRONLY | O_CREAT | O_EXCL, 0600);
#endif // HAVE_MKSTEMP
- }
+
if (fd < 0 || !(*f = fdopen(fd, mode))) {
delete *name;
*name = NULL;

BIN
xpdf-3.04-1.fc21.src.rpm Normal file

Binary file not shown.

22
xpdf-3.04-crash.patch Normal file
View file

@ -0,0 +1,22 @@
diff -up xpdf-3.04/fofi/FoFiType1.cc.crash xpdf-3.04/fofi/FoFiType1.cc
--- xpdf-3.04/fofi/FoFiType1.cc.crash 2014-05-28 14:50:50.000000000 -0400
+++ xpdf-3.04/fofi/FoFiType1.cc 2014-05-29 14:56:09.199571189 -0400
@@ -268,9 +268,14 @@ void FoFiType1::parse() {
}
}
} else {
- if (strtok(buf, " \t") &&
- (p = strtok(NULL, " \t\n\r")) && !strcmp(p, "def")) {
- break;
+ p = strtok(buf, " \t\n\r");
+ if (p)
+ {
+ if (!strcmp(p, "def")) break;
+ if (!strcmp(p, "readonly")) break;
+ // the spec does not says this but i'm mantaining old xpdf behaviour that accepts "foo def" as end of the encoding array
+ p = strtok(buf, " \t\n\r");
+ if (p && !strcmp(p, "def")) break;
}
}
}
diff -up xpdf-3.04/splash/Splash.cc.crash xpdf-3.04/splash/Splash.cc

View file

@ -1,132 +0,0 @@
diff -up xpdf-4.00/xpdf/PDFCore.cc.permissions xpdf-4.00/xpdf/PDFCore.cc
diff -up xpdf-4.00/xpdf/pdfimages.cc.permissions xpdf-4.00/xpdf/pdfimages.cc
--- xpdf-4.00/xpdf/pdfimages.cc.permissions 2017-08-08 19:22:50.000000000 -0400
+++ xpdf-4.00/xpdf/pdfimages.cc 2017-08-16 18:08:04.474032500 -0400
@@ -4,6 +4,8 @@
//
// Copyright 1998-2003 Glyph & Cog, LLC
//
+// Modified for Debian by Hamish Moffatt, 22 May 2002.
+//
//========================================================================
#include <aconf.h>
@@ -126,12 +128,14 @@ int main(int argc, char *argv[]) {
}
// check for copy permission
+#ifdef ENFORCE_PERMISSIONS
if (!doc->okToCopy()) {
error(errNotAllowed, -1,
"Copying of images from this document is not allowed.");
exitCode = 3;
goto err1;
}
+#endif
// get page range
if (firstPage < 1)
diff -up xpdf-4.00/xpdf/pdftohtml.cc.permissions xpdf-4.00/xpdf/pdftohtml.cc
--- xpdf-4.00/xpdf/pdftohtml.cc.permissions 2017-08-16 18:10:36.656189850 -0400
+++ xpdf-4.00/xpdf/pdftohtml.cc 2017-08-16 18:11:06.127445692 -0400
@@ -137,6 +137,7 @@ int main(int argc, char *argv[]) {
goto err1;
}
+#ifdef ENFORCE_PERMISSIONS
// check for copy permission
if (!doc->okToCopy()) {
error(errNotAllowed, -1,
@@ -144,6 +145,7 @@ int main(int argc, char *argv[]) {
exitCode = 3;
goto err1;
}
+#endif
// get page range
if (firstPage < 1) {
diff -up xpdf-4.00/xpdf/pdftops.cc.permissions xpdf-4.00/xpdf/pdftops.cc
--- xpdf-4.00/xpdf/pdftops.cc.permissions 2017-08-08 19:22:50.000000000 -0400
+++ xpdf-4.00/xpdf/pdftops.cc 2017-08-16 18:08:04.475032475 -0400
@@ -4,6 +4,8 @@
//
// Copyright 1996-2003 Glyph & Cog, LLC
//
+// Modified for Debian by Hamish Moffatt, 22 May 2002.
+//
//========================================================================
#include <aconf.h>
@@ -321,12 +323,14 @@ int main(int argc, char *argv[]) {
goto err1;
}
+#ifdef ENFORCE_PERMISSIONS
// check for print permission
if (!doc->okToPrint()) {
error(errNotAllowed, -1, "Printing this document is not allowed.");
exitCode = 3;
goto err1;
}
+#endif
// construct PostScript file name
if (argc == 3) {
diff -up xpdf-4.00/xpdf/pdftotext.cc.permissions xpdf-4.00/xpdf/pdftotext.cc
--- xpdf-4.00/xpdf/pdftotext.cc.permissions 2017-08-08 19:22:50.000000000 -0400
+++ xpdf-4.00/xpdf/pdftotext.cc 2017-08-16 18:08:04.475032475 -0400
@@ -4,6 +4,8 @@
//
// Copyright 1997-2013 Glyph & Cog, LLC
//
+// Modified for Debian by Hamish Moffatt, 22 May 2002.
+//
//========================================================================
#include <aconf.h>
@@ -198,6 +200,7 @@ int main(int argc, char *argv[]) {
goto err2;
}
+#ifdef ENFORCE_PERMISSIONS
// check for copy permission
if (!doc->okToCopy()) {
error(errNotAllowed, -1,
@@ -205,6 +208,7 @@ int main(int argc, char *argv[]) {
exitCode = 3;
goto err2;
}
+#endif
// construct text file name
if (argc == 3) {
diff -up xpdf-4.00/xpdf-qt/QtPDFCore.cc.permissions xpdf-4.00/xpdf-qt/QtPDFCore.cc
--- xpdf-4.00/xpdf-qt/QtPDFCore.cc.permissions 2017-08-16 18:09:45.169489907 -0400
+++ xpdf-4.00/xpdf-qt/QtPDFCore.cc 2017-08-16 18:10:14.375752439 -0400
@@ -429,9 +429,11 @@ QString QtPDFCore::getSelectedTextQStrin
QChar c;
int i;
+#ifdef ENFORCE_PERMISSIONS
if (!doc->okToCopy()) {
return "";
}
+#endif
if (!(s = getSelectedText())) {
return "";
}
diff -up xpdf-4.00/xpdf-qt/XpdfWidget.cc.permissions xpdf-4.00/xpdf-qt/XpdfWidget.cc
--- xpdf-4.00/xpdf-qt/XpdfWidget.cc.permissions 2017-08-16 18:12:40.775055809 -0400
+++ xpdf-4.00/xpdf-qt/XpdfWidget.cc 2017-08-16 18:12:45.835928020 -0400
@@ -1399,7 +1399,11 @@ bool XpdfWidget::okToExtractText() const
if (!core->getDoc()) {
return false;
}
+#ifdef ENFORCE_PERMISSIONS
return (bool)core->getDoc()->okToCopy();
+#else
+ return true;
+#endif
} catch (GMemException e) {
return false;
}

View file

@ -1,27 +0,0 @@
diff -up xpdf-4.00/fofi/CMakeLists.txt.versionedlib xpdf-4.00/fofi/CMakeLists.txt
--- xpdf-4.00/fofi/CMakeLists.txt.versionedlib 2017-08-08 19:22:50.000000000 -0400
+++ xpdf-4.00/fofi/CMakeLists.txt 2017-08-16 20:06:18.106884951 -0400
@@ -24,3 +24,5 @@ add_library(fofi_objs OBJECT
add_library(fofi
$<TARGET_OBJECTS:fofi_objs>
)
+
+set_target_properties(fofi PROPERTIES VERSION 4 SOVERSION 4)
diff -up xpdf-4.00/goo/CMakeLists.txt.versionedlib xpdf-4.00/goo/CMakeLists.txt
--- xpdf-4.00/goo/CMakeLists.txt.versionedlib 2017-08-08 19:22:50.000000000 -0400
+++ xpdf-4.00/goo/CMakeLists.txt 2017-08-16 20:06:00.525277924 -0400
@@ -25,3 +25,5 @@ add_library(goo_objs OBJECT
add_library(goo
$<TARGET_OBJECTS:goo_objs>
)
+
+set_target_properties(goo PROPERTIES VERSION 4 SOVERSION 4)
diff -up xpdf-4.00/splash/CMakeLists.txt.versionedlib xpdf-4.00/splash/CMakeLists.txt
--- xpdf-4.00/splash/CMakeLists.txt.versionedlib 2017-08-08 19:22:50.000000000 -0400
+++ xpdf-4.00/splash/CMakeLists.txt 2017-08-16 20:06:41.204368689 -0400
@@ -44,4 +44,5 @@ if (HAVE_SPLASH)
add_library(splash
$<TARGET_OBJECTS:splash_objs>
)
+ set_target_properties(splash PROPERTIES VERSION 4 SOVERSION 4)
endif ()

View file

@ -1,60 +0,0 @@
diff -up xpdf-4.01/goo/gmem.cc.alloc xpdf-4.01/goo/gmem.cc
--- xpdf-4.01/goo/gmem.cc.alloc 2019-02-18 13:24:19.000000000 -0500
+++ xpdf-4.01/goo/gmem.cc 2019-02-22 09:37:02.683498383 -0500
@@ -84,8 +84,8 @@ static size_t gMaxMemInUse = 0;
#endif /* DEBUG_MEM */
#ifdef DEBUG_MEM
-void *gmalloc(int size, int ignore) GMEM_EXCEP {
- int size1;
+void *gmalloc(size_t size, int ignore) GMEM_EXCEP {
+ size_t size1;
char *mem;
GMemHdr *hdr;
void *data;
@@ -134,7 +134,7 @@ void *gmalloc(int size, int ignore) GMEM
return data;
}
#else
-void *gmalloc(int size) GMEM_EXCEP {
+void *gmalloc(size_t size) GMEM_EXCEP {
void *p;
if (size < 0) {
@@ -150,11 +150,11 @@ void *gmalloc(int size) GMEM_EXCEP {
}
#endif
-void *grealloc(void *p, int size) GMEM_EXCEP {
+void *grealloc(void *p, size_t size) GMEM_EXCEP {
#ifdef DEBUG_MEM
GMemHdr *hdr;
void *q;
- int oldSize;
+ size_t oldSize;
if (size < 0) {
gMemError("Invalid memory allocation size");
diff -up xpdf-4.01/goo/gmem.h.alloc xpdf-4.01/goo/gmem.h
--- xpdf-4.01/goo/gmem.h.alloc 2019-02-18 13:24:19.000000000 -0500
+++ xpdf-4.01/goo/gmem.h 2019-02-22 09:37:02.683498383 -0500
@@ -37,16 +37,16 @@ extern "C" {
* returns NULL.
*/
#ifdef DEBUG_MEM
-extern void *gmalloc(int size, int ignore = 0) GMEM_EXCEP;
+extern void *gmalloc(size_t size, int ignore = 0) GMEM_EXCEP;
#else
-extern void *gmalloc(int size) GMEM_EXCEP;
+extern void *gmalloc(size_t size) GMEM_EXCEP;
#endif
/*
* Same as realloc, but prints error message and exits if realloc()
* returns NULL. If <p> is NULL, calls malloc instead of realloc().
*/
-extern void *grealloc(void *p, int size) GMEM_EXCEP;
+extern void *grealloc(void *p, size_t size) GMEM_EXCEP;
/*
* These are similar to gmalloc and grealloc, but take an object count

View file

@ -1,21 +0,0 @@
diff -up xpdf-4.01/fofi/FoFiType1.cc.crash xpdf-4.01/fofi/FoFiType1.cc
--- xpdf-4.01/fofi/FoFiType1.cc.crash 2019-02-22 09:33:55.304458147 -0500
+++ xpdf-4.01/fofi/FoFiType1.cc 2019-02-22 09:36:30.966169469 -0500
@@ -276,9 +276,14 @@ void FoFiType1::parse() {
p += 3;
}
} else {
- if (strtok(buf, " \t") &&
- (p = strtok(NULL, " \t\n\r")) && !strcmp(p, "def")) {
- break;
+ p = strtok(buf, " \t\n\r");
+ if (p)
+ {
+ if (!strcmp(p, "def")) break;
+ if (!strcmp(p, "readonly")) break;
+ // the spec does not says this but i'm mantaining old xpdf behaviour that accepts "foo def" as end of the encoding array
+ p = strtok(buf, " \t\n\r");
+ if (p && !strcmp(p, "def")) break;
}
}
}

View file

@ -1,37 +0,0 @@
diff -up xpdf-4.01/goo/gfile.cc.ext xpdf-4.01/goo/gfile.cc
--- xpdf-4.01/goo/gfile.cc.ext 2019-02-18 13:24:19.000000000 -0500
+++ xpdf-4.01/goo/gfile.cc 2019-02-22 09:33:17.023259251 -0500
@@ -473,24 +473,6 @@ GBool openTempFile(GString **name, FILE
char *s;
int fd;
- if (ext) {
-#if HAVE_MKSTEMPS
- if ((s = getenv("TMPDIR"))) {
- *name = new GString(s);
- } else {
- *name = new GString("/tmp");
- }
- (*name)->append("/XXXXXX")->append(ext);
- fd = mkstemps((*name)->getCString(), (int)strlen(ext));
-#else
- if (!(s = tmpnam(NULL))) {
- return gFalse;
- }
- *name = new GString(s);
- (*name)->append(ext);
- fd = open((*name)->getCString(), O_WRONLY | O_CREAT | O_EXCL, 0600);
-#endif
- } else {
#if HAVE_MKSTEMP
if ((s = getenv("TMPDIR"))) {
*name = new GString(s);
@@ -506,7 +488,7 @@ GBool openTempFile(GString **name, FILE
*name = new GString(s);
fd = open((*name)->getCString(), O_WRONLY | O_CREAT | O_EXCL, 0600);
#endif // HAVE_MKSTEMP
- }
+
if (fd < 0 || !(*f = fdopen(fd, mode))) {
delete *name;
*name = NULL;

View file

@ -1,55 +0,0 @@
diff -up xpdf-4.01/xpdf/GlobalParams.cc.urw-font-fix xpdf-4.01/xpdf/GlobalParams.cc
--- xpdf-4.01/xpdf/GlobalParams.cc.urw-font-fix 2019-02-18 13:24:19.000000000 -0500
+++ xpdf-4.01/xpdf/GlobalParams.cc 2019-02-22 09:44:56.842457771 -0500
@@ -79,20 +79,20 @@ static struct {
const char *obliqueFont; // name of font to oblique
double obliqueFactor; // oblique sheer factor
} displayFontTab[] = {
- {"Courier", "n022003l.pfb", "cour.ttf", "Courier", "Courier", NULL, 0},
- {"Courier-Bold", "n022004l.pfb", "courbd.ttf", "Courier", "Courier Bold", NULL, 0},
- {"Courier-BoldOblique", "n022024l.pfb", "courbi.ttf", "Courier", "Courier Bold Oblique", "Courier-Bold", 0.212557},
- {"Courier-Oblique", "n022023l.pfb", "couri.ttf", "Courier", "Courier Oblique", "Courier", 0.212557},
- {"Helvetica", "n019003l.pfb", "arial.ttf", "Helvetica", "Helvetica", NULL, 0},
- {"Helvetica-Bold", "n019004l.pfb", "arialbd.ttf", "Helvetica", "Helvetica-Bold", NULL, 0},
- {"Helvetica-BoldOblique", "n019024l.pfb", "arialbi.ttf", "Helvetica", "Helvetica Bold Oblique", "Helvetica-Bold", 0.212557},
- {"Helvetica-Oblique", "n019023l.pfb", "ariali.ttf", "Helvetica", "Helvetica Oblique", "Helvetica", 0.212557},
- {"Symbol", "s050000l.pfb", NULL, "Symbol", "Symbol", NULL, 0},
- {"Times-Bold", "n021004l.pfb", "timesbd.ttf", "Times", "Times-Bold", NULL, 0},
- {"Times-BoldItalic", "n021024l.pfb", "timesbi.ttf", "Times", "Times-BoldItalic", NULL, 0},
- {"Times-Italic", "n021023l.pfb", "timesi.ttf", "Times", "Times-Italic", NULL, 0},
- {"Times-Roman", "n021003l.pfb", "times.ttf", "Times", "Times-Roman", NULL, 0},
- {"ZapfDingbats", "d050000l.pfb", NULL, "ZapfDingbats", "Zapf Dingbats", NULL, 0},
+ {"Courier", "NimbusMonoPS-Regular.t1", "cour.ttf", "Courier", "Courier", NULL, 0},
+ {"Courier-Bold", "NimbusMonoPS-Bold.t1", "courbd.ttf", "Courier", "Courier Bold", NULL, 0},
+ {"Courier-BoldOblique", "NimbusMonoPS-BoldItalic.t1", "courbi.ttf", "Courier", "Courier Bold Oblique", "Courier-Bold", 0.212557},
+ {"Courier-Oblique", "NimbusMonoPS-Italic.t1", "couri.ttf", "Courier", "Courier Oblique", "Courier", 0.212557},
+ {"Helvetica", "NimbusSans-Regular.t1", "arial.ttf", "Helvetica", "Helvetica", NULL, 0},
+ {"Helvetica-Bold", "NimbusSans-Bold.t1", "arialbd.ttf", "Helvetica", "Helvetica-Bold", NULL, 0},
+ {"Helvetica-BoldOblique", "NimbusSans-BoldItalic.t1", "arialbi.ttf", "Helvetica", "Helvetica Bold Oblique", "Helvetica-Bold", 0.212557},
+ {"Helvetica-Oblique", "NimbusSans-Italic.t1", "ariali.ttf", "Helvetica", "Helvetica Oblique", "Helvetica", 0.212557},
+ {"Symbol", "StandardSymbolsPS.t1", NULL, "Symbol", "Symbol", NULL, 0},
+ {"Times-Bold", "NimbusRoman-Bold.t1", "timesbd.ttf", "Times", "Times-Bold", NULL, 0},
+ {"Times-BoldItalic", "NimbusRoman-BoldItalic.t1", "timesbi.ttf", "Times", "Times-BoldItalic", NULL, 0},
+ {"Times-Italic", "NimbusRoman-Italic.t1", "timesi.ttf", "Times", "Times-Italic", NULL, 0},
+ {"Times-Roman", "NimbusRoman-Regular.t1", "times.ttf", "Times", "Times-Roman", NULL, 0},
+ {"ZapfDingbats", "D050000L.t1", NULL, "ZapfDingbats", "Zapf Dingbats", NULL, 0},
{NULL}
};
@@ -104,6 +104,7 @@ static const char *displayFontDirs[] = {
};
#else
static const char *displayFontDirs[] = {
+ "/usr/share/fonts/urw-base35",
"/usr/share/ghostscript/fonts",
"/usr/local/share/ghostscript/fonts",
"/usr/share/fonts/default/Type1",
@@ -2204,7 +2205,7 @@ UnicodeRemapping *GlobalParams::getUnico
}
GString *GlobalParams::findFontFile(GString *fontName) {
- static const char *exts[] = { ".pfa", ".pfb", ".ttf", ".ttc", ".otf" };
+ static const char *exts[] = { ".pfa", ".pfb", ".t1", ".ttf", ".ttc", ".otf" };
GString *path, *dir;
#ifdef _WIN32
GString *fontNameU;

View file

@ -1,79 +0,0 @@
diff -up xpdf-4.02/fofi/FoFiTrueType.cc.CVE-2019-12360 xpdf-4.02/fofi/FoFiTrueType.cc
--- xpdf-4.02/fofi/FoFiTrueType.cc.CVE-2019-12360 2020-06-26 15:15:48.156850534 -0400
+++ xpdf-4.02/fofi/FoFiTrueType.cc 2020-06-26 15:15:35.204068577 -0400
@@ -20,6 +20,7 @@
#include "gtypes.h"
#include "gmem.h"
#include "gmempp.h"
+#include "GLikely.h"
#include "GString.h"
#include "GHash.h"
#include "FoFiType1C.h"
@@ -1764,7 +1765,7 @@ void FoFiTrueType::cvtSfnts(FoFiOutputFu
GBool ok;
Guint checksum;
int nNewTables;
- int glyfTableLen, length, pos, glyfPos, i, j, k;
+ int glyfTableLen, length, pos, glyfPos, i, j, k, vmtxTabLength;
Guchar vheaTab[36] = {
0, 1, 0, 0, // table version number
0, 0, // ascent
@@ -1891,6 +1892,7 @@ void FoFiTrueType::cvtSfnts(FoFiOutputFu
}
}
vmtxTab = NULL; // make gcc happy
+ vmtxTabLength = 0;
advance = 0; // make gcc happy
if (needVerticalMetrics) {
needVhea = seekTable("vhea") < 0;
@@ -1951,6 +1953,7 @@ void FoFiTrueType::cvtSfnts(FoFiOutputFu
checksum = computeTableChecksum(vheaTab, length);
} else if (needVerticalMetrics && i == t42VmtxTable) {
length = 4 + (nGlyphs - 1) * 2;
+ vmtxTabLength = length;
vmtxTab = (Guchar *)gmalloc(length);
vmtxTab[0] = (Guchar)(advance / 256);
vmtxTab[1] = (Guchar)(advance % 256);
@@ -2065,8 +2068,16 @@ void FoFiTrueType::cvtSfnts(FoFiOutputFu
dumpString(file + tables[j].offset, tables[j].len,
outputFunc, outputStream);
} else if (needVerticalMetrics && i == t42VheaTable) {
+ if (unlikely(length > (int)sizeof(vheaTab))) {
+ //~ error(errSyntaxWarning, -1, "length bigger than vheaTab size");
+ length = sizeof(vheaTab);
+ }
dumpString(vheaTab, length, outputFunc, outputStream);
} else if (needVerticalMetrics && i == t42VmtxTable) {
+ if (unlikely(length > vmtxTabLength)) {
+ //~ error(errSyntaxWarning, -1, "length bigger than vmtxTab size");
+ length = vmtxTabLength;
+ }
dumpString(vmtxTab, length, outputFunc, outputStream);
}
}
diff -up xpdf-4.02/goo/GLikely.h.CVE-2019-12360 xpdf-4.02/goo/GLikely.h
--- xpdf-4.02/goo/GLikely.h.CVE-2019-12360 2020-06-26 15:11:32.839149675 -0400
+++ xpdf-4.02/goo/GLikely.h 2020-06-26 15:11:07.713572773 -0400
@@ -0,0 +1,22 @@
+//========================================================================
+//
+// GLikely.h
+//
+// This file is licensed under the GPLv2 or later
+//
+// Copyright (C) 2008 Kees Cook <kees@outflux.net>
+//
+//========================================================================
+
+#ifndef GLIKELY_H
+#define GLIKELY_H
+
+#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
+# define likely(x) __builtin_expect((x), 1)
+# define unlikely(x) __builtin_expect((x), 0)
+#else
+# define likely(x) (x)
+# define unlikely(x) (x)
+#endif
+
+#endif

View file

@ -1,19 +0,0 @@
diff -up xpdf-4.02/xpdf/Catalog.cc.CVE-2019-17064 xpdf-4.02/xpdf/Catalog.cc
--- xpdf-4.02/xpdf/Catalog.cc.CVE-2019-17064 2019-12-02 12:21:54.480562087 -0500
+++ xpdf-4.02/xpdf/Catalog.cc 2019-12-02 12:22:37.047605136 -0500
@@ -159,6 +159,7 @@ Catalog::Catalog(PDFDoc *docA) {
baseURI = NULL;
form = NULL;
embeddedFiles = NULL;
+ pageLabels = NULL;
#if MULTITHREADED
gInitMutex(&pageMutex);
#endif
@@ -241,7 +242,6 @@ Catalog::Catalog(PDFDoc *docA) {
// get the ViewerPreferences object
catDict.dictLookupNF("ViewerPreferences", &viewerPrefs);
- pageLabels = NULL;
if (catDict.dictLookup("PageLabels", &obj)->isDict()) {
readPageLabelTree(&obj);
}

View file

@ -1,12 +0,0 @@
diff -up xpdf-4.04/xpdf/GlobalParams.h.null-fix xpdf-4.04/xpdf/GlobalParams.h
--- xpdf-4.04/xpdf/GlobalParams.h.null-fix 2023-01-30 14:10:42.286805370 -0500
+++ xpdf-4.04/xpdf/GlobalParams.h 2023-01-30 14:10:50.383895185 -0500
@@ -237,7 +237,7 @@ public:
// Initialize the global parameters by attempting to read a config
// file.
- GlobalParams(const char *cfgFileName);
+ GlobalParams(const char *cfgFileName = NULL);
~GlobalParams();

View file

@ -1,17 +0,0 @@
diff -up xpdf-4.04/xpdf/CMakeLists.txt.shared-xpdf-lib xpdf-4.04/xpdf/CMakeLists.txt
--- xpdf-4.04/xpdf/CMakeLists.txt.shared-xpdf-lib 2023-01-30 14:30:07.185779720 -0500
+++ xpdf-4.04/xpdf/CMakeLists.txt 2023-01-30 14:31:41.942842314 -0500
@@ -78,6 +78,13 @@ add_library(xpdf_objs OBJECT
set_property(TARGET xpdf_objs
PROPERTY POSITION_INDEPENDENT_CODE True)
+add_library(xpdfcore
+ $<TARGET_OBJECTS:xpdf_objs>
+)
+
+set_target_properties(xpdfcore PROPERTIES VERSION 4 SOVERSION 4)
+
+
#--- object files needed by XpdfWidget
if ((QT4_FOUND OR Qt5Widgets_FOUND OR Qt6Widgets_FOUND)

View file

@ -1,22 +0,0 @@
diff -up xpdf-4.05/fofi/FoFiType1.cc.CVE-2024-4141 xpdf-4.05/fofi/FoFiType1.cc
--- xpdf-4.05/fofi/FoFiType1.cc.CVE-2024-4141 2024-05-29 10:19:51.918225689 -0400
+++ xpdf-4.05/fofi/FoFiType1.cc 2024-05-29 10:20:53.406160594 -0400
@@ -193,7 +193,8 @@ void FoFiType1::parse() {
char *line, *line1, *p, *p2;
char buf[256];
char c;
- int n, code, base, i, j;
+ unsigned int code;
+ int n, base, i, j;
GBool gotMatrix, startsWithDup, endsWithDup;
gotMatrix = gFalse;
@@ -262,7 +263,7 @@ void FoFiType1::parse() {
}
++p;
for (p2 = p; *p2 && *p2 != ' ' && *p2 != '\t'; ++p2) ;
- if (code >= 0 && code < 256) {
+ if (code < 256) {
c = *p2;
*p2 = '\0';
gfree(encoding[code]);

View file

@ -1,131 +0,0 @@
diff -up xpdf-4.06/xpdf/pdfimages.cc.permissions xpdf-4.06/xpdf/pdfimages.cc
--- xpdf-4.06/xpdf/pdfimages.cc.permissions 2025-11-13 17:08:30.000000000 -0500
+++ xpdf-4.06/xpdf/pdfimages.cc 2025-11-18 15:27:00.093784988 -0500
@@ -4,6 +4,8 @@
//
// Copyright 1998-2003 Glyph & Cog, LLC
//
+// Modified for Debian by Hamish Moffatt, 22 May 2002.
+//
//========================================================================
#include <aconf.h>
@@ -153,12 +155,14 @@ int main(int argc, char *argv[]) {
}
// check for copy permission
+#ifdef ENFORCE_PERMISSIONS
if (!listOnly && !doc->okToCopy()) {
error(errNotAllowed, -1,
"Copying of images from this document is not allowed.");
exitCode = 3;
goto err1;
}
+#endif
// get page range
if (firstPage < 1)
diff -up xpdf-4.06/xpdf/pdftohtml.cc.permissions xpdf-4.06/xpdf/pdftohtml.cc
--- xpdf-4.06/xpdf/pdftohtml.cc.permissions 2025-11-13 17:08:30.000000000 -0500
+++ xpdf-4.06/xpdf/pdftohtml.cc 2025-11-18 15:25:43.149122766 -0500
@@ -183,6 +183,7 @@ int main(int argc, char *argv[]) {
goto err1;
}
+#ifdef ENFORCE_PERMISSIONS
// check for copy permission
if (!doc->okToCopy()) {
error(errNotAllowed, -1,
@@ -190,6 +191,7 @@ int main(int argc, char *argv[]) {
exitCode = 3;
goto err1;
}
+#endif
// get page range
if (firstPage < 1) {
diff -up xpdf-4.06/xpdf/pdftops.cc.permissions xpdf-4.06/xpdf/pdftops.cc
--- xpdf-4.06/xpdf/pdftops.cc.permissions 2025-11-13 17:08:30.000000000 -0500
+++ xpdf-4.06/xpdf/pdftops.cc 2025-11-18 15:25:43.149260566 -0500
@@ -4,6 +4,8 @@
//
// Copyright 1996-2003 Glyph & Cog, LLC
//
+// Modified for Debian by Hamish Moffatt, 22 May 2002.
+//
//========================================================================
#include <aconf.h>
@@ -337,12 +339,14 @@ int main(int argc, char *argv[]) {
goto err1;
}
+#ifdef ENFORCE_PERMISSIONS
// check for print permission
if (!doc->okToPrint()) {
error(errNotAllowed, -1, "Printing this document is not allowed.");
exitCode = 3;
goto err1;
}
+#endif
// construct PostScript file name
if (argc == 3) {
diff -up xpdf-4.06/xpdf/pdftotext.cc.permissions xpdf-4.06/xpdf/pdftotext.cc
--- xpdf-4.06/xpdf/pdftotext.cc.permissions 2025-11-13 17:08:30.000000000 -0500
+++ xpdf-4.06/xpdf/pdftotext.cc 2025-11-18 15:25:43.149380451 -0500
@@ -4,6 +4,8 @@
//
// Copyright 1997-2013 Glyph & Cog, LLC
//
+// Modified for Debian by Hamish Moffatt, 22 May 2002.
+//
//========================================================================
#include <aconf.h>
@@ -248,6 +250,7 @@ int main(int argc, char *argv[]) {
goto err2;
}
+#ifdef ENFORCE_PERMISSIONS
// check for copy permission
if (!doc->okToCopy()) {
error(errNotAllowed, -1,
@@ -255,6 +258,7 @@ int main(int argc, char *argv[]) {
exitCode = 3;
goto err2;
}
+#endif
// construct text file name
if (argc == 3) {
diff -up xpdf-4.06/xpdf-qt/QtPDFCore.cc.permissions xpdf-4.06/xpdf-qt/QtPDFCore.cc
--- xpdf-4.06/xpdf-qt/QtPDFCore.cc.permissions 2025-11-13 17:08:30.000000000 -0500
+++ xpdf-4.06/xpdf-qt/QtPDFCore.cc 2025-11-18 15:25:43.149536859 -0500
@@ -494,9 +494,11 @@ QString QtPDFCore::getSelectedTextQStrin
QString qs;
int i;
+#ifdef ENFORCE_PERMISSIONS
if (!doc->okToCopy()) {
return "";
}
+#endif
if (!(s = getSelectedText())) {
return "";
}
diff -up xpdf-4.06/xpdf-qt/XpdfWidget.cc.permissions xpdf-4.06/xpdf-qt/XpdfWidget.cc
--- xpdf-4.06/xpdf-qt/XpdfWidget.cc.permissions 2025-11-13 17:08:30.000000000 -0500
+++ xpdf-4.06/xpdf-qt/XpdfWidget.cc 2025-11-18 15:25:43.149737940 -0500
@@ -1526,7 +1526,11 @@ bool XpdfWidget::okToExtractText() const
if (!core->getDoc()) {
return false;
}
+#ifdef ENFORCE_PERMISSIONS
return (bool)core->getDoc()->okToCopy();
+#else
+ return true;
+#endif
} catch (GMemException e) {
return false;
}

View file

@ -1,133 +0,0 @@
diff -up xpdf-4.06/xpdf/GlobalParams.cc.urw-font-fix xpdf-4.06/xpdf/GlobalParams.cc
--- xpdf-4.06/xpdf/GlobalParams.cc.urw-font-fix 2025-11-13 17:08:30.000000000 -0500
+++ xpdf-4.06/xpdf/GlobalParams.cc 2025-11-18 15:23:11.114577091 -0500
@@ -84,98 +84,98 @@ static struct {
double obliqueFactor; // oblique sheer factor
} displayFontTab[] = {
{"Courier", // name
- "n022003l.pfb", // t1FileName
+ "NimbusMonoPS-Regular.t1", // t1FileName
"cour.ttf", // ttFileName
"Courier", "Courier", // macFileName, macFontName
"NimbusMonoPS-Regular", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Courier-Bold", // name
- "n022004l.pfb", // t1FileName
+ "NimbusMonoPS-Bold.t1", // t1FileName
"courbd.ttf", // ttFileName
"Courier", "Courier Bold", // macFileName, macFontName
"NimbusMonoPS-Bold", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Courier-BoldOblique", // name
- "n022024l.pfb", // t1FileName
+ "NimbusMonoPS-BoldItalic.t1", // t1FileName
"courbi.ttf", // ttFileName
"Courier", "Courier Bold Oblique", // macFileName, macFontName
"NimbusMonoPS-BoldItalic", // fcFontName
"Courier-Bold", 0.212557 // obliqueFont, obliqueFactor
},
{"Courier-Oblique", // name
- "n022023l.pfb", // t1FileName
+ "NimbusMonoPS-Italic.t1", // t1FileName
"couri.ttf", // ttFileName
"Courier", "Courier Oblique", // macFileName, macFontName
"NimbusMonoPS-Italic", // fcFontName
"Courier", 0.212557 // obliqueFont, obliqueFactor
},
{"Helvetica", // name
- "n019003l.pfb", // t1FileName
+ "NimbusSans-Regular.t1", // t1FileName
"arial.ttf", // ttFileName
"Helvetica", "Helvetica", // macFileName, macFontName
"NimbusSans-Regular", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Helvetica-Bold", // name
- "n019004l.pfb", // t1FileName
+ "NimbusSans-Bold.t1", // t1FileName
"arialbd.ttf", // ttFileName
"Helvetica", "Helvetica Bold", // macFileName, macFontName
"NimbusSans-Bold", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Helvetica-BoldOblique", // name
- "n019024l.pfb", // t1FileName
+ "NimbusSans-BoldItalic.t1", // t1FileName
"arialbi.ttf", // ttFileName
"Helvetica", "Helvetica Bold Oblique", // macFileName, macFontName
"NimbusSans-BoldItalic", // fcFontName
"Helvetica-Bold", 0.212557 // obliqueFont, obliqueFactor
},
{"Helvetica-Oblique", // name
- "n019023l.pfb", // t1FileName
+ "NimbusSans-Italic.t1", // t1FileName
"ariali.ttf", // ttFileName
"Helvetica", "Helvetica Oblique", // macFileName, macFontName
"NimbusSans-Italic", // fcFontName
"Helvetica", 0.212557 // obliqueFont, obliqueFactor
},
{"Symbol", // name
- "s050000l.pfb", // t1FileName
+ "StandardSymbolsPS.t1", // t1FileName
NULL, // ttFileName
"Symbol", "Symbol", // macFileName, macFontName
"Standard Symbols PS", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Times-Bold", // name
- "n021004l.pfb", // t1FileName
+ "NimbusRoman-Bold.t1", // t1FileName
"timesbd.ttf", // ttFileName
"Times", "Times Bold", // macFileName, macFontName
"NimbusRoman-Bold", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Times-BoldItalic", // name
- "n021024l.pfb", // t1FileName
+ "NimbusRoman-BoldItalic.t1", // t1FileName
"timesbi.ttf", // ttFileName
"Times", "Times Bold Italic", // macFileName, macFontName
"NimbusRoman-BoldItalic", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Times-Italic", // name
- "n021023l.pfb", // t1FileName
+ "NimbusRoman-Italic.t1", // t1FileName
"timesi.ttf", // ttFileName
"Times", "Times Italic", // macFileName, macFontName
"NimbusRoman-Italic", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"Times-Roman", // name
- "n021003l.pfb", // t1FileName
+ "NimbusRoman-Regular.t1", // t1FileName
"times.ttf", // ttFileName
"Times", "Times Roman", // macFileName, macFontName
"NimbusRoman-Regular", // fcFontName
NULL, 0 // obliqueFont, obliqueFactor
},
{"ZapfDingbats", // name
- "d050000l.pfb", // t1FileName
+ "D050000L.t1", // t1FileName
NULL, // ttFileName
"ZapfDingbats", "Zapf Dingbats", // macFileName, macFontName
"D050000L", // fcFontName
@@ -192,6 +192,7 @@ static const char *displayFontDirs[] = {
"c:/windows/fonts",
"c:/winnt/fonts",
#else // _WIN32
+ "/usr/share/fonts/urw-base35",
"/usr/share/ghostscript/fonts",
"/usr/local/share/ghostscript/fonts",
"/usr/share/fonts/default/Type1",
@@ -2788,7 +2789,7 @@ UnicodeRemapping *GlobalParams::getUnico
}
GString *GlobalParams::findFontFile(GString *fontName) {
- static const char *exts[] = { ".pfa", ".pfb", ".ttf", ".ttc", ".otf" };
+ static const char *exts[] = { ".pfa", ".pfb", ".t1", ".ttf", ".ttc", ".otf" };
GString *path, *dir;
#ifdef _WIN32
GString *fontNameU;

370
xpdf.spec
View file

@ -1,46 +1,25 @@
%undefine __cmake_in_source_build
Summary: A PDF file viewer for the X Window System
Name: xpdf
Version: 4.06
Release: 3%{?dist}
License: (GPL-2.0-only OR GPL-3.0-only) AND BSD-3-Clause
Version: 3.04
Release: 12%{?dist}
License: GPLv2 or GPLv3
Epoch: 1
Url: https://www.xpdfreader.com/
Url: http://www.foolabs.com/xpdf/
Group: Applications/Publishing
Source0: https://dl.xpdfreader.com/%{name}-%{version}.tar.gz
Source1: https://dl.xpdfreader.com/%{name}-%{version}.tar.gz.sig
Source2: https://www.xpdfreader.com/gpg-key.txt
%if 0%{?fedora}
# We have to pull the following CMap files out due to non-free license.
# CMap/Adobe-GB1-UCS2
# CMap/GBK-EUC-UCS2
# CMap/GBpc-EUC-UCS2
# CMap/GBpc-EUC-UCS2C
# Source3: http://www.xpdfreader.com/dl/xpdf-chinese-simplified.tar.gz
Source3: xpdf-chinese-simplified-2023-dec-05-NOCMAP.tar.gz
# CMap/Adobe-CNS1-UCS2
# CMap/B5pc-UCS2
# CMap/B5pc-UCS2C
# CMap/ETen-B5-UCS2
# Source4: http://www.xpdfreader.com/dl/xpdf-chinese-traditional.tar.gz
Source4: xpdf-chinese-traditional-2020-dec-22-NOCMAP.tar.gz
# CMap/90ms-RKSJ-UCS2
# CMap/90pv-RKSJ-UCS2
# CMap/90pv-RKSJ-UCS2C
# CMap/Adobe-Japan1-UCS2
# Source5: http://www.xpdfreader.com/dl/xpdf-japanese.tar.gz
Source5: xpdf-japanese-2020-dec-22-NOCMAP.tar.gz
# CMap/Adobe-Korea1-UCS2
# CMap/KSCms-UHC-UCS2
# CMap/KSCpc-EUC-UCS2
# CMap/KSCpc-EUC-UCS2C
# Source6: http://www.xpdfreader.com/dl/xpdf-korean.tar.gz
Source6: xpdf-korean-2023-dec-05-NOCMAP.tar.gz
Source0: ftp://ftp.foolabs.com/pub/xpdf/%{name}-%{version}.tar.gz
# We have to pull the CMap files out due to non-free license.
# Source3: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified-2011-sep-02.tar.gz
Source3: xpdf-chinese-simplified-2011-sep-02-NOCMAP.tar.gz
# Source4: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-traditional-2011-sep-02.tar.gz
Source4: xpdf-chinese-traditional-2011-sep-02-NOCMAP.tar.gz
# Source5: ftp://ftp.foolabs.com/pub/xpdf/xpdf-japanese-2011-sep-02.tar.gz
Source5: xpdf-japanese-2011-sep-02-NOCMAP.tar.gz
# Source6: ftp://ftp.foolabs.com/pub/xpdf/xpdf-korean-2011-sep-02.tar.gz
Source6: xpdf-korean-2011-sep-02-NOCMAP.tar.gz
# cyrillic and thai don't have CMap files to worry about.
Source7: ftp://ftp.foolabs.com/pub/xpdf/xpdf-cyrillic-2011-aug-15.tar.gz
# thai: 2025-08-13
Source8: https://dl.xpdfreader.com/xpdf-thai.tar.gz
Source8: ftp://ftp.foolabs.com/pub/xpdf/xpdf-thai-2011-aug-15.tar.gz
Source10: xpdf.desktop
Source11: xpdf.png
Source12: ftp://ftp.foolabs.com/pub/xpdf/xpdf-arabic-2011-aug-15.tar.gz
@ -48,29 +27,26 @@ Source13: ftp://ftp.foolabs.com/pub/xpdf/xpdf-greek-2011-aug-15.tar.gz
Source14: ftp://ftp.foolabs.com/pub/xpdf/xpdf-hebrew-2011-aug-15.tar.gz
Source15: ftp://ftp.foolabs.com/pub/xpdf/xpdf-latin2-2011-aug-15.tar.gz
Source16: ftp://ftp.foolabs.com/pub/xpdf/xpdf-turkish-2011-aug-15.tar.gz
%endif
Patch3: xpdf-4.01-ext.patch
Patch0: xpdf-3.04-redhat-new.patch
Patch3: xpdf-3.03-ext.patch
Patch6: xpdf-3.00-core.patch
Patch7: xpdf-3.00-xfont.patch
Patch9: xpdf-3.00-papersize.patch
Patch11: xpdf-4.01-crash.patch
Patch12: xpdf-4.01-64bit.patch
Patch11: xpdf-3.04-crash.patch
Patch12: xpdf-3.04-64bit.patch
Patch15: xpdf-3.04-nocmap.patch
Patch25: xpdf-4.00-versionedlib.patch
Patch26: xpdf-4.06-urw-base35-fonts.patch
Patch28: xpdf-4.04-GlobalParams-null-fix.patch
# https://forum.xpdfreader.com/viewtopic.php?t=42521
Patch29: xpdf-4.04-shared-xpdf-lib.patch
Patch16: xpdf-3.02-fontlist.patch
Patch19: xpdf-3.02-additionalzoom.patch
Patch20: xpdf-3.04-pdftopng.patch
Patch21: xpdf-3.04-localized.patch
Patch22: xpdf-fix-pdftopng-resolution.patch
# Security patches
# Based on
# https://gitlab.freedesktop.org/poppler/poppler/commit/cdb7ad95f7c8fbf63ade040d8a07ec96467042fc
# https://gitlab.freedesktop.org/poppler/poppler/commit/bf4aae25a244b1033a2479b9a8f633224f7d5de5
Patch101: xpdf-4.02-CVE-2019-12360.patch
# merged in 4.06
# Patch102: xpdf-4.05-CVE-2024-4141.patch
# Debian patches
Patch200: xpdf-4.06-permissions.patch
Patch200: 02_permissions.dpatch
Patch201: 10_add_accelerators.dpatch
# Proper stream encoding on 64bit platforms
Patch203: fix-444648.dpatch
@ -79,26 +55,18 @@ Requires: xdg-utils
Requires: poppler-utils
Requires: xorg-x11-fonts-ISO8859-1-75dpi
Requires: xorg-x11-fonts-ISO8859-1-100dpi
Requires: qt5-qtsvg
%if 0%{?fedora}
BuildRequires: qt5-qtbase-devel, cmake
%if 0%{?rhel}
BuildRequires: openmotif-devel
%else
# Used to use lesstif-devel here. If you are trying to build on Fedora < 17, try that.
BuildRequires: motif-devel
%endif
BuildRequires: freetype-devel >= 2.1.7
BuildRequires: fontconfig-devel
BuildRequires: desktop-file-utils
BuildRequires: libpaper-devel
BuildRequires: libpng-devel
BuildRequires: libXpm-devel
BuildRequires: cups-devel
%else
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: freetype-devel >= 2.1.7
BuildRequires: fontconfig-devel
BuildRequires: libpng-devel
%endif
# for %%gpgverify
BuildRequires: gnupg2
Provides: %{name}-chinese-simplified = %{version}-%{release}
Obsoletes: %{name}-chinese-simplified
@ -109,62 +77,39 @@ Obsoletes: %{name}-korean
Provides: %{name}-japanese = %{version}-%{release}
Obsoletes: %{name}-japanese
Requires: %{name}-libs%{_isa} = %{epoch}:%{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
Xpdf is an X Window System based viewer for Portable Document Format
(PDF) files. Xpdf is a small and efficient program which uses
standard X fonts.
%package devel
%if 0%{?fedora}
Requires: %{name}%{_isa} = %{epoch}:%{version}-%{release}
Requires: libpaper-devel
%endif
Requires: fontconfig-devel, freetype-devel
Requires: libpng-devel
Summary: Development files for xpdf libraries
%description devel
Development files for xpdf libraries.
%package libs
Summary: Libraries from xpdf
%description libs
Libraries from xpdf.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%if 0%{?fedora}
%setup -q -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 12 -a 13 -a 14 -a 15 -a 16
%else
%setup -q
%endif
%patch -P3 -p1 -b .ext
%patch -P9 -p1 -b .papersize
%patch -P11 -p1 -b .crash
%patch -P12 -p1 -b .alloc
%patch -P25 -p1 -b .versionedlib
%patch -P26 -p1 -b .urw-font-fix
%patch -P28 -p1 -b .GlobalParams-null-fix
%patch -P29 -p1 -b .shared-xpdf-lib
%patch0 -p1
%patch3 -p1 -b .ext
%patch6 -p1 -b .core
%patch7 -p1 -b .fonts
%patch9 -p1 -b .papersize
%patch11 -p1 -b .crash
%patch12 -p1 -b .alloc
%patch15 -p1
%patch16 -p1 -b .fontlist
%patch19 -p1
%patch20 -p1 -b .pdftopng
%patch21 -p1 -b .localized
%patch22 -p1 -b .fixpdftopng
# security patches
%patch -P101 -p1 -b .CVE-2019-12360
# %%patch -P102 -p1 -b .CVE-2024-4141
# debian patches
%patch -P200 -p1 -b .permissions
%patch -P203 -p1 -b .64bit-stream
# Comment out unused urlCommand option
sed -i 's|urlCommand|#urlCommand|g' doc/sample-xpdfrc
%patch200 -p1 -b .permissions
%patch201 -p1 -b .accelerators
%patch203 -p1 -b .64bit-stream
%build
find -name "*orig" | xargs rm -f
%if 0%{?fedora}
# This may seem pointless, but in the unlikely event that _sysconfdir != /etc ...
for file in doc/*.1 doc/*.5 xpdf-*/README; do
sed -i -e 's:/etc/xpdfrc:%{_sysconfdir}/xpdfrc:g' $file
@ -174,19 +119,21 @@ for file in xpdf-*/README xpdf-*/add-to-xpdfrc; do
sed -i -e 's:/usr/share/:%{_datadir}/:g' $file
sed -i -e 's:/usr/local/share/:%{_datadir}/:g' $file
done
%endif
export CFLAGS="%{optflags} -fPIC"
export CXXFLAGS="%{optflags} -Wno-deprecated -fPIC"
%cmake -DMULTITHREADED=ON -DOPI_SUPPORT=ON -DXPDFWIDGET_PRINTING=1 -DSYSTEM_XPDFRC="%{_sysconfdir}/xpdfrc" -DCMAKE_POLICY_VERSION_MINIMUM=3.5
%configure \
--enable-multithreaded \
--enable-wordlist \
--with-x \
--enable-opi \
--with-appdef-dir=%{_datadir}/X11/app-defaults/ \
--without-Xp-library \
--with-freetype2-library=%{_libdir} \
--with-freetype2-includes=%{_includedir}/freetype2
%cmake_build
%if 0%{?fedora}
%cmake_build --target xpdf
%endif
make %{?_smp_mflags}
make xpdf %{?_smp_mflags}
%install
%if 0%{?fedora}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/xpdf/arabic \
$RPM_BUILD_ROOT%{_datadir}/xpdf/chinese-simplified \
$RPM_BUILD_ROOT%{_datadir}/xpdf/chinese-traditional \
@ -200,27 +147,8 @@ mkdir -p $RPM_BUILD_ROOT%{_datadir}/xpdf/arabic \
$RPM_BUILD_ROOT%{_datadir}/xpdf/turkish \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps
%cmake_install
%endif
make install DESTDIR=$RPM_BUILD_ROOT
# Y U NO INSTALL LIBS?!?
mkdir -p $RPM_BUILD_ROOT%{_libdir}
cp -a %{_vpath_builddir}/fofi/libfofi.so* $RPM_BUILD_ROOT%{_libdir}
cp -a %{_vpath_builddir}/goo/libgoo.so* $RPM_BUILD_ROOT%{_libdir}
cp -a %{_vpath_builddir}/splash/libsplash.so* $RPM_BUILD_ROOT%{_libdir}
cp -a %{_vpath_builddir}/xpdf/libxpdfcore.so* $RPM_BUILD_ROOT%{_libdir}
# headers
mkdir -p $RPM_BUILD_ROOT%{_includedir}/xpdf/fofi
mkdir -p $RPM_BUILD_ROOT%{_includedir}/xpdf/goo
mkdir -p $RPM_BUILD_ROOT%{_includedir}/xpdf/splash
cp -a fofi/*.h $RPM_BUILD_ROOT%{_includedir}/xpdf/fofi/
cp -a goo/*.h $RPM_BUILD_ROOT%{_includedir}/xpdf/goo/
cp -a splash/*.h $RPM_BUILD_ROOT%{_includedir}/xpdf/splash/
cp -a xpdf/*.h $RPM_BUILD_ROOT%{_includedir}/xpdf/
cp -a %{__cmake_builddir}/aconf.h $RPM_BUILD_ROOT%{_includedir}/xpdf/
%if 0%{?fedora}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications/
%if 0%{?rhel} > 5 || 0%{?fedora}
desktop-file-install \
@ -253,7 +181,6 @@ rm $RPM_BUILD_ROOT%{_bindir}/pdfdetach
rm $RPM_BUILD_ROOT%{_bindir}/pdffonts
rm $RPM_BUILD_ROOT%{_bindir}/pdfimages
rm $RPM_BUILD_ROOT%{_bindir}/pdfinfo
rm $RPM_BUILD_ROOT%{_bindir}/pdftohtml
rm $RPM_BUILD_ROOT%{_bindir}/pdftops
rm $RPM_BUILD_ROOT%{_bindir}/pdftotext
%if 0%{?rhel} > 5 || 0%{?fedora} > 6
@ -266,7 +193,6 @@ rm $RPM_BUILD_ROOT%{_mandir}/man1/pdfdetach.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/pdffonts.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/pdfimages.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/pdfinfo.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/pdftohtml.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/pdftops.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/pdftotext.1*
@ -277,20 +203,28 @@ for i in arabic chinese-simplified chinese-traditional cyrillic greek hebrew jap
done
# xpdfrc cleanup
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/
cp -a doc/sample-xpdfrc $RPM_BUILD_ROOT%{_sysconfdir}/xpdfrc
sed -i -e 's:/usr/local/share/:%{_datadir}/:g' $RPM_BUILD_ROOT%{_sysconfdir}/xpdfrc
%endif
%ldconfig_scriptlets
# CJK are already in the file
for i in arabic cyrillic greek hebrew latin2 thai turkish; do
echo "# $i" >> $RPM_BUILD_ROOT%{_sysconfdir}/xpdfrc
echo "include %{_sysconfdir}/xpdf/add-to-xpdfrc.$i" >> $RPM_BUILD_ROOT%{_sysconfdir}/xpdfrc
done
%post
touch --no-create %{_datadir}/icons/hicolor || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
update-desktop-database &> /dev/null ||:
%postun
touch --no-create %{_datadir}/icons/hicolor || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
update-desktop-database &> /dev/null ||:
%if 0%{?fedora}
%files
%license COPYING COPYING3
%doc CHANGES README README.*
%{_bindir}/xpdf
%{_bindir}/pdftopng
%{_libdir}/lib*.so.*
%{_mandir}/man?/pdftopng*
%{_mandir}/man?/xpdf*
%if 0%{?rhel} > 5 || 0%{?fedora} > 6
@ -333,154 +267,8 @@ sed -i -e 's:/usr/local/share/:%{_datadir}/:g' $RPM_BUILD_ROOT%{_sysconfdir}/xpd
%lang(tr) %{_datadir}/xpdf/turkish
%{_datadir}/xpdf/cyrillic
%{_datadir}/xpdf/latin2
%endif
%files devel
%{_includedir}/xpdf/
%{_libdir}/lib*.so
%files libs
%{_libdir}/lib*.so.*
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.06-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.06-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Tue Nov 18 2025 Tom Callaway <spot@fedoraproject.org> - 1:4.06-1
- update to 4.06
* Thu Jul 31 2025 Tom Callaway <spot@fedoraproject.org> - 1:4.05-8
- passing -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with CMake4 (bz2381643)
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.05-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.05-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.05-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed May 29 2024 Tom Callaway <spot@fedoraproject.org> - 4.05-4
- apply fix for CVE-2024-4141, thanks to Petr Gajdos and Derek Noonburg
* Fri Apr 5 2024 Peter Lemenkov <lemenkov@gmail.com> - 4.05-3
- Verify GPG signature
* Thu Feb 29 2024 Tom Callaway <spot@fedoraproject.org> - 4.05-2
- update langpacks
* Tue Feb 27 2024 Than Ngo <than@redhat.com> - 4.05-1
- fixed bz#2263444, update to 4.05
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.04-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.04-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 16 2023 Than Ngo <than@redhat.com> - 1:4.04-9
- added ELN/RHEL conditions
* Fri Apr 28 2023 Tom Callaway <spot@fedoraproject.org> 1:4.04-8
- move libs to -libs subpackage to minimize dep footprint of texlive-pdftex (bz2188328)
* Tue Feb 21 2023 Than Ngo <than@redhat.com> - 4.04-7
- migrated to SPDX license
* Thu Feb 16 2023 Tom Callaway <spot@fedoraproject.org> - 1:4.04-6
- drop now unnecessary libpaper2 patch
* Mon Jan 30 2023 Tom Callaway <spot@fedoraproject.org> - 1:4.04-5
- pull in all the headers
- apply null fix for default var in GlobalParams()
- make a libxpdfcore for texlive-base to use
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.04-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sun Jan 8 2023 Tom Callaway <spot@fedoraproject.org> - 1:4.04-3
- fix build with libpaper2, rebuild for it
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.04-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Apr 22 2022 Tom Callaway <spot@fedoraproject.org> - 1:4.04-1
- update to 4.04
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Feb 2 2021 Tom Callaway <spot@fedoraproject.org> - 1:4.03-1
- update to 4.03
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.02-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.02-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jun 26 2020 Tom Callaway <spot@fedoraproject.org> - 1:4.02-4
- generate and apply fix based on poppler fix for CVE-2019-12360
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.02-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Dec 2 2019 Tom Callaway <spot@fedoraproject.org> - 1:4.02-2
- apply upstream fix for CVE-2019-17064
* Wed Oct 16 2019 Tom Callaway <spot@fedoraproject.org> - 1:4.02-1
- update to 4.02
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.01-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 22 2019 Tom Callaway <spot@fedoraproject.org> 1:4.01-1
- update to 4.01
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.00-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.00-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Apr 30 2018 Tom Callaway <spot@fedoraproject.org> - 1:4.00-7
- add Requires: qt5-qtsvg to ensure icons are shown
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.00-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Nov 27 2017 Tom Callaway <spot@fedoraproject.org> - 1:4.00-5
- enable printing support. I hate cmake. thanks to Henrique Martins.
* Mon Nov 13 2017 Tom Callaway <spot@fedoraproject.org> - 1:4.00-4
- tell xpdf where to find the system copy of xpdfrc
- comment out unused urlCommand option from xpdfrc
* Tue Nov 7 2017 Tom Callaway <spot@fedoraproject.org> - 1:4.00-3
- fix URW font handling (thanks to Yaakov Selkowitz)
* Wed Aug 23 2017 Tom Callaway <spot@fedoraproject.org> 1:4.00-2
- fix macro typo
* Wed Aug 16 2017 Tom Callaway <spot@fedoraproject.org> 1:4.00-1
- update to 4.00
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.04-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.04-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.04-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.04-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild