3e410a0c3c
4.6.1638540755.a348c6d8 OBS-URL: https://build.opensuse.org/package/show/devel:openQA:tested/os-autoinst?expand=0&rev=559
263 lines
10 KiB
RPMSpec
263 lines
10 KiB
RPMSpec
#
|
|
# spec file for package os-autoinst
|
|
#
|
|
# Copyright (c) 2021 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: os-autoinst
|
|
Version: 4.6.1638540755.a348c6d8
|
|
Release: 0
|
|
Summary: OS-level test automation
|
|
License: GPL-2.0-or-later
|
|
Group: Development/Tools/Other
|
|
URL: https://github.com/os-autoinst/os-autoinst
|
|
Source0: %{name}-%{version}.tar.xz
|
|
%{perl_requires}
|
|
%if 0%{?suse_version} > 1500
|
|
# openSUSE Tumbleweed
|
|
%define opencv_require pkgconfig(opencv4)
|
|
%else
|
|
%define opencv_require pkgconfig(opencv)
|
|
%endif
|
|
# The following line is generated from dependencies.yaml
|
|
%define build_base_requires %opencv_require gcc-c++ perl(Pod::Html) pkg-config pkgconfig(fftw3) pkgconfig(libpng) pkgconfig(sndfile) pkgconfig(theoraenc)
|
|
# The following line is generated from dependencies.yaml
|
|
%define build_requires %build_base_requires cmake ninja
|
|
# The following line is generated from dependencies.yaml
|
|
%define main_requires git-core perl(B::Deparse) perl(Carp) perl(Carp::Always) perl(Class::Accessor::Fast) perl(Config) perl(Cpanel::JSON::XS) perl(Crypt::DES) perl(Cwd) perl(Data::Dumper) perl(Digest::MD5) perl(DynaLoader) perl(English) perl(Errno) perl(Exception::Class) perl(Exporter) perl(ExtUtils::testlib) perl(Fcntl) perl(File::Basename) perl(File::Find) perl(File::Path) perl(File::Temp) perl(File::Touch) perl(File::Which) perl(File::chdir) perl(IO::Handle) perl(IO::Scalar) perl(IO::Select) perl(IO::Socket) perl(IO::Socket::INET) perl(IO::Socket::UNIX) perl(IPC::Open3) perl(IPC::Run::Debug) perl(IPC::System::Simple) perl(List::MoreUtils) perl(List::Util) perl(Mojo::IOLoop::ReadWriteProcess) >= 0.26 perl(Mojo::JSON) perl(Mojo::Log) perl(Mojo::URL) perl(Mojo::UserAgent) perl(Mojolicious) >= 8.42 perl(Mojolicious::Lite) perl(Net::DBus) perl(Net::IP) perl(Net::SNMP) perl(Net::SSH2) perl(POSIX) perl(Scalar::Util) perl(Socket) perl(Socket::MsgHdr) perl(Term::ANSIColor) perl(Thread::Queue) perl(Time::HiRes) perl(Time::Moment) perl(Time::Seconds) perl(Try::Tiny) perl(XML::LibXML) perl(XML::SemanticDiff) perl(autodie) perl(base) perl(constant) perl(integer) perl(strict) perl(version) perl(warnings) perl-base
|
|
# all requirements needed by the tests, do not require on this in the package
|
|
# itself or any sub-packages
|
|
# SLE is missing spell check requirements
|
|
%if !0%{?is_opensuse}
|
|
%bcond_with spellcheck
|
|
%else
|
|
%bcond_without spellcheck
|
|
%endif
|
|
%if %{with spellcheck}
|
|
# The following line is generated from dependencies.yaml
|
|
%define spellcheck_requires aspell-en aspell-spell perl(Pod::Spell)
|
|
%else
|
|
%define spellcheck_requires %{nil}
|
|
%endif
|
|
%if 0%{?sle_version} < 150200 && !0%{?is_opensuse}
|
|
%bcond_without yamllint
|
|
%else
|
|
%bcond_with yamllint
|
|
%endif
|
|
%if %{with yamllint}
|
|
# The following line is generated from dependencies.yaml
|
|
%define yamllint_requires python3-yamllint
|
|
%else
|
|
%define yamllint_requires %{nil}
|
|
%endif
|
|
%if 0%{?suse_version} >= 1550
|
|
%bcond_without black
|
|
%else
|
|
%bcond_with black
|
|
%endif
|
|
%if %{with black}
|
|
# The following line is generated from dependencies.yaml
|
|
%define python_style_requires python3-black
|
|
%else
|
|
%define python_style_requires %{nil}
|
|
%endif
|
|
# The following line is generated from dependencies.yaml
|
|
%define test_base_requires %main_requires cpio perl(Benchmark) perl(Devel::Cover) perl(FindBin) perl(Pod::Coverage) perl(Test::Fatal) perl(Test::Mock::Time) perl(Test::MockModule) perl(Test::MockObject) perl(Test::MockRandom) perl(Test::Mojo) perl(Test::Most) perl(Test::Output) perl(Test::Pod) perl(Test::Strict) perl(Test::Warnings) >= 0.029 procps python3-setuptools qemu >= 4.0 qemu-tools qemu-x86
|
|
# The following line is generated from dependencies.yaml
|
|
%define test_version_only_requires perl(Mojo::IOLoop::ReadWriteProcess) >= 0.28
|
|
# The following line is generated from dependencies.yaml
|
|
%define test_requires %build_requires %spellcheck_requires %test_base_requires %yamllint_requires perl(Inline::Python) perl(YAML::PP)
|
|
# The following line is generated from dependencies.yaml
|
|
%define devel_requires %python_style_requires %test_requires ShellCheck perl(Devel::Cover) perl(Devel::Cover::Report::Codecov) perl(Perl::Tidy)
|
|
%define s390_zvm_requires /usr/bin/xkbcomp /usr/bin/Xvnc x3270 icewm xterm xterm-console xdotool fonts-config mkfontdir mkfontscale
|
|
BuildRequires: %test_requires %test_version_only_requires
|
|
Requires: %main_requires
|
|
Recommends: dumponlyconsole %s390_zvm_requires
|
|
Recommends: qemu >= 4.0.0
|
|
Recommends: qemu-tools
|
|
Recommends: tesseract-ocr
|
|
# Optional dependency for Python test API support
|
|
Recommends: perl(Inline::Python)
|
|
Requires(pre): %{_bindir}/getent
|
|
Requires(pre): %{_sbindir}/useradd
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
ExcludeArch: %{ix86}
|
|
|
|
%description
|
|
The OS-autoinst project aims at providing a means to run fully
|
|
automated tests. Especially to run tests of basic and low-level
|
|
operating system components such as bootloader, kernel, installer
|
|
and upgrade, which can not easily and safely be tested with other
|
|
automated testing frameworks. However, it can just as well be used
|
|
to test firefox and openoffice operation on top of a newly
|
|
installed OS.
|
|
|
|
%package devel
|
|
Summary: Development package pulling in all build+test dependencies
|
|
Group: Development/Tools/Other
|
|
Requires: %devel_requires
|
|
|
|
%description devel
|
|
Development package pulling in all build+test dependencies.
|
|
|
|
%package openvswitch
|
|
Summary: Openvswitch support for os-autoinst
|
|
Group: Development/Tools/Other
|
|
Requires: openvswitch
|
|
Requires: openvswitch-switch
|
|
Requires: os-autoinst
|
|
|
|
%description openvswitch
|
|
This package contains openvswitch support for os-autoinst.
|
|
|
|
%ifarch x86_64
|
|
%package qemu-kvm
|
|
Summary: Convenience package providing os-autoinst+qemu-kvm
|
|
Group: Development/Tools/Other
|
|
Requires: os-autoinst
|
|
Requires: qemu-kvm >= 4.0.0
|
|
Requires: qemu-tools
|
|
|
|
%description qemu-kvm
|
|
|
|
%package qemu-x86
|
|
Summary: Convenience package providing os-autoinst+qemu-x86
|
|
Group: Development/Tools/Other
|
|
Requires: os-autoinst
|
|
Requires: qemu-tools
|
|
Requires: qemu-x86 >= 4.0.0
|
|
|
|
%description qemu-x86
|
|
Convenience package providing os-autoinst and qemu-x86 dependencies.
|
|
%endif
|
|
|
|
%package swtpm
|
|
Summary: Convenience package providing os-autoinst+swtpm
|
|
Group: Development/Tools/Other
|
|
Requires: os-autoinst
|
|
Requires: swtpm
|
|
|
|
%description swtpm
|
|
Convenience package providing os-autoinst and swtpm dependencies.
|
|
|
|
%package s390-deps
|
|
Summary: Convenience package providing os-autoinst + s390 worker jumphost deps
|
|
Group: Development/Tools/Other
|
|
Requires: %s390_zvm_requires
|
|
Requires: os-autoinst
|
|
|
|
%description s390-deps
|
|
Convenience package providing os-autoinst + s390 worker jumphost dependencies.
|
|
|
|
%prep
|
|
%setup -q
|
|
sed -e 's,/bin/env python,/bin/python3,' -i crop.py
|
|
# Replace version number from git to what's reported by the package
|
|
sed -i 's/ my $thisversion = qx{git.*rev-parse HEAD}.*;/ my $thisversion = "%{version}";/' isotovideo
|
|
|
|
# don't require qemu within OBS
|
|
# and exclude known flaky tests in OBS check
|
|
# https://progress.opensuse.org/issues/52652
|
|
# 07-commands: https://progress.opensuse.org/issues/60755
|
|
for i in 07-commands 13-osutils 14-isotovideo 18-qemu-options 18-backend-qemu 99-full-stack; do
|
|
rm t/$i.t
|
|
done
|
|
|
|
%build
|
|
%define __builder ninja
|
|
%cmake -DOS_AUTOINST_DOC_DIR:STRING="%{_docdir}/%{name}" -DSYSTEMD_SERVICE_DIR:STRING="%{_unitdir}"
|
|
%cmake_build
|
|
|
|
%install
|
|
%cmake_install install-openvswitch
|
|
|
|
ls -lR %buildroot
|
|
find %{buildroot} -type f -name .packlist -print0 | xargs -0 --no-run-if-empty rm -f
|
|
find %{buildroot} -depth -type d -and -not -name distri -print0 | xargs -0 --no-run-if-empty rmdir 2>/dev/null || true
|
|
%perl_gen_filelist
|
|
#
|
|
# service symlink
|
|
mkdir -p %{buildroot}%{_sbindir}
|
|
ln -s ../sbin/service %{buildroot}%{_sbindir}/rcos-autoinst-openvswitch
|
|
#
|
|
# we need the stale symlinks to point to git
|
|
export NO_BRP_STALE_LINK_ERROR=yes
|
|
|
|
%check
|
|
export CI=1
|
|
# account for sporadic slowness in build environments
|
|
# https://progress.opensuse.org/issues/89059
|
|
export OPENQA_TEST_TIMEOUT_SCALE_CI=20
|
|
cd %{__builddir}
|
|
%cmake_build check-pkg-build
|
|
|
|
%pre openvswitch
|
|
%service_add_pre os-autoinst-openvswitch.service
|
|
|
|
%post openvswitch
|
|
%service_add_post os-autoinst-openvswitch.service
|
|
|
|
%preun openvswitch
|
|
%service_del_preun os-autoinst-openvswitch.service
|
|
|
|
%postun openvswitch
|
|
%service_del_postun os-autoinst-openvswitch.service
|
|
|
|
%files -f %{name}.files
|
|
%defattr(-,root,root)
|
|
%{_docdir}/os-autoinst
|
|
%dir %{_prefix}/lib/os-autoinst
|
|
%{_prefix}/lib/os-autoinst/videoencoder
|
|
%{_prefix}/lib/os-autoinst/basetest.pm
|
|
#
|
|
%{_prefix}/lib/os-autoinst/dmidata
|
|
#
|
|
%{_prefix}/lib/os-autoinst/bmwqemu.pm
|
|
%{_prefix}/lib/os-autoinst/commands.pm
|
|
%{_prefix}/lib/os-autoinst/distribution.pm
|
|
%{_prefix}/lib/os-autoinst/testapi.pm
|
|
%{_prefix}/lib/os-autoinst/mmapi.pm
|
|
%{_prefix}/lib/os-autoinst/lockapi.pm
|
|
%{_prefix}/lib/os-autoinst/cv.pm
|
|
%{_prefix}/lib/os-autoinst/ocr.pm
|
|
%{_prefix}/lib/os-autoinst/needle.pm
|
|
%{_prefix}/lib/os-autoinst/osutils.pm
|
|
%{_prefix}/lib/os-autoinst/signalblocker.pm
|
|
%{_prefix}/lib/os-autoinst/myjsonrpc.pm
|
|
%{_prefix}/lib/os-autoinst/backend
|
|
%{_prefix}/lib/os-autoinst/OpenQA
|
|
%{_prefix}/lib/os-autoinst/consoles
|
|
%{_prefix}/lib/os-autoinst/autotest.pm
|
|
%{_prefix}/lib/os-autoinst/*.py
|
|
%{_prefix}/lib/os-autoinst/check_qemu_oom
|
|
|
|
%files openvswitch
|
|
%defattr(-,root,root)
|
|
%{_prefix}/lib/os-autoinst/os-autoinst-openvswitch
|
|
%{_unitdir}/os-autoinst-openvswitch.service
|
|
%config /etc/dbus-1/system.d/org.opensuse.os_autoinst.switch.conf
|
|
%{_sbindir}/rcos-autoinst-openvswitch
|
|
|
|
%files devel
|
|
%ifarch x86_64
|
|
%files qemu-kvm
|
|
|
|
%files qemu-x86
|
|
%endif
|
|
|
|
%files s390-deps
|
|
|
|
%changelog
|