You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cairomm1.16/SPECS/cairomm1.16.spec

307 lines
10 KiB

## START: Set by rpmautospec
## (rpmautospec version 0.6.5)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 6;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
%global so_version 1
%global apiver 1.16
# “Let mm-common-get copy some files to untracked/”, i.e., replace scripts from
# the tarball with those from mm-common. This is (potentially) required if
# building an autotools-generated tarball with meson, or vice versa.
%bcond maintainer_mode 1
# Doxygen HTML help is not suitable for packaging due to a minified JavaScript
# bundle inserted by Doxygen itself. See discussion at
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555.
#
# We can enable the Doxygen PDF documentation as a substitute.
#
# We still generate the HTML documentation, but strip out all the JavaScript
# that causes policy issues. This degrades it in the browser, but is sufficient
# to keep the Devhelp documentation working.
%bcond doc_pdf 1
Name: cairomm%{apiver}
Summary: C++ API for the cairo graphics library
Version: 1.18.0
Release: %autorelease
URL: https://www.cairographics.org
License: LGPL-2.0-or-later
%global src_base https://www.cairographics.org/releases
Source0: %{src_base}/cairomm-%{version}.tar.xz
# No keyring with authorized GPG signing keys is published
# (https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/331), but we
# are able to verify the signature using the key for Kjell Ahlstedt from
# https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/290.
Source1: %{src_base}/cairomm-%{version}.tar.xz.asc
Source2: https://gitlab.freedesktop.org/freedesktop/freedesktop/uploads/0ac64e9582659f70a719d59fb02cd037/gpg_key.pub
BuildRequires: gnupg2
BuildRequires: gcc-c++
BuildRequires: meson
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(sigc++-3.0)
BuildRequires: pkgconfig(fontconfig)
# Everything mentioned in data/cairomm*.pc.in, except the Quartz and Win32
# libraries that do not apply to this platform:
BuildRequires: pkgconfig(cairo-ft)
BuildRequires: pkgconfig(cairo-pdf)
BuildRequires: pkgconfig(cairo-png)
BuildRequires: pkgconfig(cairo-ps)
BuildRequires: pkgconfig(cairo-svg)
BuildRequires: pkgconfig(cairo-xlib)
BuildRequires: pkgconfig(cairo-xlib-xrender)
%if %{with maintainer_mode}
# mm-common-get
BuildRequires: mm-common >= 1.0.4
%endif
BuildRequires: doxygen
# dot
BuildRequires: graphviz
# xsltproc
BuildRequires: libxslt
BuildRequires: pkgconfig(mm-common-libstdc++)
%if %{with doc_pdf}
BuildRequires: doxygen-latex
BuildRequires: make
%endif
# For tests:
BuildRequires: boost-devel
%description
This library provides a C++ interface to cairo.
The API/ABI version series is %{apiver}.
%package devel
Summary: Development files for cairomm%{apiver}
Requires: cairomm%{apiver}%{?_isa} = %{version}-%{release}
%description devel
The cairomm%{apiver}-devel package contains libraries and header files for
developing applications that use cairomm%{apiver}.
The API/ABI version series is %{apiver}.
%package doc
Summary: Documentation for cairomm%{apiver}
BuildArch: noarch
%description doc
Documentation for cairomm%{apiver} can be viewed through the devhelp
documentation browser.
The API/ABI version series is %{apiver}.
%prep
%{gpgverify} \
--keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -n cairomm-%{version}
# We must remove the jQuery/jQueryUI bundle with precompiled/minified/bundled
# JavaScript that is in untracked/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. Note that we will still install the HTML documentation, since the
# devhelp XML requires it, but we will strip out the JavaScript, which will
# degrade the documentation in a web browser.
rm -rf untracked/docs/reference/html
rm untracked/docs/reference/cairomm-%{apiver}.tag \
untracked/docs/reference/cairomm-%{apiver}.devhelp2
%if %{with doc_pdf}
# We enable the Doxygen PDF documentation as a substitute. We must enable
# GENERATE_LATEX and LATEX_BATCHMODE; the rest are precautionary and should
# already be set as we like them.
sed -r -i \
-e "s/^([[:blank:]]*(GENERATE_LATEX|LATEX_BATCHMODE|USE_PDFLATEX|\
PDF_HYPERLINKS)[[:blank:]]*=[[:blank:]]*)NO[[:blank:]]*/\1YES/" \
-e "s/^([[:blank:]]*(LATEX_TIMESTAMP)\
[[:blank:]]*=[[:blank:]]*)YES[[:blank:]]*/\1NO/" \
docs/reference/Doxyfile.in
%endif
%build
%meson \
-Dmaintainer-mode=%{?with_maintainer_mode:true}%{?!with_maintainer_mode:false} \
-Dbuild-documentation=true \
-Dbuild-examples=false \
-Dbuild-tests=true \
-Dboost-shared=true \
-Dwarnings=max
%meson_build
%if %{with doc_pdf}
%make_build -C '%{_vpath_builddir}/docs/reference/latex'
%endif
%install
%meson_install
install -t %{buildroot}%{_docdir}/cairomm-%{apiver} -m 0644 -p \
ChangeLog NEWS README.md
cp -rp examples %{buildroot}%{_docdir}/cairomm-%{apiver}/
# Strip out bundled and/or pre-minified JavaScript; this degrades the browser
# experience, but the HTML is still usable for devhelp.
find '%{buildroot}%{_docdir}/cairomm-%{apiver}/reference/html' \
-type f \( -name '*.js' -o -name '*.js.*' \) -print -delete
%if %{with doc_pdf}
install '%{_vpath_builddir}/docs/reference/latex/refman.pdf' -p -m 0644 \
'%{buildroot}%{_docdir}/cairomm-%{apiver}/reference/cairomm-%{apiver}.pdf'
%endif
%check
%meson_test
%files
%license COPYING
%{_libdir}/libcairomm-%{apiver}.so.%{so_version}{,.*}
%files devel
%{_includedir}/cairomm-%{apiver}/
%{_libdir}/libcairomm-%{apiver}.so
%{_libdir}/pkgconfig/cairomm-%{apiver}.pc
%{_libdir}/pkgconfig/cairomm-*-%{apiver}.pc
%{_libdir}/cairomm-%{apiver}/
%files doc
%license COPYING
# Note: JavaScript has been removed from HTML reference manual, degrading the
# browser experience. It is still needed for Devhelp support.
%doc %{_docdir}/cairomm-%{apiver}/
%doc %{_datadir}/devhelp/
%changelog
## START: Generated by rpmautospec
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.18.0-6
- Bump release for October 2024 mass rebuild:
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.18.0-5
- Bump release for June 2024 mass rebuild
* Wed Apr 17 2024 Tomas Pelka <tpelka@redhat.com> - 1.18.0-4
- gating enabled
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Sep 28 2023 Kalev Lember <klember@redhat.com> - 1.18.0-1
- Update to 1.18.0
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jun 17 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.2-9
- Use new (rpm 4.17.1+) bcond style
* Thu Jun 15 2023 Björn Persson <Bjorn@Rombobjörn.se> - 1.16.2-8
- Removed superfluous processing of the OpenPGP key.
* Mon Jan 23 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.2-7
- Revert "Work around missing dependency on texlive-wasy"
* Thu Jan 19 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.2-6
- Work around missing dependency on texlive-wasy
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Dec 19 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.2-4
- Trivially simplify a files list
* Mon Dec 19 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.2-3
- Indicate dirs. in files list with trailing slashes
* Thu Sep 22 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.2-2
- Explicit perl BR no longer needed with mm-common >= 1.0.4
* Thu Sep 22 2022 Kalev Lember <klember@redhat.com> - 1.16.2-1
- Update to 1.16.2
* Wed Aug 03 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-17
- Update License field to SPDX
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.1-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Nov 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-14
- Tweak a spec file comment
* Fri Oct 01 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-13
- Re-enable Doxygen HTML, stripping JS, for devhelp
* Mon Sep 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-12
- Rename PDF documentation file
* Mon Sep 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-11
- Drop the HTML reference manual altogether
* Sun Sep 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-10
- Mention search/search.js
* Sun Sep 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-9
- In -doc, unbundle js-jquery and fix License
* Sun Sep 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-8
- Use _docdir macro
* Sun Sep 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-7
- Reduce macro indirection in the spec file
* Tue Aug 10 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-6
- Rebuild for Boost 1.76
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu May 20 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.1-1
- Update to 1.16.1
* Sat Feb 20 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.0-3
- Verify source with new strong signatures from upstream
* Wed Feb 17 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.0-2
- Working (but weak, dependent on SHA1) source signature verification
- Tidy up BRs, including dropping make
* Wed Feb 17 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.16.0-1
- New multi-version cairomm1.16 package to provide the version 1.16 API/ABI;
based on the spec file from cairomm-1.14.2-5
## END: Generated by rpmautospec