Accepting request 502397 from science:HPC

- Rename dapl-utils tests to avoid conflicts with other packages (dateutils)
  * dapltest => dapl-test
  * dtest    => dapl-utest
  * dtestcm  => dapl-testcm
  * dtestsrq => dapl-testsrq
  * dtestx   => dapl-testx
- Remove librdmacm and libibverbs version dependencies

- Restore description of libdapl. Fix some grammar errors.

- Disable dapl on armv7hl

- Make dependencies on libs now coming from rdma-core versioned.
- Remove unused patch dapl-rename_dtest.patch

- Update to 2.1.8 git version (bsc#970668).
  List of changes is too long so please see the included ChangeLog.
- Patches removed because the fixes are included upstream:
  dapl-fix_type_punning.patch
  dapl-autotools.patch
  dapl-add-s390x-platform-support.patch
  dapl-add-aarch64-platform-support.patch
  dapl-add-s390x-platform-support.patch
- Add dapl-s390.patch so that the defines are also valid for s390

- Add conflicts between dapl and dapl-debug packages for devel
  and utils

OBS-URL: https://build.opensuse.org/request/show/502397
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dapl?expand=0&rev=5
This commit is contained in:
Dominique Leuenberger 2017-06-09 13:57:33 +00:00 committed by Git OBS Bridge
parent b6d1b3ac69
commit 13f0286428
14 changed files with 253 additions and 683 deletions

View File

@ -11,13 +11,13 @@ Acked-by: John Jolly <jjolly@suse.de>
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
--- dapl/openib_cma/device.c.orig 2016-03-10 15:08:38.037462973 +0100
+++ dapl/openib_cma/device.c 2016-03-10 15:10:39.068801915 +0100
@@ -313,7 +313,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);
" Is %s configured as IPoIB?\n", strerror(errno), hca_name);

View File

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

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:040f25124182af299c65e0c3117c0d6bafd8cdc5eade11abd8a114d60c6be592
size 702700

View File

@ -1,56 +0,0 @@
From 142fa8fa58d5e0b92dccc52d7a3bd913456084b4 Mon Sep 17 00:00:00 2001
From: Mark Salter <msalter@redhat.com>
Date: Wed, 13 May 2015 16:40:58 -0700
Subject: [PATCH] dapl: aarch64 support for linux
Add atomic ops to fix builds for aarch64 Linux.
Signed-off-by: Mark Salter <msalter@redhat.com>
Acked-by: Arlin Davis <arlin.r.davis@intel.com>
---
dapl/udapl/linux/dapl_osd.h | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
Index: dapl-2.0.42/dapl/udapl/linux/dapl_osd.h
===================================================================
--- dapl-2.0.42.orig/dapl/udapl/linux/dapl_osd.h
+++ dapl-2.0.42/dapl/udapl/linux/dapl_osd.h
@@ -51,7 +51,8 @@
#if !defined(__i386__) && !defined(__ia64__) \
&& !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__) \
-&& !defined(__s390x__) && !defined(__s390__)
+&& !defined(__s390x__) && !defined(__s390__) \
+&& !defined(__aarch64__)
#error UNDEFINED ARCH
#endif
@@ -213,6 +214,8 @@ dapl_os_atomic_inc (
: "=&r" (tmp), "+m" (v)
: "b" (v)
: "cc");
+#elif defined(__aarch64__)
+ __atomic_fetch_add(v, 1, __ATOMIC_ACQ_REL);
#else /* !__ia64__ */
__asm__ __volatile__ (
"lock;" "incl %0"
@@ -257,6 +260,8 @@ dapl_os_atomic_dec (
: "=&r" (tmp), "+m" (v)
: "b" (v)
: "cc");
+#elif defined(__aarch64__)
+ __atomic_fetch_add(v, -1, __ATOMIC_ACQ_REL);
#else /* !__ia64__ */
__asm__ __volatile__ (
"lock;" "decl %0"
@@ -321,6 +326,10 @@ dapl_os_atomic_assign (
: "=&r" (current_value), "=m" (*v)
: "r" (v), "r" (match_value), "r" (new_value), "m" (*v)
: "cc", "memory");
+#elif defined(__aarch64__)
+ current_value = match_value;
+ __atomic_compare_exchange_n(v, &current_value, new_value, 1,
+ __ATOMIC_ACQ_REL, __ATOMIC_RELAXED);
#else
__asm__ __volatile__ (
"lock; cmpxchgl %1, %2"

View File

@ -1,126 +0,0 @@
dapl/udapl/linux/dapl_osd.h | 37 +++++++++++++++++++++++++++++-
test/dapltest/mdep/linux/dapl_mdep_user.c | 2 -
test/dapltest/mdep/linux/dapl_mdep_user.h | 9 ++++++-
3 files changed, 45 insertions(+), 3 deletions(-)
Index: dapl-2.0.42/dapl/udapl/linux/dapl_osd.h
===================================================================
--- dapl-2.0.42.orig/dapl/udapl/linux/dapl_osd.h 2014-04-07 19:27:35.000000000 +0200
+++ dapl-2.0.42/dapl/udapl/linux/dapl_osd.h 2015-08-11 11:21:10.335431479 +0200
@@ -49,7 +49,9 @@
#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__) && !defined(__s390__)
#error UNDEFINED ARCH
#endif
@@ -156,6 +158,22 @@ int dapl_os_get_env_val (
/* atomic functions */
+#if defined(__s390x__) || defined(__s390__)
+#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 +197,11 @@ dapl_os_atomic_inc (
#else
IA64_FETCHADD(old_value,v,1,4);
#endif
+#elif defined(__s390x__) || defined(__s390__)
+ DAT_COUNT tmp;
+ DAT_COUNT delta = 1;
+
+ tmp = DAPL_CS_ADD(v, delta);
#elif defined(__PPC__) || defined(__PPC64__)
int tmp;
@@ -218,6 +241,11 @@ dapl_os_atomic_dec (
#else
IA64_FETCHADD(old_value,v,-1,4);
#endif
+#elif defined(__s390x__) || defined(__s390__)
+ DAT_COUNT tmp;
+ DAT_COUNT delta = -1;
+
+ tmp = DAPL_CS_ADD(v, delta);
#elif defined (__PPC__) || defined(__PPC64__)
int tmp;
@@ -273,6 +301,13 @@ dapl_os_atomic_assign (
#else
current_value = ia64_cmpxchg(acq,v,match_value,new_value,4);
#endif /* __ia64__ */
+#elif defined(__s390x__) || defined(__s390__)
+ __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.42/test/dapltest/mdep/linux/dapl_mdep_user.c
===================================================================
--- dapl-2.0.42.orig/test/dapltest/mdep/linux/dapl_mdep_user.c 2014-04-07 19:27:35.000000000 +0200
+++ dapl-2.0.42/test/dapltest/mdep/linux/dapl_mdep_user.c 2015-08-11 11:18:51.751655179 +0200
@@ -168,7 +168,7 @@ unsigned long DT_Mdep_GetTime(void)
return tv.tv_sec * 1000 + tv.tv_usec / 1000;
}
-#ifdef RDTSC_TIMERS
+#if defined(RDTSC_TIMERS) && !defined(__s390x__)
double DT_Mdep_GetCpuMhz(void)
{
#define DT_TSC_BUFFER_SIZE 128
Index: dapl-2.0.42/test/dapltest/mdep/linux/dapl_mdep_user.h
===================================================================
--- dapl-2.0.42.orig/test/dapltest/mdep/linux/dapl_mdep_user.h 2014-04-07 19:27:35.000000000 +0200
+++ dapl-2.0.42/test/dapltest/mdep/linux/dapl_mdep_user.h 2015-08-11 11:18:51.751655179 +0200
@@ -143,11 +143,18 @@ DT_Mdep_GetTimeStamp ( void )
asm volatile("rdtsc" : "=a" (__a), "=d" (__d));
return ((unsigned long)__a) | (((unsigned long)__d)<<32);
#else
+#if defined(__s390x__)
+ DT_Mdep_TimeStamp x;
+
+ asm volatile("stck %0" : "=Q" (x) : : "cc");
+ return x >> 2;
+#else
#error "Linux CPU architecture - unimplemented"
#endif
#endif
#endif
#endif
+#endif
}
#else /* !RDTSC_TIMERS */
/*
@@ -172,7 +179,7 @@ DT_Mdep_GetTimeStamp ( void )
* world. E.g. %llx for gcc, %I64x for Windows
*/
-#if defined(__x86_64__) || defined(__ia64__)
+#if defined(__x86_64__) || defined(__ia64__) || defined(__s390x__)
#define F64d "%ld"
#define F64u "%lu"
#define F64x "%lx"

View File

@ -1,56 +0,0 @@
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

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Tue May 30 08:50:05 UTC 2017 - nmoreychaisemartin@suse.com
- Add conflicts between dapl and dapl-debug packages for devel
and utils
- Rename dapl-utils tests to avoid conflicts with other packages (dateutils)
* dapltest => dapl-test
* dtest => dapl-utest
* dtestcm => dapl-testcm
* dtestsrq => dapl-testsrq
* dtestx => dapl-testx
- Remove librdmacm and libibverbs version dependencies
-------------------------------------------------------------------
Thu May 25 07:19:35 UTC 2017 - jengelh@inai.de
- Restore description of libdapl. Fix some grammar errors.
-------------------------------------------------------------------
Wed May 17 08:20:55 UTC 2017 - nmoreychaisemartin@suse.com
- Disable dapl on armv7hl
-------------------------------------------------------------------
Wed Mar 29 07:53:21 CEST 2017 - pth@suse.de
- Make dependencies on libs now coming from rdma-core versioned.
- Remove unused patch dapl-rename_dtest.patch
-------------------------------------------------------------------
Thu Mar 10 15:19:58 CET 2016 - pth@suse.de
- Update to 2.1.8 git version (bsc#970668).
List of changes is too long so please see the included ChangeLog.
- Patches removed because the fixes are included upstream:
dapl-fix_type_punning.patch
dapl-autotools.patch
dapl-add-s390x-platform-support.patch
dapl-add-aarch64-platform-support.patch
dapl-add-s390x-platform-support.patch
- Add dapl-s390.patch so that the defines are also valid for s390
-------------------------------------------------------------------
Thu Sep 10 08:04:16 UTC 2015 - dmueller@suse.com

View File

@ -1,7 +1,7 @@
#
# spec file for package dapl-debug
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,24 +16,21 @@
#
%define git_version -git6316f83
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
Version: 2.1.8
Release: 0
Source0: https://www.openfabrics.org/downloads/dapl/dapl-%{version}.tar.gz
Source1: baselibs.conf
Source2: dapl-rpmlintrc
Source0: dapl-%{version}%{git_version}.tar.xz
Source1: dapl-rpmlintrc
Source2: baselibs.conf
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-add-s390x-platform-support.patch
Patch9: dapl-autotools.patch
Patch10: dapl-rename_dtest.patch
Patch11: dapl-add-aarch64-platform-support.patch
Patch12: dapl-s390.patch
Url: http://www.openfabrics.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
@ -41,8 +38,11 @@ BuildRequires: automake
BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel
BuildRequires: libtool
ExcludeArch: armv7hl
%if "%name" == "dapl-debug"
%if "%name" == "dapl"
Conflicts: dapl-debug
%else
Conflicts: dapl
%endif
@ -67,7 +67,7 @@ Requires(post): coreutils
%endif
%description
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
Along with the OpenFabrics kernel drivers, libdat and libdapl provide
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data.
@ -82,10 +82,10 @@ Provides: dapl2 = %version
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.
libdat and libdapl provide a userspace RDMA API that supports DAT 2.0
specification and IB transport extensions for atomic operations and
rdma write with immediate data.
%description -n %lname
This package contains the runtime libraries.
%if "%{name}" == "dapl-debug"
The libraries have tracing enabled.
@ -96,56 +96,41 @@ Summary: Development files for the libdat and libdapl libraries
Group: Development/Libraries/Other
Requires: %{name} = %{version}
Requires: glibc-devel
%if "%{name}" == "dapl"
%if "%name" == "dapl"
Conflicts: dapl-debug-devel
%else
Provides: dapl-devel
Conflicts: dapl-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.
%if "%{name}" == "dapl-debug"
The libraries have tracing enabled.
%endif
%package utils
Summary: Test suites for the uDAPL library
Summary: Test suite for the uDAPL library
Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release}
%if "%{name}" == "dapl"
Recommends: dapl-doc = %{version}
%if "%name" == "dapl"
Conflicts: dapl-debug-utils
%else
Conflicts: dapl-utils
%endif
%description utils
Useful test suites to validate the uDAPL library APIs.
Test suite to validate the uDAPL library APIs.
%prep
%setup -q -n dapl-%{version}
%patch1
%patch4
%patch5
%patch6
%patch7
%patch8 -p1
%patch9
%patch10
%patch11 -p1
%patch12
%build
mv man/dtest.1 man/dpltest.1
%if %suse_version == 1110
export ac_cv_suse11=yes
%endif
@ -156,7 +141,7 @@ autoreconf -fi
%configure --disable-static --with-pic --enable-debug
%endif
make %{?_smp_mflags}
make %{?_smp_mflags} V=1
%check
export MALLOC_CHECK_=2
@ -173,6 +158,22 @@ rm -rf %{buildroot}%{_mandir}/man{1,5}/*
mkdir -p %{buildroot}%_sysconfdir
touch %{buildroot}%_sysconfdir/dat.conf
#Rename tests to avoid conflicts.
# dtest clashes with dateutils package
mv %{buildroot}%{_bindir}/dapltest %{buildroot}%{_bindir}/dapl-test
mv %{buildroot}%{_bindir}/dtest %{buildroot}%{_bindir}/dapl-utest
mv %{buildroot}%{_bindir}/dtestcm %{buildroot}%{_bindir}/dapl-testcm
mv %{buildroot}%{_bindir}/dtestsrq %{buildroot}%{_bindir}/dapl-testsrx
mv %{buildroot}%{_bindir}/dtestx %{buildroot}%{_bindir}/dapl-testx
%if "%{name}" != "dapl-debug"
# Fix man pages accordingly
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dtest.1 > %{buildroot}%{_mandir}/man1/dapl-utest.1
rm %{buildroot}%{_mandir}/man1/dtest.1
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dapltest.1 > %{buildroot}%{_mandir}/man1/dapl-test.1
rm %{buildroot}%{_mandir}/man1/dapltest.1
%endif
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
@ -255,6 +256,10 @@ fi
%doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt
%_libdir/libdapl*.so.*
%config %ghost %_sysconfdir/dat.conf
%if "%{name}" != "dapl-debug"
%_mandir/man5/dat.conf.5*
%endif
%doc
%files -n %lname
%defattr(-,root,root)
@ -265,15 +270,12 @@ fi
%_includedir/dat2/
%_libdir/*.so
%if "%{name}" != "dapl-debug"
%files doc
%defattr(-, root, root)
%_mandir/man1/*
%_mandir/man5/*
%endif
%files utils
%defattr(-,root,root,-)
%{_bindir}/*
%if "%{name}" != "dapl-debug"
%_mandir/man1/dapl-test.1*
%_mandir/man1/dapl-utest.1*
%endif
%changelog

View File

@ -1,299 +0,0 @@
---
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))) {

View File

@ -1,40 +0,0 @@
---
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

View File

@ -2,7 +2,11 @@
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")
# As this is a plugin for libibverbs, there is no reason
# to name it according to policy
addFilter(".* shlib-policy-missing-suffix")

53
dapl-s390.patch Normal file
View File

@ -0,0 +1,53 @@
---
dapl/udapl/linux/dapl_osd.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: dapl/udapl/linux/dapl_osd.h
===================================================================
--- dapl/udapl/linux/dapl_osd.h.orig 2016-03-10 14:56:57.000000000 +0100
+++ dapl/udapl/linux/dapl_osd.h 2016-03-10 18:28:46.909424533 +0100
@@ -51,7 +51,7 @@
#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && \
!defined(__PPC__) && !defined(__PPC64__) && !defined(__s390x__) && \
- !defined(__aarch64__)
+ !defined(__aarch64__) && !defined(__s390__)
#error UNDEFINED ARCH
#endif
@@ -160,7 +160,7 @@ int dapl_os_get_env_val (
/* atomic functions */
-#ifdef __s390x__
+#if defined(__s390x__) || defined(__s390__)
#define DAPL_CS_ADD(ptr, op_val) ({ \
int old_val, new_val; \
__asm__ __volatile__( \
@@ -199,7 +199,7 @@ dapl_os_atomic_inc (
#else
IA64_FETCHADD(old_value,v,1,4);
#endif
-#elif defined(__s390x__)
+#elif defined(__s390x__) || defined(__s390__)
DAT_COUNT tmp;
DAT_COUNT delta = 1;
@@ -245,7 +245,7 @@ dapl_os_atomic_dec (
#else
IA64_FETCHADD(old_value,v,-1,4);
#endif
-#elif defined(__s390x__)
+#elif defined(__s390x__) || defined(__s390__)
DAT_COUNT tmp;
DAT_COUNT delta = -1;
@@ -307,7 +307,7 @@ dapl_os_atomic_assign (
#else
current_value = ia64_cmpxchg(acq,v,match_value,new_value,4);
#endif /* __ia64__ */
-#elif defined(__s390x__)
+#elif defined(__s390x__) || defined(__s390__)
__asm__ __volatile__(
" cs %0,%2,%1\n"
: "+d" (match_value), "=Q" (*v)

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Tue May 30 08:50:05 UTC 2017 - nmoreychaisemartin@suse.com
- Add conflicts between dapl and dapl-debug packages for devel
and utils
- Rename dapl-utils tests to avoid conflicts with other packages (dateutils)
* dapltest => dapl-test
* dtest => dapl-utest
* dtestcm => dapl-testcm
* dtestsrq => dapl-testsrq
* dtestx => dapl-testx
- Remove librdmacm and libibverbs version dependencies
-------------------------------------------------------------------
Thu May 25 07:19:35 UTC 2017 - jengelh@inai.de
- Restore description of libdapl. Fix some grammar errors.
-------------------------------------------------------------------
Wed May 17 08:20:55 UTC 2017 - nmoreychaisemartin@suse.com
- Disable dapl on armv7hl
-------------------------------------------------------------------
Wed Mar 29 07:53:21 CEST 2017 - pth@suse.de
- Make dependencies on libs now coming from rdma-core versioned.
- Remove unused patch dapl-rename_dtest.patch
-------------------------------------------------------------------
Thu Mar 10 15:19:58 CET 2016 - pth@suse.de
- Update to 2.1.8 git version (bsc#970668).
List of changes is too long so please see the included ChangeLog.
- Patches removed because the fixes are included upstream:
dapl-fix_type_punning.patch
dapl-autotools.patch
dapl-add-s390x-platform-support.patch
dapl-add-aarch64-platform-support.patch
dapl-add-s390x-platform-support.patch
- Add dapl-s390.patch so that the defines are also valid for s390
-------------------------------------------------------------------
Thu Sep 10 08:04:16 UTC 2015 - dmueller@suse.com

100
dapl.spec
View File

@ -1,7 +1,7 @@
#
# spec file for package dapl
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,24 +16,21 @@
#
%define git_version -git6316f83
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
Version: 2.1.8
Release: 0
Source0: https://www.openfabrics.org/downloads/dapl/dapl-%{version}.tar.gz
Source1: baselibs.conf
Source2: dapl-rpmlintrc
Source0: dapl-%{version}%{git_version}.tar.xz
Source1: dapl-rpmlintrc
Source2: baselibs.conf
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-add-s390x-platform-support.patch
Patch9: dapl-autotools.patch
Patch10: dapl-rename_dtest.patch
Patch11: dapl-add-aarch64-platform-support.patch
Patch12: dapl-s390.patch
Url: http://www.openfabrics.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
@ -41,8 +38,11 @@ BuildRequires: automake
BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel
BuildRequires: libtool
ExcludeArch: armv7hl
%if "%name" == "dapl-debug"
%if "%name" == "dapl"
Conflicts: dapl-debug
%else
Conflicts: dapl
%endif
@ -67,7 +67,7 @@ Requires(post): coreutils
%endif
%description
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
Along with the OpenFabrics kernel drivers, libdat and libdapl provide
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data.
@ -82,10 +82,10 @@ Provides: dapl2 = %version
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.
libdat and libdapl provide a userspace RDMA API that supports DAT 2.0
specification and IB transport extensions for atomic operations and
rdma write with immediate data.
%description -n %lname
This package contains the runtime libraries.
%if "%{name}" == "dapl-debug"
The libraries have tracing enabled.
@ -96,56 +96,41 @@ Summary: Development files for the libdat and libdapl libraries
Group: Development/Libraries/Other
Requires: %{name} = %{version}
Requires: glibc-devel
%if "%{name}" == "dapl"
%if "%name" == "dapl"
Conflicts: dapl-debug-devel
%else
Provides: dapl-devel
Conflicts: dapl-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.
%if "%{name}" == "dapl-debug"
The libraries have tracing enabled.
%endif
%package utils
Summary: Test suites for the uDAPL library
Summary: Test suite for the uDAPL library
Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release}
%if "%{name}" == "dapl"
Recommends: dapl-doc = %{version}
%if "%name" == "dapl"
Conflicts: dapl-debug-utils
%else
Conflicts: dapl-utils
%endif
%description utils
Useful test suites to validate the uDAPL library APIs.
Test suite to validate the uDAPL library APIs.
%prep
%setup -q -n dapl-%{version}
%patch1
%patch4
%patch5
%patch6
%patch7
%patch8 -p1
%patch9
%patch10
%patch11 -p1
%patch12
%build
mv man/dtest.1 man/dpltest.1
%if %suse_version == 1110
export ac_cv_suse11=yes
%endif
@ -156,7 +141,7 @@ autoreconf -fi
%configure --disable-static --with-pic --enable-debug
%endif
make %{?_smp_mflags}
make %{?_smp_mflags} V=1
%check
export MALLOC_CHECK_=2
@ -173,6 +158,22 @@ rm -rf %{buildroot}%{_mandir}/man{1,5}/*
mkdir -p %{buildroot}%_sysconfdir
touch %{buildroot}%_sysconfdir/dat.conf
#Rename tests to avoid conflicts.
# dtest clashes with dateutils package
mv %{buildroot}%{_bindir}/dapltest %{buildroot}%{_bindir}/dapl-test
mv %{buildroot}%{_bindir}/dtest %{buildroot}%{_bindir}/dapl-utest
mv %{buildroot}%{_bindir}/dtestcm %{buildroot}%{_bindir}/dapl-testcm
mv %{buildroot}%{_bindir}/dtestsrq %{buildroot}%{_bindir}/dapl-testsrx
mv %{buildroot}%{_bindir}/dtestx %{buildroot}%{_bindir}/dapl-testx
%if "%{name}" != "dapl-debug"
# Fix man pages accordingly
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dtest.1 > %{buildroot}%{_mandir}/man1/dapl-utest.1
rm %{buildroot}%{_mandir}/man1/dtest.1
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dapltest.1 > %{buildroot}%{_mandir}/man1/dapl-test.1
rm %{buildroot}%{_mandir}/man1/dapltest.1
%endif
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
@ -255,6 +256,10 @@ fi
%doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt
%_libdir/libdapl*.so.*
%config %ghost %_sysconfdir/dat.conf
%if "%{name}" != "dapl-debug"
%_mandir/man5/dat.conf.5*
%endif
%doc
%files -n %lname
%defattr(-,root,root)
@ -265,15 +270,12 @@ fi
%_includedir/dat2/
%_libdir/*.so
%if "%{name}" != "dapl-debug"
%files doc
%defattr(-, root, root)
%_mandir/man1/*
%_mandir/man5/*
%endif
%files utils
%defattr(-,root,root,-)
%{_bindir}/*
%if "%{name}" != "dapl-debug"
%_mandir/man1/dapl-test.1*
%_mandir/man1/dapl-utest.1*
%endif
%changelog