From fa9d62133973705b08f4f0952cf55189ff9cdb7b Mon Sep 17 00:00:00 2001 From: Greg Hogan 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 ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Alexandros Theodotou -;;; Copyright © 2020, 2021 Greg Hogan +;;; Copyright © 2020-2022 Greg Hogan ;;; Copyright © 2020 Brett Gilio ;;; Copyright © 2020 Milkey Mouse ;;; Copyright © 2021 Raghav Gururajan @@ -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