diff --git a/.gitignore b/.gitignore index 86df98c..b0116e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,3 @@ /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/changelog b/changelog deleted file mode 100644 index c9b9216..0000000 --- a/changelog +++ /dev/null @@ -1,49 +0,0 @@ -* 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 cb94fbc..8b2b1dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (wlcs-1.8.1.tar.gz) = 5a76c9a5b88ab0627300bd9a3cb63ceaf68824a15b79a605aa5fd3a9b12e2877489a7150a21da68bda21434bd947e4f0d1ecc8b6d81ab9a1faf84ee75e6d1ca2 +SHA512 (wlcs-1.2.0.tar.xz) = 220cac5b9c41cadfabdf53f3bde5eec8f57ce0ad37334bf93cf04461377e17f2a705823933128cf54376c04005c483b8561ee733272abca26490bcccb55bdbfd diff --git a/wlcs.rpmlintrc b/wlcs.rpmlintrc deleted file mode 100644 index 499c66f..0000000 --- a/wlcs.rpmlintrc +++ /dev/null @@ -1,2 +0,0 @@ -# Not a real spelling error: -addFilter(r" spelling-error \('(implementors?)',") diff --git a/wlcs.spec b/wlcs.spec index 7dca8f9..f811c2f 100644 --- a/wlcs.spec +++ b/wlcs.spec @@ -1,111 +1,43 @@ -# 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 +%undefine __cmake_in_source_build + +%if 0%{?fedora} >= 30 +# asan doesn't work with gcc9 on s390x... +%ifarch s390 s390x +%bcond_with asan +%else +%bcond_without asan %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 -# 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} +%bcond_without ubsan + +%ifarch %{ix86} %{arm} s390 s390x +%bcond_with tsan +%else +%bcond_without tsan +%endif Name: wlcs -Version: 1.8.1 -Release: %autorelease +Version: 1.2.0 +Release: 1%{?dist} Summary: Wayland Conformance Test Suite -# 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 - -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. +License: GPLv2 or GPLv3 +URL: https://github.com/MirServer/%{name} +Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.xz BuildRequires: gcc BuildRequires: gcc-c++ - +BuildRequires: cmake +BuildRequires: ninja-build BuildRequires: boost-devel -BuildRequires: cmake(GTest) +BuildRequires: gtest-devel BuildRequires: gmock-devel BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-server) -BuildRequires: pkgconfig(wayland-scanner) - +BuildRequires: %{_bindir}/wayland-scanner +# Because for some reason they're not pulled in normally? +BuildRequires: libatomic %if %{with asan} BuildRequires: libasan %endif @@ -117,48 +49,83 @@ 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. - -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. +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 - 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 wlcs -Requires: wlcs%{?_isa} = %{version}-%{release} +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel -wlcs aspires to be a protocol-conformance-verifying test suite usable by -Wayland compositor implementors. +%{name} aspires to be a protocol-conformance-verifying test suite +usable by Wayland compositor implementors. -The wlcs-devel package contains libraries and header files for developing -Wayland compositor tests that use wlcs. +The %{name}-devel package contains libraries and header files for +developing Wayland compositor tests that use %{name}. +%prep +%autosetup -p1 + + +%build +%cmake -GNinja %{!?with_asan:-DWLCS_BUILD_ASAN=OFF} %{!?with_ubsan:-DWLCS_BUILD_UBSAN=OFF} %{!?with_tsan:-DWLCS_BUILD_TSAN=OFF} +%cmake_build + +%install +%cmake_install + %files %license COPYING.* %doc README.rst - -%{_libexecdir}/wlcs/ - +%{_libexecdir}/%{name}/ %files devel +%license COPYING.* %doc README.rst -%doc example/ - -%{_includedir}/wlcs/ -%{_libdir}/pkgconfig/wlcs.pc +%{_includedir}/%{name}/ +%{_libdir}/pkgconfig/%{name}.pc %changelog -%autochangelog +* 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