Files
harbour-calibreweb/rpm/harbour-calibreweb.spec
T

95 lines
4.0 KiB
RPMSpec

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 <carlo@carlobaratto.it> - 0.2.0-1
- Fix crash 'Close book': pop(null) differito con Timer (distruggere la pagina
dall'handler del suo MenuItem crashava)
- Config condivisa nemo/defaultuser: permessi aperti su /home/nemo/.config/harbour
e sul file a ogni scrittura (il launcher gira come nemo, il debug SSH come
defaultuser: prima le impostazioni salvate da un lato sparivano dall'altro)
- 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)
- Localizzazione: lingua di default inglese (qsTr ovunque), catalogo
italiano harbour-calibreweb_it.ts/.qm nel data dir dell'app
- 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