[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
05/14: gnu: Add crc32c.
From: |
guix-commits |
Subject: |
05/14: gnu: Add crc32c. |
Date: |
Wed, 28 Sep 2022 14:58:44 -0400 (EDT) |
lilyp pushed a commit to branch master
in repository guix.
commit dc07a4ce6c34c2b61d0713a4a6ed89bc128783b4
Author: Hilton Chain <hako@ultrarare.space>
AuthorDate: Mon Sep 26 21:30:49 2022 +0800
gnu: Add crc32c.
* gnu/packages/cpp.scm (crc32c): New variable.
* gnu/packages/patches/crc32c-unbundle-googletest.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it here.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
---
gnu/local.mk | 1 +
gnu/packages/cpp.scm | 38 ++++++++++++++++++++++
.../patches/crc32c-unbundle-googletest.patch | 21 ++++++++++++
3 files changed, 60 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 9b3b199c7c..75e2309af5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -997,6 +997,7 @@ dist_patch_DATA =
\
%D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \
+ %D%/packages/patches/crc32c-unbundle-googletest.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 5e0646444c..805413cc61 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1916,3 +1916,41 @@ and above. It is header only and has zero dependencies.
It provides a
templated string type for compatibility with any STL-like string (std::string,
std::wstring, etc).")
(license license:boost1.0)))
+
+(define-public crc32c
+ (package
+ (name "crc32c")
+ (version "1.1.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/crc32c")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0966lyy3w5cnrs0c0fkma4hga51k54hns72l4n76944awqssap7j"))
+ (patches (search-patches "crc32c-unbundle-googletest.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+ "-DCRC32C_BUILD_BENCHMARKS=OFF"
+ "-DCRC32C_USE_GLOG=OFF"
+ (string-append
+ "-DCRC32C_BUILD_TESTS="
+ ;; TODO: perhaps infer #:tests?
+ (if #$(%current-target-system)
+ "OFF" "ON")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'make-reproducible
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("if\\(HAVE_SSE42\\)") "if(FALSE)")))))))
+ (native-inputs (list googletest))
+ (home-page "https://github.com/google/crc32c")
+ (synopsis "Cyclic redundancy check")
+ (description
+ "This package provides architecture-specific implementations of the
+CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/patches/crc32c-unbundle-googletest.patch
b/gnu/packages/patches/crc32c-unbundle-googletest.patch
new file mode 100644
index 0000000000..da513c5d4e
--- /dev/null
+++ b/gnu/packages/patches/crc32c-unbundle-googletest.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8490728..c7f0952 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -315,15 +315,7 @@ if(CRC32C_BUILD_TESTS)
+ set(install_gmock OFF)
+
+ # This project is tested using GoogleTest.
+- add_subdirectory("third_party/googletest")
+-
+- # GoogleTest triggers a missing field initializers warning.
+- if(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
+- set_property(TARGET gtest
+- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
+- set_property(TARGET gmock
+- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
+- endif(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
++ find_package(GTest REQUIRED)
+
+ add_executable(crc32c_tests "")
+ target_sources(crc32c_tests
- 09/14: gnu: Add libdispatch., (continued)
- 09/14: gnu: Add libdispatch., guix-commits, 2022/09/28
- 11/14: gnu: telegram-desktop: Sort inputs alphabetically., guix-commits, 2022/09/28
- 03/14: gnu: kcoreaddons: Update to 5.98.0., guix-commits, 2022/09/28
- 06/14: gnu: webrtc-for-telegram-desktop: Update to 621f3da5., guix-commits, 2022/09/28
- 10/14: gnu: telegram-desktop: Update to 4.2.2., guix-commits, 2022/09/28
- 08/14: gnu: Remove libvpx-for-telegram-desktop., guix-commits, 2022/09/28
- 13/14: gnu: gnome: Sort propagated inputs alphabetically within categories., guix-commits, 2022/09/28
- 04/14: gnu: Add abseil-cpp-cxxstd17., guix-commits, 2022/09/28
- 07/14: gnu: webrtc-for-telegram-desktop: Sort inputs alphabetically., guix-commits, 2022/09/28
- 01/14: gnu: extra-cmake-modules: Update to 5.98.0., guix-commits, 2022/09/28
- 05/14: gnu: Add crc32c.,
guix-commits <=
- 14/14: gnu: expat: Update replacement to 2.4.9 [fixes CVE-2022-40674]., guix-commits, 2022/09/28