diff --git a/cairomm.rpmlintrc b/cairomm.rpmlintrc new file mode 100644 index 0000000..4be171f --- /dev/null +++ b/cairomm.rpmlintrc @@ -0,0 +1,4 @@ +# Explicit dependencies among documentation packages are indeed reasonable +addFilter(r' explicit-lib-dependency .*-doc[s]?$') +# All of the documentation is in the -doc subpackage, of course! +addFilter(r' no-documentation$') diff --git a/cairomm.spec b/cairomm.spec index 4faed32..ff58127 100644 --- a/cairomm.spec +++ b/cairomm.spec @@ -1,89 +1,140 @@ +%global so_version 1 %global apiver 1.0 -%global cairo_version 1.10.0 -%global libsigc_version 2.5.1 +%bcond_without autoreconf -Summary: C++ API for the cairo graphics library Name: cairomm +Summary: C++ API for the cairo graphics library Version: 1.12.0 -Release: 14%{?dist} +Release: 15%{?dist} + URL: http://www.cairographics.org License: LGPLv2+ -Source: http://www.cairographics.org/releases/%{name}-%{version}.tar.gz + +Source0: http://www.cairographics.org/releases/%{name}-%{version}.tar.gz + BuildRequires: gcc-c++ -BuildRequires: cairo-devel >= %{cairo_version} -BuildRequires: libsigc++20-devel >= %{libsigc_version} +BuildRequires: make +BuildRequires: pkgconfig + +%if %{with autoreconf} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: autoconf-archive +%endif +BuildRequires: mm-common + +BuildRequires: cairo-devel +BuildRequires: libsigc++20-devel + BuildRequires: perl-interpreter BuildRequires: perl(Getopt::Long) -BuildRequires: pkgconfig -BuildRequires: make -Requires: cairo%{?_isa} >= %{cairo_version} -Requires: libsigc++20%{?_isa} >= %{libsigc_version} +BuildRequires: doxygen %description -Cairomm is the C++ API for the cairo graphics library. It offers all the power -of cairo with an interface familiar to C++ developers, including use of the -Standard Template Library where it makes sense. +This library provides a C++ interface to cairo. + %package devel -Summary: Headers for developing programs that will use %{name} +Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel -Cairomm is the C++ API for the cairo graphics library. It offers all the power -of cairo with an interface familiar to C++ developers, including use of the -Standard Template Library where it makes sense. +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. -This package contains the libraries and header files needed for -developing %{name} applications. %package doc -Summary: Developer's documentation for the cairomm library +Summary: Documentation for %{name} BuildArch: noarch -Requires: %{name} = %{version}-%{release} +Requires: libstdc++-docs Requires: libsigc++20-doc -%description doc -This package contains developer's documentation for the cairomm -library. Cairomm is the C++ API for the cairo graphics library. +%description doc +Documentation for %{name} can be viewed either through the devhelp +documentation browser or through a web browser at +%{_datadir}/doc/%{name}-%{apiver}/. -The documentation can be viewed either through the devhelp -documentation browser or through a web browser. - -If using a web browser the documentation is installed in the gtk-doc -hierarchy and can be found at /usr/share/doc/cairomm-1.0 %prep -%setup -q +%setup -q +# We must remove the jQuery/jQueryUI bundle with precompiled/minified/bundled +# JavaScript that is in docs/reference/html/jquery.js, since such sources are +# banned in Fedora. (Note also that the bundled JavaScript had a different +# license.) We also remove the tag file, which triggers a rebuild of the +# documentation. While we are at it, we might as well rebuild the devhelp XML +# too. +rm -rf docs/reference/html +rm docs/reference/%{name}-%{apiver}.tag \ + docs/reference/%{name}-%{apiver}.devhelp2 + %build +%if %{with autoreconf} +# Update obsolete Boost m4 macros +cp -vp %{_datadir}/aclocal/ax_boost_base.m4 \ + %{_datadir}/aclocal/ax_boost_unit_test_framework.m4 \ + build/ +NOCONFIGURE=1 ./autogen.sh +%endif %configure --disable-static -make %{?_smp_mflags} +%make_build + %install %make_install -find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' +find %{buildroot} -type f -name '*.la' -print -delete + +install -t %{buildroot}%{_datadir}/doc/%{name}-%{apiver} -m 0644 -p \ + AUTHORS ChangeLog MAINTAINERS NEWS README + + +# Currently, we cannot run the tests because they require a static boost-test +# library. -%ldconfig_scriptlets %files %license COPYING -%doc AUTHORS README NEWS -%{_libdir}/lib*.so.* +%{_libdir}/lib%{name}-%{apiver}.so.%{so_version} +%{_libdir}/lib%{name}-%{apiver}.so.%{so_version}.* + %files devel -%doc ChangeLog %{_includedir}/%{name}-%{apiver} -%{_libdir}/*.so -%{_libdir}/pkgconfig/* +%{_libdir}/lib%{name}-%{apiver}.so +%{_libdir}/pkgconfig/%{name}-%{apiver}.pc +%{_libdir}/pkgconfig/%{name}-*-%{apiver}.pc %{_libdir}/%{name}-%{apiver} + %files doc +%license COPYING %doc %{_datadir}/doc/%{name}-%{apiver}/ %doc %{_datadir}/devhelp/ + %changelog +* Thu Feb 11 2021 Benjamin A. Beasley - 1.12.0-15 +- Spec file style tweaks +- Macro-ize documentation path in description +- Simplified summaries and descriptions +- Use make macros (https://src.fedoraproject.org/rpms/cairomm/pull-request/1) +- Drop obsolete %%ldconfig_scriptlets macro +- Much stricter file globs, including so-version +- Stop requiring the base package from the -doc package +- Migrate top-level text file documentation to the -doc subpackage +- BR mm-common; at minimum, this lets us find tags for libstdc++ documentation; + require libstdc++-docs from the -doc subpackage, since we are now able to + find the tag file in configure +- Remove bundled jQuery/jQueryUI from prebuilt documentation, and rebuild the + documentation ourselves +- Add a note explaining why we cannot run the tests +- Drop explicit/manual lib Requires on cairo/libsigc++20 +- Drop version requirements in BRs +- Rebuild autotools-generated files + * Tue Jan 26 2021 Fedora Release Engineering - 1.12.0-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild @@ -256,7 +307,7 @@ find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' * Sun Mar 5 2006 Rick L Vinyard Jr - 0.5.0-10 - Removed duplicate Group tag in devel -- Disabled docs till they're fixed upstream +- Disabled docs till they're fixed upstream * Sun Mar 5 2006 Rick L Vinyard Jr - 0.5.0-9 - Removed requires since BuildRequires is present