diff --git a/.gitignore b/.gitignore index a80b69f..86df98c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,10 @@ /wlcs-1.0.0.tar.xz /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/0001-Fix-project-version-in-CMake-134.patch b/0001-Fix-project-version-in-CMake-134.patch deleted file mode 100644 index 34c7b11..0000000 --- a/0001-Fix-project-version-in-CMake-134.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e1bf260b052178fd27feef49bccfe05714b41590 Mon Sep 17 00:00:00 2001 -From: Christopher James Halse Rogers -Date: Wed, 21 Aug 2019 21:32:17 +1000 -Subject: [PATCH] Fix project version in CMake (#134) - ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5fd1d4d..b421139 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -21,7 +21,7 @@ cmake_minimum_required(VERSION 3.5) - cmake_policy(SET CMP0015 NEW) - cmake_policy(SET CMP0022 NEW) - --project(wlcs VERSION 1.0.0) -+project(wlcs VERSION 1.1.0) - - add_definitions(-D_GNU_SOURCE) - add_definitions(-D_FILE_OFFSET_BITS=64) --- -2.21.0 - diff --git a/changelog b/changelog new file mode 100644 index 0000000..c9b9216 --- /dev/null +++ b/changelog @@ -0,0 +1,49 @@ +* Tue Nov 02 2021 Benjamin A. Beasley - 1.3.0-4 +- Rebuild for gtest 1.11.0 (fix RHBZ#2001358) +- Remove obsolete macros and workarounds +- Update architecture lists for sanitizers +- Audit source licenses and correct License from “GPLv2 or GPLv3” to “GPLv3” +- Drop license files from -devel since it depends on the base package +- Reduce macro indirection in the spec file +- Use more pkgconfig(…) and cmake(…) dependencies where appropriate +- Package README.rst in -devel package only, and also package example/ +- Fix a trivial typo in README.rst and the package description + +* Tue Nov 2 2021 Mamoru TASAKA - 1.3.0-3 +- Backport upstream patch to build with gtest 1.11 + +* Fri Jul 23 2021 Fedora Release Engineering - 1.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 24 2021 Neal Gompa - 1.3.0-1 +- Update to 1.3.0 (RH#1931861) + +* Wed Jan 27 2021 Fedora Release Engineering - 1.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Nov 1 2020 Neal Gompa - 1.2.0-1 +- Update to 1.2.0 (RH#1893144) + +* Sat Oct 17 2020 Jeff Law - 1.1.0-5 +- Use reference for loop variable to avoid range-loop-construct warning + +* Wed Jul 29 2020 Fedora Release Engineering - 1.1.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Apr 01 2020 Neal Gompa - 1.1.0-3 +- Rebuild for gtest 1.10.0 + +* Fri Jan 31 2020 Fedora Release Engineering - 1.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Aug 27 2019 Neal Gompa - 1.1.0-1 +- Update to 1.1.0 (RH#1742232) + +* Sat Jul 27 2019 Fedora Release Engineering - 1.0.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Jul 13 2019 Neal Gompa - 1.0.0-2 +- Fix pkgconfig file to point to runner binaries + +* Sat Jul 13 2019 Neal Gompa - 1.0.0-1 +- Initial packaging for Fedora diff --git a/sources b/sources index 4e48643..cb94fbc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (wlcs-1.1.0.tar.xz) = ce9e47cf6b6ad5c34bf82af128a453a278e40646aa02efe1acdf037bfc34ce0342f588014dfaaa6ab3823c5daaa5c5b9d3e49d401f7784ae4fe4e61efadb767b +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 4570b33..7dca8f9 100644 --- a/wlcs.spec +++ b/wlcs.spec @@ -1,45 +1,111 @@ - -%if 0%{?fedora} >= 30 -# asan doesn't work with gcc9 on s390x... -%ifarch s390 s390x -%bcond_with asan -%else -%bcond_without 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 -%bcond_without ubsan - -%ifarch %{ix86} %{arm} s390 s390x -%bcond_with tsan -%else -%bcond_without 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.1.0 -Release: 1%{?dist} +Version: 1.8.1 +Release: %autorelease Summary: Wayland Conformance Test Suite -License: GPLv2 or GPLv3 -URL: https://github.com/MirServer/%{name} -Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.xz +# The entire source is GPL-3.0-only, except: +# +# (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 +# +# (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. However, we encode both options in the SPDX expression. +# +# 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 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. +# +# 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 +Source: %{url}/archive/v%{version}/wlcs-%{version}.tar.gz -# Backports from upstream -Patch0001: 0001-Fix-project-version-in-CMake-134.patch +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: gtest-devel +BuildRequires: cmake(GTest) BuildRequires: gmock-devel BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-server) -BuildRequires: %{_bindir}/wayland-scanner -# Because for some reason they're not pulled in normally? -BuildRequires: libatomic +BuildRequires: pkgconfig(wayland-scanner) + %if %{with asan} BuildRequires: libasan %endif @@ -51,73 +117,48 @@ BuildRequires: libtsan %endif %description -wlcs aspires to be a protocol-conformance-verifying test suite -usable by Wayland compositor implementors. +wlcs aspires to be a protocol-conformance-verifying test suite usable by +Wayland compositor implementors. -It is growing out of porting the existing Weston test suite to -be run in Mir's test suite, but it is designed to be usable by -any compositor. +It is growing out of porting the existing Weston test suite to be run in Mir’s +test suite, but it is designed to be usable by any compositor. -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. +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 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 the test client to the +compositor and back again. -This makes both writing aid 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 the test client to the compositor and -back again. %package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: Development files for wlcs +Requires: wlcs%{?_isa} = %{version}-%{release} %description devel -%{name} aspires to be a protocol-conformance-verifying test suite -usable by Wayland compositor implementors. +wlcs aspires to be a protocol-conformance-verifying test suite usable by +Wayland compositor implementors. -The %{name}-devel package contains libraries and header files for -developing Wayland compositor tests that use %{name}. +The wlcs-devel package contains libraries and header files for developing +Wayland compositor tests that use wlcs. -%prep -# Version wasn't bumped before releasing... -%autosetup -n %{name}-1.0.0 -p1 - - -%build -mkdir -p %{_target_platform} -pushd %{_target_platform} -%cmake .. -GNinja %{!?with_asan:-DWLCS_BUILD_ASAN=OFF} %{!?with_ubsan:-DWLCS_BUILD_UBSAN=OFF} %{!?with_tsan:-DWLCS_BUILD_TSAN=OFF} -popd -%ninja_build -C %{_target_platform} - - -%install -%ninja_install -C %{_target_platform} - %files %license COPYING.* %doc README.rst -%{_libexecdir}/%{name}/ + +%{_libexecdir}/wlcs/ + %files devel -%license COPYING.* %doc README.rst -%{_includedir}/%{name}/ -%{_libdir}/pkgconfig/%{name}.pc +%doc example/ + +%{_includedir}/wlcs/ +%{_libdir}/pkgconfig/wlcs.pc %changelog -* Tue Aug 27 2019 Neal Gompa - 1.1.0-1 -- Update to 1.1.0 (RH#1742232) - -* Sat Jul 27 2019 Fedora Release Engineering - 1.0.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sat Jul 13 2019 Neal Gompa - 1.0.0-2 -- Fix pkgconfig file to point to runner binaries - -* Sat Jul 13 2019 Neal Gompa - 1.0.0-1 -- Initial packaging for Fedora +%autochangelog