From: Greg Hogan <code@greghogan.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 51592@debbugs.gnu.org
Subject: [bug#51592] [PATCH 0/2] gnu: Add bloomberg-bde.
Date: Fri, 4 Feb 2022 16:23:29 -0500 [thread overview]
Message-ID: <CA+3U0ZkdS2O_bFKzvkTr-Zj17FsBk42-bT8hF4=MvXVv3_YNWw@mail.gmail.com> (raw)
In-Reply-To: <CA+3U0Zny45RMqeCpj7Qxov8iLvW1Ocro3eML8G5hbf5Sbnp45g@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 136 bytes --]
I have updated the attached patches to the latest versioned commits. I
believe the recommended fixes are all in place.
Thanks,
Greg
>
[-- Attachment #1.2: Type: text/html, Size: 431 bytes --]
[-- Attachment #2: 0001-gnu-Add-bloomberg-bde-tools.patch --]
[-- Type: text/x-patch, Size: 7437 bytes --]
From fa9d62133973705b08f4f0952cf55189ff9cdb7b Mon Sep 17 00:00:00 2001
From: Greg Hogan <code@greghogan.com>
Date: Wed, 3 Nov 2021 15:20:51 +0000
Subject: [PATCH 1/2] gnu: Add bloomberg-bde-tools.
* gnu/packages/cpp.scm (bloomberg-bde-tools): New variable.
---
gnu/local.mk | 1 +
gnu/packages/cpp.scm | 30 +++++-
...bloomberg-bde-tools-fix-install-path.patch | 95 +++++++++++++++++++
3 files changed, 125 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index dddda78efa..b533002407 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -911,6 +911,7 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-CVE-2021-45078.patch \
+ %D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 4d46339341..b8c89813d1 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
-;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2020-2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
@@ -48,6 +48,7 @@ (define-module (gnu packages cpp)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix modules)
@@ -1585,3 +1586,30 @@ (define-public simdjson
validation.")
(home-page "https://github.com/simdjson/simdjson")
(license license:asl2.0)))
+
+(define-public bloomberg-bde-tools
+ (let ((commit "094885bd177e0159232d4e6a060a04edb1edd786"))
+ (package
+ (name "bloomberg-bde-tools")
+ ;; Recent releases are not tagged so commit must be used for checkout.
+ (version "3.97.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bloomberg/bde-tools")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0mbbai73z8amh23ah3wy35kmy612380yr5wg89mic60qwqmpqb02"))
+ (patches
+ (search-patches
+ "bloomberg-bde-tools-fix-install-path.patch"))))
+ (build-system copy-build-system)
+ ;; Unable to be an inline dependency of bloomberg-bde due to patch.
+ (properties '((hidden? . #t)))
+ (synopsis "Tools for developing and building libraries modeled on BDE")
+ (description
+ "This package provides the cmake imports needed to build bloomberg-bde.")
+ (home-page "https://github.com/bloomberg/bde-tools")
+ (license license:asl2.0))))
diff --git a/gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch b/gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch
new file mode 100644
index 0000000000..a80c6c3ea3
--- /dev/null
+++ b/gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch
@@ -0,0 +1,95 @@
+Install shared libraries into "lib". Do not create symbolic links to static
+libraries since only shared libraries are built.
+
+--- a/cmake/layers/ufid.cmake
++++ b/cmake/layers/ufid.cmake
+@@ -6,10 +6,7 @@ bde_prefixed_override(ufid project_setup_install_opts)
+ function(ufid_project_setup_install_opts proj)
+ bde_assert_no_extra_args()
+
+- set(libPath "bin/so")
+- if (${bde_ufid_is_64})
+- string(APPEND libPath "/64")
+- endif()
++ set(libPath "lib")
+
+ bde_struct_create(
+ installOpts
+@@ -86,13 +83,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-symlinks"
+- )
+-
+ # This code creates compatibility symlinks
+ # WARNING: This is custom logic that has nothing to do with our build system.
+ # Some external build systems expect to find a variaty of ufids in dpkg.
+@@ -110,14 +100,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ symlinkFile
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+-
+- # IMPORTANT: symlinkFile is the same as above!
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-symlinks"
+- )
+ endif()
+
+ if (${bde_ufid_is_pic})
+@@ -134,14 +116,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+
+- # IMPORTANT: symlinkFile is the same as above!
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-pic-symlink-hack"
+- )
+-
+ # And another one for "64" - remove "pic", add "64"
+ if (${bde_ufid_is_64})
+ set(temp_ufid_flags ${install_ufid_flags})
+@@ -157,14 +131,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ symlinkFile
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+-
+- # IMPORTANT: symlinkFile is the same as above!
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-pic-symlink-hack"
+- )
+ endif()
+ endif()
+
+@@ -177,18 +143,5 @@ function(bde_create_ufid_symlink uor installOpts)
+ symlinkReleaseFile
+ "${symlinkPrefix}/${symlinkDir}/${libReleaseLinkName}"
+ )
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkReleaseFile})"
+- COMPONENT "${component}-release-symlink"
+- )
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkReleaseFile})"
+- COMPONENT "release-symlink"
+- EXCLUDE_FROM_ALL
+- )
+ endif()
+ endfunction()
--
2.34.0
[-- Attachment #3: 0002-gnu-Add-bloomberg-bde.patch --]
[-- Type: text/x-patch, Size: 6410 bytes --]
From 5b6114f4ee2c3801858d2984d706a490cd34f50e Mon Sep 17 00:00:00 2001
From: Greg Hogan <code@greghogan.com>
Date: Wed, 3 Nov 2021 15:22:19 +0000
Subject: [PATCH 2/2] gnu: Add bloomberg-bde.
* gnu/packages/cpp.scm (bloomberg-bde): New variable.
---
gnu/local.mk | 1 +
gnu/packages/cpp.scm | 75 ++++++++++++++++++-
.../bloomberg-bde-cmake-module-path.patch | 16 ++++
3 files changed, 91 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/bloomberg-bde-cmake-module-path.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index b533002407..4b194604db 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -911,6 +911,7 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-CVE-2021-45078.patch \
+ %D%/packages/patches/bloomberg-bde-cmake-module-path.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index b8c89813d1..86ac3c8e39 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -80,7 +80,8 @@ (define-module (gnu packages cpp)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
- #:use-module (gnu packages xml))
+ #:use-module (gnu packages xml)
+ #:use-module (ice-9 match))
(define-public argagg
(let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0"))
@@ -1613,3 +1614,75 @@ (define-public bloomberg-bde-tools
"This package provides the cmake imports needed to build bloomberg-bde.")
(home-page "https://github.com/bloomberg/bde-tools")
(license license:asl2.0))))
+
+(define-public bloomberg-bde
+ (let ((commit "b6bcc0e24a5862bf77aea7edd831dedf50e21d64"))
+ (package
+ (name "bloomberg-bde")
+ ;; Recent releases are not tagged so commit must be used for checkout.
+ (version "3.98.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bloomberg/bde")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0y3lipi1lj9qazgc935851r2qsx5aq3vvc4y52jq57riyz8wg3ma"))
+ (patches
+ (search-patches
+ "bloomberg-bde-cmake-module-path.patch"))
+ ;;(modules '((guix build utils)))
+ (snippet
+ `(begin
+ ;; FIXME: Delete bundled software. The third-party packages
+ ;; may be patched or modified from upstream sources.
+ ;;(for-each delete-file-recursively
+ ;; (list "thirdparty"))
+ ;; Delete failing tests.
+ (for-each
+ delete-file
+ (list "groups/bal/ball/ball_asyncfileobserver.t.cpp"
+ "groups/bal/ball/ball_fileobserver2.t.cpp"
+ "groups/bal/ball/ball_recordstringformatter.t.cpp"
+ "groups/bal/balst/balst_stacktraceutil.t.cpp"
+ "groups/bdl/bdlmt/bdlmt_eventscheduler.t.cpp"
+ "groups/bdl/bdlmt/bdlmt_timereventscheduler.t.cpp"
+ "groups/bdl/bdls/bdls_filesystemutil.t.cpp"
+ "groups/bsl/bslh/bslh_hashpair.t.cpp"
+ "groups/bsl/bsls/bsls_platform.t.cpp"
+ "groups/bsl/bsls/bsls_stackaddressutil.t.cpp"
+ "groups/bsl/bsls/bsls_stopwatch.t.cpp"
+ "groups/bsl/bslstl/bslstl_function_invokerutil.t.cpp"))
+ #t))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:parallel-tests? #f ; Test parallelism may fail inconsistently.
+ ;; Set UFID to build shared libraries. Flag descriptions can be found at
+ ;; https://bloomberg.github.io/bde-tools/reference/bde_repo.html#ufid
+ #:configure-flags ,(match %current-system
+ ((or "i686-linux" "armhf-linux")
+ ''("-DUFID=opt_dbg_exc_mt_32_shr_cpp17"))
+ (_
+ ''("-DUFID=opt_dbg_exc_mt_64_shr_cpp17")))
+ #:phases
+ (modify-phases %standard-phases
+ ;; Explicitly build tests separate from the main build.
+ (add-after 'build 'build-tests
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "all.t"
+ `(,@(if #:parallel-build?
+ `("-j" ,(number->string (parallel-job-count)))
+ '())
+ ,@make-flags)))))))
+ (native-inputs
+ (list bloomberg-bde-tools pkg-config python))
+ (synopsis "Foundational C++ libraries used at Bloomberg")
+ (description
+ "The BDE Development Environment libraries provide an enhanced
+implementation of STL containers, vocabulary types for representing common
+concepts (like dates and times), and building blocks for developing
+multi-threaded applications and network applications.")
+ (home-page "https://github.com/bloomberg/bde")
+ (license license:asl2.0))))
diff --git a/gnu/packages/patches/bloomberg-bde-cmake-module-path.patch b/gnu/packages/patches/bloomberg-bde-cmake-module-path.patch
new file mode 100644
index 0000000000..b08ca5eac0
--- /dev/null
+++ b/gnu/packages/patches/bloomberg-bde-cmake-module-path.patch
@@ -0,0 +1,16 @@
+This package requires CMAKE_MODULE_PATH be set by the calling process. This
+patch uses the CMAKE_PREFIX_PATH passed from Guix as the search path for
+locating the bloomberg-bde-tools CMake modules.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,8 +1,6 @@
+ cmake_minimum_required(VERSION 3.15)
+
+-if (NOT CMAKE_MODULE_PATH)
+- message(FATAL "Please specify path to BDE cmake modules.")
+-endif()
++string(REPLACE ":" "cmake/;" CMAKE_MODULE_PATH "$ENV{CMAKE_PREFIX_PATH}cmake/")
+
+ get_filename_component(repoName ${CMAKE_CURRENT_LIST_DIR} NAME)
+
--
2.34.0
next prev parent reply other threads:[~2022-02-04 21:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-03 19:12 [bug#51592] [PATCH 0/2] gnu: Add bloomberg-bde Greg Hogan
2021-12-01 15:50 ` Ludovic Courtès
2021-12-21 1:26 ` Greg Hogan
2022-02-04 21:23 ` Greg Hogan [this message]
2022-02-08 17:19 ` bug#51592: " Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CA+3U0ZkdS2O_bFKzvkTr-Zj17FsBk42-bT8hF4=MvXVv3_YNWw@mail.gmail.com' \
--to=code@greghogan.com \
--cc=51592@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.