From fcfa801043442c83cea95bb8ad84369ecf19860e Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Jul 21 2019 21:32:49 +0000 Subject: Add patch for kindle-s. Fixes bug #1731734 --- diff --git a/calibre-3.36.0-fynsc-fix.patch b/calibre-3.36.0-fynsc-fix.patch new file mode 100644 index 0000000..39b81eb --- /dev/null +++ b/calibre-3.36.0-fynsc-fix.patch @@ -0,0 +1,24 @@ +--- a/src/calibre/__init__.py 2019-07-21 13:24:51.302383981 +0200 ++++ b/src/calibre/__init__.py 2019-07-21 13:03:23.170204400 +0200 +@@ -726,3 +660,21 @@ + def fsync(fileobj): + fileobj.flush() + os.fsync(fileobj.fileno()) ++ if islinux and getattr(fileobj, 'name', None): ++ # On Linux kernels after 5.1.9 and 4.19.50 using fsync without any ++ # following activity causes Kindles to eject. Instead of fixing this in ++ # the obvious way, which is to have the kernel send some harmless ++ # filesystem activity after the FSYNC, the kernel developers seem to ++ # think the correct solution is to disable FSYNC using a mount flag ++ # which users will have to turn on manually. So instead we create some ++ # harmless filesystem activity, and who cares about performance. ++ # See https://bugs.launchpad.net/calibre/+bug/1834641 ++ # and https://bugzilla.kernel.org/show_bug.cgi?id=203973 ++ # To check for the existence of the bug, simply run: ++ # python -c "p = '/run/media/kovid/Kindle/driveinfo.calibre'; f = open(p, 'r+b'); os.fsync(f.fileno());" ++ # this will cause the Kindle to disconnect. ++ try: ++ os.utime(fileobj.name, None) ++ except Exception: ++ import traceback ++ traceback.print_exc() diff --git a/calibre.spec b/calibre.spec index b20af24..41aee86 100644 --- a/calibre.spec +++ b/calibre.spec @@ -6,7 +6,7 @@ Name: calibre Version: 3.36.0 -Release: 7%{?dist} +Release: 8%{?dist} Summary: E-book converter and library manager License: GPLv3 URL: http://calibre-ebook.com/ @@ -31,6 +31,10 @@ Patch1: %{name}-no-update.patch # This is so gnome-software only 'sees' calibre once. # Patch3: calibre-nodisplay.patch +# +# Add patch to fix kindle-s with newer kernels +# +Patch4: calibre-3.36.0-fynsc-fix.patch BuildRequires: python2 >= 2.7 BuildRequires: python2-devel >= 2.7 @@ -236,6 +240,8 @@ ln -s %{python2_sitelib}/feedparser.pyo \ # link to system fonts after we have deleted (see Source0) the non-free ones # http://bugs.calibre-ebook.com/ticket/3832 +%if 0%{?fedora} >= 31 +# In fedora 31 liberation fonts moved directories. ln -s %{_datadir}/fonts/liberation-mono/LiberationMono-BoldItalic.ttf \ %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationMono-BoldItalic.ttf ln -s %{_datadir}/fonts/liberation-mono/LiberationMono-Bold.ttf \ @@ -260,6 +266,32 @@ ln -s %{_datadir}/fonts/liberation-serif/LiberationSerif-Italic.ttf \ %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSerif-Italic.ttf ln -s %{_datadir}/fonts/liberation-serif/LiberationSerif-Regular.ttf \ %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSerif-Regular.ttf +%else +ln -s %{_datadir}/fonts/liberation/LiberationMono-BoldItalic.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationMono-BoldItalic.ttf +ln -s %{_datadir}/fonts/liberation/LiberationMono-Bold.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationMono-Bold.ttf +ln -s %{_datadir}/fonts/liberation/LiberationMono-Italic.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationMono-Italic.ttf +ln -s %{_datadir}/fonts/liberation/LiberationMono-Regular.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationMono-Regular.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSans-BoldItalic.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSans-BoldItalic.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSans-Bold.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSans-Bold.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSans-Italic.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSans-Italic.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSans-Regular.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSans-Regular.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSerif-BoldItalic.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSerif-BoldItalic.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSerif-Bold.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSerif-Bold.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSerif-Italic.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSerif-Italic.ttf +ln -s %{_datadir}/fonts/liberation/LiberationSerif-Regular.ttf \ + %{buildroot}%{_datadir}/%{name}/fonts/liberation/LiberationSerif-Regular.ttf +%endif # delete locales, calibre stores them in a zip file now rm -rf %{buildroot}%{_datadir}/%{name}/localization/locales/ @@ -316,6 +348,9 @@ ln -s %{_jsdir}/mathjax %{_datadir}/%{name}/viewer/ %{_datadir}/metainfo/*.appdata.xml %changelog +* Sun Jul 21 2019 Kevin Fenzi - 3.36.0-8 +- Add patch for kindle-s. Fixes bug #1731734 + * Tue Jun 25 2019 Kevin Fenzi - 3.36.0-7 - Adjust for liberation fonts moving around.