SHA256
1
0
forked from pool/dapl

Accepting request 243995 from OFED:Factory

Fix all issues with dapl

OBS-URL: https://build.opensuse.org/request/show/243995
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dapl?expand=0&rev=1
This commit is contained in:
Ludwig Nussel 2014-08-11 08:07:21 +00:00 committed by Git OBS Bridge
commit 4b801c3ccb
18 changed files with 1646 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

2
baselibs.conf Normal file
View File

@ -0,0 +1,2 @@
libdat2
dapl-devel

View File

@ -0,0 +1,23 @@
From: Pradeep Satyanarayana <pradeep@us.ibm.com>
Subject: [PATCH] Hang in dat_ia_open()
Fixes hang due to erroneous invocation of rdma_destroy_id() twice
in a row
Acked-by: John Jolly <jjolly@suse.de>
---
dapl/openib_cma/device.c | 1 -
1 file changed, 1 deletion(-)
Index: dapl/openib_cma/device.c
===================================================================
--- dapl/openib_cma/device.c.orig 2011-08-19 19:09:23.000000000 +0200
+++ dapl/openib_cma/device.c 2012-05-09 15:10:12.629247619 +0200
@@ -289,7 +289,6 @@ DAT_RETURN dapls_ib_open_hca(IN IB_HCA_N
}
ret = rdma_bind_addr(cm_id, (struct sockaddr *)&hca_ptr->hca_address);
if ((ret) || (cm_id->verbs == NULL)) {
- rdma_destroy_id(cm_id);
dapl_log(DAPL_DBG_TYPE_ERR,
" open_hca: rdma_bind ERR %s."
" Is %s configured?\n", strerror(errno), hca_name);

3
dapl-2.0.42.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:79faba77b88acf94cb8fa8d1ecd4b0dd68bcd8eccba170536e8417ac44f6722b
size 806308

56
dapl-autotools.patch Normal file
View File

@ -0,0 +1,56 @@
From: Philipp Thomas <pth@suse.de>
Date: 2014-01-21 18:40:02+01:00
Subject: Enable running autoreconf
References:
Upstream:
Adapt configure.in and Makefile.am so that autoreconf
complains less.
configure.in | 5 +++--
test/dapltest/Makefile.am | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
Index: configure.in
===================================================================
--- configure.in.orig 2014-05-05 18:11:33.000000000 +0200
+++ configure.in 2014-06-25 18:11:15.740970867 +0200
@@ -5,7 +5,7 @@ AC_INIT(dapl, 2.0.42, linux-rdma@vger.ke
AC_CONFIG_SRCDIR([dat/udat/udat.c])
AC_CONFIG_AUX_DIR(config)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(dapl, 2.0.42)
+AM_INIT_AUTOMAKE([-Wall foreign])
AM_PROG_LIBTOOL
@@ -17,6 +17,7 @@ AC_ARG_ENABLE(libcheck, [ --disable-lib
dnl Checks for programs
AC_PROG_CC
+AM_PROG_CC_C_O
dnl Checks for libraries
if test "$disable_libcheck" != "yes"
@@ -63,7 +64,7 @@ AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, t
dnl Support debug mode build - if enable-debug provided the DEBUG variable is set
AC_ARG_ENABLE(debug,
-[ --enable-debug Turn on debug mode, default=off],
+ AS_HELP_STRING([--enable-debug], [Turn on debug mode, default=off]),
[case "${enableval}" in
yes) debug=true ;;
no) debug=false ;;
Index: test/dapltest/Makefile.am
===================================================================
--- test/dapltest/Makefile.am.orig 2014-04-07 19:27:35.000000000 +0200
+++ test/dapltest/Makefile.am 2014-06-25 18:10:20.444662166 +0200
@@ -8,7 +8,7 @@ AM_CFLAGS = -g -Wall -D_GNU_SOURCE
dapltest_CFLAGS = $(AM_FLAGS) $(XFLAGS)
-INCLUDES = -I include \
+AM_CPPFLAGS = -I include \
-I mdep/linux \
-I $(srcdir)/../../dat/include

222
dapl-debug.changes Normal file
View File

@ -0,0 +1,222 @@
-------------------------------------------------------------------
Fri Aug 8 19:06:02 CEST 2014 - pth@suse.de
- Add dapl-rename_dtest.patch to rename dtest to dpltest because
of name clash with dateutils.
- Also rename the man page for dtest.
- Make dapl-devel and dapl-debug-devel obsolete each other.
-------------------------------------------------------------------
Fri Jun 27 14:11:27 CEST 2014 - pth@suse.de
- Add baselibs.conf and dapl-rpmlintrc as source.
- Fix type punning in cm.c
-------------------------------------------------------------------
Wed Jun 25 11:20:11 CEST 2014 - pth@suse.de
- Remove dapl-2.0.13-build_error.patch as it isn't needed anymore.
-------------------------------------------------------------------
Wed Jun 25 11:08:45 CEST 2014 - pth@suse.de
- Provide fuill source URL
-------------------------------------------------------------------
Thu Feb 13 16:43:01 CET 2014 - pth@suse.de
- Update to 2.0.40 (fate#315488):
dist: ib collective extension include files missing
dapltest: the quit command is missing changes for -n option.
Server-port was not being set properly during param init phase
on the client side.
dat.conf: remove v1, add Mellanox Connect-IB and Intel Xeon Phi
MIC.
NULL undefined on Fedora, incorrectly using kernel stddef.h
-------------------------------------------------------------------
Tue Jan 21 18:46:54 CET 2014 - pth@suse.de
- Add dapl-autotools.patch to make autoreconf complain less.
-------------------------------------------------------------------
Fri Jan 17 12:13:40 CET 2014 - pth@suse.de
- Update to 2.0.39 from 3.12 daily snapshot.
- Include dapl-s390_support.patch from IBM for s390 support.
- Remove now unneeded patches:
dapl-2.0.13-build_error.patch
- Use script to generate spec and changes for dapl-debug from the
dapl files.
-------------------------------------------------------------------
Wed Jan 15 13:47:59 CET 2014 - pth@suse.de
- Build for s390x
-------------------------------------------------------------------
Thu Sep 13 13:59:23 CEST 2012 - pth@suse.de
- Add another filter to dapl-rpmlintrc as the packages for
the runtime library are named differently but contain a library
that's named the same.
-------------------------------------------------------------------
Wed Sep 5 18:12:59 CEST 2012 - pth@suse.de
- Reinstate the arch exclusion of s390(x).
- Recompress with bzip2.
-------------------------------------------------------------------
Wed Sep 5 14:38:57 UTC 2012 - jengelh@inai.de
- Remove redundant tags/sections from specfile
- Remove unjustified s390* arch exclusion
- Implement shared library policy
-------------------------------------------------------------------
Thu Aug 30 14:45:19 CEST 2012 - pth@suse.de
- Update to OFED 1.5.4.1 (dapl unchanged).
- Rename the package with tracing enabled dapl-tracing.
- Adapt baselibs.conf to new packages and names.
- Use one .spec and .changes file and create the -tracing
variants with pre_checkin.sh.
- Update FSF address in LICENSE3.txt.
-------------------------------------------------------------------
Tue Jul 3 18:19:08 CEST 2012 - pth@suse.de
- Put shared libs into a versioned package.
- Fix man pages
- Add a rpmlintrc to shut up warnings that can only be solved upstream.
-------------------------------------------------------------------
Thu Jun 28 18:55:46 CEST 2012 - pth@suse.de
- Use unions for type punning (dapl-type_punning.patch).
- Include stddef.h to get NULL defined.
- Require automake, autoconf and libtool.
- Provide obsoleted items.
-------------------------------------------------------------------
Wed May 9 13:48:37 CEST 2012 - pth@suse.de
- Update to OFED 1.5.4
- Don't recompress the tarball.
- Remove unneeded patches and adapt the remaining ones.
-------------------------------------------------------------------
Mon Jun 20 16:41:37 CEST 2011 - pth@suse.de
- Sed is also needed.
-------------------------------------------------------------------
Thu Jun 9 18:45:01 CEST 2011 - pth@suse.de
- After last change dapl needs cat so add prereq (bnc#688511).
-------------------------------------------------------------------
Mon Mar 7 16:15:35 CET 2011 - pth@suse.de
- Don't remove the configuration for this dapl version on update
(bnc#676731).
- Use cat instead of multiple echos.
- Include /etc/dat.conf as %conf %ghost.
-------------------------------------------------------------------
Fri Mar 4 13:16:19 CET 2011 - pth@suse.de
- Fix tmp race in post/postun (bnc#676700).
-------------------------------------------------------------------
Wed Feb 1 16:59:22 CET 2011 - pth@suse.de
- Incorporate fixes done for the update in SLE10:
- Split off man pages into their own sub package that can be
required by compat-dapl.
- Fix type-punning in test app so that we don't need
-fno-strict-aliasing allowing better code optimisation.
- Also fix type punning in other files that the newer gcc in SLE11
detected.
- realigned-disconnect.patch fixing bnc#656702
- added cma-fix-debug-build-issue.patch fixing debug build.
-------------------------------------------------------------------
Tue Nov 23 18:46:55 CET 2010 - pth@suse.de
- Let the caller detect EINTR (bnc#655518).
-------------------------------------------------------------------
Mon Oct 25 15:38:55 UTC 2010 - jjolly@novell.com
- Update to v2.0.30 from OFED 1.5.2
- Update to include more lines for dat.conf
- Patch to remove extra rdma_destroy_id() (bnc#647915)
-------------------------------------------------------------------
Tue Dec 8 01:03:36 CET 2009 - ro@suse.de
- fix build on ia64: help configure dectecting suse_version
-------------------------------------------------------------------
Thu Dec 3 08:34:10 CET 2009 - jjolly@suse.de
- Update to v2.0.19 from OFED 1.4.2
-------------------------------------------------------------------
Thu Dec 11 03:37:05 CET 2008 - jjolly@suse.de
- Updated to v2.0.15 from OFED 1.4 GA
- dapltest: transaction test moves to cleanup stage before
rdma_read processing is complete
- Change SR to include sysconfdir.
-------------------------------------------------------------------
Wed Dec 10 12:34:56 CET 2008 - olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
(bnc#437293)
-------------------------------------------------------------------
Thu Nov 6 14:01:02 CET 2008 - ihno@suse.de
- adding baselibs.conf
-------------------------------------------------------------------
Tue Nov 4 11:50:42 CET 2008 - ro@suse.de
- fix build on ia64 (same as in compat-dapl)
-------------------------------------------------------------------
Thu Oct 30 12:34:56 CET 2008 - olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
-------------------------------------------------------------------
Mon Oct 27 20:13:18 CET 2008 - jjolly@suse.de
- Updated to v2.0.14 from OFED 1.4 rc3
-------------------------------------------------------------------
Mon Oct 20 12:24:48 CEST 2008 - ihno@suse.de
- Excludearch for s390 s390x
-------------------------------------------------------------------
Fri Sep 12 10:52:31 CEST 2008 - jjolly@suse.de
- Updated to v2.0.13 from OFED 1.4 RC1 and changed from dapl2 to dapl
-------------------------------------------------------------------
Mon Apr 28 22:00:19 CEST 2008 - crrodriguez@suse.de
- do not build unusable static libraries
- fix -devel package requires
-------------------------------------------------------------------
Mon Mar 3 07:10:58 CET 2008 - jjolly@suse.de
- Initial submission of dapl v2.0.7 from OFED 1.3 GA release

282
dapl-debug.spec Normal file
View File

@ -0,0 +1,282 @@
#
# spec file for package dapl-debug
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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: dapl-debug
Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs
License: BSD-3-Clause or GPL-2.0+ or CPL-1.0
Group: Productivity/Networking/System
Version: 2.0.42
Release: 0
Source0: https://www.openfabrics.org/downloads/dapl/dapl-%{version}.tar.gz
Source1: baselibs.conf
Source2: dapl-rpmlintrc
Patch1: dapl-2.0.30-dat-ia-open-hang.patch
Patch4: dapl-fix_type_punning.patch
Patch5: dapl-define_NULL.patch
Patch6: dapl-man_page_fixes.patch
Patch7: dapl-fsf_address.patch
Patch8: dapl-s390_support.patch
Patch9: dapl-autotools.patch
Patch10: dapl-rename_dtest.patch
Url: http://www.openfabrics.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel
BuildRequires: libtool
%if "%name" == "dapl"
Provides: dapl-debug
Obsoletes: dapl-debug
%endif
%if "%name" == "dapl-debug"
Provides: dapl
Obsoletes: dapl
%endif
# bug437293
%ifarch ppc64
Obsoletes: dapl-64bit
%endif
#
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires(post): sed
Requires(post): coreutils
# libdapl*.so work like plugins, hence they do not get a separate subpackage.
%if "%{name}" == "dapl-debug"
%define lname dapl-debug-libs
%define other_lname libdat2-2
%else
%define lname libdat2-2
%define other_lname dapl-debug-libs
%endif
%description
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data.
%package -n %lname
Summary: DAPL runtime libraries
Group: System/Libraries
Conflicts: %other_lname
Obsoletes: dapl2 < %version
Provides: dapl2 = %version
# Need dat.conf
Requires: %name
%description -n %lname
Along with the OpenIB kernel drivers, libdat2 and libdapl provide a
userspace RDMA API that supports DAT 2.0 specification.
%description -n %lname
This package contains the runtime libraries.
%if "%{name}" == "dapl-debug"
The libraries have tracing enabled.
%endif
%package devel
Summary: Development files for the libdat and libdapl libraries
Group: Development/Libraries/Other
Requires: %{name} = %{version}
Requires: glibc-devel
%if "%{name}" == "dapl-debug"
Obsoletes: dapl-devel
Provides: dapl-devel
%else
Obsoletes: dapl-debug-devel
Provides: dapl-debug-devel
%endif
%description devel
Library links and header files for the libdat and libdapl libraries.
%if "%{name}" != "dapl-debug"
%package doc
Summary: Manual pages for libdapl
Group: Documentation/Man
Requires: %{name} = %{version}
Provides: dapl:%{_mandir}/man5/dat.conf.5.gz
Provides: dapl_man
%description doc
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data. This package provides the Documentation for the
library.
%endif
%package utils
Summary: Test suites for the uDAPL library
Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release}
%description utils
Useful test suites to validate the uDAPL library APIs.
%prep
%setup -q -n dapl-%{version}
%patch1
%patch4
%patch5
%patch6
%patch7
%patch8 -p1
%patch9
%patch10
%build
mv man/dtest.1 man/dpltest.1
%if %suse_version == 1110
export ac_cv_suse11=yes
%endif
autoreconf -fi
%if "%name" == "dapl"
%configure --disable-static --with-pic
%else
%configure --disable-static --with-pic --enable-debug
%endif
make %{?_smp_mflags}
%check
export MALLOC_CHECK_=2
make check
unset MALLOC_CHECK_
%install
make DESTDIR=%{buildroot} install
rm -f %{buildroot}%_libdir/*.la
%if "%{name}" == "dapl-debug"
rm -rf %{buildroot}%{_mandir}/man{1,5}/*
%endif
mkdir -p %{buildroot}%_sysconfdir
touch %{buildroot}%_sysconfdir/dat.conf
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%post
/sbin/ldconfig
if test -e %_sysconfdir/dat.conf; then
sed -i -e '/ofa-v2-.* u2/d' %_sysconfdir/dat.conf
else
touch %_sysconfdir/dat.conf
fi
cat <<EOF >>%_sysconfdir/dat.conf
ofa-v2-mlx4_0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib0 0" ""
ofa-v2-ib1 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib1 0" ""
ofa-v2-mthca0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mthca0 1" ""
ofa-v2-mthca0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mthca0 2" ""
ofa-v2-ipath0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "ipath0 1" ""
ofa-v2-ipath0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "ipath0 2" ""
ofa-v2-ehca0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "ehca0 1" ""
ofa-v2-iwarp u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth2 0" ""
ofa-v2-mlx4_0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mthca0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mthca0 1" ""
ofa-v2-mthca0-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mthca0 2" ""
ofa-v2-cma-roe-eth2 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth2 0" ""
ofa-v2-cma-roe-eth3 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth3 0" ""
ofa-v2-scm-roe-mlx4_0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-scm-roe-mlx4_0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mcm-1 u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mcm-2 u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-scif0 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "scif0 1" ""
ofa-v2-scif0-u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "scif0 1" ""
ofa-v2-mic0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "mic0:ib 1" ""
ofa-v2-mlx4_0-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mlx4_1-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_1 1" ""
ofa-v2-mlx4_1-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_1 2" ""
ofa-v2-mlx4_1-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_1 1" ""
ofa-v2-mlx4_1-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_1 2" ""
ofa-v2-mlx4_0-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mlx4_1-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_1 1" ""
ofa-v2-mlx4_1-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_1 2" ""
ofa-v2-mlx5_0-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_0 1" ""
ofa-v2-mlx5_0-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_0 2" ""
ofa-v2-mlx5_1-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_1 1" ""
ofa-v2-mlx5_1-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_1 2" ""
ofa-v2-mlx5_0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_0 1" ""
ofa-v2-mlx5_0-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_0 2" ""
ofa-v2-mlx5_1-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_1 1" ""
ofa-v2-mlx5_1-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_1 2" ""
ofa-v2-mlx5_0-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_0 1" ""
ofa-v2-mlx5_0-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_0 2" ""
ofa-v2-mlx5_1-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_1 1" ""
ofa-v2-mlx5_1-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_1 2" ""
EOF
#On update save configuration before uninstall of old package runs
if [ $1 -gt 0 ]; then
cp -p %_sysconfdir/dat.conf %_sysconfdir/dat.conf.rpmtmp
fi
%posttrans
if [ -e "%_sysconfdir/dat.conf.rpmtmp" ]; then
mv %_sysconfdir/dat.conf.rpmtmp %_sysconfdir/dat.conf
fi
%postun
/sbin/ldconfig
#remove if this isn't an update
if [ $1 -eq 0 ]; then
if test -e %_sysconfdir/dat.conf; then
sed -i -e '/OpenIB-.* u1/d' %_sysconfdir/dat.conf
fi
fi
%files
%defattr(-, root, root)
%doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt
%_libdir/libdapl*.so.*
%config %ghost %_sysconfdir/dat.conf
%files -n %lname
%defattr(-,root,root)
%_libdir/libdat2.so.*
%files devel
%defattr(-, root, root)
%_includedir/dat2/
%_libdir/*.so
%if "%{name}" != "dapl-debug"
%files doc
%defattr(-, root, root)
%_mandir/man1/*
%_mandir/man5/*
%endif
%files utils
%defattr(-,root,root,-)
%{_bindir}/*
%changelog

15
dapl-define_NULL.patch Normal file
View File

@ -0,0 +1,15 @@
Index: dat/common/dat_strerror.c
===================================================================
--- dat/common/dat_strerror.c.orig 2011-08-19 19:09:23.000000000 +0200
+++ dat/common/dat_strerror.c 2012-06-28 18:01:00.330122282 +0200
@@ -37,6 +37,10 @@
* $Id: dat_strerror.c,v 1.10 2005/03/24 05:58:28 jlentini Exp $
**********************************************************************/
+#ifdef __GNUC__
+#include <stddef.h> /* to get NULL defined */
+#endif
+
#ifdef __KDAPL__
#include <dat2/kdat.h>
#else /*__UDAPL__*/

299
dapl-fix_type_punning.patch Normal file
View File

@ -0,0 +1,299 @@
---
dapl/openib_scm/cm.c | 38 ++++++++++++++++++++++++--------------
dapl/openib_ucm/cm.c | 29 +++++++++++++++++++++--------
dapl/openib_ucm/device.c | 8 ++++----
test/dapltest/test/dapl_limit.c | 11 +++++++----
4 files changed, 56 insertions(+), 30 deletions(-)
Index: dapl/openib_scm/cm.c
===================================================================
--- dapl/openib_scm/cm.c.orig 2014-04-07 19:27:35.000000000 +0200
+++ dapl/openib_scm/cm.c 2014-06-27 14:10:00.894759920 +0200
@@ -518,6 +518,7 @@ static void dapli_socket_connected(dp_ib
int len, exp;
struct iovec iov[2];
struct dapl_ep *ep_ptr = cm_ptr->ep;
+ uint64_t tmp, tmp2;
if (err) {
dapl_log(DAPL_DBG_TYPE_CM_WARN,
@@ -582,12 +583,12 @@ static void dapli_socket_connected(dp_ib
ntohs(cm_ptr->msg.saddr.ib.lid),
ntohl(cm_ptr->msg.saddr.ib.qpn),
ntohs(cm_ptr->msg.p_size));
+ memcpy(&tmp, &cm_ptr->msg.saddr.ib.gid[0], sizeof(uint64_t));
+ memcpy(&tmp2, &cm_ptr->msg.saddr.ib.gid[8], sizeof(uint64_t));
dapl_dbg_log(DAPL_DBG_TYPE_CM,
" CONN_PENDING: SRC GID subnet %016llx id %016llx\n",
- (unsigned long long)
- htonll(*(uint64_t*)&cm_ptr->msg.saddr.ib.gid[0]),
- (unsigned long long)
- htonll(*(uint64_t*)&cm_ptr->msg.saddr.ib.gid[8]));
+ (unsigned long long) htonll(tmp),
+ (unsigned long long) htonll(tmp2));
DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_REQ_TX);
return;
@@ -614,6 +615,9 @@ dapli_socket_connect(DAPL_EP * ep_ptr,
socklen_t sl;
DAPL_IA *ia_ptr = ep_ptr->header.owner_ia;
DAT_RETURN dat_ret = DAT_INSUFFICIENT_RESOURCES;
+#ifdef DAPL_DBG
+ union{ uint8_t *u8p; uint16_t *u16p; }pun;
+#endif
dapl_dbg_log(DAPL_DBG_TYPE_EP, " connect: r_qual %d p_size=%d\n",
r_qual, p_size);
@@ -649,8 +653,10 @@ dapli_socket_connect(DAPL_EP * ep_ptr,
#ifdef DAPL_DBG
/* DBG: Active PID [0], PASSIVE PID [2]*/
- *(uint16_t*)&cm_ptr->msg.resv[0] = htons((uint16_t)dapl_os_getpid());
- *(uint16_t*)&cm_ptr->msg.resv[2] = ((struct sockaddr_in *)&cm_ptr->addr)->sin_port;
+ pun.u8p = &cm_ptr->msg.resv[0];
+ *pun.u16p = htons((uint16_t)dapl_os_getpid());
+ pun.u8p += 2;
+ *pun.u16p = ((struct sockaddr_in *)&cm_ptr->addr)->sin_port;
#endif
((struct sockaddr_in *)&cm_ptr->addr)->sin_port = htons(r_qual + 1000);
ret = dapl_connect_socket(cm_ptr->socket, (struct sockaddr *)&cm_ptr->addr,
@@ -736,6 +742,8 @@ static void dapli_socket_connect_rtu(dp_
len = recv(cm_ptr->socket, (char *)&cm_ptr->msg, exp, 0);
if (len != exp || ntohs(cm_ptr->msg.ver) < DCM_VER_MIN) {
int err = dapl_socket_errno();
+ union{ uint8_t *ui8p; uint16_t *ui16p; }pun = { &cm_ptr->msg.resv[0] };
+ union{ uint8_t *ui8p; uint16_t *ui16p; }pun2 = { &cm_ptr->msg.resv[2] };
dapl_log(DAPL_DBG_TYPE_CM_WARN,
" CONN_REP_PENDING: sk %d ERR 0x%x, rcnt=%d, v=%d ->"
" %s PORT L-%x R-%x PID L-%x R-%x %d\n",
@@ -743,8 +751,8 @@ static void dapli_socket_connect_rtu(dp_
inet_ntoa(((struct sockaddr_in *)&cm_ptr->addr)->sin_addr),
ntohs(((struct sockaddr_in *)&cm_ptr->msg.daddr.so)->sin_port),
ntohs(((struct sockaddr_in *)&cm_ptr->addr)->sin_port),
- ntohs(*(uint16_t*)&cm_ptr->msg.resv[0]),
- ntohs(*(uint16_t*)&cm_ptr->msg.resv[2]),cm_ptr->retry);
+ ntohs(*pun.ui16p), ntohs(*pun2.ui16p),
+ cm_ptr->retry);
/* Retry; corner case where server tcp stack resets under load */
if (err == ECONNRESET && --cm_ptr->retry) {
@@ -1215,7 +1223,11 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr
int len, exp = sizeof(ib_cm_msg_t) - DCM_MAX_PDATA_SIZE;
DAT_RETURN ret = DAT_INTERNAL_ERROR;
socklen_t sl;
-
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &local.saddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &local.saddr.ib.gid[8] };
+#ifdef DAPL_DBG
+ union{ uint8_t *u8p; uint16_t *u16p; }pun3 = { &cm_ptr->msg.resv[2] };
+#endif
if (p_size > DCM_MAX_PDATA_SIZE) {
dapl_log(DAPL_DBG_TYPE_ERR,
" accept_usr: psize(%d) too large\n", p_size);
@@ -1304,7 +1316,7 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr
#ifdef DAPL_DBG
/* DBG: Active PID [0], PASSIVE PID [2] */
- *(uint16_t*)&cm_ptr->msg.resv[2] = htons((uint16_t)dapl_os_getpid());
+ *pun3.u16p = htons((uint16_t)dapl_os_getpid());
dapl_os_memcpy(local.resv, cm_ptr->msg.resv, 4);
#endif
cm_ptr->hca = ia_ptr->hca_ptr;
@@ -1346,10 +1358,8 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr
ntohl(local.saddr.ib.qpn), ntohs(local.p_size));
dapl_dbg_log(DAPL_DBG_TYPE_CM,
" ACCEPT_USR: local GID subnet %016llx id %016llx\n",
- (unsigned long long)
- htonll(*(uint64_t*)&local.saddr.ib.gid[0]),
- (unsigned long long)
- htonll(*(uint64_t*)&local.saddr.ib.gid[8]));
+ (unsigned long long) htonll(*pun.u64p),
+ (unsigned long long) htonll(*pun2.u64p));
dapl_dbg_log(DAPL_DBG_TYPE_EP, " PASSIVE: accepted!\n");
Index: dapl/openib_ucm/cm.c
===================================================================
--- dapl/openib_ucm/cm.c.orig 2014-04-07 19:27:35.000000000 +0200
+++ dapl/openib_ucm/cm.c 2014-06-27 13:44:42.207746121 +0200
@@ -154,6 +154,7 @@ static void ucm_free_port(ib_hca_transpo
static void ucm_check_timers(dp_ib_cm_handle_t cm, int *timer)
{
DAPL_OS_TIMEVAL time;
+ union{ uint8_t *ui8p; DAT_UINT32 *duip; }pun = { &cm->msg.resv[0] };
dapl_os_lock(&cm->lock);
dapl_os_get_time(&time);
@@ -716,12 +717,15 @@ void dapls_cm_release(dp_ib_cm_handle_t
dp_ib_cm_handle_t dapls_ib_cm_create(DAPL_EP *ep)
{
dp_ib_cm_handle_t cm;
+ union{ uint8_t *ui8p; DAT_UINT32 *duip; }pun;
/* Allocate CM, init lock, and initialize */
if ((cm = dapl_os_alloc(sizeof(*cm))) == NULL)
return NULL;
(void)dapl_os_memzero(cm, sizeof(*cm));
+ pun.ui8p = &cm->msg.resv[0];
+
if (dapl_os_lock_init(&cm->lock))
goto bail;
@@ -903,6 +907,8 @@ DAT_RETURN dapli_cm_disconnect(dp_ib_cm_
{
int finalize = 1;
int wakeup = 0;
+ union{ uint8_t *ui8p; DAT_UINT32 *duip; }pun = { &cm->msg.resv[0] };
+
dapl_os_lock(&cm->lock);
switch (cm->state) {
@@ -1062,6 +1068,11 @@ bail:
*/
static void ucm_connect_rtu(dp_ib_cm_handle_t cm, ib_cm_msg_t *msg)
{
+#ifdef DAT_EXTENSIONS
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &cm->msg.daddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &cm->msg.daddr.ib.gid[8] };
+#endif
+
DAPL_EP *ep = cm->ep;
ib_cm_events_t event = IB_CME_CONNECTED;
@@ -1246,8 +1257,7 @@ ud_bail:
&xevent.remote_ah.ia_addr)->ib.lid),
ntohl(((union dcm_addr*)
&xevent.remote_ah.ia_addr)->ib.qpn),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[0]),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[8]));
+ ntohll(*pun.u64p), ntohll(*pun2.u64p));
if (event == IB_CME_CONNECTED)
event = DAT_IB_UD_CONNECTION_EVENT_ESTABLISHED;
@@ -1375,6 +1385,10 @@ bail:
*/
static void ucm_accept_rtu(dp_ib_cm_handle_t cm, ib_cm_msg_t *msg)
{
+#ifdef DAT_EXTENSIONS
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &cm->msg.daddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &cm->msg.daddr.ib.gid[8] };
+#endif
dapl_os_lock(&cm->lock);
if ((ntohs(msg->op) != DCM_RTU) || (cm->state != DCM_RTU_PENDING)) {
dapl_log(DAPL_DBG_TYPE_WARN,
@@ -1435,8 +1449,7 @@ static void ucm_accept_rtu(dp_ib_cm_hand
&xevent.remote_ah.ia_addr)->ib.lid),
ntohl(((union dcm_addr*)
&xevent.remote_ah.ia_addr)->ib.qpn),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[0]),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[8]));
+ ntohll(*pun.u64p), ntohll(*pun2.u64p));
dapls_evd_post_connection_event_ext(
(DAPL_EVD *)cm->ep->param.connect_evd_handle,
@@ -1552,6 +1565,8 @@ dapli_accept_usr(DAPL_EP *ep, DAPL_CR *c
{
DAPL_IA *ia = ep->header.owner_ia;
dp_ib_cm_handle_t cm = cr->ib_cm_handle;
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &cm->msg.daddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &cm->msg.daddr.ib.gid[8] };
if (p_size > DCM_MAX_PDATA_SIZE)
return DAT_LENGTH_ERROR;
@@ -1585,10 +1600,8 @@ dapli_accept_usr(DAPL_EP *ep, DAPL_CR *c
dapl_dbg_log(DAPL_DBG_TYPE_CM,
" ACCEPT_USR: remote GID subnet %016llx id %016llx\n",
- (unsigned long long)
- htonll(*(uint64_t*)&cm->msg.daddr.ib.gid[0]),
- (unsigned long long)
- htonll(*(uint64_t*)&cm->msg.daddr.ib.gid[8]));
+ (unsigned long long) htonll(*pun.u64p),
+ (unsigned long long) htonll(*pun2.u64p));
#ifdef DAT_EXTENSIONS
if (cm->msg.daddr.ib.qp_type == IBV_QPT_UD &&
Index: dapl/openib_ucm/device.c
===================================================================
--- dapl/openib_ucm/device.c.orig 2014-04-07 19:27:35.000000000 +0200
+++ dapl/openib_ucm/device.c 2014-06-27 13:44:42.207746121 +0200
@@ -197,6 +197,8 @@ DAT_RETURN dapls_ib_open_hca(IN IB_HCA_N
struct ibv_port_attr port_attr;
int i;
DAT_RETURN dat_status;
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &hca_ptr->ib_trans.addr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &hca_ptr->ib_trans.addr.ib.gid[8] };
/* Get list of all IB devices, find match, open */
dev_list = ibv_get_device_list(NULL);
@@ -337,10 +339,8 @@ found:
" ID 0x" F64x "\n",
ntohl(hca_ptr->ib_trans.addr.ib.qpn),
ntohs(hca_ptr->ib_trans.addr.ib.lid),
- (unsigned long long)
- ntohll(*(uint64_t*)&hca_ptr->ib_trans.addr.ib.gid[0]),
- (unsigned long long)
- ntohll(*(uint64_t*)&hca_ptr->ib_trans.addr.ib.gid[8]));
+ (unsigned long long) ntohll(*pun.u64p),
+ (unsigned long long) ntohll(*pun2.u64p));
/* save LID, GID, QPN, PORT address information, for ia_queries */
/* Set AF_INET6 to insure callee address storage of 28 bytes */
Index: test/dapltest/test/dapl_limit.c
===================================================================
--- test/dapltest/test/dapl_limit.c.orig 2014-05-05 18:11:33.000000000 +0200
+++ test/dapltest/test/dapl_limit.c 2014-06-27 13:44:42.208746108 +0200
@@ -162,6 +162,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
unsigned int count = START_COUNT;
OneOpen *hdlptr = (OneOpen *)
DT_Mdep_Malloc(count * sizeof(*hdlptr));
+ union { OneOpen **oop; DAT_HANDLE **dhpp; }pun = { &hdlptr };
/* IA Exhaustion test loop */
if (hdlptr) {
@@ -175,7 +176,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
DT_Mdep_Schedule();
if (w == count
&& !more_handles(phead,
- (DAT_HANDLE **) & hdlptr,
+ pun.dhpp,
&count, sizeof(*hdlptr))) {
DT_Tdep_PT_Printf(phead,
"%s: IAs opened: %d\n",
@@ -947,6 +948,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
unsigned int count = START_COUNT;
Bpool **hdlptr = (Bpool **)
DT_Mdep_Malloc(count * sizeof(*hdlptr));
+ union { Bpool ***bpppp; DAT_HANDLE **dhpp; }pun = { &hdlptr };
/* LMR Exhaustion test loop */
if (hdlptr) {
@@ -961,7 +963,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
DT_Mdep_Schedule();
if (w == count
&& !more_handles(phead,
- (DAT_HANDLE **) & hdlptr,
+ pun.dhpp,
&count, sizeof(*hdlptr))) {
DT_Tdep_PT_Printf(phead,
"%s: no memory for LMR handles\n",
@@ -1035,6 +1037,8 @@ limit_test(DT_Tdep_Print_Head * phead, L
unsigned int count = START_COUNT;
DAT_LMR_TRIPLET *hdlptr = (DAT_LMR_TRIPLET *)
DT_Mdep_Malloc(count * cmd->width * sizeof(*hdlptr));
+ union { DAT_LMR_TRIPLET **dltp; DAT_HANDLE **dhpp; }pun =
+ { &hdlptr };
/* Recv-Post Exhaustion test loop */
if (hdlptr) {
@@ -1049,8 +1053,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
for (w = 0; w < cmd->maximum && !done; w++) {
DT_Mdep_Schedule();
if (w == count
- && !more_handles(phead,
- (DAT_HANDLE **) & hdlptr,
+ && !more_handles(phead, pun.dhpp,
&count,
cmd->width *
sizeof(*hdlptr))) {

13
dapl-fsf_address.patch Normal file
View File

@ -0,0 +1,13 @@
Index: LICENSE3.txt
===================================================================
--- LICENSE3.txt.orig 2011-08-19 19:09:23.000000000 +0200
+++ LICENSE3.txt 2012-08-30 15:34:27.361191648 +0200
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

45
dapl-man_page_fixes.patch Normal file
View File

@ -0,0 +1,45 @@
---
man/dapltest.1 | 1 -
man/dat.conf.5 | 6 +++---
2 files changed, 3 insertions(+), 4 deletions(-)
Index: man/dapltest.1
===================================================================
--- man/dapltest.1.orig 2014-01-21 18:05:33.163795906 +0100
+++ man/dapltest.1 2014-01-21 18:06:00.011174084 +0100
@@ -1,4 +1,3 @@
-." Text automatically generated by txt2man
.TH dapltest 1 "July 16, 2013" "uDAPL 2.0" "USER COMMANDS"
.SH NAME
Index: man/dat.conf.5
===================================================================
--- man/dat.conf.5.orig 2013-06-07 02:42:48.000000000 +0200
+++ man/dat.conf.5 2014-01-21 18:05:33.164795883 +0100
@@ -25,7 +25,7 @@ entries in the \fIdat.conf\fR file. The
entry is termed Static Registration.
.PP
.SH "Registry File Format"
-\br
+\br
* All characters after # on a line are ignored (comments).
* Lines on which there are no characters other than whitespace
and comments are considered blank lines and are ignored.
@@ -46,7 +46,7 @@ entry is termed Static Registration.
- platform params, (not used)
.PP
.SH OpenFabrics RDMA providers:
-\br
+\br
Provider options for both 1.2 and 2.0, each using different CM services
1. cma - OpenFabrics rdma_cm - uses rdma_cm services for connections
@@ -68,7 +68,7 @@ entry is termed Static Registration.
- libdaplucm.so (1.2), libdaploucm (2.0)
.PP
.SH Example entries for each OpenFabrics provider
-\br
+\br
1. cma - OpenFarbrics rdma_cm (v1.2 and v2.0 examples)

40
dapl-rename_dtest.patch Normal file
View File

@ -0,0 +1,40 @@
---
Makefile.am | 2 +-
test/dtest/Makefile.am | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
Index: Makefile.am
===================================================================
--- Makefile.am.orig 2014-04-07 19:27:35.000000000 +0200
+++ Makefile.am 2014-08-08 17:30:04.813777327 +0200
@@ -503,7 +503,7 @@ libdatinclude_HEADERS = dat/include/dat2
dat/include/dat2/udat_vendor_specific.h \
dat/include/dat2/dat_ib_extensions.h
-man_MANS = man/dtest.1 man/dapltest.1 man/dat.conf.5
+man_MANS = man/dpltest.1 man/dapltest.1 man/dat.conf.5
EXTRA_DIST = dat/common/dat_dictionary.h \
dat/common/dat_dr.h \
Index: test/dtest/Makefile.am
===================================================================
--- test/dtest/Makefile.am.orig 2014-04-07 19:27:35.000000000 +0200
+++ test/dtest/Makefile.am 2014-08-08 18:15:49.682461746 +0200
@@ -1,6 +1,7 @@
-bin_PROGRAMS = dtest dtestcm
-dtest_SOURCES = dtest.c
-dtest_CFLAGS = -g -Wall -D_GNU_SOURCE
+bin_PROGRAMS = dpltest dtestcm
+dpltest_SOURCES = dtest.c
+dpltest_CFLAGS = -g -Wall -D_GNU_SOURCE
+dpltest_LDADD = $(top_builddir)/dat/udat/libdat2.la
dtestcm_SOURCES = dtestcm.c
dtestcm_CFLAGS = -g -Wall -D_GNU_SOURCE
@@ -13,6 +14,5 @@ dtestx_LDADD = $(top_builddir)/dat/udat/
endif
INCLUDES = -I $(srcdir)/../../dat/include
-dtest_LDADD = $(top_builddir)/dat/udat/libdat2.la
dtestcm_LDADD = $(top_builddir)/dat/udat/libdat2.la

8
dapl-rpmlintrc Normal file
View File

@ -0,0 +1,8 @@
# This line is mandatory to access the configuration functions
from Config import *
addFilter(".* shared-lib-calls-exit")
#dapl is unique: differently named packages contain the same
#shared library but one compiled with tracing enabled.
addFilter(".* shlib-policy-name-error")

102
dapl-s390_support.patch Normal file
View File

@ -0,0 +1,102 @@
Cc: alexey_ishchuk@ru.ibm.com
Subject: DAPL support for Linux on System z
s390: Add support for Linux on System z
This patch adds the required code to support Linux on System z.
---
dapl/udapl/linux/dapl_osd.h | 35 ++++++++++++++++++++++++++++++++++-
dat/common/dat_strerror.c | 4 ++++
2 files changed, 38 insertions(+), 1 deletion(-)
Index: dapl-2.0.39/dapl/udapl/linux/dapl_osd.h
===================================================================
--- dapl-2.0.39.orig/dapl/udapl/linux/dapl_osd.h 2013-10-02 00:42:16.000000000 +0200
+++ dapl-2.0.39/dapl/udapl/linux/dapl_osd.h 2014-01-21 18:07:26.226177293 +0100
@@ -49,7 +49,7 @@
#error UNDEFINED OS TYPE
#endif /* __linux__ */
-#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__)
+#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__) && !defined(__s390x__)
#error UNDEFINED ARCH
#endif
@@ -156,6 +156,22 @@ int dapl_os_get_env_val (
/* atomic functions */
+#ifdef __s390x__
+#define DAPL_CS_ADD(ptr, op_val) ({ \
+ int old_val, new_val; \
+ __asm__ __volatile__( \
+ " l %0,%2\n" \
+ "0: lr %1,%0\n" \
+ " ar %1,%3\n" \
+ " cs %0,%1,%2\n" \
+ " jl 0b" \
+ : "=&d" (old_val), "=&d" (new_val), \
+ "=Q" (*ptr) \
+ : "d" (op_val), "Q" (*ptr) \
+ : "cc", "memory"); \
+ new_val; \
+})
+#endif
/* dapl_os_atomic_inc
*
@@ -179,6 +195,11 @@ dapl_os_atomic_inc (
#else
IA64_FETCHADD(old_value,v,1,4);
#endif
+#elif defined(__s390x__)
+ DAT_COUNT tmp;
+ DAT_COUNT delta = 1;
+
+ tmp = DAPL_CS_ADD(v, delta);
#elif defined(__PPC__) || defined(__PPC64__)
int tmp;
@@ -218,6 +239,11 @@ dapl_os_atomic_dec (
#else
IA64_FETCHADD(old_value,v,-1,4);
#endif
+#elif defined(__s390x__)
+ DAT_COUNT tmp;
+ DAT_COUNT delta = -1;
+
+ tmp = DAPL_CS_ADD(v, delta);
#elif defined (__PPC__) || defined(__PPC64__)
int tmp;
@@ -273,6 +299,13 @@ dapl_os_atomic_assign (
#else
current_value = ia64_cmpxchg(acq,v,match_value,new_value,4);
#endif /* __ia64__ */
+#elif defined(__s390x__)
+ __asm__ __volatile__(
+ " cs %0,%2,%1\n"
+ : "+d" (match_value), "=Q" (*v)
+ : "d" (new_value), "Q" (*v)
+ : "cc", "memory");
+ current_value = match_value;
#elif defined(__PPC__) || defined(__PPC64__)
__asm__ __volatile__ (
" lwsync\n\
Index: dapl-2.0.39/dat/common/dat_strerror.c
===================================================================
--- dapl-2.0.39.orig/dat/common/dat_strerror.c 2014-01-21 18:07:26.206177756 +0100
+++ dapl-2.0.39/dat/common/dat_strerror.c 2014-01-21 18:07:26.226177293 +0100
@@ -47,6 +47,10 @@
#include <dat2/udat.h>
#endif /* __UDAPL__ */
+#ifndef NULL
+#define NULL ((void *) 0)
+#endif
+
/*********************************************************************
* *
* Internal Function Declarations *

222
dapl.changes Normal file
View File

@ -0,0 +1,222 @@
-------------------------------------------------------------------
Fri Aug 8 19:06:02 CEST 2014 - pth@suse.de
- Add dapl-rename_dtest.patch to rename dtest to dpltest because
of name clash with dateutils.
- Also rename the man page for dtest.
- Make dapl-devel and dapl-debug-devel obsolete each other.
-------------------------------------------------------------------
Fri Jun 27 14:11:27 CEST 2014 - pth@suse.de
- Add baselibs.conf and dapl-rpmlintrc as source.
- Fix type punning in cm.c
-------------------------------------------------------------------
Wed Jun 25 11:20:11 CEST 2014 - pth@suse.de
- Remove dapl-2.0.13-build_error.patch as it isn't needed anymore.
-------------------------------------------------------------------
Wed Jun 25 11:08:45 CEST 2014 - pth@suse.de
- Provide fuill source URL
-------------------------------------------------------------------
Thu Feb 13 16:43:01 CET 2014 - pth@suse.de
- Update to 2.0.40 (fate#315488):
dist: ib collective extension include files missing
dapltest: the quit command is missing changes for -n option.
Server-port was not being set properly during param init phase
on the client side.
dat.conf: remove v1, add Mellanox Connect-IB and Intel Xeon Phi
MIC.
NULL undefined on Fedora, incorrectly using kernel stddef.h
-------------------------------------------------------------------
Tue Jan 21 18:46:54 CET 2014 - pth@suse.de
- Add dapl-autotools.patch to make autoreconf complain less.
-------------------------------------------------------------------
Fri Jan 17 12:13:40 CET 2014 - pth@suse.de
- Update to 2.0.39 from 3.12 daily snapshot.
- Include dapl-s390_support.patch from IBM for s390 support.
- Remove now unneeded patches:
dapl-2.0.13-build_error.patch
- Use script to generate spec and changes for dapl-debug from the
dapl files.
-------------------------------------------------------------------
Wed Jan 15 13:47:59 CET 2014 - pth@suse.de
- Build for s390x
-------------------------------------------------------------------
Thu Sep 13 13:59:23 CEST 2012 - pth@suse.de
- Add another filter to dapl-rpmlintrc as the packages for
the runtime library are named differently but contain a library
that's named the same.
-------------------------------------------------------------------
Wed Sep 5 18:12:59 CEST 2012 - pth@suse.de
- Reinstate the arch exclusion of s390(x).
- Recompress with bzip2.
-------------------------------------------------------------------
Wed Sep 5 14:38:57 UTC 2012 - jengelh@inai.de
- Remove redundant tags/sections from specfile
- Remove unjustified s390* arch exclusion
- Implement shared library policy
-------------------------------------------------------------------
Thu Aug 30 14:45:19 CEST 2012 - pth@suse.de
- Update to OFED 1.5.4.1 (dapl unchanged).
- Rename the package with tracing enabled dapl-tracing.
- Adapt baselibs.conf to new packages and names.
- Use one .spec and .changes file and create the -tracing
variants with pre_checkin.sh.
- Update FSF address in LICENSE3.txt.
-------------------------------------------------------------------
Tue Jul 3 18:19:08 CEST 2012 - pth@suse.de
- Put shared libs into a versioned package.
- Fix man pages
- Add a rpmlintrc to shut up warnings that can only be solved upstream.
-------------------------------------------------------------------
Thu Jun 28 18:55:46 CEST 2012 - pth@suse.de
- Use unions for type punning (dapl-type_punning.patch).
- Include stddef.h to get NULL defined.
- Require automake, autoconf and libtool.
- Provide obsoleted items.
-------------------------------------------------------------------
Wed May 9 13:48:37 CEST 2012 - pth@suse.de
- Update to OFED 1.5.4
- Don't recompress the tarball.
- Remove unneeded patches and adapt the remaining ones.
-------------------------------------------------------------------
Mon Jun 20 16:41:37 CEST 2011 - pth@suse.de
- Sed is also needed.
-------------------------------------------------------------------
Thu Jun 9 18:45:01 CEST 2011 - pth@suse.de
- After last change dapl needs cat so add prereq (bnc#688511).
-------------------------------------------------------------------
Mon Mar 7 16:15:35 CET 2011 - pth@suse.de
- Don't remove the configuration for this dapl version on update
(bnc#676731).
- Use cat instead of multiple echos.
- Include /etc/dat.conf as %conf %ghost.
-------------------------------------------------------------------
Fri Mar 4 13:16:19 CET 2011 - pth@suse.de
- Fix tmp race in post/postun (bnc#676700).
-------------------------------------------------------------------
Wed Feb 1 16:59:22 CET 2011 - pth@suse.de
- Incorporate fixes done for the update in SLE10:
- Split off man pages into their own sub package that can be
required by compat-dapl.
- Fix type-punning in test app so that we don't need
-fno-strict-aliasing allowing better code optimisation.
- Also fix type punning in other files that the newer gcc in SLE11
detected.
- realigned-disconnect.patch fixing bnc#656702
- added cma-fix-debug-build-issue.patch fixing debug build.
-------------------------------------------------------------------
Tue Nov 23 18:46:55 CET 2010 - pth@suse.de
- Let the caller detect EINTR (bnc#655518).
-------------------------------------------------------------------
Mon Oct 25 15:38:55 UTC 2010 - jjolly@novell.com
- Update to v2.0.30 from OFED 1.5.2
- Update to include more lines for dat.conf
- Patch to remove extra rdma_destroy_id() (bnc#647915)
-------------------------------------------------------------------
Tue Dec 8 01:03:36 CET 2009 - ro@suse.de
- fix build on ia64: help configure dectecting suse_version
-------------------------------------------------------------------
Thu Dec 3 08:34:10 CET 2009 - jjolly@suse.de
- Update to v2.0.19 from OFED 1.4.2
-------------------------------------------------------------------
Thu Dec 11 03:37:05 CET 2008 - jjolly@suse.de
- Updated to v2.0.15 from OFED 1.4 GA
- dapltest: transaction test moves to cleanup stage before
rdma_read processing is complete
- Change SR to include sysconfdir.
-------------------------------------------------------------------
Wed Dec 10 12:34:56 CET 2008 - olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
(bnc#437293)
-------------------------------------------------------------------
Thu Nov 6 14:01:02 CET 2008 - ihno@suse.de
- adding baselibs.conf
-------------------------------------------------------------------
Tue Nov 4 11:50:42 CET 2008 - ro@suse.de
- fix build on ia64 (same as in compat-dapl)
-------------------------------------------------------------------
Thu Oct 30 12:34:56 CET 2008 - olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
-------------------------------------------------------------------
Mon Oct 27 20:13:18 CET 2008 - jjolly@suse.de
- Updated to v2.0.14 from OFED 1.4 rc3
-------------------------------------------------------------------
Mon Oct 20 12:24:48 CEST 2008 - ihno@suse.de
- Excludearch for s390 s390x
-------------------------------------------------------------------
Fri Sep 12 10:52:31 CEST 2008 - jjolly@suse.de
- Updated to v2.0.13 from OFED 1.4 RC1 and changed from dapl2 to dapl
-------------------------------------------------------------------
Mon Apr 28 22:00:19 CEST 2008 - crrodriguez@suse.de
- do not build unusable static libraries
- fix -devel package requires
-------------------------------------------------------------------
Mon Mar 3 07:10:58 CET 2008 - jjolly@suse.de
- Initial submission of dapl v2.0.7 from OFED 1.3 GA release

282
dapl.spec Normal file
View File

@ -0,0 +1,282 @@
#
# spec file for package dapl
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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: dapl
Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs
License: BSD-3-Clause or GPL-2.0+ or CPL-1.0
Group: Productivity/Networking/System
Version: 2.0.42
Release: 0
Source0: https://www.openfabrics.org/downloads/dapl/dapl-%{version}.tar.gz
Source1: baselibs.conf
Source2: dapl-rpmlintrc
Patch1: dapl-2.0.30-dat-ia-open-hang.patch
Patch4: dapl-fix_type_punning.patch
Patch5: dapl-define_NULL.patch
Patch6: dapl-man_page_fixes.patch
Patch7: dapl-fsf_address.patch
Patch8: dapl-s390_support.patch
Patch9: dapl-autotools.patch
Patch10: dapl-rename_dtest.patch
Url: http://www.openfabrics.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel
BuildRequires: libtool
%if "%name" == "dapl"
Provides: dapl-debug
Obsoletes: dapl-debug
%endif
%if "%name" == "dapl-debug"
Provides: dapl
Obsoletes: dapl
%endif
# bug437293
%ifarch ppc64
Obsoletes: dapl-64bit
%endif
#
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires(post): sed
Requires(post): coreutils
# libdapl*.so work like plugins, hence they do not get a separate subpackage.
%if "%{name}" == "dapl-debug"
%define lname dapl-debug-libs
%define other_lname libdat2-2
%else
%define lname libdat2-2
%define other_lname dapl-debug-libs
%endif
%description
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data.
%package -n %lname
Summary: DAPL runtime libraries
Group: System/Libraries
Conflicts: %other_lname
Obsoletes: dapl2 < %version
Provides: dapl2 = %version
# Need dat.conf
Requires: %name
%description -n %lname
Along with the OpenIB kernel drivers, libdat2 and libdapl provide a
userspace RDMA API that supports DAT 2.0 specification.
%description -n %lname
This package contains the runtime libraries.
%if "%{name}" == "dapl-debug"
The libraries have tracing enabled.
%endif
%package devel
Summary: Development files for the libdat and libdapl libraries
Group: Development/Libraries/Other
Requires: %{name} = %{version}
Requires: glibc-devel
%if "%{name}" == "dapl-debug"
Obsoletes: dapl-devel
Provides: dapl-devel
%else
Obsoletes: dapl-debug-devel
Provides: dapl-debug-devel
%endif
%description devel
Library links and header files for the libdat and libdapl libraries.
%if "%{name}" != "dapl-debug"
%package doc
Summary: Manual pages for libdapl
Group: Documentation/Man
Requires: %{name} = %{version}
Provides: dapl:%{_mandir}/man5/dat.conf.5.gz
Provides: dapl_man
%description doc
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data. This package provides the Documentation for the
library.
%endif
%package utils
Summary: Test suites for the uDAPL library
Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release}
%description utils
Useful test suites to validate the uDAPL library APIs.
%prep
%setup -q -n dapl-%{version}
%patch1
%patch4
%patch5
%patch6
%patch7
%patch8 -p1
%patch9
%patch10
%build
mv man/dtest.1 man/dpltest.1
%if %suse_version == 1110
export ac_cv_suse11=yes
%endif
autoreconf -fi
%if "%name" == "dapl"
%configure --disable-static --with-pic
%else
%configure --disable-static --with-pic --enable-debug
%endif
make %{?_smp_mflags}
%check
export MALLOC_CHECK_=2
make check
unset MALLOC_CHECK_
%install
make DESTDIR=%{buildroot} install
rm -f %{buildroot}%_libdir/*.la
%if "%{name}" == "dapl-debug"
rm -rf %{buildroot}%{_mandir}/man{1,5}/*
%endif
mkdir -p %{buildroot}%_sysconfdir
touch %{buildroot}%_sysconfdir/dat.conf
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%post
/sbin/ldconfig
if test -e %_sysconfdir/dat.conf; then
sed -i -e '/ofa-v2-.* u2/d' %_sysconfdir/dat.conf
else
touch %_sysconfdir/dat.conf
fi
cat <<EOF >>%_sysconfdir/dat.conf
ofa-v2-mlx4_0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib0 0" ""
ofa-v2-ib1 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib1 0" ""
ofa-v2-mthca0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mthca0 1" ""
ofa-v2-mthca0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mthca0 2" ""
ofa-v2-ipath0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "ipath0 1" ""
ofa-v2-ipath0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "ipath0 2" ""
ofa-v2-ehca0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "ehca0 1" ""
ofa-v2-iwarp u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth2 0" ""
ofa-v2-mlx4_0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mthca0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mthca0 1" ""
ofa-v2-mthca0-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mthca0 2" ""
ofa-v2-cma-roe-eth2 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth2 0" ""
ofa-v2-cma-roe-eth3 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth3 0" ""
ofa-v2-scm-roe-mlx4_0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-scm-roe-mlx4_0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mcm-1 u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mcm-2 u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-scif0 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "scif0 1" ""
ofa-v2-scif0-u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "scif0 1" ""
ofa-v2-mic0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "mic0:ib 1" ""
ofa-v2-mlx4_0-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mlx4_1-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_1 1" ""
ofa-v2-mlx4_1-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_1 2" ""
ofa-v2-mlx4_1-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_1 1" ""
ofa-v2-mlx4_1-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx4_1 2" ""
ofa-v2-mlx4_0-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 1" ""
ofa-v2-mlx4_0-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_0 2" ""
ofa-v2-mlx4_1-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_1 1" ""
ofa-v2-mlx4_1-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx4_1 2" ""
ofa-v2-mlx5_0-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_0 1" ""
ofa-v2-mlx5_0-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_0 2" ""
ofa-v2-mlx5_1-1s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_1 1" ""
ofa-v2-mlx5_1-2s u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx5_1 2" ""
ofa-v2-mlx5_0-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_0 1" ""
ofa-v2-mlx5_0-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_0 2" ""
ofa-v2-mlx5_1-1u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_1 1" ""
ofa-v2-mlx5_1-2u u2.0 nonthreadsafe default libdaploucm.so.2 dapl.2.0 "mlx5_1 2" ""
ofa-v2-mlx5_0-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_0 1" ""
ofa-v2-mlx5_0-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_0 2" ""
ofa-v2-mlx5_1-1m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_1 1" ""
ofa-v2-mlx5_1-2m u2.0 nonthreadsafe default libdaplomcm.so.2 dapl.2.0 "mlx5_1 2" ""
EOF
#On update save configuration before uninstall of old package runs
if [ $1 -gt 0 ]; then
cp -p %_sysconfdir/dat.conf %_sysconfdir/dat.conf.rpmtmp
fi
%posttrans
if [ -e "%_sysconfdir/dat.conf.rpmtmp" ]; then
mv %_sysconfdir/dat.conf.rpmtmp %_sysconfdir/dat.conf
fi
%postun
/sbin/ldconfig
#remove if this isn't an update
if [ $1 -eq 0 ]; then
if test -e %_sysconfdir/dat.conf; then
sed -i -e '/OpenIB-.* u1/d' %_sysconfdir/dat.conf
fi
fi
%files
%defattr(-, root, root)
%doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt
%_libdir/libdapl*.so.*
%config %ghost %_sysconfdir/dat.conf
%files -n %lname
%defattr(-,root,root)
%_libdir/libdat2.so.*
%files devel
%defattr(-, root, root)
%_includedir/dat2/
%_libdir/*.so
%if "%{name}" != "dapl-debug"
%files doc
%defattr(-, root, root)
%_mandir/man1/*
%_mandir/man5/*
%endif
%files utils
%defattr(-,root,root,-)
%{_bindir}/*
%changelog

8
pre_checkin.sh Normal file
View File

@ -0,0 +1,8 @@
#!/bin/bash
# This script has to be run prior to a check-in if changes were done
# to spec and/or changes
sed -e "s,^\(Name:.*dapl\),\1-debug," dapl.spec > dapl-debug.spec
cp dapl.changes dapl-debug.changes
osc service localrun format_spec_file