diff --git a/.gitignore b/.gitignore index 543bac8..f3e6ae6 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ /mupdf-1.13.0-source.tar.gz /mupdf-1.14.0-rc1-source.tar.gz /mupdf-1.14.0-source.tar.gz +/mupdf-1.15.0-rc1-source.tar.gz diff --git a/0001-Fix-699840-Use-saved-sig_widget-pointer-to-sign-sign.patch b/0001-Fix-699840-Use-saved-sig_widget-pointer-to-sign-sign.patch deleted file mode 100644 index 8781d21..0000000 --- a/0001-Fix-699840-Use-saved-sig_widget-pointer-to-sign-sign.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 68840d4a34e1e56ea9130158e8e163fb60550db4 Mon Sep 17 00:00:00 2001 -Message-Id: <68840d4a34e1e56ea9130158e8e163fb60550db4.1542273624.git.mjg@fedoraproject.org> -From: Tor Andersson -Date: Wed, 7 Nov 2018 19:44:55 +0100 -Subject: [PATCH] Fix 699840: Use saved sig_widget pointer to sign signatures, - not selected_annot. - ---- - platform/gl/gl-form.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/platform/gl/gl-form.c b/platform/gl/gl-form.c -index 94daa8e2..889554f2 100644 ---- a/platform/gl/gl-form.c -+++ b/platform/gl/gl-form.c -@@ -10,6 +10,10 @@ - #include "mupdf/helpers/pkcs7-check.h" - #include "mupdf/helpers/pkcs7-openssl.h" - -+static pdf_widget *sig_widget; -+static char sig_status[500]; -+static int sig_result; -+ - static char cert_filename[PATH_MAX]; - static struct input cert_password; - -@@ -22,7 +26,7 @@ static void do_sign(void) - fz_try(ctx) - { - signer = pkcs7_openssl_read_pfx(ctx, cert_filename, cert_password.text); -- pdf_sign_signature(ctx, pdf, selected_annot, signer); -+ pdf_sign_signature(ctx, pdf, sig_widget, signer); - ui_show_warning_dialog("Signed document successfully."); - } - fz_always(ctx) -@@ -33,7 +37,7 @@ static void do_sign(void) - fz_catch(ctx) - ui_show_warning_dialog("%s", fz_caught_message(ctx)); - -- if (pdf_update_page(ctx, selected_annot->page)) -+ if (pdf_update_page(ctx, sig_widget->page)) - render_page(); - } - -@@ -84,10 +88,6 @@ static void cert_file_dialog(void) - } - } - --static pdf_widget *sig_widget; --static char sig_status[500]; --static int sig_result; -- - static void sig_dialog(void) - { - const char *label = pdf_field_label(ctx, sig_widget->page->doc, sig_widget->obj); --- -2.19.1.1238.g4b45f61cc0 - diff --git a/0001-Write-placeholder-appearance-streams-for-digital-sig.patch b/0001-Write-placeholder-appearance-streams-for-digital-sig.patch deleted file mode 100644 index 837a0d5..0000000 --- a/0001-Write-placeholder-appearance-streams-for-digital-sig.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 7f5ccdee1f8a990e1cd675bd1a7ab4673e797f46 Mon Sep 17 00:00:00 2001 -Message-Id: <7f5ccdee1f8a990e1cd675bd1a7ab4673e797f46.1542275308.git.mjg@fedoraproject.org> -From: Tor Andersson -Date: Wed, 7 Nov 2018 19:46:54 +0100 -Subject: [PATCH] Write placeholder appearance streams for digital signatures. - -A proper appearance stream is written when signing with a certificate. -This is just to create a placeholder appearance when the original document -did not write one. ---- - source/pdf/pdf-appearance.c | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - -diff --git a/source/pdf/pdf-appearance.c b/source/pdf/pdf-appearance.c -index ceadfd09..c18d5860 100644 ---- a/source/pdf/pdf-appearance.c -+++ b/source/pdf/pdf-appearance.c -@@ -1066,6 +1066,25 @@ pdf_write_ch_widget_appearance(fz_context *ctx, pdf_annot *annot, fz_buffer *buf - pdf_write_tx_widget_appearance(ctx, annot, buf, rect, bbox, matrix, res, text, ff); - } - -+static void -+pdf_write_sig_widget_appearance(fz_context *ctx, pdf_annot *annot, fz_buffer *buf, -+ fz_rect *rect, fz_rect *bbox, fz_matrix *matrix, pdf_obj **res) -+{ -+ float x0 = rect->x0 + 1; -+ float y0 = rect->y0 + 1; -+ float x1 = rect->x1 - 1; -+ float y1 = rect->y1 - 1; -+ float w = x1 - x0; -+ float h = y1 - y0; -+ fz_append_printf(ctx, buf, "1 w\n0 G\n"); -+ fz_append_printf(ctx, buf, "%g %g %g %g re\n", x0, y0, w, h); -+ fz_append_printf(ctx, buf, "%g %g m %g %g l\n", x0, y0, x1, y1); -+ fz_append_printf(ctx, buf, "%g %g m %g %g l\n", x1, y0, x0, y1); -+ fz_append_printf(ctx, buf, "s\n"); -+ *bbox = *rect; -+ *matrix = fz_identity; -+} -+ - static void - pdf_write_widget_appearance(fz_context *ctx, pdf_annot *annot, fz_buffer *buf, - fz_rect *rect, fz_rect *bbox, fz_matrix *matrix, pdf_obj **res) -@@ -1115,6 +1134,10 @@ pdf_write_widget_appearance(fz_context *ctx, pdf_annot *annot, fz_buffer *buf, - fz_catch(ctx) - fz_rethrow(ctx); - } -+ else if (pdf_name_eq(ctx, ft, PDF_NAME(Sig))) -+ { -+ pdf_write_sig_widget_appearance(ctx, annot, buf, rect, bbox, matrix, res); -+ } - else - { - fz_throw(ctx, FZ_ERROR_GENERIC, "cannot create appearance stream for %s widgets", pdf_to_name(ctx, ft)); --- -2.19.1.1238.g4b45f61cc0 - diff --git a/0001-fix-build-on-big-endian.patch b/0001-fix-build-on-big-endian.patch index 0a6cabd..d52de37 100644 --- a/0001-fix-build-on-big-endian.patch +++ b/0001-fix-build-on-big-endian.patch @@ -1,5 +1,5 @@ -From 5fb79e6ccb805b3d94c8bb8eb0990d9944ae7602 Mon Sep 17 00:00:00 2001 -Message-Id: <5fb79e6ccb805b3d94c8bb8eb0990d9944ae7602.1528041417.git.mjg@fedoraproject.org> +From ea2fba125c79be72d339b49aa83bde88103ce68c Mon Sep 17 00:00:00 2001 +Message-Id: From: Michael J Gruber Date: Sun, 3 Jun 2018 17:55:46 +0200 Subject: [PATCH] fix build on big endian @@ -13,11 +13,11 @@ again. Signed-off-by: Michael J Gruber --- - src/cmsmd5.c | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) + src/cmsmd5.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/cmsmd5.c b/src/cmsmd5.c -index 4b8f7f9..dd0925a 100644 +index d3017ab..75caacb 100644 --- a/src/cmsmd5.c +++ b/src/cmsmd5.c @@ -29,7 +29,7 @@ @@ -38,7 +38,7 @@ index 4b8f7f9..dd0925a 100644 #endif -@@ -172,7 +172,7 @@ cmsHANDLE MD5alloc(cmsContext ContextID) +@@ -169,7 +169,7 @@ cmsHANDLE MD5alloc(cmsContext ContextID) static @@ -47,7 +47,7 @@ index 4b8f7f9..dd0925a 100644 { _cmsMD5* ctx = (_cmsMD5*) Handle; cmsUInt32Number t; -@@ -196,7 +196,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) +@@ -193,7 +193,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) } memmove(p, buf, t); @@ -56,7 +56,7 @@ index 4b8f7f9..dd0925a 100644 MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); buf += t; -@@ -205,7 +205,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) +@@ -202,7 +202,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) while (len >= 64) { memmove(ctx->in, buf, 64); @@ -65,16 +65,7 @@ index 4b8f7f9..dd0925a 100644 MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); buf += 64; len -= 64; -@@ -216,7 +216,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) - - // Destroy the object and return the checksum - static --void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle) -+void MD5finish(cmsContext ContextID, cmsProfileID* ProfileID, cmsHANDLE Handle) - { - _cmsMD5* ctx = (_cmsMD5*) Handle; - cmsUInt32Number count; -@@ -232,21 +232,21 @@ void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle) +@@ -229,21 +229,21 @@ void MD5finish(cmsContext ContextID, cmsProfileID* ProfileID, cmsHANDLE Handle) if (count < 8) { memset(p, 0, count); @@ -98,8 +89,8 @@ index 4b8f7f9..dd0925a 100644 + byteReverse(ContextID, (cmsUInt8Number *) ctx->buf, 4); memmove(ProfileID ->ID8, ctx->buf, 16); - _cmsFree(ctx ->ContextID, ctx); -@@ -291,7 +291,7 @@ cmsBool CMSEXPORT cmsMD5computeID(cmsContext ContextID, cmsHPROFILE hProfile) + _cmsFree(ContextID, ctx); +@@ -288,7 +288,7 @@ cmsBool CMSEXPORT cmsMD5computeID(cmsContext ContextID, cmsHPROFILE hProfile) if (MD5 == NULL) goto Error; // Add all bytes @@ -108,15 +99,6 @@ index 4b8f7f9..dd0925a 100644 // Temp storage is no longer needed _cmsFree(ContextID, Mem); -@@ -300,7 +300,7 @@ cmsBool CMSEXPORT cmsMD5computeID(cmsContext ContextID, cmsHPROFILE hProfile) - memmove(Icc, &Keep, sizeof(_cmsICCPROFILE)); - - // And store the ID -- MD5finish(&Icc ->ProfileID, MD5); -+ MD5finish(ContextID, &Icc ->ProfileID, MD5); - return TRUE; - - Error: -- -2.18.0.rc0.294.g786209a621 +2.21.0.1043.g4a4bfeb487 diff --git a/mupdf-CVE-2018-16647.patch b/mupdf-CVE-2018-16647.patch deleted file mode 100644 index 5b06974..0000000 --- a/mupdf-CVE-2018-16647.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 351c99d8ce23bbf7099dbd52771a095f67e45a2c Mon Sep 17 00:00:00 2001 -Message-Id: <351c99d8ce23bbf7099dbd52771a095f67e45a2c.1542272011.git.mjg@fedoraproject.org> -From: Sebastian Rasmussen -Date: Mon, 1 Oct 2018 15:13:13 +0800 -Subject: [PATCH] Avoid being smart about keeping only a single reference to - the buffer. - -When pdf_dev_pop() is called it will drop the reference to the buffer. -pdf_dev_push_new_buf() will either create a new buffer reference or take a reference to the existing buffer. -When pdf_dev_pop() is called unbalance this creates a problem as the -top level buffer will be unreferenced too many times. - -fails-32.pdf ---- - source/pdf/pdf-device.c | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/source/pdf/pdf-device.c b/source/pdf/pdf-device.c -index 31a7a10f..0103e9a7 100644 ---- a/source/pdf/pdf-device.c -+++ b/source/pdf/pdf-device.c -@@ -66,7 +66,6 @@ struct pdf_device_s - - pdf_document *doc; - pdf_obj *resources; -- fz_buffer *buffer; - - int in_text; - -@@ -1061,7 +1060,10 @@ pdf_dev_drop_device(fz_context *ctx, fz_device *dev) - int i; - - for (i = pdev->num_gstates-1; i >= 0; i--) -+ { -+ fz_drop_buffer(ctx, pdev->gstates[i].buf); - fz_drop_stroke_state(ctx, pdev->gstates[i].stroke_state); -+ } - - for (i = pdev->num_cid_fonts-1; i >= 0; i--) - fz_drop_font(ctx, pdev->cid_fonts[i]); -@@ -1069,7 +1071,6 @@ pdf_dev_drop_device(fz_context *ctx, fz_device *dev) - for (i = pdev->num_groups - 1; i >= 0; i--) - pdf_drop_obj(ctx, pdev->groups[i].ref); - -- fz_drop_buffer(ctx, pdev->buffer); - pdf_drop_obj(ctx, pdev->resources); - fz_free(ctx, pdev->cid_fonts); - fz_free(ctx, pdev->image_indices); -@@ -1111,10 +1112,13 @@ fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, fz_matrix topc - dev->super.begin_tile = pdf_dev_begin_tile; - dev->super.end_tile = pdf_dev_end_tile; - -+ fz_var(buf); -+ - fz_try(ctx) - { -- dev->buffer = fz_keep_buffer(ctx, buf); -- if (!buf) -+ if (buf) -+ buf = fz_keep_buffer(ctx, buf); -+ else - buf = fz_new_buffer(ctx, 256); - dev->doc = doc; - dev->resources = pdf_keep_obj(ctx, resources); -@@ -1136,8 +1140,7 @@ fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, fz_matrix topc - } - fz_catch(ctx) - { -- if (dev->gstates && dev->buffer == NULL) -- fz_drop_buffer(ctx, dev->gstates[0].buf); -+ fz_drop_buffer(ctx, buf); - fz_free(ctx, dev); - fz_rethrow(ctx); - } --- -2.19.1.1238.g4b45f61cc0 - diff --git a/mupdf-CVE-2018-16648.patch b/mupdf-CVE-2018-16648.patch deleted file mode 100644 index 54f64b6..0000000 --- a/mupdf-CVE-2018-16648.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 38f883fe129a5e89306252a4676eaaf4bc968824 Mon Sep 17 00:00:00 2001 -Message-Id: <38f883fe129a5e89306252a4676eaaf4bc968824.1542272532.git.mjg@fedoraproject.org> -From: Tor Andersson -Date: Mon, 22 Oct 2018 17:16:35 +0200 -Subject: [PATCH] Fix text used as clip mask in pdfwrite device. - -Push the clip state, and pass the correct text rendering mode state. ---- - source/pdf/pdf-device.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/source/pdf/pdf-device.c b/source/pdf/pdf-device.c -index 4dd729b8..427e3b38 100644 ---- a/source/pdf/pdf-device.c -+++ b/source/pdf/pdf-device.c -@@ -734,9 +734,13 @@ pdf_dev_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, fz_matri - { - pdf_device *pdev = (pdf_device*)dev; - fz_text_span *span; -+ -+ pdf_dev_end_text(ctx, pdev); -+ pdf_dev_push(ctx, pdev); -+ - for (span = text->head; span; span = span->next) - { -- pdf_dev_begin_text(ctx, pdev, span->trm, 0); -+ pdf_dev_begin_text(ctx, pdev, span->trm, 7); - pdf_dev_ctm(ctx, pdev, ctm); - pdf_dev_font(ctx, pdev, span->font); - pdf_dev_text_span(ctx, pdev, span); -@@ -748,9 +752,13 @@ pdf_dev_clip_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, c - { - pdf_device *pdev = (pdf_device*)dev; - fz_text_span *span; -+ -+ pdf_dev_end_text(ctx, pdev); -+ pdf_dev_push(ctx, pdev); -+ - for (span = text->head; span; span = span->next) - { -- pdf_dev_begin_text(ctx, pdev, span->trm, 0); -+ pdf_dev_begin_text(ctx, pdev, span->trm, 7); - pdf_dev_font(ctx, pdev, span->font); - pdf_dev_ctm(ctx, pdev, ctm); - pdf_dev_text_span(ctx, pdev, span); --- -2.19.1.1238.g4b45f61cc0 - diff --git a/mupdf-CVE-2018-18662.patch b/mupdf-CVE-2018-18662.patch deleted file mode 100644 index c9cfec9..0000000 --- a/mupdf-CVE-2018-18662.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 164ddc22ee0d5b63a81d5148f44c37dd132a9356 Mon Sep 17 00:00:00 2001 -Message-Id: <164ddc22ee0d5b63a81d5148f44c37dd132a9356.1542272812.git.mjg@fedoraproject.org> -From: Tor Andersson -Date: Mon, 5 Nov 2018 17:49:09 +0100 -Subject: [PATCH] Fix 700043: Don't assume a font is t3 just because - fz_outline_glyph fails. - ---- - source/fitz/svg-device.c | 31 ++++++++++++++++--------------- - 1 file changed, 16 insertions(+), 15 deletions(-) - -diff --git a/source/fitz/svg-device.c b/source/fitz/svg-device.c -index 2876a89b..aaf53b99 100644 ---- a/source/fitz/svg-device.c -+++ b/source/fitz/svg-device.c -@@ -472,27 +472,28 @@ svg_dev_text_span_as_paths_defs(fz_context *ctx, fz_device *dev, fz_text_span *s - /* Need to send this one */ - fz_rect rect; - fz_path *path; -- path = fz_outline_glyph(ctx, span->font, gid, fz_identity); -- if (path) -+ out = start_def(ctx, sdev); -+ fz_write_printf(ctx, out, "\n", fnt->id, gid); -+ if (fz_font_ft_face(ctx, span->font)) - { -- rect = fz_bound_path(ctx, path, NULL, fz_identity); -- shift.e = -rect.x0; -- shift.f = -rect.y0; -- fz_transform_path(ctx, path, shift); -- out = start_def(ctx, sdev); -- fz_write_printf(ctx, out, "\n", fnt->id, gid); -- fz_write_printf(ctx, out, "\n"); -- fz_drop_path(ctx, path); -+ path = fz_outline_glyph(ctx, span->font, gid, fz_identity); -+ if (path) -+ { -+ rect = fz_bound_path(ctx, path, NULL, fz_identity); -+ shift.e = -rect.x0; -+ shift.f = -rect.y0; -+ fz_transform_path(ctx, path, shift); -+ fz_write_printf(ctx, out, "\n"); -+ fz_drop_path(ctx, path); -+ } - } -- else -+ else if (fz_font_t3_procs(ctx, span->font)) - { - rect = fz_bound_glyph(ctx, span->font, gid, fz_identity); - shift.e = -rect.x0; - shift.f = -rect.y0; -- out = start_def(ctx, sdev); -- fz_write_printf(ctx, out, "\n", fnt->id, gid); - fz_run_t3_glyph(ctx, span->font, gid, shift, dev); - } - fz_write_printf(ctx, out, "\n"); --- -2.19.1.1238.g4b45f61cc0 - diff --git a/mupdf.spec b/mupdf.spec index 43b2157..00744f7 100644 --- a/mupdf.spec +++ b/mupdf.spec @@ -1,10 +1,11 @@ Name: mupdf -Version: 1.14.0 -Release: 8%{?dist} +Version: 1.15.0rc1 +%global origversion 1.15.0-rc1 +Release: 1%{?dist} Summary: A lightweight PDF viewer and toolkit License: AGPLv3+ URL: http://mupdf.com/ -Source0: http://mupdf.com/downloads/archive/%{name}-%{version}-source.tar.gz +Source0: http://mupdf.com/downloads/archive/%{name}-%{origversion}-source.tar.gz Source1: %{name}.desktop Source2: %{name}-gl.desktop BuildRequires: gcc make binutils desktop-file-utils coreutils pkgconfig @@ -22,11 +23,6 @@ Provides: bundled(freeglut-devel) = 3.0.0 # version so bundling them is the safer choice. Provides: bundled(mujs-devel) = 1.0.5 Patch0: 0001-fix-build-on-big-endian.patch -Patch1: mupdf-CVE-2018-16647.patch -Patch2: mupdf-CVE-2018-16648.patch -Patch3: mupdf-CVE-2018-18662.patch -Patch4: 0001-Fix-699840-Use-saved-sig_widget-pointer-to-sign-sign.patch -Patch5: 0001-Write-placeholder-appearance-streams-for-digital-sig.patch %description MuPDF is a lightweight PDF viewer and toolkit written in portable C. @@ -53,17 +49,12 @@ The mupdf-devel package contains header files for developing applications that use mupdf and static libraries %prep -%setup -q -n %{name}-%{version}-source +%setup -q -n %{name}-%{origversion}-source for d in $(ls thirdparty | grep -v -e freeglut -e lcms2 -e mujs) do rm -rf thirdparty/$d done %patch0 -p1 -d thirdparty/lcms2 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 echo > user.make "\ USE_SYSTEM_FREETYPE := yes USE_SYSTEM_HARFBUZZ := yes @@ -110,6 +101,9 @@ cd %{buildroot}/%{_bindir} && ln -s %{name}-x11 %{name} %{_libdir}/lib%{name}*.a %changelog +* Mon Apr 29 2019 Michael J Gruber - 1.15rc1-1 +- rc1 test + * Fri Feb 01 2019 Fedora Release Engineering - 1.14.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/sources b/sources index f292f29..adb5bb8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mupdf-1.14.0-source.tar.gz) = 2dbe4e1d02e296dd01f59471d34771066eaab10b81d9a357f5ea9661298116b5dbfec61858dc0fb3e6714d66bde9fa22d2b665b90165b8642342ec838289dcf9 +SHA512 (mupdf-1.15.0-rc1-source.tar.gz) = 2591c1cf30089191b8756cf9a8cc1dff1258619d62e66eed5695c3e0cad65ffbd1274208b4b3fed650443fb59eebe027fde888860c14e8c30514d55059f159f6