LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File rarian.spec of Package rarian (Project GNOME:Factory)

#
# spec file for package rarian
#
# 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/
#


Name:           rarian
BuildRequires:  docbook_4
BuildRequires:  gcc-c++
BuildRequires:  intltool
BuildRequires:  libxslt-devel
BuildRequires:  perl-XML-Parser
BuildRequires:  pkg-config
BuildRequires:  sgml-skel
Summary:        Rarian is designed to be a replacement for scrollkeeper
License:        GPL-2.0+ and LGPL-2.1+
Group:          Development/Libraries/C and C++
Version:        0.8.1
Release:        0
Source0:        http://download.gnome.org/sources/rarian/0.8/%{name}-%{version}.tar.bz2
Source1:        scrollkeeper-omf.dtd
Patch1:         rarian-0.5.6-reg-parse-bugs.patch
Patch2:         rarian-0.7.1-return.patch
Patch3:         rarian-0.5.6-docs-from-desktop-entries-and-bundles.patch
# PATCH-FIX-OPENSUSE rarian-opensuse-manuals.patch vuntz@novell.com -- Find openSUSE manuals
Patch4:         rarian-opensuse-manuals.patch
# PATCH-FIX-OPENSUSE rarian-help-bundle.patch vuntz@novell.com -- Grab manual in /usr/share/gnome/help-bundle when it makes sense
Patch5:         rarian-help-bundle.patch
# PATCH-FIX-UPSTREAM rarian-no-warning-X-lines.patch bfo18317 vuntz@novell.com -- No warning on X- lines
Patch6:         rarian-no-warning-X-lines.patch
# PATCH-FIX-OPENSUSE rarian-no-warning-desktop-entry.patch vuntz@novell.com -- We have a patch to read .desktop file, but we don't want lots of warnings because of this...
Patch7:         rarian-no-warning-desktop-entry.patch
# PATCH-FIX-UPSTREAM rarian-no-info.patch fdo24277 vuntz@opensuse.org -- Crash when there's no info at all
Patch8:         rarian-no-info.patch
# PATCH-FIX-UPSTREAM rarian-quiet.patch fdo24276 vuntz@opensuse.org -- Make rarian a bit quieter
Patch9:         rarian-quiet.patch
# PATCH-FIX-UPSTREAM rarian-no-warning-localized-icon.patch fdo#33560 vuntz@opensuse.org -- Icons can be localized, so don't warn for localized icons. It's not the fix that should go upstream, but a real fix would potentially imply some API break.
Patch10:        rarian-no-warning-localized-icon.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Url:            ftp://ftp.gnome.org/pub/gnome/sources/rarian/
PreReq:         /bin/touch sgml-skel /usr/bin/xmlcatalog

%description
Rarian is designed to be a replacement for scrollkeeper.  It is
currently undergoing heavy development.  As of writing, rarian can be
installed in place of scrollkeeper and everything will work okay (as
far as my testing indicates)

%package scrollkeeper-compat
Requires:       %{name} = %{version}
Summary:        Rarian is designed to be a replacement for scrollkeeper
License:        GPL-2.0+ and LGPL-2.1+
Group:          Development/Libraries/C and C++
Provides:       scrollkeeper
Obsoletes:      scrollkeeper <= 0.3.14
Requires(post): update-alternatives
Requires(postun): update-alternatives
# The build service fails to build the package because it doesn't really
# understand Requires(post), so use PreReq too (see bnc#439232).
%if %defined suse_version
PreReq:         update-alternatives
%endif

%description scrollkeeper-compat
Rarian is designed to be a replacement for scrollkeeper.  It is
currently undergoing heavy development.  As of writing, rarian can be
installed in place of scrollkeeper and everything will work okay (as
far as my testing indicates)

%package devel
Requires:       %{name} = %{version}
Summary:        Development files for rarian
License:        GPL-2.0
Group:          Development/Libraries/C and C++

%description devel
Rarian is designed to be a replacement for scrollkeeper.  It is
currently undergoing heavy development.  As of writing, rarian can be
installed in place of scrollkeeper and everything will work okay.

This package contains the files for developing applications using
rarian.

%prep
%setup -q
%patch1 -p1
%patch2
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1

%build
%configure --disable-static --with-pic
%{__make} %{?jobs:-j%jobs}

# Prepare for the XML Catalog for scrollkeeper compatibility; snipped copied from scrollkeeper.spec
xmlcatbin=/usr/bin/xmlcatalog
CATALOG=scrollkeeper.xml
$xmlcatbin --noout --create $CATALOG
$xmlcatbin --noout --add "public" \
  "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" \
  "file://%{_datadir}/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd" $CATALOG
%define FOR_ROOT_CAT for-catalog-%{name}-%{version}.xml
CATALOG=etc/xml/$CATALOG
rm -f %{FOR_ROOT_CAT}.tmp
$xmlcatbin --noout --create %{FOR_ROOT_CAT}.tmp
$xmlcatbin --noout --add "delegatePublic" \
  "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" \
  "file:///$CATALOG" %{FOR_ROOT_CAT}.tmp
$xmlcatbin --noout --add "rewriteSystem" \
    "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0" \
    "file://%{_datadir}/xml/scrollkeeper/dtds" %{FOR_ROOT_CAT}.tmp
# Create tag
sed '/<catalog/a\
  <group id="%{name}-%{version}">
/<\/catalog/i\
  </group>' \
  %{FOR_ROOT_CAT}.tmp > %{FOR_ROOT_CAT}
# End scrollkeeper compatibility

%install
%makeinstall
rm -f %{buildroot}%{_libdir}/*.la
# We use the update-alternatives system for those files:
rm -f %{buildroot}%{_bindir}/scrollkeeper-*
# Install DTD as was shipped with scrollkeeper
mkdir -p %{buildroot}%{_datadir}/xml/scrollkeeper/dtds
cp %{S:1} %{buildroot}%{_datadir}/xml/scrollkeeper/dtds

# Register the scrollkeeper DTDs for offline usage; replicated from scrollkeeper's .spec files
# xml catalog
cat_dir=%{buildroot}/etc/xml
install -d -m755 $cat_dir
# install -m644 %{name}.xml $RPM_BUILD_ROOT/etc/xml/%{name}.xml
install -m644 %{FOR_ROOT_CAT} scrollkeeper.xml $cat_dir

%clean
rm -rf %{buildroot}

%post
/sbin/ldconfig

%postun
/sbin/ldconfig

%post scrollkeeper-compat
# If the scrollkeeper-config group is in automatic mode, then this
# will also switch all symlinks automatically
update-alternatives \
	--install %{_bindir}/scrollkeeper-config scrollkeeper-config %{_bindir}/rarian-sk-config 10 \
	--slave %{_bindir}/scrollkeeper-extract scrollkeeper-extract %{_bindir}/rarian-sk-extract \
	--slave %{_bindir}/scrollkeeper-gen-seriesid scrollkeeper-gen-seriesid %{_bindir}/rarian-sk-gen-uuid \
	--slave %{_bindir}/scrollkeeper-get-cl scrollkeeper-get-cl %{_bindir}/rarian-sk-get-cl \
	--slave %{_bindir}/scrollkeeper-get-content-list scrollkeeper-get-content-list %{_bindir}/rarian-sk-get-content-list \
	--slave %{_bindir}/scrollkeeper-get-extended-content-list scrollkeeper-get-extended-content-list %{_bindir}/rarian-sk-get-extended-content-list \
	--slave %{_bindir}/scrollkeeper-get-index-from-docpath scrollkeeper-get-index-from-docpath %{_bindir}/rarian-sk-get-scripts \
	--slave %{_bindir}/scrollkeeper-get-toc-from-docpath scrollkeeper-get-toc-from-docpath %{_bindir}/rarian-sk-get-scripts \
	--slave %{_bindir}/scrollkeeper-get-toc-from-id scrollkeeper-get-toc-from-id %{_bindir}/rarian-sk-get-scripts \
	--slave %{_bindir}/scrollkeeper-install scrollkeeper-install %{_bindir}/rarian-sk-install \
	--slave %{_bindir}/scrollkeeper-preinstall scrollkeeper-preinstall %{_bindir}/rarian-sk-preinstall \
	--slave %{_bindir}/scrollkeeper-rebuilddb scrollkeeper-rebuilddb %{_bindir}/rarian-sk-rebuild \
	--slave %{_bindir}/scrollkeeper-uninstall scrollkeeper-uninstall %{_bindir}/rarian-sk-install \
	--slave %{_bindir}/scrollkeeper-update scrollkeeper-update %{_bindir}/rarian-sk-update

# Update the cache
%{_bindir}/rarian-sk-update

# Register scrollkeeper DTD
edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \
  --add /etc/xml/%{FOR_ROOT_CAT}

%postun scrollkeeper-compat
# Note: we don't use "$1 -eq 0", to avoid issues if the package gets renamed
if [ ! -f %{_bindir}/rarian-sk-config ]; then
  update-alternatives --remove scrollkeeper-config %{_bindir}/rarian-sk-config
fi

# remove entries only on removal of file
if [ ! -f %{_sysconfdir}/xml/%{FOR_ROOT_CAT} -a -x /usr/bin/edit-xml-catalog ] ; then
  edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \
    --del %{name}-%{version}
fi

%posttrans
# Workaround old bug in 11.1/11.2 packages that always removed the symlinks in
# %postun. Can be removed during 12.2 development.
if [ ! -f %{_bindir}/scrollkeeper-config -a -f %{_bindir}/rarian-sk-config ]; then
  update-alternatives \
          --install %{_bindir}/scrollkeeper-config scrollkeeper-config %{_bindir}/rarian-sk-config 10 \
          --slave %{_bindir}/scrollkeeper-extract scrollkeeper-extract %{_bindir}/rarian-sk-extract \
          --slave %{_bindir}/scrollkeeper-gen-seriesid scrollkeeper-gen-seriesid %{_bindir}/rarian-sk-gen-uuid \
          --slave %{_bindir}/scrollkeeper-get-cl scrollkeeper-get-cl %{_bindir}/rarian-sk-get-cl \
          --slave %{_bindir}/scrollkeeper-get-content-list scrollkeeper-get-content-list %{_bindir}/rarian-sk-get-content-list \
          --slave %{_bindir}/scrollkeeper-get-extended-content-list scrollkeeper-get-extended-content-list %{_bindir}/rarian-sk-get-extended-content-list \
          --slave %{_bindir}/scrollkeeper-get-index-from-docpath scrollkeeper-get-index-from-docpath %{_bindir}/rarian-sk-get-scripts \
          --slave %{_bindir}/scrollkeeper-get-toc-from-docpath scrollkeeper-get-toc-from-docpath %{_bindir}/rarian-sk-get-scripts \
          --slave %{_bindir}/scrollkeeper-get-toc-from-id scrollkeeper-get-toc-from-id %{_bindir}/rarian-sk-get-scripts \
          --slave %{_bindir}/scrollkeeper-install scrollkeeper-install %{_bindir}/rarian-sk-install \
          --slave %{_bindir}/scrollkeeper-preinstall scrollkeeper-preinstall %{_bindir}/rarian-sk-preinstall \
          --slave %{_bindir}/scrollkeeper-rebuilddb scrollkeeper-rebuilddb %{_bindir}/rarian-sk-rebuild \
          --slave %{_bindir}/scrollkeeper-uninstall scrollkeeper-uninstall %{_bindir}/rarian-sk-install \
          --slave %{_bindir}/scrollkeeper-update scrollkeeper-update %{_bindir}/rarian-sk-update
fi

%files
%defattr(-,root,root)
%doc COPYING README NEWS
%{_bindir}/*
%{_libdir}/lib*.so.*
%{_prefix}/share/*
# in scrollkeeper-compat
%exclude %{_bindir}/rarian-sk-*
%exclude %{_datadir}/xml/

%files scrollkeeper-compat
%defattr(-,root,root)
%{_bindir}/rarian-sk-*
%{_datadir}/xml/
%{_sysconfdir}/xml/for-catalog-rarian-0.8.1.xml
%{_sysconfdir}/xml/scrollkeeper.xml
%ghost %{_bindir}/scrollkeeper-config
%ghost %{_bindir}/scrollkeeper-extract
%ghost %{_bindir}/scrollkeeper-gen-seriesid
%ghost %{_bindir}/scrollkeeper-get-cl
%ghost %{_bindir}/scrollkeeper-get-content-list
%ghost %{_bindir}/scrollkeeper-get-extended-content-list
%ghost %{_bindir}/scrollkeeper-get-index-from-docpath
%ghost %{_bindir}/scrollkeeper-get-toc-from-docpath
%ghost %{_bindir}/scrollkeeper-get-toc-from-id
%ghost %{_bindir}/scrollkeeper-install
%ghost %{_bindir}/scrollkeeper-preinstall
%ghost %{_bindir}/scrollkeeper-rebuilddb
%ghost %{_bindir}/scrollkeeper-uninstall
%ghost %{_bindir}/scrollkeeper-update

%files devel
%defattr(-,root,root)
%{_includedir}/*
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/*.pc

%changelog