Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package zathura-plugin-pdf-poppler for
openSUSE:Factory checked in at 2024-01-03 14:53:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zathura-plugin-pdf-poppler (Old)
and /work/SRC/openSUSE:Factory/.zathura-plugin-pdf-poppler.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zathura-plugin-pdf-poppler"
Wed Jan 3 14:53:07 2024 rev:10 rq:1135888 version:0.3.2
Changes:
--------
---
/work/SRC/openSUSE:Factory/zathura-plugin-pdf-poppler/zathura-plugin-pdf-poppler.changes
2022-12-15 19:26:07.188368528 +0100
+++
/work/SRC/openSUSE:Factory/.zathura-plugin-pdf-poppler.new.28375/zathura-plugin-pdf-poppler.changes
2024-01-03 14:53:09.916042284 +0100
@@ -1,0 +2,7 @@
+Sun Dec 31 12:43:37 UTC 2023 - Joshua Smith <[email protected]>
+
+- Update to 0.3.2:
+ * Implement support for document signature
+ * Fix double encoding in document index
+
+-------------------------------------------------------------------
Old:
----
zathura-pdf-poppler-0.3.1.tar.xz
New:
----
zathura-pdf-poppler-0.3.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zathura-plugin-pdf-poppler.spec ++++++
--- /var/tmp/diff_new_pack.4KiRO7/_old 2024-01-03 14:53:11.308093092 +0100
+++ /var/tmp/diff_new_pack.4KiRO7/_new 2024-01-03 14:53:11.312093238 +0100
@@ -1,7 +1,7 @@
#
# spec file for package zathura-plugin-pdf-poppler
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define realname zathura-pdf-poppler
Name: zathura-plugin-pdf-poppler
-Version: 0.3.1
+Version: 0.3.2
Release: 0
Summary: PDF support for zathura via poppler
License: Zlib
++++++ zathura-pdf-poppler-0.3.1.tar.xz -> zathura-pdf-poppler-0.3.2.tar.xz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zathura-pdf-poppler-0.3.1/.clang-format
new/zathura-pdf-poppler-0.3.2/.clang-format
--- old/zathura-pdf-poppler-0.3.1/.clang-format 1970-01-01 01:00:00.000000000
+0100
+++ new/zathura-pdf-poppler-0.3.2/.clang-format 2023-12-08 18:42:12.000000000
+0100
@@ -0,0 +1,15 @@
+---
+Language: Cpp
+BasedOnStyle: LLVM
+AlignConsecutiveAssignments: true
+AllowShortFunctionsOnASingleLine: Empty
+AllowShortIfStatementsOnASingleLine: false
+AlwaysBreakTemplateDeclarations: true
+BreakBeforeBraces: Attach
+ConstructorInitializerIndentWidth: 2
+NamespaceIndentation: All
+PointerAlignment: Left
+TabWidth: 2
+ColumnLimit: 120
+SortIncludes: false
+...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zathura-pdf-poppler-0.3.1/.gitlab-ci.yml
new/zathura-pdf-poppler-0.3.2/.gitlab-ci.yml
--- old/zathura-pdf-poppler-0.3.1/.gitlab-ci.yml 2022-11-27
16:49:24.000000000 +0100
+++ new/zathura-pdf-poppler-0.3.2/.gitlab-ci.yml 2023-12-08
18:42:12.000000000 +0100
@@ -28,25 +28,6 @@
except:
- tags
-# Debian 11 (bullseye)
-build:debian-bullseye:
- tags:
- - pwmt
- stage: build
- image: registry.pwmt.org/pwmt/gitlab-runner-images/debian:bullseye
- script:
- - mkdir -p build && cd build
- - meson ..
- - ninja
- cache:
- <<: *dependency_cache
- artifacts:
- expire_in: 1 day
- paths:
- - build
- except:
- - tags
-
# Debian 12 (bookworm)
build:debian-bookworm:
tags:
@@ -66,13 +47,12 @@
except:
- tags
-
-# Ubuntu 20.04 LTS (focal)
-build:ubuntu-focal:
+# Debian 13 (trixie)
+build:debian-trixie:
tags:
- pwmt
stage: build
- image: registry.pwmt.org/pwmt/gitlab-runner-images/ubuntu:focal
+ image: registry.pwmt.org/pwmt/gitlab-runner-images/debian:trixie
script:
- mkdir -p build && cd build
- meson ..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zathura-pdf-poppler-0.3.1/README.md
new/zathura-pdf-poppler-0.3.2/README.md
--- old/zathura-pdf-poppler-0.3.1/README.md 2022-11-27 16:49:24.000000000
+0100
+++ new/zathura-pdf-poppler-0.3.2/README.md 2023-12-08 18:42:12.000000000
+0100
@@ -10,9 +10,9 @@
The following dependencies are required:
-* `zathura` (>= 0.4.4)
+* `zathura` (>= 0.5.3)
* `girara`
-* `poppler-glib` (>= 0.18)
+* `poppler-glib` (>= 21.12)
Installation
------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zathura-pdf-poppler-0.3.1/meson.build
new/zathura-pdf-poppler-0.3.2/meson.build
--- old/zathura-pdf-poppler-0.3.1/meson.build 2022-11-27 16:49:24.000000000
+0100
+++ new/zathura-pdf-poppler-0.3.2/meson.build 2023-12-08 18:42:12.000000000
+0100
@@ -1,7 +1,7 @@
project('zathura-pdf-poppler', 'c',
- version: '0.3.1',
- meson_version: '>=0.56',
- default_options: 'c_std=c11'
+ version: '0.3.2',
+ meson_version: '>=0.61',
+ default_options: ['c_std=c17', 'warning_level=3']
)
version = meson.project_version()
@@ -15,10 +15,10 @@
desktopdir = join_paths(datadir, 'applications')
# required dependencies
-zathura = dependency('zathura', version: '>=0.5.2', fallback: ['zathura',
'zathura_dependency'])
+zathura = dependency('zathura', version: '>=0.5.3', fallback: ['zathura',
'zathura_dependency'])
girara = dependency('girara-gtk3', fallback: ['girara', 'girara_dependency'])
glib = dependency('glib-2.0')
-poppler = dependency('poppler-glib', version: '>=0.18')
+poppler = dependency('poppler-glib', version: '>=21.12')
build_dependencies = [zathura, girara, glib, poppler]
@@ -43,12 +43,8 @@
# compile flags
flags = [
- '-Wall',
- '-Wextra',
- '-pedantic',
'-Werror=implicit-function-declaration',
'-Werror=vla',
- '-fvisibility=hidden'
]
flags = cc.get_supported_arguments(flags)
@@ -65,6 +61,7 @@
'zathura-pdf-poppler/render.c',
'zathura-pdf-poppler/search.c',
'zathura-pdf-poppler/select.c',
+ 'zathura-pdf-poppler/signature.c',
'zathura-pdf-poppler/utils.c'
)
@@ -73,7 +70,8 @@
dependencies: build_dependencies,
c_args: defines + flags,
install: true,
- install_dir: plugindir
+ install_dir: plugindir,
+ gnu_symbol_visibility: 'hidden'
)
subdir('data')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/index.c
new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/index.c
--- old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/index.c 2022-11-27
16:49:24.000000000 +0100
+++ new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/index.c 2023-12-08
18:42:12.000000000 +0100
@@ -48,19 +48,16 @@
continue;
}
- gchar* markup = g_markup_escape_text(action->any.title, -1);
- zathura_index_element_t* index_element = zathura_index_element_new(markup);
-
- g_free(markup);
-
+ zathura_index_element_t* index_element =
zathura_index_element_new(action->any.title);
if (index_element == NULL) {
poppler_action_free(action);
continue;
}
- zathura_rectangle_t rect = { 0, 0, 0, 0 };
- index_element->link = poppler_link_to_zathura_link(poppler_document,
action, rect);
+ zathura_rectangle_t rect = {0, 0, 0, 0};
+ index_element->link = poppler_link_to_zathura_link(poppler_document,
action, rect);
if (index_element->link == NULL) {
+ zathura_index_element_free(index_element);
poppler_action_free(action);
continue;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/plugin.c
new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/plugin.c
--- old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/plugin.c 2022-11-27
16:49:24.000000000 +0100
+++ new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/plugin.c 2023-12-08
18:42:12.000000000 +0100
@@ -23,7 +23,8 @@
.page_get_selection = pdf_page_get_selection,
.page_render_cairo = pdf_page_render_cairo,
.page_image_get_cairo = pdf_page_image_get_cairo,
- .page_get_label = pdf_page_get_label
+ .page_get_label = pdf_page_get_label,
+ .page_get_signatures = pdf_page_get_signatures
}),
ZATHURA_PLUGIN_MIMETYPES({
"application/pdf"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/plugin.h
new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/plugin.h
--- old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/plugin.h 2022-11-27
16:49:24.000000000 +0100
+++ new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/plugin.h 2023-12-08
18:42:12.000000000 +0100
@@ -202,4 +202,12 @@
GIRARA_HIDDEN zathura_error_t pdf_page_get_label(zathura_page_t* page,
void* data, char** label);
+/**
+ * Get signatures
+ *
+ * @param poppler_document Internal document representation
+ * @param cairo Cairo object
+ */
+GIRARA_HIDDEN girara_list_t* pdf_page_get_signatures(zathura_page_t* page,
void* data, zathura_error_t* error);
+
#endif // PDF_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/signature.c
new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/signature.c
--- old/zathura-pdf-poppler-0.3.1/zathura-pdf-poppler/signature.c
1970-01-01 01:00:00.000000000 +0100
+++ new/zathura-pdf-poppler-0.3.2/zathura-pdf-poppler/signature.c
2023-12-08 18:42:12.000000000 +0100
@@ -0,0 +1,123 @@
+/* SPDX-License-Identifier: Zlib */
+
+#include <cairo.h>
+#include <girara/log.h>
+
+#include "plugin.h"
+
+#define SIGNATURE_OVERLAY_OFFSET 3
+#define SIGNATURE_OVERLAY_ADJUST .5
+#define SIGNATURE_OVERLAY_OPACITY .9
+#define CAIRO_LINE_OFFSET_VERTICAL 13
+#define CAIRO_LINE_OFFSET_HORIZONTAL 5
+
+static void print_validation_result(PopplerSignatureInfo* sig_info) {
+ static const char* const cert_status_strings[] = {
+ "trusted", // POPPLER_CERTIFICATE_TRUSTED
+ "untrusted issuer", // POPPLER_CERTIFICATE_UNTRUSTED_ISSUER
+ "unknown issuer", // POPPLER_CERTIFICATE_UNKNOWN_ISSUER
+ "revoked", // POPPLER_CERTIFICATE_REVOKED
+ "expired", // POPPLER_CERTIFICATE_EXPIRED
+ "generic error", // POPPLER_CERTIFICATE_GENERIC_ERROR
+ "not verified" // POPPLER_CERTIFICATE_NOT_VERIFIED
+ };
+
+ static const char* const sig_status_strings[] = {
+ "valid", // POPPLER_SIGNATURE_VALID
+ "invalid", // POPPLER_SIGNATURE_INVALID
+ "digest mismatch", // POPPLER_SIGNATURE_DIGEST_MISMATCH
+ "decoding error", // POPPLER_SIGNATURE_DECODING_ERROR
+ "generic error", // POPPLER_SIGNATURE_GENERIC_ERROR
+ "not found", // POPPLER_SIGNATURE_NOT_FOUND
+ "not verified" // POPPLER_SIGNATURE_NOT_VERIFIED
+ };
+
+ PopplerSignatureStatus sig_status =
poppler_signature_info_get_signature_status(sig_info);
+ PopplerCertificateStatus cert_status =
poppler_signature_info_get_certificate_status(sig_info);
+
+ girara_debug("signature validation result: '%s'\ncertification validation:
'%s'",
+ sig_status_strings[sig_status],
cert_status_strings[cert_status]);
+}
+
+static void signature_info_free(void* data) {
+ zathura_signature_info_t* signature_info = data;
+ zathura_signature_info_free(signature_info);
+}
+
+girara_list_t* pdf_page_get_signatures(zathura_page_t* page, void* data,
zathura_error_t* error) {
+ if (page == NULL || data == NULL) {
+ if (error) {
+ *error = ZATHURA_ERROR_INVALID_ARGUMENTS;
+ }
+ return NULL;
+ }
+
+ girara_list_t* signatures = girara_list_new2(signature_info_free);
+
+ PopplerPage* poppler_page = data;
+ const double page_height = zathura_page_get_height(page);
+ GList* form_fields =
poppler_page_get_form_field_mapping(poppler_page);
+
+ for (GList* entry = form_fields; entry && entry->data; entry =
g_list_next(entry)) {
+ PopplerFormFieldMapping* mapping = (PopplerFormFieldMapping*)entry->data;
+ PopplerFormField* form_field = mapping->field;
+ if (poppler_form_field_get_field_type(form_field) !=
POPPLER_FORM_FIELD_SIGNATURE) {
+ continue;
+ }
+
+ zathura_signature_info_t* signature = zathura_signature_info_new();
+ signature->position.x1 = mapping->area.x1;
+ signature->position.x2 = mapping->area.x2;
+ signature->position.y1 = page_height - mapping->area.y2;
+ signature->position.y2 = page_height - mapping->area.y1;
+
+ // get signature info (Poppler appears to have issues with performing
revocation check, therefore disabled for now)
+ static const int flags =
POPPLER_SIGNATURE_VALIDATION_FLAG_VALIDATE_CERTIFICATE |
+
POPPLER_SIGNATURE_VALIDATION_FLAG_WITHOUT_OCSP_REVOCATION_CHECK |
+
POPPLER_SIGNATURE_VALIDATION_FLAG_USE_AIA_CERTIFICATE_FETCH;
+ PopplerSignatureInfo* sig_info =
poppler_form_field_signature_validate_sync(form_field, flags, NULL, NULL);
+ if (girara_get_log_level() == GIRARA_DEBUG) {
+ print_validation_result(sig_info);
+ }
+
+ switch (poppler_signature_info_get_signature_status(sig_info)) {
+ case POPPLER_SIGNATURE_VALID:
+ switch (poppler_signature_info_get_certificate_status(sig_info)) {
+ case POPPLER_CERTIFICATE_TRUSTED:
+ signature->signer =
g_strdup(poppler_signature_info_get_signer_name(sig_info));
+ signature->time =
g_date_time_ref(poppler_signature_info_get_local_signing_time(sig_info));
+ signature->state = ZATHURA_SIGNATURE_VALID;
+ break;
+ case POPPLER_CERTIFICATE_UNTRUSTED_ISSUER:
+ case POPPLER_CERTIFICATE_UNKNOWN_ISSUER:
+ signature->state = ZATHURA_SIGNATURE_CERTIFICATE_UNTRUSTED;
+ break;
+ case POPPLER_CERTIFICATE_REVOKED:
+ signature->state = ZATHURA_SIGNATURE_CERTIFICATE_REVOKED;
+ break;
+ case POPPLER_CERTIFICATE_EXPIRED:
+ signature->state = ZATHURA_SIGNATURE_CERTIFICATE_EXPIRED;
+ break;
+ default: // CERTIFICATE NOT VERIFIED or GENERIC ERROR
+ signature->state = ZATHURA_SIGNATURE_CERTIFICATE_INVALID;
+ break;
+ }
+
+ break;
+ case POPPLER_SIGNATURE_GENERIC_ERROR:
+ case POPPLER_SIGNATURE_NOT_FOUND:
+ case POPPLER_SIGNATURE_NOT_VERIFIED:
+ signature->state = ZATHURA_SIGNATURE_ERROR;
+ break;
+ default: // SIGNATURE INVALID or DIGEST MISMATCH or DECODING ERROR
+ signature->state = ZATHURA_SIGNATURE_INVALID;
+ break;
+ }
+
+ poppler_signature_info_free(sig_info);
+ girara_list_append(signatures, signature);
+ }
+
+ poppler_page_free_form_field_mapping(form_fields);
+ return signatures;
+}