Name: harbour-calibreweb Summary: Client OPDS per Calibre Web Version: 0.2.0 Release: 1 Group: Qt/Qt License: MIT URL: https://github.com/kaneda/harbour-calibreweb Source0: %{name}-%{version}.tar.gz Source1: %{name}.desktop Requires: sailfishsilica-qt5 >= 0.10.9 BuildRequires: pkgconfig(sailfishapp) >= 1.0.2 BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Qml) BuildRequires: pkgconfig(Qt5Quick) BuildRequires: desktop-file-utils %description Client per navigare e scaricare libri da un'istanza Calibre Web (o dal Content Server di Calibre) tramite il protocollo OPDS. Supporta autenticazione di base, ricerca, copertine, download in tutti i formati disponibili e lettura EPUB integrata con reflow del testo, margini configurabili e posizione salvata in locale. %changelog * Wed Aug 19 2026 Carlo Baratto - 0.2.0-1 - Selettore lingua nelle impostazioni (System/English/Italiano, applicata al riavvio; QTranslator in main.cpp, pattern quill). Catalogo .qm nel data dir dell'app (/usr/share/harbour-calibreweb/translations, il validatore RPM rifiuta /usr/share/translations) - Fix 'Close book': pop fino alla prima pagina (popTo(null) non affidabile) - Localizzazione: lingua di default inglese (qsTr ovunque), catalogo italiano harbour-calibreweb_it.ts/.qm installato in /usr/share/translations - Fix configurazione persa: file di configurazione unico e fisso (/home/nemo/.config/harbour/calibreweb.conf) indipendente dall'utente che avvia l'app (launcher nemo / debug SSH defaultuser), con migrazione automatica dei valori gia' salvati - Lettore EPUB nativo (WebView): capitoli, reflow A-/A+, margini configurabili, posizione salvata in locale (QSettings) e ripristinata all'apertura - Parser EPUB in C++ (ZIP minimale + container/OPF/spine, TOC EPUB2+3) - Rimossa la sync server dell'avanzamento (route web con login di sessione): resta solo il segno locale - URL risolti RFC 3986 (sottopath /calibre non piu raddoppiato), copertine validate prima del cache, pagine corrette per Silica 5.1 - Icone in struttura standard hicolor %prep %setup -q -n %{name}-%{version} %build %qmake5 make %{?_smp_mflags} # Translation catalogue: generated explicitly with lrelease (the sailfishapp_i18n # template does not produce the .qm reliably on the 5.1 kit). The .ts lives in # the source tree; sfdk uses the sources live (shadow build), so locate it # across the possible layouts. if [ -f %{_builddir}/../%{name}-%{version}/translations/%{name}_it.ts ]; then TS=%{_builddir}/../%{name}-%{version}/translations/%{name}_it.ts elif [ -f %{_builddir}/%{name}-%{version}/translations/%{name}_it.ts ]; then TS=%{_builddir}/%{name}-%{version}/translations/%{name}_it.ts elif [ -f %{_builddir}/translations/%{name}_it.ts ]; then TS=%{_builddir}/translations/%{name}_it.ts else echo "ERROR: %{name}_it.ts not found" >&2 exit 1 fi lrelease "$TS" -qm %{_builddir}/%{name}_it.qm %install make install INSTALL_ROOT=%{buildroot} mkdir -p %{buildroot}%{_datadir}/applications install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/applications/%{name}.desktop desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop || true # Italian translation: installed in the app data dir (the RPM validator # rejects /usr/share/translations); main.cpp loads it from there. mkdir -p %{buildroot}%{_datadir}/%{name}/translations install -m 0644 %{_builddir}/%{name}_it.qm %{buildroot}%{_datadir}/%{name}/translations/ %files %defattr(-,root,root,-) %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/86x86/apps/%{name}.png %{_datadir}/icons/hicolor/108x108/apps/%{name}.png %{_datadir}/%{name}/qml %{_datadir}/%{name}/translations/%{name}*.qm