;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ethan R. Jones ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix 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. ;;; ;;; GNU Guix 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 GNU Guix. If not, see . (define-module (gnu packages cpp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix 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 base) #:use-module (gnu packages compression)) (define-public kashmir (let ((release "0") (revision 1) (commit "2f3913f49c4ac7f9bff9224db5178f6f8f0ff3ee")) (package (name "kashmir") (version (string-append release (if (and (defined? 'revision) (not (zero? revision))) (string-append "-" (number->string revision)) "") (if (defined? 'commit) (string-append "." (string-take commit 7)) ""))) (source (origin (method url-fetch) (uri (string-append "https://github.com/Corvusoft/" name "-dependency/archive/" commit ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0pwpl0m61qyrnnw9iaacg9sh9lqafqyaqmmas0swjakww1b968si")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) #:builder (begin (use-modules (guix build utils) (ice-9 ftw) (ice-9 regex)) (let ((gzip (assoc-ref %build-inputs "gzip")) (source (assoc-ref %build-inputs "source")) (tar (assoc-ref %build-inputs "tar")) (dot-symlinks-regex (make-regexp "^\\.\\.?$")) (license-text-file-regex (make-regexp "^LICENSE" regexp/icase))) (setenv "PATH" (string-append gzip "/bin:" tar "/bin")) (mkdir-p %output) (system* "tar" "-xv" "--strip-components=1" "-f" source "-C" %output) (chdir %output) (copy-recursively "kashmir" (string-append "include/" ,name)) (for-each (lambda (license-text-file) (install-file license-text-file (string-append "share/doc/" ,name)) (delete-file license-text-file)) (scandir "." (lambda (current-basename) (regexp-exec license-text-file-regex current-basename)))) (for-each (lambda (useless-basename) (delete-file-recursively useless-basename)) (scandir "." (lambda (current-basename) (and (not (regexp-exec dot-symlinks-regex current-basename)) (not (regexp-exec license-text-file-regex current-basename)) (not (string-match "^(share|include)$" current-basename)))))))))) (native-inputs `(("source" ,source) ("tar" ,tar) ("gzip" ,gzip))) (synopsis "C++ library providing I/O, MD5, SHA-1, random number string, and UUID operations") (description "The Kashmir Library provides features allowing usage of I/O formatting and state saving; MD5 and SHA-1 hashing; random number streams, and UUID generation.") (home-page "https://github.com/corvusoft/kashmir-dependency") (license license:boost1.0)))) (define-public libzen (package (name "libzen") (version "0.4.35") (source (origin (method url-fetch) (uri (string-append "https://mediaarea.net/download/source/" name "/" version "/" name "_" version ".tar.bz2")) (sha256 (base32 "12a1icgcffgv503ii2k1453kxg5hfly09mf4zjcc80aq8a6rf8by")))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool))) (build-system gnu-build-system) (arguments '(#:phases ;; build scripts not in root of archive (modify-phases %standard-phases (add-after 'unpack 'pre-configure (lambda _ (chdir "Project/GNU/Library"))) (add-after 'pre-configure 'autogen (lambda _ (zero? (system* "sh" "autogen.sh"))))))) (home-page "https://github.com/MediaArea/ZenLib") (synopsis "C++ utility library") (description "ZenLib is a C++ utility library. It includes classes for handling strings, configuration, bit streams, threading, translation, and cross-platform operating system functions.") (license license:zlib)))