LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File calibre.spec of Package calibre (Project Documentation:Tools)

#
# spec file for package calibre
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Summary:        EBook Management Application
License:        GPL-3.0
Group:          Productivity/Other

Name:           calibre
Version:        0.9.13
Release:        0
Url:            http://calibre-ebook.com
# Getting and modifying the sources
#----------------------------------
# Do not use unmodified upstream sources, since they contain proprietary
# fonts which we are not allowed to distribute. Furthermore, the Liberation
# fonts, which are available as a separate package, are also included. Call
# sh generate-tarball.sh <VERSION>
# which downloads the sources, deletes the fonts and repacks it to
# calibre-$VERSION-nofonts.tar.bz2
Source0:        %{name}-%{version}-nofonts.tar.bz2
Source2:        %{name}.desktop
Source3:        %{name}.png
Source4:        generate-tarball.sh

%if 0%{?suse_version} == 1220
Source5:        %{name}-cssselect-0.7.1.tar.gz
%endif

Patch2:         %{name}-setup.install.py.diff
Patch3:         %{name}-no-update.diff
Obsoletes:      calibre07 < %{version}
Provides:       calibre07 = %{version}

#If a package is obsoleted by a compatible replacement, the obsoleted package
#should also be provided in order to not cause unnecessary dependency breakage.
#If the obsoleting package is not a compatible replacement for the old one,
#leave out the Provides.
#Provides:      calibre07

#
# A note on BuildRequires and Requires:
#
# Requires should always be a subset of BuildRequires. If there are packages
# that are only Required
# * there is no way to check whether these packages are available in the given
#   repositories unless you install the package (the build environment only
#   contains packages from the given repositories and the project
# * the project's repository might become inconsistent, because Required
#   packages do not block a build. So a package might get published, although
#   a Required package does not build

BuildRequires:  chmlib-devel >= 0.40
BuildRequires:  fdupes
BuildRequires:  help2man
BuildRequires:  liberation-fonts
BuildRequires:  libicu-devel >= 4.4.0
BuildRequires:  libmtp-devel
BuildRequires:  libpodofo-devel
BuildRequires:  libpoppler-qt4-devel >= 0.12.0
BuildRequires:  libqt4-devel >= 4.6.0
BuildRequires:  libqt4-private-headers-devel
BuildRequires:  libwmf-devel >= 0.2.8
BuildRequires:  podofo >= 0.8.2
BuildRequires:  poppler >= 0.12.0
BuildRequires:  poppler-tools
BuildRequires:  python >= 2.7.1
BuildRequires:  python-beautifulsoup >= 3.0.5
BuildRequires:  python-cherrypy
BuildRequires:  python-cssutils >= 0.9.9
BuildRequires:  python-cssselect >= 0.7.1
BuildRequires:  python-dateutil >= 1.4.1
BuildRequires:  python-devel >= 2.7.1
BuildRequires:  python-dnspython >= 1.6.0
# python-genshi is a required package, see above
BuildRequires:  python-genshi
BuildRequires:  python-imaging >= 1.1.6
BuildRequires:  python-lxml >= 2.2.1
BuildRequires:  python-mechanize >= 0.1.11
BuildRequires:  python-odfpy
BuildRequires:  python-pypdf
BuildRequires:  python-qt4-devel >= 4.9.1
BuildRequires:  python-setuptools
BuildRequires:  python-sip-devel >= 4.12
BuildRequires:  sqlite3-devel
BuildRequires:  update-desktop-files
BuildRequires:  xdg-utils >= 1.0.2
BuildRequires:  pkgconfig(ImageMagick) >= 6.5.9

Requires:       ImageMagick >= 6.5.9
Requires:       chmlib >= 0.40
Requires:       dbus-1-python
Requires:       liberation-fonts
Requires:       libicu >= 4.4
Requires:       libmtp9
Requires:       libqt4 >= 4.6.0
Requires:       libwmf >= 0.2.8
Requires:       podofo >= 0.8.2
Requires:       poppler-qt4 >= 0.12.0
Requires:       poppler-tools
Requires:       python >= 2.7.1
Requires:       python-beautifulsoup >= 3.0.5
Requires:       python-cherrypy
Requires:       python-cssutils >= 0.9.9
Requires:       python-cssselect >= 0.7.1
Requires:       python-dateutil >= 1.4.1
Requires:       python-dnspython >= 1.6.0
Requires:       python-genshi
Requires:       python-imaging >= 1.1.6
Requires:       python-lxml >= 2.2.1
Requires:       python-mechanize >= 0.1.11
Requires:       python-netifaces
Requires:       python-odfpy
Requires:       python-pypdf
Requires:       python-qt4 >= 4.7.0
Requires:       python-setuptools
Requires:       python-sip >= 4.12.1
Requires:       sqlite3
Requires:       xdg-utils >= 1.0.2

BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%{py_requires}
# http://lists.opensuse.org/opensuse-packaging/2009-08/msg00110.html

%description
Calibre is an ebook library manager. It can view, convert and catalog
ebooks in most of the major ebook formats. It can also talk to a few
ebook reader devices. It can go out to the internet and fetch
metadata for your books. It can download newspapers and convert them
into ebooks for convenient reading. It is cross platform, running on
Linux, Windows and OS X.

%prep
%setup -q -n %{name}
%patch2 -p1
%patch3 -p1 -b .no-update

# dos2unix newline conversion
sed -i 's/\r//' src/calibre/web/feeds/recipes/*

# remove the executable flag from files
find src/calibre -name "*.py" -type f  | xargs chmod -x
chmod -x recipes/*

cp -v %{SOURCE2} %{SOURCE3}  .

# Add cssselect private code, only for opensuse 12.2
%if 0%{?suse_version} == 1220
tar xzf %{SOURCE5} -C $RPM_BUILD_DIR/%{name}/src/ --strip-components=1 cssselect-0.7.1/cssselect/
%endif

%build
#export CFLAGS="$CFLAGS %%{optflags}"
#OVERRIDE_CFLAGS="%% { optflags } -fno-strict-aliasing"
LANG="en_US.UTF8" \
CFLAGS="%{optflags} -fno-strict-aliasing" \
CXXFLAGS="%{optflags} -fno-strict-aliasing" \
python setup.py build
pushd src/calibre/devices
make linux_mount_helper
popd

%install
mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d/
mkdir -p %{buildroot}%{_datadir}/qt4/translations/

python setup.py install \
   --prefix=%{_prefix} \
   --root=%{buildroot} \
   --staging-bindir=%{buildroot}%{_bindir} \
   --staging-libdir=%{buildroot}%{_libdir} \
   --staging-sharedir=%{buildroot}%{_datadir} \
   --staging-mandir=%{buildroot}%{_mandir} \
   --libdir=%{_libdir}

%suse_update_desktop_file -i -n calibre Office Viewer

%fdupes %{buildroot}
# %%fdupes %%{buildroot}%%{_datadir}/%%{name}/

# packages aren't allowed to register mimetypes like this
rm -f %{buildroot}%{_datadir}/applications/defaults.list

# 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

# delete /usr/share/calibre/fonts/liberation
# replace it by a symlink to /usr/share/fonts/truetype/
rmdir $RPM_BUILD_ROOT/usr/share/calibre/fonts/liberation
ln -s /usr/share/fonts/truetype/ $RPM_BUILD_ROOT/usr/share/calibre/fonts/liberation

# add shebangs
sed -i -e '1i#!/usr/bin/python' %{buildroot}%{_libdir}/%{name}/chardet/*.py

%clean
[ %{buildroot} != "/" ] && [ -d %{buildroot} ] && rm -rf %{buildroot}

%files
# -f %%{name}.lang  -f iso639.lang
%defattr(-,root,root)
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/%{name}/
%{_bindir}/*
%exclude %{_bindir}/calibre-uninstall
%{_libdir}/%{name}/
%config %{_sysconfdir}/bash_completion.d/%{name}

%changelog