dejagnu/dejagnu.spec

112 lines
3.6 KiB
RPMSpec

#
# spec file for package dejagnu
#
# Copyright (c) 2024 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: dejagnu
Version: 1.6.3
Release: 0
Summary: Framework for Running Test Suites on Software Tools
License: GPL-3.0-or-later
Group: Development/Tools/Building
URL: https://www.gnu.org/software/dejagnu/
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz.sig
Source2: https://savannah.gnu.org/project/release-gpgkeys.php?group=dejagnu&download=1#/%{name}.keyring
Source3: site.exp
Patch0: testsuite-legacy.patch
BuildRequires: expect
BuildRequires: fdupes
BuildRequires: gcc-c++
Requires: expect
Requires: info
Requires: tcl
Requires(post): %{install_info_prereq}
Requires(preun):%{install_info_prereq}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
DejaGnu is a framework for testing other programs. Its purpose is to
provide a single front-end for all tests. Beyond this, DejaGnu offers
several advantages for testing:
1. The flexibility and consistency of the DejaGnu framework make it
easy to write tests for any program.
1. DejaGnu provides a layer of abstraction that allows you to write
tests that are portable to any host or target where a program
must be tested. For instance, a test for GDB can run (from any
Unix-based host) on any target architecture that DejaGnu
supports.
1. All tests have the same output format. This makes it easy to
integrate testing into other software development processes.
DejaGnu's output is designed to be parsed by other filtering
scripts and it is also human-readable.
DejaGnu is written in expect, which in turn uses "Tcl"--Tool command
language.
Running tests requires two things: the testing framework and the test
suites themselves.
%prep
%autosetup -p1
%build
# 49078@debbugs.gnu.org: bug in Expect 5.45.4 triggers a testsuite failure
# when building in source directory
mkdir build
cd build
%define _configure ../configure
%configure
make %{?_smp_mflags}
%check
make -C build check
%install
make -C build %{?_smp_mflags} DESTDIR=%{buildroot} install
install -D -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/dejagnu/site.exp
ln -s -f %{_sysconfdir}/dejagnu/site.exp %{buildroot}%{_datadir}/dejagnu/site.exp
%fdupes -s %{buildroot}
%post
%install_info --info-dir=%{_infodir} %{_infodir}/dejagnu.info%{ext_info}
%preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/dejagnu.info%{ext_info}
%files
%defattr(-, root, root)
%license COPYING
%doc ChangeLog NEWS README AUTHORS TODO
%dir %{_datadir}/dejagnu
%dir %{_sysconfdir}/dejagnu
%{_bindir}/dejagnu
%{_bindir}/runtest
%{_mandir}/man1/dejagnu.1%{ext_man}
%{_mandir}/man1/dejagnu-help.1%{ext_man}
%{_mandir}/man1/dejagnu-report-card.1%{ext_man}
%{_mandir}/man1/runtest.1%{ext_man}
%{_infodir}/dejagnu.info%{ext_info}
%{_includedir}/*
%config(noreplace) %{_sysconfdir}/dejagnu/site.exp
%{_datadir}/dejagnu/*
%changelog