diff --git a/.gitignore b/.gitignore index 555c23d..86df98c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,7 @@ /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/sources b/sources index 0527ac4..cb94fbc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (wlcs-1.5.0.tar.gz) = 2d05f62ccfbbd0c4300556e7713b086663678b2ee87fe8297cb7c81a482d23fa7948034da494f91609b954c11e350d4e52837217fbafeaba2a694de7828480b6 +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 192a0a2..7dca8f9 100644 --- a/wlcs.spec +++ b/wlcs.spec @@ -1,31 +1,24 @@ -# List copied from gcc.spec -# Current as of 12.2.1 (line 60) -# 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 12.2.1 (line 75) -# 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 12.2.1 (line 65) -%ifarch x86_64 ppc64 ppc64le aarch64 s390x -%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.5.0 +Version: 1.8.1 Release: %autorelease Summary: Wayland Conformance Test Suite @@ -37,6 +30,7 @@ Summary: Wayland Conformance Test Suite # RPMs # # (LGPL-2.0-only OR LGPL-3.0-only): +# - include/geometry/* # - include/mutex.h # - include/shared_library.h # - src/helpers.cpp @@ -45,12 +39,13 @@ Summary: Wayland Conformance Test Suite # and these sources are combined with GPLv3 code, the LGPLv3 option is used # 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 @@ -68,20 +63,42 @@ Summary: Wayland Conformance Test Suite # - 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. -License: GPL-3.0-only AND (LGPL-2.0-only OR LGPL-3.0-only) +# +# 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}/archive/v%{version}/wlcs-%{version}.tar.gz +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 @@ -128,29 +145,6 @@ The wlcs-devel package contains libraries and header files for developing Wayland compositor tests that use wlcs. -%prep -%autosetup -# -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 - - -%check -%ctest - - %files %license COPYING.* %doc README.rst