diff --git a/.gitignore b/.gitignore index 7e3fe24..f235235 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,14 @@ cairomm-1.9.1.tar.gz /cairomm-1.9.8.tar.gz /cairomm-1.10.0.tar.gz /cairomm-1.12.0.tar.gz +/cairomm-1.12.0.tar.gz.sha1 +/cairomm-1.12.0.tar.gz.sha1.asc +/cairomm-1.12.2.tar.gz +/cairomm-1.12.2.tar.gz.sha1 +/cairomm-1.12.2.tar.gz.sha1.asc +/cairomm-1.16.0.tar.xz +/cairomm-1.16.0.tar.xz.sha1 +/cairomm-1.16.0.tar.xz.sha1.asc +/cairomm-1.14.2.tar.xz +/cairomm-1.14.2.tar.xz.sha1 +/cairomm-1.14.2.tar.xz.sha1.asc diff --git a/cairomm.spec b/cairomm.spec index ff58127..b6f7132 100644 --- a/cairomm.spec +++ b/cairomm.spec @@ -1,37 +1,62 @@ %global so_version 1 %global apiver 1.0 -%bcond_without autoreconf +# “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_without maintainer_mode Name: cairomm Summary: C++ API for the cairo graphics library -Version: 1.12.0 -Release: 15%{?dist} +Version: 1.14.2 +Release: 3%{?dist} -URL: http://www.cairographics.org +URL: https://www.cairographics.org License: LGPLv2+ -Source0: http://www.cairographics.org/releases/%{name}-%{version}.tar.gz +%global src_base https://www.cairographics.org/releases +Source0: %{src_base}/%{name}-%{version}.tar.xz +# We cannot verify GPG signatures at this time because there is no published +# keychain or keyserver to get the signing key. (Additionally, the signature is +# over a cryptographically-weak SHA1 checksum.) See +# https://gitlab.freedesktop.org/cairo/cairomm/-/issues/25. +Source1: %{src_base}/%{name}-%{version}.tar.xz.sha1 +Source2: %{src_base}/%{name}-%{version}.tar.xz.sha1.asc +# Source3 reserved for future GPG keyring + +# https://gitlab.freedesktop.org/cairo/cairomm/-/issues/25 +# BuildRequires: gnupg2 BuildRequires: gcc-c++ BuildRequires: make BuildRequires: pkgconfig -%if %{with autoreconf} -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtool -BuildRequires: autoconf-archive -%endif +BuildRequires: meson + +# mm-common-get BuildRequires: mm-common - -BuildRequires: cairo-devel -BuildRequires: libsigc++20-devel - BuildRequires: perl-interpreter BuildRequires: perl(Getopt::Long) - BuildRequires: doxygen +# dot +BuildRequires: graphviz +# xsltproc +BuildRequires: libxslt + +# For tests: +BuildRequires: boost-devel +BuildRequires: fontconfig +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) +BuildRequires: pkgconfig(mm-common-libstdc++) +BuildRequires: pkgconfig(sigc++-2.0) + %description This library provides a C++ interface to cairo. @@ -59,40 +84,46 @@ documentation browser or through a web browser at %prep +# https://gitlab.freedesktop.org/cairo/cairomm/-/issues/25 +pushd "$(dirname %{SOURCE1})" +sha1sum -c "$(basename %{SOURCE1})" +popd +# %%{gpgverify} --keyring='%%{SOURCE3}' --signature='%%{SOURCE2}' \ +# --data='%%{SOURCE1}' %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 +# 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. +rm -rf untracked/docs/reference/html +rm untracked/docs/reference/%{name}-%{apiver}.tag \ + untracked/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_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 %install -%make_install +%meson_install find %{buildroot} -type f -name '*.la' -print -delete install -t %{buildroot}%{_datadir}/doc/%{name}-%{apiver} -m 0644 -p \ AUTHORS ChangeLog MAINTAINERS NEWS README +cp -rp examples %{buildroot}%{_datadir}/doc/%{name}-%{apiver}/ -# Currently, we cannot run the tests because they require a static boost-test -# library. +%check +%meson_test %files @@ -116,6 +147,25 @@ install -t %{buildroot}%{_datadir}/doc/%{name}-%{apiver} -m 0644 -p \ %changelog +* Thu Feb 11 2021 Benjamin A. Beasley - 1.14.2-3 +- Switch from autotools to meson; enable the tests, since the meson build system + permits us to use a shared boost library +- Install examples in the -doc subpackage + +* Thu Feb 11 2021 Benjamin A. Beasley - 1.14.2-2 +- Restore removal of pre-built documentation with its minified JS bundle + +* Thu Feb 11 2021 Benjamin A. Beasley - 1.14.2-1 +- Update to 1.14.2; this adds new APIs, but is ABI-backwards-compatible + +* Thu Feb 11 2021 Benjamin A. Beasley - 1.12.2-1 +- Update to 1.12.2 + +* Thu Feb 11 2021 Benjamin A. Beasley - 1.12.0-16 +- Switch URLs from HTTP to HTTPS +- Rough out code to verify source tarball signatures, and document why we + cannot yet do so + * Thu Feb 11 2021 Benjamin A. Beasley - 1.12.0-15 - Spec file style tweaks - Macro-ize documentation path in description diff --git a/sources b/sources index 19f4153..b4ebc36 100644 --- a/sources +++ b/sources @@ -1 +1,3 @@ -481501be65bcc34a605d6bc0f57a0023 cairomm-1.12.0.tar.gz +SHA512 (cairomm-1.14.2.tar.xz) = aef374fca25ad22770407e36512046b266d71ebeccd47fb629cfbf2f67783aa314bb335b972088a88d98417a4774d6f144cd2769c452f8aa23770eae08dca592 +SHA512 (cairomm-1.14.2.tar.xz.sha1) = 045fcd7380a2c63866edd10539a1daae6f36a22614b9fffaad60ea32a82b0ca221ba56596edf357d820cfe0880513ef61cb8bd34077e73bb94e51981b826bfd2 +SHA512 (cairomm-1.14.2.tar.xz.sha1.asc) = 992f2ab7be68ce7570ba49efa40cc12cc2d2ed13983127892f1335401a184f3cb35e1a4b422d7ff0d234a0085bbc0dac9c84f183133f40ac47e668fb6d21f3c6