diff --git a/.gitignore b/.gitignore index f2ea7d9..86df98c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,9 @@ /wlcs-1.1.0.tar.xz /wlcs-1.2.0.tar.xz /wlcs-1.3.0.tar.xz +/wlcs-1.4.0.tar.xz +/wlcs-1.5.0.tar.gz +/wlcs-1.6.0.tar.gz +/wlcs-1.6.1.tar.gz +/wlcs-1.7.0.tar.gz +/wlcs-1.8.1.tar.gz diff --git a/215.patch b/215.patch deleted file mode 100644 index 6dfbf93..0000000 --- a/215.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 6aa1becb3cee328f715af76d16de544974b6646e Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Tue, 2 Nov 2021 13:40:07 -0400 -Subject: [PATCH] =?UTF-8?q?Fix=20a=20trivial=20typo=20(=E2=80=9Caid?= - =?UTF-8?q?=E2=80=9D=20for=20=E2=80=9Cand=E2=80=9D)=20in=20README.rst?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - README.rst | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/README.rst b/README.rst -index 50f8ec1f..7656dc30 100644 ---- a/README.rst -+++ b/README.rst -@@ -25,7 +25,7 @@ happens-before ordering available. - - Instead, ``wlcs`` relies on compositors providing an integration module, - providing ``wlcs`` with API hooks to start a compositor, connect a client, --move a window, and so on. This makes both writing aid debugging tests easier - -+move a window, and so on. This makes both writing and debugging tests easier - - the tests are (generally) in the same address space as the compositor, so there - is a consistent global clock available, it's easier to poke around in - compositor internals, and standard debugging tools can follow control flow from diff --git a/f6ff93f7b7db154b7899f415ec67677e6ddd7ff5.patch b/f6ff93f7b7db154b7899f415ec67677e6ddd7ff5.patch deleted file mode 100644 index 31981c6..0000000 --- a/f6ff93f7b7db154b7899f415ec67677e6ddd7ff5.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f6ff93f7b7db154b7899f415ec67677e6ddd7ff5 Mon Sep 17 00:00:00 2001 -From: Victor Berger -Date: Thu, 8 Jul 2021 19:39:30 +0200 -Subject: [PATCH] Fix build when using GTest-1.11 - -Some change in GTest 1.11 headers caused a conflict on the name -`Pointer`. Removing the unconditional import of namespace `testing` -in favor of individual imports of the used items fixes it. - -cc #205 ---- - tests/pointer_constraints.cpp | 6 +++++- - tests/relative_pointer.cpp | 6 +++++- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/tests/pointer_constraints.cpp b/tests/pointer_constraints.cpp -index d306710..6ee856f 100644 ---- a/tests/pointer_constraints.cpp -+++ b/tests/pointer_constraints.cpp -@@ -24,7 +24,11 @@ - - #include - --using namespace testing; -+using testing::AnyNumber; -+using testing::Eq; -+using testing::Ne; -+using testing::NotNull; -+ - using namespace wlcs; - - namespace -diff --git a/tests/relative_pointer.cpp b/tests/relative_pointer.cpp -index c33316c..c5c5358 100644 ---- a/tests/relative_pointer.cpp -+++ b/tests/relative_pointer.cpp -@@ -22,7 +22,11 @@ - - #include - --using namespace testing; -+using testing::AnyNumber; -+using testing::IsTrue; -+using testing::NotNull; -+using testing::_; -+ - using namespace wlcs; - - namespace diff --git a/sources b/sources index 483acbf..cb94fbc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (wlcs-1.3.0.tar.xz) = 3c4ffd9fa1a087fe58912792f0747884bc42bb344be07e937079d399d2bf85c0e9e445880d8e503bad0028c48ffbf2338174c3c74faee5057bf62ff7f121f0de +SHA512 (wlcs-1.8.1.tar.gz) = 5a76c9a5b88ab0627300bd9a3cb63ceaf68824a15b79a605aa5fd3a9b12e2877489a7150a21da68bda21434bd947e4f0d1ecc8b6d81ab9a1faf84ee75e6d1ca2 diff --git a/wlcs.rpmlintrc b/wlcs.rpmlintrc new file mode 100644 index 0000000..499c66f --- /dev/null +++ b/wlcs.rpmlintrc @@ -0,0 +1,2 @@ +# Not a real spelling error: +addFilter(r" spelling-error \('(implementors?)',") diff --git a/wlcs.spec b/wlcs.spec index 04d12c5..7dca8f9 100644 --- a/wlcs.spec +++ b/wlcs.spec @@ -1,98 +1,104 @@ -# List copied from gcc.spec -# Current as of 11.2.1 (line 59) -# Note that this covers all Fedora primary architectures. -%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 -%bcond_without asan -%else -%bcond_with asan +# Lists copied from gcc.spec +# Current as of 16.0.1 (lines 83, 103, and 93, respectively). +# Note that asan and ubsan are available on all Fedora primary architectures; +# tsan is missing on i686 only. +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64 +%global arch_has_asan 1 +%endif +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64 +%global arch_has_ubsan 1 +%endif +%ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64 +%global arch_has_tsan 1 %endif -# List copied from gcc.spec -# Current as of 11.2.1 (line 74) -# Note that this covers all Fedora primary architectures. -%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 -%bcond_without ubsan -%else -%bcond_with ubsan -%endif - -# List copied from gcc.spec -# Current as of 11.2.1 (line 64) -%ifarch x86_64 ppc64 ppc64le aarch64 -%bcond_without tsan -%else -%bcond_with tsan -%endif +# By default, enable sanitizers whenever they are available on the architecture. +%bcond asan 0%{?arch_has_asan:1} +%bcond ubsan 0%{?arch_has_ubsan:1} +%bcond tsan 0%{?arch_has_tsan:1} Name: wlcs -Version: 1.3.0 +Version: 1.8.1 Release: %autorelease Summary: Wayland Conformance Test Suite -# The entire source is GPLv3, except: +# The entire source is GPL-3.0-only, except: # -# (GPLv2 or GPLv3): +# (GPL-2.0-only OR GPL-3.0-only): # - CMakeLists.txt # > Build system file that does not contribute to the licenses of the binary # RPMs # -# (LGPLv2 or LGPLv3): +# (LGPL-2.0-only OR LGPL-3.0-only): +# - include/geometry/* # - include/mutex.h # - include/shared_library.h # - src/helpers.cpp # - src/shared_library.cpp # > Since (L)GPLv2-only code is not compatible with (L)GPLv3 or (L)GPLv3+ code, # and these sources are combined with GPLv3 code, the LGPLv3 option is used -# in this package. +# in this package. However, we encode both options in the SPDX expression. # -# GPLv2+: +# GPL-2.0-or-later # - debian/* # > Not used in this package # # MIT: # - src/protocol/gtk-primary-selection.xml +# - src/protocol/input-method-unstable-v1.xml # - src/protocol/pointer-constraints-unstable-v1.xml # - src/protocol/primary-selection-unstable-v1.xml # - src/protocol/relative-pointer-unstable-v1.xml # - src/protocol/wayland.xml +# - src/protocol/wlr-virtual-pointer-unstable-v1.xml # - src/protocol/xdg-output-unstable-v1.xml # - src/protocol/xdg-shell-unstable-v6.xml # - src/protocol/xdg-shell.xml # - tests/test_bad_buffer.cpp # - tests/test_surface_events.cpp +# - tests/text_input_v3_with_input_method_v2.cpp +# - tests/wlr_virtual_pointer_v1.cpp # - tests/xdg_popup_v6.cpp # - tests/xdg_surface_stable.cpp # - tests/xdg_surface_v6.cpp # - tests/xdg_toplevel_stable.cpp # - tests/xdg_toplevel_v6.cpp -# > Files in tests/ are all test code that is not installed (so does not -# contribute to the licenses of the binary RPMs). Files in src/protocol/ are +# > Files in tests/ are included in the test-suite executables and do +# contribute to the licenses of the binary RPMs. Files in src/protocol/ are # used as inputs to “wayland-scanner” to generate C source files and headers, # and are not directly included in the binary RPMs. # -# Thus, files under GPLv3 and (LGPLv2 or LGPLv3) licenses contribute to the -# installed binaries, and the effective license remains GPLv3. -License: GPLv3 +# HPND-sell-variant: +# - src/protocol/text-input-unstable-v2.xml +# > Files in src/protocol/ are used as inputs to “wayland-scanner” to generate +# C source files and headers, and are not directly included in the binary +# RPMs. +License: GPL-3.0-only AND (LGPL-2.0-only OR LGPL-3.0-only) AND MIT +SourceLicense: %{shrink: + %{license} AND + (GPL-2.0-only OR GPL-3.0-only) AND + GPL-2.0-or-later AND + HPND-sell-variant + } URL: https://github.com/MirServer/wlcs -Source0: %{url}/releases/download/v%{version}/wlcs-%{version}.tar.xz -# Backport upstream commit f6ff93f7b7db154b7899f415ec67677e6ddd7ff5: -# -# Fix build when using GTest-1.11 -# -# Some change in GTest 1.11 headers caused a conflict on the name -# `Pointer`. Removing the unconditional import of namespace `testing` -# in favor of individual imports of the used items fixes it. -Patch0: %{url}/commit/f6ff93f7b7db154b7899f415ec67677e6ddd7ff5.patch -# Fix a trivial typo (“aid” for “and”) in README.rst -# https://github.com/MirServer/wlcs/pull/215 -Patch1: %{url}/pull/215.patch +Source: %{url}/archive/v%{version}/wlcs-%{version}.tar.gz + +BuildSystem: cmake +# WLCS_FATAL_COMPILE_WARNINGS: makes sense for upstream CI, but too strict for +# downstream packaging +BuildOption(conf): %{shrink: + -DWLCS_BUILD_ASAN=%{?with_asan:ON}%{?!with_asan:OFF} + -DWLCS_BUILD_TSAN=%{?with_tsan:ON}%{?!with_tsan:OFF} + -DWLCS_BUILD_UBSAN=%{?with_ubsan:ON}%{?!with_ubsan:OFF} + -DWLCS_FATAL_COMPILE_WARNINGS:BOOL=OFF + } +# We have built a test suite for compositors, but we have no tests for the test +# suite, i.e., %%ctest would find no tests and there is nothing useful we could +# do in %%check. BuildRequires: gcc BuildRequires: gcc-c++ -BuildRequires: cmake -BuildRequires: ninja-build - BuildRequires: boost-devel BuildRequires: cmake(GTest) BuildRequires: gmock-devel @@ -126,6 +132,7 @@ clock available, it’s easier to poke around in compositor internals, and standard debugging tools can follow control flow from the test client to the compositor and back again. + %package devel Summary: Development files for wlcs Requires: wlcs%{?_isa} = %{version}-%{release} @@ -138,25 +145,6 @@ The wlcs-devel package contains libraries and header files for developing Wayland compositor tests that use wlcs. -%prep -%autosetup -p1 -# -Werror makes sense for upstream CI, but is too strict for packaging -sed -r -i 's/-Werror //' CMakeLists.txt - - -%build -%cmake \ - -DWLCS_BUILD_ASAN=%{?with_asan:ON}%{?!with_asan:OFF} \ - -DWLCS_BUILD_TSAN=%{?with_tsan:ON}%{?!with_tsan:OFF} \ - -DWLCS_BUILD_UBSAN=%{?with_ubsan:ON}%{?!with_ubsan:OFF} \ - -GNinja -%cmake_build - - -%install -%cmake_install - - %files %license COPYING.* %doc README.rst @@ -166,7 +154,7 @@ sed -r -i 's/-Werror //' CMakeLists.txt %files devel %doc README.rst -%doc example +%doc example/ %{_includedir}/wlcs/ %{_libdir}/pkgconfig/wlcs.pc