From c07f6c71b9e5605cb5716d2e9edaecd8cb3b4e3b2c3cf37fb160d58dab007ac8 Mon Sep 17 00:00:00 2001 From: Nicolas Morey Date: Thu, 5 Sep 2024 13:05:56 +0000 Subject: [PATCH] - Add openib-add-missing-include.patch to fix compilation with GCC >= 14. OBS-URL: https://build.opensuse.org/package/show/science:HPC/dapl?expand=0&rev=28 --- .gitattributes | 23 + .gitignore | 1 + _multibuild | 4 + baselibs.conf | 2 + dapl-2.0.30-dat-ia-open-hang.patch | 12 + dapl-2.1.10.tar.gz | 3 + dapl-add-arm-platform-support.patch | 39 ++ dapl-define_NULL.patch | 15 + dapl-fsf_address.patch | 13 + dapl-man_page_fixes.patch | 40 ++ dapl-rpmlintrc | 12 + dapl-s390.patch | 49 ++ dapl.changes | 418 ++++++++++++++++++ dapl.spec | 291 ++++++++++++ openib-add-missing-include.patch | 25 ++ reproducible.patch | 32 ++ ...mcm-fix-backlog-parameter-for-socket.patch | 42 ++ 17 files changed, 1021 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _multibuild create mode 100644 baselibs.conf create mode 100644 dapl-2.0.30-dat-ia-open-hang.patch create mode 100644 dapl-2.1.10.tar.gz create mode 100644 dapl-add-arm-platform-support.patch create mode 100644 dapl-define_NULL.patch create mode 100644 dapl-fsf_address.patch create mode 100644 dapl-man_page_fixes.patch create mode 100644 dapl-rpmlintrc create mode 100644 dapl-s390.patch create mode 100644 dapl.changes create mode 100644 dapl.spec create mode 100644 openib-add-missing-include.patch create mode 100644 reproducible.patch create mode 100644 ucm-mcm-fix-backlog-parameter-for-socket.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..b1644d0 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + debug + + diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..147d7ce --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,2 @@ +libdat2-2 +dapl-devel diff --git a/dapl-2.0.30-dat-ia-open-hang.patch b/dapl-2.0.30-dat-ia-open-hang.patch new file mode 100644 index 0000000..2ed99b8 --- /dev/null +++ b/dapl-2.0.30-dat-ia-open-hang.patch @@ -0,0 +1,12 @@ +diff --git dapl/openib_cma/device.c dapl/openib_cma/device.c +index 326df62..f1a253d 100644 +--- dapl/openib_cma/device.c ++++ dapl/openib_cma/device.c +@@ -305,7 +305,6 @@ DAT_RETURN dapls_ib_open_hca(IN IB_HCA_NAME hca_name, + } + 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 as IPoIB?\n", strerror(errno), hca_name); diff --git a/dapl-2.1.10.tar.gz b/dapl-2.1.10.tar.gz new file mode 100644 index 0000000..5542840 --- /dev/null +++ b/dapl-2.1.10.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8eb6df3b47fcaad8ea6d35453ffc884b1ef2148f7a0984a3556795bab650fa9b +size 1071002 diff --git a/dapl-add-arm-platform-support.patch b/dapl-add-arm-platform-support.patch new file mode 100644 index 0000000..5aeb008 --- /dev/null +++ b/dapl-add-arm-platform-support.patch @@ -0,0 +1,39 @@ +diff -upr dapl-2.1.10.orig/dapl/udapl/linux/dapl_osd.h dapl-2.1.10/dapl/udapl/linux/dapl_osd.h +--- dapl/udapl/linux/dapl_osd.h 2018-05-24 13:31:37.000000000 +0200 ++++ dapl/udapl/linux/dapl_osd.h 2018-05-24 14:03:08.040508060 +0200 +@@ -51,7 +51,7 @@ + + #if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && \ + !defined(__PPC__) && !defined(__PPC64__) && !defined(__s390x__) && \ +- !defined(__aarch64__) && !defined(__s390__) ++ !defined(__aarch64__) && !defined(__arm__) && !defined(__s390__) + #error UNDEFINED ARCH + #endif + +@@ -215,7 +215,7 @@ dapl_os_atomic_inc ( + : "=&r" (tmp), "+m" (v) + : "b" (v) + : "cc"); +-#elif defined(__aarch64__) ++#elif defined(__aarch64__) || defined(__arm__) + __atomic_fetch_add(v, 1, __ATOMIC_ACQ_REL); + #else /* !__ia64__ */ + __asm__ __volatile__ ( +@@ -261,7 +261,7 @@ dapl_os_atomic_dec ( + : "=&r" (tmp), "+m" (v) + : "b" (v) + : "cc"); +-#elif defined(__aarch64__) ++#elif defined(__aarch64__) || defined(__arm__) + __atomic_fetch_add(v, -1, __ATOMIC_ACQ_REL); + #else /* !__ia64__ */ + __asm__ __volatile__ ( +@@ -327,7 +327,7 @@ dapl_os_atomic_assign ( + : "=&r" (current_value), "=m" (*v) + : "r" (v), "r" (match_value), "r" (new_value), "m" (*v) + : "cc", "memory"); +-#elif defined(__aarch64__) ++#elif defined(__aarch64__) || defined(__arm__) + current_value = match_value; + __atomic_compare_exchange_n(v, ¤t_value, new_value, 1, + __ATOMIC_ACQ_REL, __ATOMIC_RELAXED); diff --git a/dapl-define_NULL.patch b/dapl-define_NULL.patch new file mode 100644 index 0000000..c548e3e --- /dev/null +++ b/dapl-define_NULL.patch @@ -0,0 +1,15 @@ +diff --git dat/common/dat_strerror.c dat/common/dat_strerror.c +index 915dfb0..5f26383 100644 +--- dat/common/dat_strerror.c ++++ dat/common/dat_strerror.c +@@ -37,6 +37,10 @@ + * $Id: dat_strerror.c,v 1.10 2005/03/24 05:58:28 jlentini Exp $ + **********************************************************************/ + ++#ifdef __GNUC__ ++#include /* to get NULL defined */ ++#endif ++ + #ifdef __KDAPL__ + #include + #else /*__UDAPL__*/ diff --git a/dapl-fsf_address.patch b/dapl-fsf_address.patch new file mode 100644 index 0000000..7d3ade4 --- /dev/null +++ b/dapl-fsf_address.patch @@ -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. + diff --git a/dapl-man_page_fixes.patch b/dapl-man_page_fixes.patch new file mode 100644 index 0000000..4eee812 --- /dev/null +++ b/dapl-man_page_fixes.patch @@ -0,0 +1,40 @@ +diff --git man/dapltest.1 man/dapltest.1 +index 90fd6d2..0cbee31 100644 +--- man/dapltest.1 ++++ man/dapltest.1 +@@ -1,4 +1,3 @@ +-." Text automatically generated by txt2man + .TH dapltest 1 "November 15, 2016" "uDAPL 2.1" "USER COMMANDS" + + .SH NAME +diff --git man/dat.conf.5 man/dat.conf.5 +index e3f11a4..2fc1d32 100644 +--- man/dat.conf.5 ++++ man/dat.conf.5 +@@ -25,7 +25,7 @@ entries in the \fIdat.conf\fR file. The process of adding a provider + 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 different CM services + + 1. cma - OpenFabrics rdma_cm - uses rdma_cm services for connections +@@ -68,7 +68,7 @@ entry is termed Static Registration. + - libdaploucm (2.0) + .PP + .SH Example entries for each OpenFabrics provider +-\br ++\br + + 1. cma - OpenFarbrics rdma_cm examples + diff --git a/dapl-rpmlintrc b/dapl-rpmlintrc new file mode 100644 index 0000000..27734fd --- /dev/null +++ b/dapl-rpmlintrc @@ -0,0 +1,12 @@ +# 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") + +# As this is a plugin for libibverbs, there is no reason +# to name it according to policy +addFilter(".* shlib-policy-missing-suffix") diff --git a/dapl-s390.patch b/dapl-s390.patch new file mode 100644 index 0000000..395ed08 --- /dev/null +++ b/dapl-s390.patch @@ -0,0 +1,49 @@ +diff --git dapl/udapl/linux/dapl_osd.h dapl/udapl/linux/dapl_osd.h +index 2b255d0..d9362f5 100644 +--- dapl/udapl/linux/dapl_osd.h ++++ dapl/udapl/linux/dapl_osd.h +@@ -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) diff --git a/dapl.changes b/dapl.changes new file mode 100644 index 0000000..08c1fb2 --- /dev/null +++ b/dapl.changes @@ -0,0 +1,418 @@ +------------------------------------------------------------------- +Thu Sep 5 12:32:44 UTC 2024 - Nicolas Morey + +- Add openib-add-missing-include.patch to fix compilation + with GCC >= 14. + +------------------------------------------------------------------- +Mon Feb 26 07:43:13 UTC 2024 - Dominique Leuenberger + +- Use %autosetup macro. Allows to eliminate the usage of deprecated + PatchN. + +------------------------------------------------------------------- +Thu May 4 13:18:39 UTC 2023 - Dominique Leuenberger + +- Convert to proper multibuild package: the spec is already all + done to distinguish flavors. + +------------------------------------------------------------------- +Sat Jul 14 20:21:56 UTC 2018 - bwiedemann@suse.com + +- Add reproducible.patch to fix build time (boo#1047218) + +------------------------------------------------------------------- +Tue May 29 06:04:37 UTC 2018 - nmoreychaisemartin@suse.com + +- Add ucm-mcm-fix-backlog-parameter-for-socket.patch to fix + a "deadlock" that causes socket connection to timeout when + net.ipv4.tcp_syncookies=0. (bsc#1094657) + +------------------------------------------------------------------- +Thu May 24 12:47:16 UTC 2018 - kasimir_@outlook.de + +- Add patch for arm platform support + * dapl-add-arm-platform-support.patch + +------------------------------------------------------------------- +Thu Jul 20 08:25:04 UTC 2017 - nmoreychaisemartin@suse.com + +- Update to 2.1.10 + * dtest_suite: add option to pause the test. + * dtestcm: add client retry, give server time to queue up all listens + * dtest: Add new man pages. (dtestx dtestcm dtestsrq) + * cma: fix open_query mode, initialize attributes + * ucm: up level CM timer logging, increase drep time at scale + * dtest: fix return value check on do_rdma_write_with_msg + * dtestx: check device capabilities and do atomic tests only if supported by HW + * common: set atomic attributes based on provider/device capabilities + * build: dtest_suite.sh was moved to test/scripts + * mpxyd: let TX thread sleep if no open devices are referenced + * mcm: when mmap req from MIC return with fail stat print WARN. + * dtest_suite: remove duplicate dtest_suite.sh + * dtest: enable -D option (data check) to work with scif provider + * dtest_suite: fix typo in user_string var + * mcm: remove logs from post send speed path + * mcm proxy: push WR from MIC to host with scif mmap memory instead of scif_send. + * dtest: the default size in pingpong test is set to 1 byte regardless to user input. + * dtest: cleanup 4 printfs from the middle of performance test, may reduce performance. +- Refresh patches against 2.1.10 + +------------------------------------------------------------------- +Mon Jun 12 09:28:22 UTC 2017 - nmoreychaisemartin@suse.com + +- Merge .changes files with SLE12-SP3 (bsc#1041579) + +------------------------------------------------------------------- +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 + +- add dapl-add-aarch64-platform-support.patch (fate#318444) +- revert last change + +------------------------------------------------------------------- +Tue Aug 25 12:26:58 CEST 2015 - pth@suse.de + +- Exclude aarch64 as there is currently no assembler code for this + architecture. + +------------------------------------------------------------------- +Tue Aug 11 11:04:01 CEST 2015 - pth@suse.de + +- Replace dapl-s390_support.patch with + dapl-add-s390x-platform-support.patch (bsc#934683). +- Fix library name in baselibs.conf. +- Tag baselibs.conf and dapl-rpmlintrc as source. +- libdapl*.so work like plugins, hence they do not get a separate + subpackage. So shut up rpmlint complaining about the package + name. +- Drop the dapl-doc sub package and move the man pages to the + packages containing the files/programs they describe. + +------------------------------------------------------------------- +Wed Feb 4 14:33:06 UTC 2015 - dimstar@opensuse.org + +- Also have dapl-utils conflict with dapl-debug-utils. +- Fix baselibs.conf to build libdat2-2-32bit. + +------------------------------------------------------------------- +Mon Sep 8 07:46:08 UTC 2014 - coolo@suse.com + +- dapl-debug can't obsolete dapl or zypper will switch between the versions + all the time. They do conflict though + +------------------------------------------------------------------- +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. + +------------------------------------------------------------------- +Thu Aug 7 11:55:32 CEST 2014 - pth@suse.de + +- Readd s390 support (bnc#856126). + +------------------------------------------------------------------- +Mon Aug 4 11:28:47 CEST 2014 - pth@suse.de + +- Remove s390 support (bnc#856126). + +------------------------------------------------------------------- +Fri Jun 27 14:11:27 CEST 2014 - pth@suse.de + +- Add baselibs.conf and dapl-rpmlintrc as source. +- Fix dapl-fix_type_punning.patch. +- 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 full source URL + +------------------------------------------------------------------- +Tue May 20 13:54:20 CEST 2014 - pth@suse.de + +- Fix typo in dapl_test.c. + +------------------------------------------------------------------- +Thu May 15 11:43:25 CEST 2014 - pth@suse.de + +- Reenable the code for s390x also for s390. +- Adapt dapl-fix_type_punning.patch to changed code. +- Fix obsoletes entry. +- Fix type punning with memcpy instead of unions. + +------------------------------------------------------------------- +Tue May 13 22:52:17 CEST 2014 - pth@suse.de + +- Update tp 2.0.42 from OFED 3.12 RC2. + Changes since 2.0.40: + * dapltest: increase DTO evd size to prevent CQ overflow on + limit_rpost test. + * Creation of reserved SP moves EP state to DAT_EP_STATE_RESERVED + even in failure cases. Reserve EP after successfully binding the + listening port. + * dapl: fix string bug in dapls_dto_op_str + This led to indexing off the end of the array and gave + surprising results for OP_RECV_UD. + * dapltest: change server port, from 45278 to 62000, out of + registered IANA range. + * dat: lower log level on load errors of provider library + * dat: dat_ia_open should close provider after failure + * dapltest: set default limit max to 1000 + * openib: add new provider specific attributes + * dapltest: update scripts for regression testing purposes + * cl.sh and srv.sh update to provide better examples and + a methods to quickly regression test any dapltest changes. + * dapltest: Add final send/recv "sync" for transaction tests. + +For the complete and unabbreviated Changes please see the file +ChangeLog in the package documentation. + +------------------------------------------------------------------- +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 + diff --git a/dapl.spec b/dapl.spec new file mode 100644 index 0000000..263d570 --- /dev/null +++ b/dapl.spec @@ -0,0 +1,291 @@ +# +# spec file +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" != "" +%define nsuffix -%{flavor} +%endif + +%define git_version %nil +Name: dapl%{?nsuffix} +Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs +License: BSD-3-Clause OR GPL-2.0-or-later OR CPL-1.0 +Group: Productivity/Networking/System +Version: 2.1.10 +Release: 0 +Source0: https://www.openfabrics.org/downloads/dapl/dapl-%version.tar.gz +Source1: dapl-rpmlintrc +Source2: baselibs.conf + +Patch1: dapl-2.0.30-dat-ia-open-hang.patch +Patch2: dapl-define_NULL.patch +Patch3: dapl-man_page_fixes.patch +Patch4: dapl-fsf_address.patch +Patch5: dapl-s390.patch +Patch6: dapl-add-arm-platform-support.patch +Patch7: ucm-mcm-fix-backlog-parameter-for-socket.patch +Patch8: reproducible.patch +Patch9: openib-add-missing-include.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" +Conflicts: dapl-debug +%else +Conflicts: 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 provide +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 +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. + +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" +Conflicts: dapl-debug-devel +%else +Conflicts: dapl-devel +%endif + +%description devel +Library links and header files for the libdat and libdapl libraries. +%if "%{name}" == "dapl-debug" +The libraries have tracing enabled. +%endif + +%package utils +Summary: Test suite for the uDAPL library +Group: Productivity/Networking/System +Requires: %{name} = %{version}-%{release} +Recommends: dapl-doc = %{version} +%if "%name" == "dapl" +Conflicts: dapl-debug-utils +%else +Conflicts: dapl-utils +%endif + +%description utils +Test suite to validate the uDAPL library APIs. + +%prep +%autosetup -p0 -n dapl-%{version} + +%build +%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} V=1 + +%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 + +#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 + +%define man_regexp -e s/dapltest/dapl-test/g -e s/dtestcm/dapl-testcm/g -e s/dtestsrq/dapl-testsrq/g -e s/dtestx/dapl-testx/g -e s/dtest/dapl-utest/g + +%if "%{name}" != "dapl-debug" +# Fix man pages accordingly +for manpage in dapltest dtest dtestcm dtestsrq dtestx; do + new_name=$(echo $manpage | sed %man_regexp) + sed %man_regexp %{buildroot}%{_mandir}/man1/$manpage.1 > %{buildroot}%{_mandir}/man1/$new_name.1 + rm %{buildroot}%{_mandir}/man1/$manpage.1 +done +%endif + +%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 <>%_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 +%if "%{name}" != "dapl-debug" +%_mandir/man5/dat.conf.5* +%endif +%doc + +%files -n %lname +%defattr(-,root,root) +%_libdir/libdat2.so.* + +%files devel +%defattr(-, root, root) +%_includedir/dat2/ +%_libdir/*.so + +%files utils +%defattr(-,root,root,-) +%{_bindir}/* +%if "%{name}" != "dapl-debug" +%_mandir/man1/dapl-test.1* +%_mandir/man1/dapl-utest.1* +%_mandir/man1/dapl-testcm.1* +%_mandir/man1/dapl-testsrq.1* +%_mandir/man1/dapl-testx.1* +%endif + +%changelog diff --git a/openib-add-missing-include.patch b/openib-add-missing-include.patch new file mode 100644 index 0000000..de54865 --- /dev/null +++ b/openib-add-missing-include.patch @@ -0,0 +1,25 @@ +commit 374032b1777f85cde146fad8c3e557d8d71654de +Author: Nicolas Morey +Date: Thu Sep 5 14:30:20 2024 +0200 + + openib: add missing include + + Add include to fix compilation with GCC >= 14: + dapl/openib_scm/cm.c: In function 'dapli_socket_connected': + dapl/openib_scm/cm.c:576:23: error: implicit declaration of function 'writev'; did you mean 'write'? [-Wimplicit-function-declaration] + 576 | len = writev(cm_ptr->socket, iov, 2); + + Signed-off-by: Nicolas Morey + +diff --git dapl/openib_scm/cm.c dapl/openib_scm/cm.c +index 29b45dff75dc..167f6fa7a5ab 100644 +--- dapl/openib_scm/cm.c ++++ dapl/openib_scm/cm.c +@@ -51,6 +51,7 @@ + #define DAPL_FD_SETSIZE FD_SETSIZE + #endif + ++#include + #include "dapl.h" + #include "dapl_adapter_util.h" + #include "dapl_evd_util.h" diff --git a/reproducible.patch b/reproducible.patch new file mode 100644 index 0000000..3fc07c4 --- /dev/null +++ b/reproducible.patch @@ -0,0 +1,32 @@ +merged upstream http://git.openfabrics.org/?p=~ardavis/dapl.git;a=commitdiff;h=f1e05b7adcee629ee7c1d4d86ea55344d9309232 +with a insignificant diff + +commit a25b1d9042ca3ae485f0d16c47e7a29bdbb35ec0 +Author: Bernhard M. Wiedemann +Date: Fri Jul 14 17:53:30 2017 +0200 + + Allow to override build date + + in order to allow for reproducible builds. + See https://reproducible-builds.org/ for why this is good + and https://reproducible-builds.org/specs/source-date-epoch/ + for the definition of this variable. + + Note: This variant works with GNU date, if BSD date support is important, + a more complex patch can be done + + Signed-off-by: Bernhard M. Wiedemann + +diff --git Makefile.am Makefile.am +index 483ba90..91def97 100755 +--- Makefile.am ++++ Makefile.am +@@ -48,7 +48,7 @@ AM_CFLAGS = -g -Wall -D_GNU_SOURCE -DDAT_CONF="\"$(sysconfdir)/dat.conf\"" + endif + + AM_CFLAGS += -DMPXYD_CONF="\"$(sysconfdir)/mpxyd.conf\"" +-AM_CFLAGS += -DPACKAGE_DATE=$$(date +'%Y%m%d') ++AM_CFLAGS += -DPACKAGE_DATE=$$(date -u -d@$${SOURCE_DATE_EPOCH:-$$(date +%s)} +'%Y%m%d') + + sysconf_DATA = doc/dat.conf + diff --git a/ucm-mcm-fix-backlog-parameter-for-socket.patch b/ucm-mcm-fix-backlog-parameter-for-socket.patch new file mode 100644 index 0000000..45650df --- /dev/null +++ b/ucm-mcm-fix-backlog-parameter-for-socket.patch @@ -0,0 +1,42 @@ +commit 40264438e5320d4bf2cde5d8c1c2ddc4637d3042 +Author: Nicolas Morey-Chaisemartin +Date: Tue May 29 07:53:52 2018 +0200 + + ucm, mcm: fix backlog parameter for socket + + Using listen(, 0) forces a synchronization barrier between connect and accept + if net.ipv4.tcp_syncookies. As this is done by a single thread, it causes connect + to timeout with a similar message: + open_hca: failed to init cr pipe - Connection timed out + + Replace with listen(, 1) so the kernel can accept the connection itself and remove + the synchronisation point. + + Signed-off-by: Nicolas Morey-Chaisemartin + +diff --git dapl/openib_mcm/device.c dapl/openib_mcm/device.c +index 2e30221ac2d2..5ea25615f683 100644 +--- dapl/openib_mcm/device.c ++++ dapl/openib_mcm/device.c +@@ -59,7 +59,7 @@ static int32_t create_os_signal(IN DAPL_HCA * hca_ptr) + if (ret) + goto err1; + +- ret = listen(listen_socket, 0); ++ ret = listen(listen_socket, 1); + if (ret) + goto err1; + +diff --git dapl/openib_ucm/device.c dapl/openib_ucm/device.c +index 11f7334ec348..9e257835f44b 100644 +--- dapl/openib_ucm/device.c ++++ dapl/openib_ucm/device.c +@@ -92,7 +92,7 @@ static int32_t create_os_signal(IN DAPL_HCA * hca_ptr) + if (ret) + goto err1; + +- ret = listen(listen_socket, 0); ++ ret = listen(listen_socket, 1); + if (ret) + goto err1; +