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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 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