summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2025-07-15 16:57:41 +0200
committerEkaitz Zarraga <ekaitz@elenq.tech>2025-07-15 17:09:57 +0200
commit8737b5332ed57ec056e70f3f7f1d88e4012101cd (patch)
treedf916697ff608314c52bfe4eae591a85d5fe62e9
parent95396f7d676adb966d7a05e83adef134753bdeab (diff)
gnu: sioyek: Use development branch.
Sioyek's main branch is too old and requires a mupdf that is more than obsolete. Move to the development branch until they release 3.0.0. * gnu/packages/pdf.scm (sioyek): Move to development version. [inputs]: Add qtdeclarative, qtsvg, qtspeech. Replace qtbase-5, qtwayland-5 and qt3d-5 by qtbase, qtwayland and qt3d. * gnu/local.mk (sioyek-fix-build.patch): Remove. * gnu/packages/patches/sioyek-fix-build.patch: Remove. Change-Id: I2d5d88a6466079f68ed70a83fb2291e7ae62f893
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/sioyek-fix-build.patch82
-rw-r--r--gnu/packages/pdf.scm120
3 files changed, 61 insertions, 142 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 74be04adfe..74ff7cae58 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2071,7 +2071,6 @@ dist_patch_DATA = \
%D%/packages/patches/sdl-pango-header-guard.patch \
%D%/packages/patches/sdl-pango-matrix_declarations.patch \
%D%/packages/patches/sdl-pango-sans-serif.patch \
- %D%/packages/patches/sioyek-fix-build.patch \
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/strace-readlink-tests.patch \
diff --git a/gnu/packages/patches/sioyek-fix-build.patch b/gnu/packages/patches/sioyek-fix-build.patch
deleted file mode 100644
index 521b361f2a..0000000000
--- a/gnu/packages/patches/sioyek-fix-build.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-Patch fetched from https://git.alpinelinux.org/aports/tree/community/sioyek/mupdf-0.23.0.patch
-
-From 86e913eccf19b97a16f25d9b6cdf0f50232f1226 Mon Sep 17 00:00:00 2001
-From: ptrcnull <git@ptrcnull.me>
-Date: Fri, 25 Aug 2023 22:44:26 +0200
-Subject: community/sioyek: fix build with mupdf-0.23.0
-
----
-
-diff --git a/pdf_viewer/document_view.cpp b/pdf_viewer/document_view.cpp
-index f48d05e..0bc3855 100644
---- a/pdf_viewer/document_view.cpp
-+++ b/pdf_viewer/document_view.cpp
-@@ -1121,7 +1121,7 @@ std::vector<DocumentPos> DocumentView::find_line_definitions() {
-
- std::optional<PdfLink> pdf_link = current_document->get_link_in_page_rect(get_center_page_number(), line_rects[line_index]);
- if (pdf_link.has_value()) {
-- auto parsed_uri = parse_uri(mupdf_context, pdf_link.value().uri);
-+ auto parsed_uri = parse_uri(mupdf_context, current_document->doc, pdf_link.value().uri);
- result.push_back({ parsed_uri.page - 1, parsed_uri.x, parsed_uri.y });
- return result;
- }
-diff --git a/pdf_viewer/main_widget.cpp b/pdf_viewer/main_widget.cpp
-index 19b568b..335a93f 100644
---- a/pdf_viewer/main_widget.cpp
-+++ b/pdf_viewer/main_widget.cpp
-@@ -170,7 +170,7 @@ void MainWidget::set_overview_position(int page, float offset) {
-
- void MainWidget::set_overview_link(PdfLink link) {
-
-- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
-+ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
- if (page >= 1) {
- set_overview_position(page - 1, offset_y);
- }
-@@ -3178,7 +3178,7 @@ void MainWidget::handle_pending_text_command(std::wstring text) {
- open_web_url(utf8_decode(selected_link->uri));
- }
- else{
-- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, selected_link->uri);
-+ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, selected_link->uri);
- long_jump_to_destination(page-1, offset_y);
- }
- }
-@@ -3863,7 +3863,7 @@ void MainWidget::handle_link_click(const PdfLink& link) {
- return;
- }
-
-- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
-+ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
-
- // convert one indexed page to zero indexed page
- page--;
-diff --git a/pdf_viewer/utils.cpp b/pdf_viewer/utils.cpp
-index 22d4265..3150e66 100644
---- a/pdf_viewer/utils.cpp
-+++ b/pdf_viewer/utils.cpp
-@@ -116,8 +116,9 @@ bool rects_intersect(fz_rect rect1, fz_rect rect2) {
- return range_intersects(rect1.x0, rect1.x1, rect2.x0, rect2.x1) && range_intersects(rect1.y0, rect1.y1, rect2.y0, rect2.y1);
- }
-
--ParsedUri parse_uri(fz_context* mupdf_context, std::string uri) {
-- fz_link_dest dest = pdf_parse_link_uri(mupdf_context, uri.c_str());
-+ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri) {
-+ pdf_document* doc = pdf_document_from_fz_document(mupdf_context, fz_doc);
-+ fz_link_dest dest = pdf_resolve_link_dest(mupdf_context, doc, uri.c_str());
- return { dest.loc.page + 1, dest.x, dest.y };
- }
-
-diff --git a/pdf_viewer/utils.h b/pdf_viewer/utils.h
-index 2a12211..643b030 100644
---- a/pdf_viewer/utils.h
-+++ b/pdf_viewer/utils.h
-@@ -55,7 +55,7 @@ void get_flat_toc(const std::vector<TocNode*>& roots, std::vector<std::wstring>&
- int mod(int a, int b);
- bool range_intersects(float range1_start, float range1_end, float range2_start, float range2_end);
- bool rects_intersect(fz_rect rect1, fz_rect rect2);
--ParsedUri parse_uri(fz_context* mupdf_context, std::string uri);
-+ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri);
- char get_symbol(int key, bool is_shift_pressed, const std::vector<char>&special_symbols);
-
- template<typename T>
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 18c9f1bf52..fa3d40b7ae 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1835,65 +1835,67 @@ Keywords: html2pdf, htmltopdf")
(license license:bsd-3)))
(define-public sioyek
- (package
- (name "sioyek")
- (version "2.0.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/ahrm/sioyek")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1vmmp2s032ygh1byz77pg9aljmp8hx745fr7mmz11831f96mlmhq"))
- (modules '((guix build utils)))
- ;; libmupdf-third.so no longer available since mupdf 1.18.0.
- (snippet '(substitute* "pdf_viewer_build_config.pro"
- (("-lmupdf-third") "")))
- ;; XXX: Fix build with mupdf-0.23.0+.
- ;; See also: https://github.com/ahrm/sioyek/issues/804
- (patches (search-patches "sioyek-fix-build.patch"))))
- (build-system qt-build-system)
- (arguments
- (list
- #:configure-flags
- #~(list (string-append "PREFIX=" #$output))
- #:test-target "check"
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch-paths
- (lambda _
- (substitute* "pdf_viewer/main.cpp"
- (("/usr/share")
- (string-append #$output "/share"))
- (("/etc")
- (string-append #$output "/etc")))))
- (replace 'configure
- (lambda* (#:key configure-flags #:allow-other-keys)
- (apply invoke "qmake" configure-flags)))
- (add-after 'install 'instal-man-page
- (lambda _
- (install-file "resources/sioyek.1"
- (string-append #$output "/share/man/man1")))))))
- (inputs
- (list freetype
- gumbo-parser
- harfbuzz
- jbig2dec
- libjpeg-turbo
- mujs
- mupdf
- openjpeg
- qt3d-5
- qtbase-5
- qtwayland-5
- zlib))
- (home-page "https://sioyek.info/")
- (synopsis "PDF viewer with a focus on technical books and research papers")
- (description
- "Sioyek is a PDF viewer with a focus on textbooks and research papers.")
- (license license:gpl3+)))
+ (let ((commit "8d173d993738d78559da035cc051f2eb40df41e6")
+ (revision "1"))
+ (package
+ (name "sioyek")
+ (version (git-version "2.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ahrm/sioyek")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "10d08ajcm5ckvrj5xkgi0dj9ibndi961v2yacw7a8mxkdqki6ck6"))
+ (modules '((guix build utils)))
+ ;; libmupdf-third.so no longer available since mupdf 1.18.0.
+ (snippet '(substitute* "pdf_viewer_build_config.pro"
+ (("-lmupdf-third") "")))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:test-target "check"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda _
+ (substitute* "pdf_viewer/main.cpp"
+ (("/usr/share")
+ (string-append #$output "/share"))
+ (("/etc")
+ (string-append #$output "/etc")))))
+ (replace 'configure
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ (apply invoke "qmake" configure-flags)))
+ (add-after 'install 'instal-man-page
+ (lambda _
+ (install-file "resources/sioyek.1"
+ (string-append #$output "/share/man/man1")))))))
+ (inputs
+ (list freetype
+ gumbo-parser
+ harfbuzz
+ jbig2dec
+ libjpeg-turbo
+ mujs
+ mupdf
+ openjpeg
+ qtbase
+ qtdeclarative
+ qtsvg
+ qt3d
+ qtspeech
+ qtwayland
+ zlib))
+ (home-page "https://sioyek.info/")
+ (synopsis "PDF viewer with a focus on technical books and research papers")
+ (description
+ "Sioyek is a PDF viewer with a focus on textbooks and research papers.")
+ (license license:gpl3+))))
(define-public pdftk
(package