File dmtcp.spec of Package dmtcp

#
# spec file for package dmtcp
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2012-2014 Kapil Arya
#
# 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 http://bugs.opensuse.org/
#


Name:           dmtcp
Version:        2.5.2
Release:        0
Summary:        Checkpoint/Restart functionality for Linux processes
License:        LGPL-3.0+
Group:          System/Packages
Url:            https://github.com/dmtcp/dmtcp
Source0:        https://github.com/%{name}/%{name}/archive/%{version}.tar.gz
Patch0:         dmtcp-overflow.patch
BuildRequires:  gcc
BuildRequires:  gcc-c++
BuildRequires:  glibc-devel
BuildRequires:  python2-base
# This package is functional only on i386 and x86_64 architectures.
ExclusiveArch:  %{ix86} x86_64

%description
DMTCP (Distributed MultiThreaded Checkpointing) is a tool to transparently
checkpoint the state of an arbitrary group of programs including
multi-threaded and distributed computations.  It operates directly on the user
binary executable, with no Linux kernel modules or other kernel mods.

Among the applications supported by DMTCP are Open MPI, MATLAB, Python, Perl,
and many programming languages and shell scripting languages.  DMTCP also
supports GNU screen sessions, including vim/cscope and emacs. With the use of
TightVNC, it can also checkpoint and restart X-Window applications, as long as
they do not use extensions (e.g.: no OpenGL, no video).

This package contains DMTCP binaries.

%package -n dmtcp-devel
Summary:        DMTCP developer package
Group:          Development/Libraries/Other
Requires:       dmtcp = %{version}

%description -n dmtcp-devel
This package provides dmtcp.h for developing plugins.

%prep
%setup -q
%patch0 -p1

%build
%configure \
    --docdir=%{_docdir}/%{name} \
    --disable-option-checking
make %{?_smp_mflags}

%check
make %{?_smp_mflags} tests

# Test suite disabled for non-x86_64 architectures.
%ifarch x86_64
# Disable syscall-tester, file, and posix-mq tests until fixed upstream.
sed -i -e's:\(runTest("syscall-tester"\):pass #\1:' test/autotest.py
sed -i -e's:\(runTest("file\):pass #\1:' test/autotest.py
sed -i -e's:\(runTest("posix-mq\):pass #\1:' test/autotest.py
make %{?_smp_mflags} AUTOTEST="--retry-once" check || :
%endif

%install
%make_install

%files
%{_bindir}/dmtcp_*
%{_bindir}/mtcp_restart
%{_libdir}/%{name}
%{_mandir}/man1/*
%{_docdir}/%{name}

%files -n dmtcp-devel
%{_includedir}/dmtcp.h

%changelog
openSUSE Build Service is sponsored by