diff options
author | Alexander Seiler | 2022-07-13 03:06:06 +0200 |
---|---|---|
committer | Alexander Seiler | 2022-07-13 03:06:06 +0200 |
commit | 0652869f031634580c80fab3f3aa8f42b27939de (patch) | |
tree | 3f6af8c911bd5cca96b22c2ba5e4e06539517008 | |
parent | 21bc43beac708cae56e3ba73e260c1108a258c7c (diff) | |
download | aur-0652869f031634580c80fab3f3aa8f42b27939de.tar.gz |
upgpkg: sioyek 1.4.0-1
upstream release
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | PKGBUILD | 12 | ||||
-rw-r--r-- | mupdf-1.20.patch | 123 |
3 files changed, 134 insertions, 11 deletions
@@ -1,7 +1,7 @@ pkgbase = sioyek pkgdesc = PDF viewer for research papers and technical books. - pkgver = 1.3.0 - pkgrel = 4 + pkgver = 1.4.0 + pkgrel = 1 url = https://github.com/ahrm/sioyek arch = x86_64 license = GPL3 @@ -15,7 +15,9 @@ pkgbase = sioyek depends = openjpeg2 depends = jbig2dec provides = sioyek - source = sioyek-1.3.0.tar.gz::https://github.com/ahrm/sioyek/archive/v1.3.0.tar.gz - sha256sums = 153876cecb75c32bed5469a86f24e7f14ea885711dacbac0072e91594d9f9235 + source = sioyek-1.4.0.tar.gz::https://github.com/ahrm/sioyek/archive/v1.4.0.tar.gz + source = mupdf-1.20.patch + sha256sums = 44d49aec28e49bb79c2d0fb7cefd26aecc53b60136bf02dfec9863ac586aacd0 + sha256sums = ab9fdffca70d43f1e6d2ba347c546430a79c51452178f05efb086589e247054b pkgname = sioyek @@ -1,23 +1,21 @@ # Maintainer: Alexander Seiler <seileralex@gmail.com> pkgname=sioyek -pkgver=1.3.0 -pkgrel=4 +pkgver=1.4.0 +pkgrel=1 pkgdesc="PDF viewer for research papers and technical books." arch=('x86_64') license=('GPL3') provides=('sioyek') url="https://github.com/ahrm/sioyek" depends=('qt5-base' 'qt5-3d' 'harfbuzz' 'gzip' 'libmupdf' 'zlib' 'gumbo-parser' 'openjpeg2' 'jbig2dec') -source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz") -sha256sums=('153876cecb75c32bed5469a86f24e7f14ea885711dacbac0072e91594d9f9235') +source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz" "mupdf-1.20.patch") +sha256sums=('44d49aec28e49bb79c2d0fb7cefd26aecc53b60136bf02dfec9863ac586aacd0' 'ab9fdffca70d43f1e6d2ba347c546430a79c51452178f05efb086589e247054b') prepare() { cd "$pkgname-$pkgver" + patch --forward --strip=1 --input="${srcdir}/mupdf-1.20.patch" sed -i 's/-lmupdf-third -lmupdf-threads -lharfbuzz/-lmupdf-third -lharfbuzz -lfreetype -lgumbo -ljbig2dec -lopenjp2 -ljpeg/' pdf_viewer_build_config.pro sed -i 's/\/\/#define LINUX_STANDARD_PATHS/#define LINUX_STANDARD_PATHS/' pdf_viewer/main.cpp - - # This has been fixed on the `master` branch, remove this for future releases: - sed -i '9i #include <cstring>' pdf_viewer/utils.cpp } build() { diff --git a/mupdf-1.20.patch b/mupdf-1.20.patch new file mode 100644 index 000000000000..975560d66e78 --- /dev/null +++ b/mupdf-1.20.patch @@ -0,0 +1,123 @@ +diff '--color=auto' --unified --recursive --text sioyek-1.4.0-original/pdf_viewer/document.cpp sioyek-1.4.0-patched/pdf_viewer/document.cpp +--- sioyek-1.4.0-original/pdf_viewer/document.cpp 2022-07-05 18:02:51.000000000 +0200 ++++ sioyek-1.4.0-patched/pdf_viewer/document.cpp 2022-07-10 04:31:02.640253312 +0200 +@@ -542,14 +542,14 @@ + current_node->title = utf8_decode(root->title); + current_node->x = root->x; + current_node->y = root->y; +- if (root->page == -1) { ++ if (root->page.page == -1) { + float xp, yp; + fz_location loc = fz_resolve_link(context, doc, root->uri, &xp, &yp); + int chapter_page = accum_chapter_pages[loc.chapter]; + current_node->page = chapter_page + loc.page; + } + else { +- current_node->page = root->page; ++ current_node->page = root->page.page; + } + convert_toc_tree(root->down, current_node->children); + +diff '--color=auto' --unified --recursive --text sioyek-1.4.0-original/pdf_viewer/document_view.cpp sioyek-1.4.0-patched/pdf_viewer/document_view.cpp +--- sioyek-1.4.0-original/pdf_viewer/document_view.cpp 2022-07-05 18:02:51.000000000 +0200 ++++ sioyek-1.4.0-patched/pdf_viewer/document_view.cpp 2022-07-10 04:31:53.839132616 +0200 +@@ -1018,7 +1018,7 @@ + + 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(pdf_link.value().uri); ++ auto parsed_uri = parse_uri(mupdf_context, pdf_link.value().uri); + DocumentPos res; + res.page = parsed_uri.page-1; + res.x = parsed_uri.x; +diff '--color=auto' --unified --recursive --text sioyek-1.4.0-original/pdf_viewer/main_widget.cpp sioyek-1.4.0-patched/pdf_viewer/main_widget.cpp +--- sioyek-1.4.0-original/pdf_viewer/main_widget.cpp 2022-07-05 18:02:51.000000000 +0200 ++++ sioyek-1.4.0-patched/pdf_viewer/main_widget.cpp 2022-07-10 04:33:51.237849831 +0200 +@@ -136,7 +136,7 @@ + + void MainWidget::set_overview_link(PdfLink link) { + +- auto [page, offset_x, offset_y] = parse_uri(link.uri); ++ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri); + if (page >= 1) { + set_overview_position(page - 1, offset_y); + } +@@ -2661,7 +2661,7 @@ + } + if ((link_index >= 0) && (link_index < static_cast<int>(visible_page_links.size()))) { + auto [selected_page, selected_link] = visible_page_links[link_index]; +- auto [page, offset_x, offset_y] = parse_uri(selected_link->uri); ++ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, selected_link->uri); + long_jump_to_destination(page-1, offset_y); + } + } +@@ -3239,7 +3239,7 @@ + return; + } + +- auto [page, offset_x, offset_y] = parse_uri(link.uri); ++ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri); + + // convert one indexed page to zero indexed page + page--; +diff '--color=auto' --unified --recursive --text sioyek-1.4.0-original/pdf_viewer/pdf_renderer.cpp sioyek-1.4.0-patched/pdf_viewer/pdf_renderer.cpp +--- sioyek-1.4.0-original/pdf_viewer/pdf_renderer.cpp 2022-07-05 18:02:51.000000000 +0200 ++++ sioyek-1.4.0-patched/pdf_viewer/pdf_renderer.cpp 2022-07-10 04:34:52.438699545 +0200 +@@ -315,7 +315,7 @@ + + const int max_hits_per_page = 20; + fz_quad hitboxes[max_hits_per_page]; +- int num_results = fz_search_page(mupdf_context, page, utf8_encode(req.search_term).c_str(), hitboxes, max_hits_per_page); ++ int num_results = fz_search_page(mupdf_context, page, utf8_encode(req.search_term).c_str(), nullptr, hitboxes, max_hits_per_page); + + if (num_results > 0) { + req.search_results_mutex->lock(); +diff '--color=auto' --unified --recursive --text sioyek-1.4.0-original/pdf_viewer/utils.cpp sioyek-1.4.0-patched/pdf_viewer/utils.cpp +--- sioyek-1.4.0-original/pdf_viewer/utils.cpp 2022-07-05 18:02:51.000000000 +0200 ++++ sioyek-1.4.0-patched/pdf_viewer/utils.cpp 2022-07-10 04:36:36.587440044 +0200 +@@ -24,6 +24,8 @@ + #include <qnetworkreply.h> + #include <qscreen.h> + ++#include <mupdf/pdf.h> ++ + extern std::wstring LIBGEN_ADDRESS; + extern std::wstring GOOGLE_SCHOLAR_ADDRESS; + extern std::ofstream LOG_FILE; +@@ -106,21 +108,9 @@ + return range_intersects(rect1.x0, rect1.x1, rect2.x0, rect2.x1) && range_intersects(rect1.y0, rect1.y1, rect2.y0, rect2.y1); + } + +-ParsedUri parse_uri(std::string uri) { +- int comma_index = -1; +- +- uri = uri.substr(1, uri.size() - 1); +- comma_index = static_cast<int>(uri.find(",")); +- int page = atoi(uri.substr(0, comma_index ).c_str()); +- +- uri = uri.substr(comma_index+1, uri.size() - comma_index-1); +- comma_index = static_cast<int>(uri.find(",")); +- float offset_x = atof(uri.substr(0, comma_index ).c_str()); +- +- uri = uri.substr(comma_index+1, uri.size() - comma_index-1); +- float offset_y = atof(uri.c_str()); +- +- return { page, offset_x, offset_y }; ++ParsedUri parse_uri(fz_context* mupdf_context, std::string uri) { ++ fz_link_dest dest = pdf_parse_link_uri(mupdf_context, uri.c_str()); ++ return { dest.loc.page + 1, dest.x, dest.y }; + } + + char get_symbol(int key, bool is_shift_pressed, const std::vector<char>& special_symbols) { +diff '--color=auto' --unified --recursive --text sioyek-1.4.0-original/pdf_viewer/utils.h sioyek-1.4.0-patched/pdf_viewer/utils.h +--- sioyek-1.4.0-original/pdf_viewer/utils.h 2022-07-05 18:02:51.000000000 +0200 ++++ sioyek-1.4.0-patched/pdf_viewer/utils.h 2022-07-10 04:37:43.601270950 +0200 +@@ -33,7 +33,7 @@ + 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(std::string uri); ++ParsedUri parse_uri(fz_context* mupdf_context, std::string uri); + char get_symbol(int key, bool is_shift_pressed, const std::vector<char>&special_symbols); + + template<typename T> |