Compare commits
3 Commits
7e1b7c9eed
...
aef0c47209
Author | SHA1 | Date | |
---|---|---|---|
aef0c47209 | |||
f11ab05d40 | |||
61597a6c6a |
@ -1,205 +0,0 @@
|
|||||||
;; (C) Copyright Collin J. Doering 2024
|
|
||||||
;;
|
|
||||||
;; This program is free software: you can redistribute it and/or modify
|
|
||||||
;; it under the terms of the GNU General Public License as published by
|
|
||||||
;; the Free Software Foundation, either version 3 of the License, or
|
|
||||||
;; (at your option) any later version.
|
|
||||||
;;
|
|
||||||
;; This program is distributed in the hope that it will be useful,
|
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;; GNU General Public License for more details.
|
|
||||||
;;
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
|
||||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
(define-module (rekahsoft-gnu packages boost)
|
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
|
||||||
#:use-module (guix utils)
|
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix git-download)
|
|
||||||
#:use-module (guix build-system gnu)
|
|
||||||
#:use-module (guix build-system trivial)
|
|
||||||
#:use-module (gnu packages)
|
|
||||||
#:use-module (gnu packages autotools)
|
|
||||||
#:use-module (gnu packages compression)
|
|
||||||
#:use-module (gnu packages icu4c)
|
|
||||||
#:use-module (gnu packages llvm)
|
|
||||||
#:use-module (gnu packages perl)
|
|
||||||
#:use-module (gnu packages python)
|
|
||||||
#:use-module (gnu packages shells)
|
|
||||||
#:use-module (gnu packages mpi))
|
|
||||||
|
|
||||||
(define (version-with-underscores version)
|
|
||||||
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version))
|
|
||||||
|
|
||||||
(define (boost-patch name version hash)
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "https://www.boost.org/patches/"
|
|
||||||
(version-with-underscores version) "/" name))
|
|
||||||
(file-name (string-append "boost-" name))
|
|
||||||
(sha256 (base32 hash))))
|
|
||||||
|
|
||||||
(define-public boost-for-ceph
|
|
||||||
(package
|
|
||||||
(name "boost")
|
|
||||||
(version "1.80.0")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "https://boostorg.jfrog.io/artifactory/main/release/"
|
|
||||||
version "/source/boost_"
|
|
||||||
(version-with-underscores version) ".tar.bz2"))
|
|
||||||
(patches
|
|
||||||
(list (boost-patch
|
|
||||||
;; Boost.Filesystem directory iterators may fail to
|
|
||||||
;; construct for a network share on Windows prior to 10:
|
|
||||||
;; https://github.com/boostorg/filesystem/pull/246,
|
|
||||||
;; https://github.com/boostorg/filesystem/issues/245
|
|
||||||
"0001-filesystem-win-fix-dir-it-net-share.patch" version
|
|
||||||
"067hhylqkzzdbqzc1hkbpaqmvz248lxqrdhb2yi6iq9qabsik3lk")
|
|
||||||
(boost-patch
|
|
||||||
;; In Boost.Filesystem on Windows, weakly_canonical fails
|
|
||||||
;; to process paths that start with the "\\?\" prefix:
|
|
||||||
;; https://github.com/boostorg/filesystem/issues/247
|
|
||||||
"0002-filesystem-fix-weakly-canonical-long-paths.patch" version
|
|
||||||
"00w3albf8527glclx85p5b2ml3vr06xpwwmfyzg005v1cp8avcpi")
|
|
||||||
(boost-patch
|
|
||||||
;; Boost.Unordered containers are not in a valid state
|
|
||||||
;; after moving:
|
|
||||||
;; https://github.com/boostorg/unordered/issues/139
|
|
||||||
"0003-unordered-valid-after-move.patch" version
|
|
||||||
"0dw839w22cawqawfpsx7j7v9y0x2vn66m732iidpxvdxbjn2kzva")
|
|
||||||
(boost-patch
|
|
||||||
;; Fixed a missing include on POSIX systems that don't
|
|
||||||
;; support *at APIs:
|
|
||||||
;; https://github.com/boostorg/filesystem/issues/250
|
|
||||||
"0004-filesystem-posix-fix-no-at-apis-missing-include.patch" version
|
|
||||||
"09k8k3b1306jkjls12wfghj820n828j6aaxzmcr0wpnjhp8fzi1v")))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1h00qp4z5k6lfz310xjwsmqs8fwxi6ngas51169cafz4h9fmc68y"))))
|
|
||||||
(build-system gnu-build-system)
|
|
||||||
(inputs
|
|
||||||
(append
|
|
||||||
(list icu4c zlib)
|
|
||||||
(if (%current-target-system)
|
|
||||||
'()
|
|
||||||
(list python-minimal-wrapper))))
|
|
||||||
(native-inputs
|
|
||||||
(list perl tcsh))
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:imported-modules `((guix build python-build-system)
|
|
||||||
,@%gnu-build-system-modules)
|
|
||||||
#:modules `(((guix build python-build-system) #:select (python-version))
|
|
||||||
,@%gnu-build-system-modules)
|
|
||||||
#:tests? #f
|
|
||||||
#:configure-flags
|
|
||||||
#~(let ((icu (dirname (dirname (search-input-file
|
|
||||||
%build-inputs "bin/uconv")))))
|
|
||||||
(list
|
|
||||||
;; Auto-detection looks for ICU only in traditional
|
|
||||||
;; install locations.
|
|
||||||
(string-append "--with-icu=" icu)
|
|
||||||
;; Ditto for Python.
|
|
||||||
#$@(if (%current-target-system)
|
|
||||||
#~()
|
|
||||||
#~((let ((python (dirname (dirname (search-input-file
|
|
||||||
%build-inputs
|
|
||||||
"bin/python")))))
|
|
||||||
(string-append "--with-python-root=" python)
|
|
||||||
(string-append "--with-python=" python
|
|
||||||
"/bin/python")
|
|
||||||
(string-append "--with-python-version="
|
|
||||||
(python-version python)))))
|
|
||||||
"--with-toolset=gcc"))
|
|
||||||
#:make-flags
|
|
||||||
#~(list "threading=multi" "link=shared"
|
|
||||||
|
|
||||||
;; Set the RUNPATH to $libdir so that the libs find each other.
|
|
||||||
(string-append "linkflags=-Wl,-rpath="
|
|
||||||
#$output "/lib")
|
|
||||||
#$@(if (%current-target-system)
|
|
||||||
#~("--user-config=user-config.jam"
|
|
||||||
;; Python is not supported when cross-compiling.
|
|
||||||
"--without-python"
|
|
||||||
"binary-format=elf"
|
|
||||||
"target-os=linux"
|
|
||||||
#$@(cond
|
|
||||||
((string-prefix? "arm" (%current-target-system))
|
|
||||||
#~("abi=aapcs"
|
|
||||||
"address-model=32"
|
|
||||||
"architecture=arm"))
|
|
||||||
((string-prefix? "aarch64" (%current-target-system))
|
|
||||||
#~("abi=aapcs"
|
|
||||||
"address-model=64"
|
|
||||||
"architecture=arm"))
|
|
||||||
(else #~())))
|
|
||||||
#~()))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'patch-shells
|
|
||||||
(lambda _
|
|
||||||
(substitute* '("libs/config/configure"
|
|
||||||
"libs/spirit/classic/phoenix/test/runtest.sh"
|
|
||||||
"tools/build/src/engine/execunix.cpp")
|
|
||||||
(("/bin/sh") (which "sh")))))
|
|
||||||
(delete 'bootstrap)
|
|
||||||
(replace 'configure
|
|
||||||
(lambda* (#:key (configure-flags ''()) #:allow-other-keys)
|
|
||||||
(setenv "SHELL" (which "sh"))
|
|
||||||
(setenv "CONFIG_SHELL" (which "sh"))
|
|
||||||
|
|
||||||
#$@(if (%current-target-system)
|
|
||||||
#~((call-with-output-file "user-config.jam"
|
|
||||||
(lambda (port)
|
|
||||||
(format port
|
|
||||||
"using gcc : cross : ~a-c++ ;"
|
|
||||||
#$(%current-target-system)))))
|
|
||||||
#~())
|
|
||||||
|
|
||||||
(apply invoke "./bootstrap.sh"
|
|
||||||
(string-append "--prefix=" #$output)
|
|
||||||
configure-flags)))
|
|
||||||
(replace 'build
|
|
||||||
(lambda* (#:key make-flags #:allow-other-keys)
|
|
||||||
(apply invoke "./b2"
|
|
||||||
(format #f "-j~a" (parallel-job-count))
|
|
||||||
make-flags)))
|
|
||||||
(replace 'install
|
|
||||||
(lambda* (#:key make-flags #:allow-other-keys)
|
|
||||||
(apply invoke "./b2" "install" make-flags)))
|
|
||||||
#$@(if (%current-target-system)
|
|
||||||
#~()
|
|
||||||
#~((add-after 'install 'provide-libboost_python
|
|
||||||
(lambda* (#:key make-flags inputs outputs #:allow-other-keys)
|
|
||||||
(let* ((static? (member "link=static" make-flags))
|
|
||||||
(libext (if static? ".a" ".so"))
|
|
||||||
(python (dirname (dirname (search-input-file
|
|
||||||
inputs "bin/python"))))
|
|
||||||
(python-version (python-version python))
|
|
||||||
(libboost_pythonNN
|
|
||||||
(string-append "libboost_python"
|
|
||||||
(string-join (string-split
|
|
||||||
python-version #\.)
|
|
||||||
"")
|
|
||||||
libext)))
|
|
||||||
(with-directory-excursion (string-append #$output "/lib")
|
|
||||||
(symlink libboost_pythonNN
|
|
||||||
(string-append "libboost_python" libext))
|
|
||||||
;; Some packages only look for the major version.
|
|
||||||
(symlink libboost_pythonNN
|
|
||||||
(string-append "libboost_python"
|
|
||||||
(string-take python-version 1)
|
|
||||||
libext)))))))))))
|
|
||||||
|
|
||||||
(home-page "https://www.boost.org")
|
|
||||||
(synopsis "Peer-reviewed portable C++ source libraries")
|
|
||||||
(description
|
|
||||||
"A collection of libraries intended to be widely useful, and usable
|
|
||||||
across a broad spectrum of applications.")
|
|
||||||
(license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
|
|
||||||
"Some components have other similar licences."))))
|
|
@ -1,25 +0,0 @@
|
|||||||
;; (C) Copyright Collin J. Doering 2024
|
|
||||||
;;
|
|
||||||
;; This program is free software: you can redistribute it and/or modify
|
|
||||||
;; it under the terms of the GNU General Public License as published by
|
|
||||||
;; the Free Software Foundation, either version 3 of the License, or
|
|
||||||
;; (at your option) any later version.
|
|
||||||
;;
|
|
||||||
;; This program is distributed in the hope that it will be useful,
|
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;; GNU General Public License for more details.
|
|
||||||
;;
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
|
||||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
(define-module (rekahsoft-gnu packages storage)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module ((gnu packages storage) #:prefix guix:)
|
|
||||||
#:use-module (rekahsoft-gnu packages boost))
|
|
||||||
|
|
||||||
(define-public ceph
|
|
||||||
(package/inherit guix:ceph
|
|
||||||
(inputs
|
|
||||||
(modify-inputs (package-inputs guix:ceph)
|
|
||||||
(replace "boost" boost-for-ceph)))))
|
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
(define-module (rekahsoft-gnu services ceph)
|
(define-module (rekahsoft-gnu services ceph)
|
||||||
#:use-module (gnu services configuration)
|
#:use-module (gnu services configuration)
|
||||||
#:use-module (rekahsoft-gnu packages storage)
|
#:use-module (gnu packages storage)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
|
Loading…
Reference in New Issue
Block a user