3eb2210
# List copied from gcc.spec
3eb2210
# Current as of 11.2.1 (line 59)
3eb2210
# Note that this covers all Fedora primary architectures.
3eb2210
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
c38221d
%bcond_without asan
3eb2210
%else
3eb2210
%bcond_with asan
8908eb2
%endif
8908eb2
3eb2210
# List copied from gcc.spec
3eb2210
# Current as of 11.2.1 (line 74)
3eb2210
# Note that this covers all Fedora primary architectures.
3eb2210
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
c38221d
%bcond_without ubsan
c38221d
%else
3eb2210
%bcond_with ubsan
3eb2210
%endif
3eb2210
3eb2210
# List copied from gcc.spec
3eb2210
# Current as of 11.2.1 (line 64)
3eb2210
%ifarch x86_64 ppc64 ppc64le aarch64
c38221d
%bcond_without tsan
3eb2210
%else
3eb2210
%bcond_with tsan
c38221d
%endif
c38221d
9773b06
Name:           wlcs
f428cd7
Version:        1.3.0
4073d69
Release:        %autorelease
9773b06
Summary:        Wayland Conformance Test Suite
9773b06
3eb2210
# The entire source is GPLv3, except:
3eb2210
#
3eb2210
# (GPLv2 or GPLv3):
3eb2210
#   - CMakeLists.txt
3eb2210
# > Build system file that does not contribute to the licenses of the binary
3eb2210
#   RPMs
3eb2210
#
3eb2210
# (LGPLv2 or LGPLv3):
3eb2210
#   - include/mutex.h
3eb2210
#   - include/shared_library.h
3eb2210
#   - src/helpers.cpp
3eb2210
#   - src/shared_library.cpp
3eb2210
# > Since (L)GPLv2-only code is not compatible with (L)GPLv3 or (L)GPLv3+ code,
3eb2210
#   and these sources are combined with GPLv3 code, the LGPLv3 option is used
3eb2210
#   in this package.
3eb2210
#
3eb2210
# GPLv2+:
3eb2210
#   - debian/*
3eb2210
# > Not used in this package
3eb2210
#
3eb2210
# MIT:
3eb2210
#   - src/protocol/gtk-primary-selection.xml
3eb2210
#   - src/protocol/pointer-constraints-unstable-v1.xml
3eb2210
#   - src/protocol/primary-selection-unstable-v1.xml
3eb2210
#   - src/protocol/relative-pointer-unstable-v1.xml
3eb2210
#   - src/protocol/wayland.xml
3eb2210
#   - src/protocol/xdg-output-unstable-v1.xml
3eb2210
#   - src/protocol/xdg-shell-unstable-v6.xml
3eb2210
#   - src/protocol/xdg-shell.xml
3eb2210
#   - tests/test_bad_buffer.cpp
3eb2210
#   - tests/test_surface_events.cpp
3eb2210
#   - tests/xdg_popup_v6.cpp
3eb2210
#   - tests/xdg_surface_stable.cpp
3eb2210
#   - tests/xdg_surface_v6.cpp
3eb2210
#   - tests/xdg_toplevel_stable.cpp
3eb2210
#   - tests/xdg_toplevel_v6.cpp
3eb2210
# > Files in tests/ are all test code that is not installed (so does not
3eb2210
#   contribute to the licenses of the binary RPMs). Files in src/protocol/ are
3eb2210
#   used as inputs to “wayland-scanner” to generate C source files and headers,
3eb2210
#   and are not directly included in the binary RPMs.
3eb2210
#
3eb2210
# Thus, files under GPLv3 and (LGPLv2 or LGPLv3) licenses contribute to the
3eb2210
# installed binaries, and the effective license remains GPLv3.
3eb2210
License:        GPLv3
3eb2210
URL:            https://github.com/MirServer/wlcs
3eb2210
Source0:        %{url}/releases/download/v%{version}/wlcs-%{version}.tar.xz
3eb2210
# Backport upstream commit f6ff93f7b7db154b7899f415ec67677e6ddd7ff5:
3eb2210
#
3eb2210
# Fix build when using GTest-1.11
3eb2210
#
3eb2210
# Some change in GTest 1.11 headers caused a conflict on the name
3eb2210
# `Pointer`. Removing the unconditional import of namespace `testing`
3eb2210
# in favor of individual imports of the used items fixes it.
3eb2210
Patch0:         %{url}/commit/f6ff93f7b7db154b7899f415ec67677e6ddd7ff5.patch
3eb2210
# Fix a trivial typo (“aid” for “and”) in README.rst
3eb2210
# https://github.com/MirServer/wlcs/pull/215
3eb2210
Patch1:         %{url}/pull/215.patch
9773b06
9773b06
BuildRequires:  gcc
9773b06
BuildRequires:  gcc-c++
3eb2210
9773b06
BuildRequires:  cmake
c018cc5
BuildRequires:  ninja-build
3eb2210
9773b06
BuildRequires:  boost-devel
3eb2210
BuildRequires:  cmake(GTest)
9773b06
BuildRequires:  gmock-devel
9773b06
BuildRequires:  pkgconfig(wayland-client)
9773b06
BuildRequires:  pkgconfig(wayland-server)
3eb2210
BuildRequires:  pkgconfig(wayland-scanner)
3eb2210
c38221d
%if %{with asan}
9773b06
BuildRequires:  libasan
c38221d
%endif
c38221d
%if %{with ubsan}
9773b06
BuildRequires:  libubsan
c38221d
%endif
c38221d
%if %{with tsan}
9773b06
BuildRequires:  libtsan
c38221d
%endif
9773b06
9773b06
%description
3eb2210
wlcs aspires to be a protocol-conformance-verifying test suite usable by
3eb2210
Wayland compositor implementors.
9773b06
3eb2210
It is growing out of porting the existing Weston test suite to be run in Mir’s
3eb2210
test suite, but it is designed to be usable by any compositor.
9773b06
3eb2210
wlcs relies on compositors providing an integration module, providing wlcs with
3eb2210
API hooks to start a compositor, connect a client, move a window, and so on.
9773b06
3eb2210
This makes both writing and debugging tests easier - the tests are (generally)
3eb2210
in the same address space as the compositor, so there is a consistent global
3eb2210
clock available, it’s easier to poke around in compositor internals, and
3eb2210
standard debugging tools can follow control flow from the test client to the
3eb2210
compositor and back again.
9773b06
9773b06
%package        devel
3eb2210
Summary:        Development files for wlcs
3eb2210
Requires:       wlcs%{?_isa} = %{version}-%{release}
9773b06
9773b06
%description    devel
3eb2210
wlcs aspires to be a protocol-conformance-verifying test suite usable by
3eb2210
Wayland compositor implementors.
9773b06
3eb2210
The wlcs-devel package contains libraries and header files for developing
3eb2210
Wayland compositor tests that use wlcs.
9773b06
9773b06
9773b06
%prep
ba1edc2
%autosetup -p1
9773b06
9773b06
9773b06
%build
3eb2210
%cmake \
3eb2210
    -DWLCS_BUILD_ASAN=%{?with_asan:ON}%{?!with_asan:OFF} \
3eb2210
    -DWLCS_BUILD_TSAN=%{?with_tsan:ON}%{?!with_tsan:OFF} \
3eb2210
    -DWLCS_BUILD_UBSAN=%{?with_ubsan:ON}%{?!with_ubsan:OFF} \
3eb2210
    -GNinja
2fff743
%cmake_build
9773b06
3eb2210
9773b06
%install
2fff743
%cmake_install
9773b06
3eb2210
9773b06
%files
9773b06
%license COPYING.*
9773b06
%doc README.rst
3eb2210
3eb2210
%{_libexecdir}/wlcs/
3eb2210
9773b06
9773b06
%files devel
9773b06
%doc README.rst
3eb2210
%doc example
3eb2210
3eb2210
%{_includedir}/wlcs/
3eb2210
%{_libdir}/pkgconfig/wlcs.pc
9773b06
9773b06
9773b06
%changelog
4073d69
%autochangelog