LINUX.ORG.RU

Форк CoolReader: crengine-ng, crqt-ng, crwx-ng

 , , ,


3

3

За основу взят срез репозитория CoolReader от 2021-09-16.

Основные изменения в crengine-ng по сравнению с CoolReader 3.2.59 (некоторые из изменений отправлены в upstream)

  • В репозитории оставлены только исходники библиотеки crengine, утилиты и используемые файлы данных.
  • Восстановлена возможность сборки под систему MacOS.
  • Восстановлена работа шрифтов Win32, может понадобиться, только, если есть потребность собрать библиотеку под Windows без использования FreeType (не рекомендуется).
  • Реализовано модульное тестирование с помощью библиотеки GoogleTest. На данный момент, это по большей части базовое регрессионное тестирование, а не набор полноценных юнит-тестов, охватывающих весь функционал библиотеки.
  • Оптимизация и исправление мелких ошибок работы с zip-архивами.
  • Рефакторинг некоторой части исходного кода для более удобной работы, в основном это разбиение огромных исходных файлов на несколько по принципу один класс - два файла (.h и .cpp).
  • Изменён формат словарей переносов: добавлены свойства title (язык словаря переносов), langtag (тег языка в ISO639), lefthyphenmin (минимальное количество символов слева в слове до переноса), righthyphenmin (минимальное количество символов в слове справа после переноса). Это избавляет от необходимости хардкодить эти данные в исходниках библиотеки.
  • Исключены словари переносов неизвестного происхождения, оставлены, добавлены новые совместимые с лицензией GPL.
  • Исправлен рендеринг колонтитула на странице текста.
  • Добавлено вычисление SHA256 для содержимого документа по аналогии с вычислением CRC32. Это может использоваться в фронтед-клиентах для поиска документов.
  • Исправлены множество ошибок, в том числе приводящих к SEGFAULTS, утечкам памяти.
  • Использование утилиты clang-format для форматирования исходников.

Основные изменения в crqt-ng по сравнению с CoolReader 3.2.59 (некоторые из изменений отправлены в upstream)

  • В репозитории оставлены только исходники клиента на Qt и некоторые файлы данных.
  • Поддержка HiDPI экранов.
  • Название открытого документа отображается в заголовке окна программы.
  • Восстановлена возможность сборки под систему MacOS.
  • Добавлена возможность сборки программы используя Qt 6.
  • В диалоге настроек превью отображается в отдельном окне.
  • Использование утилиты clang-format для форматирования исходников.

Основные изменения в crwx-ng по сравнению с CoolReader 3.2.59

  • В репозитории оставлены только исходники клиента на wxWidgets и некоторые файлы данных.

К сожалению Buggins больше не уделяет внимания проекту CoolReader и не делает новые релизы, несмотря на появление нового кода, это одна из причин появления этого форка.

Ссылки:

Репозиторий crengine-ng: https://gitlab.com/coolreader-ng/crengine-ng

Репозиторий crqt-ng: https://gitlab.com/coolreader-ng/crqt-ng

Репозиторий crwx-ng: https://gitlab.com/coolreader-ng/crwx-ng

Архивы исходников crqt-ng и бинарные сборки под Win32 и MacOS: https://gitlab.com/coolreader-ng/crqt-ng/-/releases

Новость отражает состояние проекта на 19.12.2022, есть более свежая информация.

>>> Ссылка на репозитории



Проверено: Dimez ()

Ответ на: комментарий от DrBrown

позволяет при сборке генерировать пакеты для Linux (DEB, RPM) и инсталляторы для Windows и Mac.

Плюс архивы со встроенным установщиком, при желании можно любой Linux пакет прикрутить, я так например прописал инструкцию для PKGBUILD из Arch, а Qt Installer Framework вообще по идее везде должен работать, где поддерживается Qt.

Dr64h ()

Помнится, некто EXL делал форк CoolReader’а, но последний релиз там был в 2018 году. Этот форк к его наработкам какое-то отношение имеет?

IRASoldier ()

К сожалению Buggins больше не уделяет внимания проекту CoolReader и не делает новые релизы несмотря на появление нового кода, это одна из причин появления этого форка.

Нужное дело. Ибо fbreader тоже давно не обновляется.

Programmist11180 ★★★ ()
Ответ на: комментарий от IRASoldier

Некоторые фиксы он передал в апстрим, они в этом форке есть. Специально из его форка в этот ничего не переносилось.

virx ()

К сожалению Buggins больше не уделяет внимания проекту CoolReader и не делает новые релизы несмотря на появление нового кода, это одна из причин появления этого форка

Вся суть жпл-кода. Без денег уходит мотивация... Пичалька :(

xwicked ★★★ ()
Ответ на: комментарий от DrBrown

А зачем обновлять fbreader? Обновление ради обновления?

добавления-удаления своих OPDS библиотек в линукс версии fbreader не хватает

s-warus ()
Последнее исправление: s-warus (всего исправлений: 1)
Ответ на: комментарий от DrBrown

Может автор просто устал от этого проекта.

Я як OpenSource-разработчик отвественно заявляю, что от денег устать невозможно, значит не было выхлопа с проекта.

xwicked ★★★ ()
Ответ на: комментарий от xwicked

Да, в этом вся суть жпл-кода: один разработчик забросил, другие форкнули и дальше развивают. Где здесь пичалька? Наоборот радостно.

CrX ()
Ответ на: комментарий от CrX

Где здесь пичалька?

Пичально, что автор без денег был. Я тоже свои проекты бросил, потому что нужно было на что-то жить и сейчас ремонтом компов занялся.

xwicked ★★★ ()
Ответ на: комментарий от xwicked

Пичально, что автор без денег был.

Дело может быть не в деньгах. Может у автора сменились интересы. Понятно, что с cr3 денег он не получал, но откуда ты знаешь, что он был без денег? Может он на чём-то другом зарабатывает более чем прилично.

CrX ()
Ответ на: комментарий от CrX

Может он на чём-то другом зарабатывает более чем прилично.

Я про это и говорю, что OpenSource - это рабский неблагодарный труд.

xwicked ★★★ ()
Ответ на: комментарий от xwicked

Неблагодарный — возможно. Но уж точно не рабский. Это труд в своё удовольствие и без обязательств и лишней ответственности.

CrX ()
Ответ на: комментарий от GREAT-DNG

Нет, перенесли из форума, где её никто не видел.

Dimez ★★★★★ ()
Ответ на: комментарий от xwicked

Я тоже свои проекты бросил, потому что нужно было на что-то жить и сейчас ремонтом компов занялся.

Очень хорошо - чем меньше в сети говнокода тем лучше.

zabbal ★★★★★ ()
Ответ на: комментарий от zabbal

Очень хорошо - чем меньше в сети говнокода тем лучше.

Завидуйте молча. 😁

xwicked ★★★ ()
Ответ на: комментарий от e1nste1n

crengine-ng: Исправлена ошибка подстановки шрифта из настроек универсальных семейств шрифтов: при попытке получить шрифт с курсивным (или жирным) начертанием, когда такого варианта шрифта нет, вместо использования синтетического курсива будет выбран шрифт из универсального семейства шрифтов, если оно имеет курсивный (или жирный) вариант:

https://gitlab.com/coolreader-ng/crengine-ng/-/releases/0.9.6

crqt-ng: Добавлена настройка универсальных семейств шрифтов:

https://gitlab.com/coolreader-ng/crqt-ng/-/releases/1.0.5

Вот теперь собирайте :)

virx ()
Последнее исправление: virx (всего исправлений: 2)

crengine-ng

Это победа! Как вы яхту назовете...

slackwarrior ★★★★★ ()

набросал по-быстрому PKGBUILD, дает сбой:

==> Запускается package()...
[  1%] Built target cre_chmlib
[  1%] Built target cre_qimagescale
[  4%] Built target cre_cmark-gfm-extensions
[ 17%] Built target cre_cmark-gfm
[ 38%] Built target cre_antiword
[100%] Built target crengine-ng
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/include/crengine-ng
CMake Error at crengine/cmake_install.cmake:46 (file):
  file INSTALL cannot make directory "/usr/local/include/crengine-ng":
  Permission denied.
Call Stack (most recent call first):
  cmake_install.cmake:67 (include)


make: *** [Makefile:100: install] Error 1

PKGBUILD прилагаю

pkgname=crengine-ng
pkgver=0.9.6
pkgrel=1
pkgdesc="cr"
arch=('x86_64')
url="https://gitlab.com/coolreader-ng/crengine-ng"
license=('custom')
depends=('qt5-tools' 'qt5-base') 
source=("git+https://gitlab.com/coolreader-ng/crengine-ng")
md5sums=("SKIP")

build() {
	cd "$srcdir/$pkgname"
	mkdir ../crengine-ng-build
	cd ../crengine-ng-build

	cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DCRE_BUILD_SHARED=ON -DCRE_BUILD_STATIC=OFF ../crengine-ng
	make -j10 VERBOSE=1

	}

package() {
	cd "$srcdir/$pkgname"
	cd ../crengine-ng-build
	make INSTALL_ROOT="$pkgdir" install
	}`

полагаю, надо изменить ключ в -DCMAKE_INSTALL_PREFIX=/usr/local, если да, то на какой ?

agafron ()
Ответ на: комментарий от agafron

file INSTALL cannot make directory «/usr/local/include/crengine-ng»

Dimez ★★★★★ ()
Ответ на: комментарий от Programmist11180

Ибо fbreader тоже давно не обновляется.

На самом деле он обновился совсем недавно. Но там какие-то совершенные мелочи уровня инкремента версии.

Im_not_a_robot ★★★★★ ()
Ответ на: комментарий от virx

Пара вопросов:

  1. По сборке: в Арче не рекомендуют собирать с -O3 (https://wiki.archlinux.org/title/CMake_package_guidelines) «unless…upstream explicitly tells or implies that -O3 is needed». При сборке с BUILD_TYPE=Release дефолтный флаг cmake -O3 перебивает дефолтный арчевский -O2. Какие тут ваши рекомендации?
  2. По шрифтам: указанные в epub.css для pre, code при наличии в системе перебивают выбранный monospace, теперь же там (и в остальных css файлах) можно просто monospace оставить?
e1nste1n ★★★★★ ()
Ответ на: комментарий от e1nste1n
  1. У меня нет рекомендаций, не знаю, никогда не задумывался… В Gentoo, кстати, каким-то образом заменяется на «-O2», не знаю как.

  2. Я не знаю хорошо ли это, так называемые универсальные семейства шрифтов, типа, «monospace» и «serif» - насколько я понял, механизм резервных шрифтов, которые задействуются лишь в том случае, когда другие указанные шрифты отсутствуют. Как я понял, вы хотите поменять шрифт для элементов pre в epub. Удалять для этого в epub.css все шрифты для элемента pre, оставить только monospace - как-то это чересчур. В настройках программы можно указать шрифт для пред-форматированных элементов: настройки -> таблицы стилей -> пред-форматированный текст -> начертание шрифта. Правда, есть маленький баг, чтобы это работало в epub надо пропатчить epub.css:

--- a/crengine/data/css/epub.css
+++ b/crengine/data/css/epub.css
@@ -168,6 +168,10 @@ pre, xmp {
     /* background-color: #BFBFBF; */
 }
 
+pre {
+    $pre.all;
+}
+
 /* Inline elements (all unknown elements default now to display: inline) */
 code, kbd, samp, tt     { font-family: "Droid Sans Mono", "Liberation Mono", "DeJaVu Sans Mono", monospace; }
 sup                     { font-size: 70%; vertical-align: super; }

Но это я поправлю.

virx ()
Последнее исправление: virx (всего исправлений: 1)
Ответ на: комментарий от virx

Почему чересчур? Ради интереса я удалил из файла вообще все правила font-family и в результате получил более корректное отображение (выбранным monospace шрифтом), чем с приведённым вами патчем, который 1) не учитывает элементы code, kbd, samp 2) рендерит pre шрифтом Courier New, который в настройках вообще нигде не указан.

e1nste1n ★★★★★ ()
Ответ на: комментарий от e1nste1n

рендерит pre шрифтом Courier New, который в настройках вообще нигде не указан.

После выбора шрифта для пред-форматированного текста в настройках стилей такого не будет.

virx ()
Ответ на: комментарий от e1nste1n

Да, откуда Courier New берется не понятно.

Попробуйте добавить в epub.css вместо предыдущего патча:

pre, code, kbd, samp, tt { $pre.all; }

Скорее всего в настройках стилей так же неправильно работает выбор шрифта при выборе вместо шрифта семейства (‘[моноширинный шрифт]’ и другие в квадратных скобках). Если же выбрать конкретный шрифт, например, ‘Source Code Pro’, то секция pre рендерится выбранным шрифтом.

Не знаю как скриншоты выложить, но вроде и на словах подробно описал в предыдущем комментарии как настроить.

virx ()
Ответ на: комментарий от virx

Я думал теперь, с возможностью настройки дефолтных шрифтов, те, что в квадратных скобках, будут ссылаться на выбранные. Нельзя ли так и сделать?

e1nste1n ★★★★★ ()
Ответ на: комментарий от e1nste1n

Ну, вообще, да, логично. Надо будет исправить. Откуда взялся «Courier New» - зашито в коде, будет убрано.

virx ()
Ответ на: комментарий от e1nste1n

Если есть желание можете обновить исходники из репозитория (ветка main). crengine-ng и crqt-ng.

  1. Внесены изменения в большинство файлов css, чтобы можно было изменять настройки стиля предформатированного текста в настройках программы crqt-ng (настройки -> таблицы стилей -> пред-форматированный текст -> начертание шрифта.)
  2. настройки стилей по умолчанию: в исходниках удалено явное упоминание конкретных шрифтов, например, «Courier New».
  3. Так как настройки стиля «пред-форматированный текст» по умолчанию изменились, то нужно заново настроить этот стиль в настройках программы.
  4. При выборе начертания шрифта «[моноширинный шрифт]» в настройках стилей, будет использоваться только тот шрифт, который указан в настройках универсального семейства шрифтов «моноширинный»; при выборе же какого-либо определённого шрифта, он и будет использоваться; при выборе прочерка («-») - будет использоваться стиль шрифта описанный в предустановленных css (epub.css, htm.css и т.д.).
virx ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.