Name: calibre Version: 0.6.19 Release: 3%{?dist} Summary: E-book converter and library management Group: Applications/Multimedia License: GPLv3 URL: http://calibre.kovidgoyal.net/ # SourceURL: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz # Upstream packages some unfree fonts which we cannot redistribute. # While we're at it, also delete the liberation fonts which we already have. # # Download the upstream tarball and invoke this script while in the tarball's # directory: # ./generate-tarball.sh %{version} Source0: %{name}-%{version}-nofonts.tar.gz Source1: generate-tarball.sh Patch2: %{name}-cssprofiles.patch Patch3: %{name}-manpages.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python >= 2.6 BuildRequires: python-devel >= 2.6 BuildRequires: ImageMagick-devel BuildRequires: python-setuptools-devel BuildRequires: qt-devel BuildRequires: PyQt4-devel BuildRequires: poppler-qt4-devel >= 0.12 BuildRequires: podofo-devel BuildRequires: desktop-file-utils BuildRequires: python-mechanize BuildRequires: python-lxml BuildRequires: python-dateutil BuildRequires: python-imaging BuildRequires: xdg-utils Requires: pyPdf Requires: python-cherrypy Requires: python-cssutils Requires: ImageMagick Requires: odfpy Requires: django-tagging Requires: python-lxml Requires: python-imaging Requires: python-mechanize Requires: python-dateutil Requires: python-genshi %description Calibre is meant to be a complete e-library solution. It includes library management, format conversion, news feeds to ebook conversion as well as e-book reader sync features. Calibre is primarily a ebook cataloging program. It manages your ebook collection for you. It is designed around the concept of the logical book, i.e. a single entry in the database that may correspond to ebooks in several formats. It also supports conversion to and from a dozen different ebook formats. Supported input formats are: MOBI, LIT, PRC, EPUB, ODT, HTML, CBR, CBZ, RTF, TXT, PDF and LRS. %prep %setup -q -n %{name} # we've moved the profiles so we don't have to redistribute cssutils %patch2 -p1 -b .cssprofiles # don't append calibre1 to the name of the manpages. No need to compress either %patch3 -p1 -b .manpages # dos2unix newline conversion %{__sed} -i 's/\r//' src/calibre/web/feeds/recipes/* # remove shebangs %{__sed} -i -e '/^#!\//, 1d' src/calibre/*/*/*/*.py %{__sed} -i -e '/^#!\//, 1d' src/calibre/*/*/*.py %{__sed} -i -e '/^#![ ]*\//, 1d' src/calibre/*/*.py %{__sed} -i -e '/^#!\//, 1d' src/calibre/*.py %{__sed} -i -e '/^#!\//, 1d' resources/recipes/* %{__chmod} -x src/calibre/*/*/*/*.py %{__chmod} -x src/calibre/*/*/*.py %{__chmod} -x src/calibre/*/*.py %{__chmod} -x src/calibre/*.py %{__chmod} -x resources/recipes/* %build OVERRIDE_CFLAGS="%{optflags}" python setup.py build %install rm -rf %{buildroot} # this is the only file we need from the provided cssutils package # need it for the install cp -p src/cssutils/profiles.py src/calibre/cssutils_profiles.py mkdir -p %{buildroot}%{_datadir} # create directories so xdg-* can write in mkdir -p %{buildroot}%{_datadir}/icons mkdir -p %{buildroot}%{_datadir}/icons/hicolor mkdir -p %{buildroot}%{_datadir}/packages mkdir -p %{buildroot}%{_datadir}/mime mkdir -p %{buildroot}%{_datadir}/mime/packages mkdir -p %{buildroot}%{_datadir}/applications mkdir -p %{buildroot}%{_datadir}/desktop-directories XDG_DATA_DIRS="%{buildroot}%{_datadir}" \ XDG_UTILS_INSTALL_MODE="system" \ LIBPATH="%{_libdir}" \ python setup.py install --root=%{buildroot}%{_prefix} \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --staging-libdir=%{buildroot}%{_libdir} \ # icons mkdir -p %{buildroot}%{_datadir}/pixmaps/ cp -p resources/images/library.png \ %{buildroot}%{_datadir}/pixmaps/%{name}.png cp -p resources/images/viewer.svg \ %{buildroot}%{_datadir}/pixmaps/calibre-viewer.svg # every file is empty here find %{buildroot}%{_datadir}/mime -maxdepth 1 -type f|xargs rm -f # packages aren't allowed to register mimetypes like this rm -f %{buildroot}%{_datadir}/applications/defaults.list # Version isn't used correctly and it's not required either desktop-file-install \ --remove-key="Version" \ --dir=%{buildroot}%{_datadir}/applications \ %{buildroot}%{_datadir}/applications/calibre-gui.desktop desktop-file-install \ --remove-key="Version" \ --dir=%{buildroot}%{_datadir}/applications \ %{buildroot}%{_datadir}/applications/%{name}-lrfviewer.desktop desktop-file-install \ --remove-key="Version" \ --dir=%{buildroot}%{_datadir}/applications \ %{buildroot}%{_datadir}/applications/calibre-ebook-viewer.desktop mv %{buildroot}%{_datadir}/mime/packages/calibre-mimetypes \ %{buildroot}%{_datadir}/mime/packages/calibre-mimetypes.xml # mimetype icon for lrf rm -rf %{buildroot}%{_datadir}/icons/hicolor/128x128 mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/mimetypes mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps cp -p resources/images/mimetypes/lrf.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/mimetypes/application-x-sony-bbeb.svg cp -p resources/images/viewer.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/calibre-viewer.svg # don't put bash completions in /usr/etc mv %{buildroot}%{_prefix}%{_sysconfdir} %{buildroot} # these are provided as separate packages rm -rf %{buildroot}%{_libdir}/%{name}/{odf,cherrypy,pyPdf,encutils,cssutils} rm -rf %{buildroot}%{_libdir}/%{name}/cal/utils/genshi rm -rf %{buildroot}%{_libdir}/%{name}/cal/trac # link to system fonts after we have deleted (see Source0) the non-free ones ln -s %{_datadir}/fonts/liberation/LiberationSans-Regular.ttf \ %{buildroot}%{_datadir}/%{name}/fonts/prs500/tt0003m_.ttf ln -s %{_datadir}/fonts/liberation/LiberationSerif-Regular.ttf \ %{buildroot}%{_datadir}/%{name}/fonts/prs500/tt0011m_.ttf ln -s %{_datadir}/fonts/liberation/LiberationMono-Regular.ttf \ %{buildroot}%{_datadir}/%{name}/fonts/prs500/tt0419m_.ttf # man pages mv %{buildroot}%{_datadir}/%{name}/man %{buildroot}%{_mandir} # move locales mv %{buildroot}%{_datadir}/%{name}/localization/locales \ %{buildroot}%{_datadir}/locale for file in %{buildroot}%{_datadir}/locale/*/LC_MESSAGES/messages.mo; do lang=$(echo $file|%{__sed} 's:.*locale/\(.*\)/LC_MESSAGES.*:\1:') mv %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/messages.mo \ %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/%{name}.mo done; for file in %{buildroot}%{_datadir}/locale/*/LC_MESSAGES/iso639.mo; do lang=$(echo $file|%{__sed} 's:.*locale/\(.*\)/LC_MESSAGES.*:\1:') mv %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/iso639.mo \ %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/%{name}_iso639.mo done; for file in %{buildroot}%{_datadir}/locale/*/LC_MESSAGES/qt.qm; do lang=$(echo $file|%{__sed} 's:.*locale/\(.*\)/LC_MESSAGES.*:\1:') mv $file %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/%{name}_$lang.qm done; %find_lang %{name} --with-qt --all-name # locales should be looked for in the proper place %{__sed} -i -e "s:P('localization/locales:('/usr/share/locale:" \ -e "s/messages.mo/calibre.mo/" \ -e "s/iso639.mo/calibre_iso639.mo/" \ %{buildroot}%{_libdir}/%{name}/%{name}/utils/localization.py # this is the only file we need from the provided cssutils package cp -p src/cssutils/profiles.py %{buildroot}%{_libdir}/%{name}/%{name}/ %{__rm} -f %{buildroot}%{_bindir}/%{name}-uninstall %clean %{__rm} -rf %{buildroot} %post update-desktop-database &> /dev/null ||: update-mime-database %{_datadir}/mime &> /dev/null || : touch --no-create %{_datadir}/icons/hicolor || : if [ -x %{_bindir}/gtk-update-icon-cache ] ; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : fi %postun update-desktop-database &> /dev/null ||: update-mime-database %{_datadir}/mime &> /dev/null || : touch --no-create %{_datadir}/icons/hicolor || : if [ -x %{_bindir}/gtk-update-icon-cache ] ; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : fi %files -f %{name}.lang %defattr(-,root,root,-) %doc COPYRIGHT LICENSE %{_bindir}/* %config(noreplace) %{_sysconfdir}/bash_completion.d/ %{_libdir}/%{name} %{_prefix}/lib/udev/rules.d/* %{_datadir}/%{name} %{_datadir}/pixmaps/* %{_datadir}/applications/* %{_datadir}/mime/packages/* %{_datadir}/icons/hicolor/scalable/mimetypes/* %{_datadir}/icons/hicolor/scalable/apps/* %{_mandir}/man1/* %changelog * Thu Oct 22 2009 Ionuț C. Arțăriși - 0.6.19-3 - removed unfree fonts from source package * Thu Oct 22 2009 Ionuț C. Arțăriși - 0.6.19-2 - readability enhancements - added python-genshi requires - removed libwmf require since ImageMagick provides libwmf-lite as a dependency and that's what we actually need * Wed Oct 21 2009 Ionuț Arțăriși - 0.6.19-1 - new upstream version: http://calibre.kovidgoyal.net/wiki/Changelog#Version0.6.1920Oct2009 - delete fonts, calibre can find the system fonts - specify libdir as an install option, so calibre will link properly even on 64bit * Mon Oct 19 2009 Ionuț Arțăriși - 0.6.18-1 - updated requires list - new upstream release - can override CFLAGS now - removed trac and genshi duplicates - use xdg env variables to do desktop integration in the buildroot - added xdg-utils buildrequire - install udev rules in /usr/lib even on 64bit and don't own the whole dir - removed wrongly used Version field from .desktop files * Mon Oct 12 2009 Ionuț Arțăriși - 0.6.17-2 - mimick what calibre's desktop-integration script does (mimetypes, icons etc.) - removed unneeded INSTALL file - marked bash completion file as config(noreplace) and take ownership of the dir * Sat Oct 10 2009 Ionuț Arțăriși - 0.6.17-1 - new upstream release: http://calibre.kovidgoyal.net/wiki/Changelog#Version0.6.1709Oct2009 - the install process changed significantly - locales were added * Thu Sep 10 2009 Ionuț Arțăriși - 0.6.11-1 - new upstream release: http://calibre.kovidgoyal.net/wiki/Changelog#Version0.6.1104Sep2009 - minor path fixes - rearranged files section * Fri Aug 28 2009 Ionuț Arțăriși 0.6.10-1 - handle desktop files - don't compress manpages and don't list them as duplicates - added lrfviewer icon * Tue Aug 25 2009 Ionuț Arțăriși 0.6.8-1 - Initial RPM release