GNU bug report logs - #26256
[PATCH 0/6] Add ceph + multipath-tools.

Previous Next

Package: guix-patches;

Reported by: Marius Bakke <mbakke <at> fastmail.com>

Date: Sat, 25 Mar 2017 20:28:01 UTC

Severity: normal

Tags: patch

Done: Marius Bakke <mbakke <at> fastmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 26256 in the body.
You can then email your comments to 26256 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:28:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Marius Bakke <mbakke <at> fastmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 25 Mar 2017 20:28:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: guix-patches <at> gnu.org
Cc: Marius Bakke <mbakke <at> fastmail.com>
Subject: [PATCH 0/6] Add ceph + multipath-tools.
Date: Sat, 25 Mar 2017 21:27:17 +0100
Hello! Here is a revised Ceph patch, and some collateral patches.
I haven't yet tried running a Ceph cluster from Guix, but since
most of the tests passes I'm not too worried.

Marius Bakke (6):
  Revert "gnu: snappy: Update to 1.1.4."
  gnu: xmlstarlet: Disable failing tests.
  gnu: Add ceph.
  gnu: fio: Enable rbd support.
  gnu: Add userspace-rcu.
  gnu: Add multipath-tools.

 gnu/local.mk                                       |   4 +
 gnu/packages/benchmark.scm                         |   6 +-
 gnu/packages/compression.scm                       |   4 +-
 gnu/packages/linux.scm                             |  95 ++++++
 .../patches/ceph-disable-cpu-optimizations.patch   |  37 +++
 .../patches/ceph-skip-collect-sys-info-test.patch  |  29 ++
 .../patches/ceph-skip-unittest_blockdev.patch      |  28 ++
 gnu/packages/storage.scm                           | 352 +++++++++++++++++++++
 gnu/packages/xml.scm                               |  10 +
 9 files changed, 561 insertions(+), 4 deletions(-)
 create mode 100644 gnu/packages/patches/ceph-disable-cpu-optimizations.patch
 create mode 100644 gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
 create mode 100644 gnu/packages/patches/ceph-skip-unittest_blockdev.patch
 create mode 100644 gnu/packages/storage.scm

-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:31:01 GMT) Full text and rfc822 format available.

Message #8 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Cc: Marius Bakke <mbakke <at> fastmail.com>
Subject: [PATCH 1/6] Revert "gnu: snappy: Update to 1.1.4."
Date: Sat, 25 Mar 2017 21:30:12 +0100
Rocksdb fails to build with this version.

This reverts commit 9baab9aeeda394408290613c597bff1d96004dfb.
---
 gnu/packages/compression.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 6cdddb99a..aa2e14328 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -973,7 +973,7 @@ well as bzip2.")
 (define-public snappy
   (package
     (name "snappy")
-    (version "1.1.4")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -981,7 +981,7 @@ well as bzip2.")
                     version "/" name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0mq0nz8gbi1sp3y6xcg0a6wbvnd6gc717f3vh2xrjmfj5w9gwjqk"))))
+                "1wzf8yif5ym2gj52db6v5m1pxnmn258i38x7llk9x346y2nq47ig"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/google/snappy")
     (synopsis "Fast compressor/decompressor")
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:31:02 GMT) Full text and rfc822 format available.

Message #11 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Cc: Marius Bakke <mbakke <at> fastmail.com>
Subject: [PATCH 2/6] gnu: xmlstarlet: Disable failing tests.
Date: Sat, 25 Mar 2017 21:30:13 +0100
* gnu/packages/xml.scm (xmlstarlet)[arguments]: Add phase to disable two tests.
---
 gnu/packages/xml.scm | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 66eb63ade..bd2748287 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -1033,6 +1033,16 @@ C++ programming language.")
        (base32
         "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
    (build-system gnu-build-system)
+   (arguments
+    '(#:phases
+     (modify-phases %standard-phases
+       (add-before 'check 'drop-failing-tests
+         (lambda _
+           ;; FIXME: Why are these tests failing.
+           (substitute* "Makefile"
+             (("^examples/schema1\\\\") "\\")
+             (("^examples/valid1\\\\") "\\"))
+           #t)))))
    (inputs
     `(("libxslt" ,libxslt)
       ("libxml2" ,libxml2)))
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:31:02 GMT) Full text and rfc822 format available.

Message #14 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Cc: Marius Bakke <mbakke <at> fastmail.com>
Subject: [PATCH 4/6] gnu: fio: Enable rbd support.
Date: Sat, 25 Mar 2017 21:30:15 +0100
* gnu/packages/benchmark.scm (fio)[inputs]: Add ceph:lib.
---
 gnu/packages/benchmark.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index ff5715d57..19e046376 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -24,7 +24,8 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages storage))
 
 (define-public fio
   (package
@@ -72,7 +73,8 @@
                 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
               #t))))))
     (inputs
-     `(("libaio" ,libaio)
+     `(("ceph" ,ceph "lib")
+       ("libaio" ,libaio)
        ("gnuplot" ,gnuplot)
        ("zlib" ,zlib)
        ("python-numpy" ,python2-numpy)
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:31:03 GMT) Full text and rfc822 format available.

Message #17 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Cc: Marius Bakke <mbakke <at> fastmail.com>
Subject: [PATCH 3/6] gnu: Add ceph.
Date: Sat, 25 Mar 2017 21:30:14 +0100
* gnu/packages/storage.scm,
  gnu/packages/patches/ceph-disable-cpu-optimizations.patch,
  gnu/packages/patches/ceph-skip-collect-sys-info-test.patch,
  gnu/packages/patches/ceph-skip-unittest_blockdev.patch: New files.
* gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Register it.
---
 gnu/local.mk                                       |   4 +
 .../patches/ceph-disable-cpu-optimizations.patch   |  37 +++
 .../patches/ceph-skip-collect-sys-info-test.patch  |  29 ++
 .../patches/ceph-skip-unittest_blockdev.patch      |  28 ++
 gnu/packages/storage.scm                           | 352 +++++++++++++++++++++
 5 files changed, 450 insertions(+)
 create mode 100644 gnu/packages/patches/ceph-disable-cpu-optimizations.patch
 create mode 100644 gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
 create mode 100644 gnu/packages/patches/ceph-skip-unittest_blockdev.patch
 create mode 100644 gnu/packages/storage.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 0bb2276a2..aa262d2f3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -353,6 +353,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ssh.scm				\
   %D%/packages/stalonetray.scm			\
   %D%/packages/statistics.scm			\
+  %D%/packages/storage.scm			\
   %D%/packages/suckless.scm			\
   %D%/packages/swig.scm				\
   %D%/packages/sync.scm			\
@@ -508,6 +509,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/calibre-drop-unrar.patch			\
   %D%/packages/patches/calibre-no-updates-dialog.patch		\
   %D%/packages/patches/cdparanoia-fpic.patch			\
+  %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
+  %D%/packages/patches/ceph-skip-collect-sys-info-test.patch	\
+  %D%/packages/patches/ceph-skip-unittest_blockdev.patch	\
   %D%/packages/patches/chicken-CVE-2017-6949.patch		\
   %D%/packages/patches/chmlib-inttypes.patch			\
   %D%/packages/patches/clang-libc-search-path.patch		\
diff --git a/gnu/packages/patches/ceph-disable-cpu-optimizations.patch b/gnu/packages/patches/ceph-disable-cpu-optimizations.patch
new file mode 100644
index 000000000..88a16dde0
--- /dev/null
+++ b/gnu/packages/patches/ceph-disable-cpu-optimizations.patch
@@ -0,0 +1,37 @@
+Disable CPU optimizations not supported by the vast majority of
+x86_64 systems. Also don't add anything for i686.
+
+--- a/cmake/modules/SIMDExt.cmake	2017-03-23 22:22:58.254071694 +0100
++++ b/cmake/modules/SIMDExt.cmake	2017-03-23 22:23:22.446848845 +0100
+@@ -6,10 +6,6 @@
+ # HAVE_INTEL_SSE
+ # HAVE_INTEL_SSE2
+ # HAVE_INTEL_SSE3
+-# HAVE_INTEL_SSSE3
+-# HAVE_INTEL_PCLMUL
+-# HAVE_INTEL_SSE4_1
+-# HAVE_INTEL_SSE4_2
+ #
+ # SIMD_COMPILE_FLAGS
+ #
+@@ -55,20 +51,4 @@
+   if(HAVE_INTEL_SSE3)
+     set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3")
+   endif()
+-  CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3)
+-  if(HAVE_INTEL_SSSE3)
+-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3")
+-  endif()
+-  CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL)
+-  if(HAVE_INTEL_PCLMUL)
+-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul")
+-  endif()
+-  CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1)
+-  if(HAVE_INTEL_SSE4_1)
+-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1")
+-  endif()
+-  CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2)
+-  if(HAVE_INTEL_SSE4_2)
+-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2")
+-  endif()
+ endif()
diff --git a/gnu/packages/patches/ceph-skip-collect-sys-info-test.patch b/gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
new file mode 100644
index 000000000..f21079925
--- /dev/null
+++ b/gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
@@ -0,0 +1,29 @@
+This test fails because /etc/os-release is not available.
+
+diff --git a/src/test/common/test_util.cc b/src/test/common/test_util.cc
+index 288dd37db1..95b6cd4b30 100644
+--- a/src/test/common/test_util.cc
++++ b/src/test/common/test_util.cc
+@@ -31,19 +31,3 @@ TEST(util, unit_to_bytesize)
+ 
+   ASSERT_EQ(65536ll, unit_to_bytesize(" 64K", &cerr));
+ }
+-
+-#if defined(__linux__)
+-TEST(util, collect_sys_info)
+-{
+-  map<string, string> sys_info;
+-
+-  CephContext *cct = (new CephContext(CEPH_ENTITY_TYPE_CLIENT))->get();
+-  collect_sys_info(&sys_info, cct);
+-
+-  ASSERT_TRUE(sys_info.find("distro") != sys_info.end());
+-  ASSERT_TRUE(sys_info.find("distro_version") != sys_info.end());
+-  ASSERT_TRUE(sys_info.find("distro_description") != sys_info.end());
+-
+-  cct->put();
+-}
+-#endif
+-- 
+2.11.1
+
diff --git a/gnu/packages/patches/ceph-skip-unittest_blockdev.patch b/gnu/packages/patches/ceph-skip-unittest_blockdev.patch
new file mode 100644
index 000000000..43b998486
--- /dev/null
+++ b/gnu/packages/patches/ceph-skip-unittest_blockdev.patch
@@ -0,0 +1,28 @@
+This test tries to walk a sysfs path and hits a null pointer exception.
+
+/tmp/guix-build-ceph-12.0.0.drv-0/ceph-12.0.0/src/test/common/test_blkdev.cc:32: Failure
+Expected: (dir) != (nullptr), actual: NULL vs 8-byte object <00-00 00-00 00-00 00-00>
+
+diff --git a/src/test/common/CMakeLists.txt b/src/test/common/CMakeLists.txt
+index 5172663898..ac84085eaa 100644
+--- a/src/test/common/CMakeLists.txt
++++ b/src/test/common/CMakeLists.txt
+@@ -12,15 +12,6 @@ target_link_libraries(get_command_descriptions
+   ${CMAKE_DL_LIBS}
+   )
+ 
+-if(HAVE_BLKID)
+-# unittest_blkdev
+-add_executable(unittest_blkdev
+-  test_blkdev.cc
+-  )
+-add_ceph_unittest(unittest_blkdev ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_blkdev)
+-target_link_libraries(unittest_blkdev global ${BLKID_LIBRARIES})
+-endif(HAVE_BLKID)
+-
+ # unittest_bloom_filter
+ add_executable(unittest_bloom_filter
+   test_bloom_filter.cc
+-- 
+2.11.1
+
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
new file mode 100644
index 000000000..318adb7d2
--- /dev/null
+++ b/gnu/packages/storage.scm
@@ -0,0 +1,352 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Marius Bakke <mbakke <at> fastmail.com>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages storage)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix build-system cmake)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages assembly)
+  #:use-module (gnu packages bdw-gc)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages cryptsetup)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages databases)
+  #:use-module (gnu packages disk)
+  #:use-module (gnu packages gnuzilla)
+  #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages openldap)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages xml))
+
+(define-public ceph
+  (package
+    (name "ceph")
+    (version "12.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://download.ceph.com/tarballs/ceph-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0yzvwlwg85w04q4d9ac73vfpxjnl72dl6kc857ihv5k1lqbpp5d0"))
+              (patches
+               (search-patches "ceph-skip-unittest_blockdev.patch"
+                               "ceph-skip-collect-sys-info-test.patch"
+                               "ceph-disable-cpu-optimizations.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (for-each delete-file-recursively
+                            '(;; TODO: Unbundle these:
+                              ;"src/isa-l"
+                              ;"src/lua"
+                              ;"src/googletest"
+                              ;"src/xxHash"
+                              ;"src/zstd"
+                              ;"src/civetweb"
+                              ;"src/Beast"
+                              "src/test/downloads"
+                              "src/dpdk"
+                              "src/spdk"
+                              "src/rocksdb"
+                              "src/boost"))
+                  #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:modules ((srfi srfi-1)
+                  (guix build cmake-build-system)
+                  (guix build utils))
+       #:configure-flags
+       (let* ((out (assoc-ref %outputs "out"))
+              (lib (assoc-ref %outputs "lib"))
+              (libdir (string-append lib "/lib")))
+         (list (string-append "-DCMAKE_INSTALL_PREFIX=" out)
+               (string-append "-DCMAKE_INSTALL_LIBDIR=" libdir)
+               ;; We need both libdir and libdir/ceph in RUNPATH.
+               (string-append "-DCMAKE_INSTALL_RPATH="
+                              libdir ";" libdir "/ceph")
+               (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" out "/etc")
+               (string-append "-DCMAKE_INSTALL_MANDIR=" out "/share/man")
+               (string-append "-DCMAKE_INSTALL_DOCDIR=" out "/share/ceph/doc")
+               (string-append "-DCMAKE_INSTALL_LIBEXECDIR=" out "/libexec")
+               (string-append "-DKEYUTILS_INCLUDE_DIR="
+                              (assoc-ref %build-inputs "keyutils") "/include")
+               "-DCMAKE_INSTALL_LOCALSTATEDIR=/var"
+               "-DENABLE_SHARED=ON"
+               "-DWITH_EMBEDDED=OFF"
+               "-DWITH_SYSTEM_ROCKSDB=ON"
+               "-DWITH_SYSTEM_BOOST=ON"
+               "-DWITH_PYTHON3=ON"
+               ;; TODO: Enable these when available in Guix.
+               "-DWITH_LTTNG=OFF"
+               "-DWITH_XFS=OFF"
+               "-DWITH_XIO=OFF"
+               ;; Use jemalloc instead of tcmalloc.
+               "-DALLOCATOR=jemalloc"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (lib (assoc-ref outputs "lib")))
+
+               ;; Make header files follow the dynamic libraries.
+               (substitute* "src/include/CMakeLists.txt"
+                 (("DESTINATION include")
+                  (string-append "DESTINATION " lib "/include")))
+
+               (substitute* "cmake/modules/Distutils.cmake"
+                 ;; Prevent creation of Python eggs.
+                 (("setup.py install")
+                  "setup.py install --single-version-externally-managed --root=/"))
+
+               (substitute* (find-files "src/pybind" "^setup\\.py$")
+                 ;; Here we inject an extra line to the `setup.py' of the
+                 ;; Python C libraries so RUNPATH gets set up correctly.
+                 (("^([[:blank:]]+)extra_compile_args=(.*)$" _ indent args)
+                  (string-append indent "extra_compile_args=" args
+                                 indent "extra_link_args=['-Wl,-rpath="
+                                 lib "/lib'],\n")))
+
+               (substitute* "src/ceph-disk/tox.ini"
+                 ;; Disable flake8 test since it complains
+                 ;; about too long lines.
+                 (("envlist = flake8,py27")
+                  "envlist = py27"))
+
+               (substitute* "src/ceph-detect-init/tox.ini"
+                 ;; Disable python3 tests until we at least
+                 ;; get py2 working.
+                 (("envlist = pep8,py27,py3")
+                  "envlist = pep8,py27"))
+
+               (substitute* "src/key_value_store/kv_flat_btree_async.cc"
+                 (("/usr/include/") ""))
+
+               (substitute* "src/test/test_subprocess.cc"
+                 (("/bin/sh") (which "sh")))
+               (substitute* "src/test/ceph_objectstore_tool.py"
+                 (("/bin/rm") (which "rm")))
+               (substitute* "src/ceph-disk/ceph_disk/main.py"
+                 (("/bin/mount") "mount")
+                 (("/bin/umount") "umount")
+                 (("/sbin/blkid") (which "blkid"))
+                 (("'sgdisk'") (string-append "'" (which "sgdisk") "'"))
+                 (("'parted'") (string-append "'" (which "parted") "'"))
+                 (("'udevadm'") (string-append "'" (which "udevadm") "'")))
+
+               (substitute* "src/ceph-disk-udev"
+                 (("/sbin/cryptsetup") (which "cryptsetup"))
+                 (("/usr/sbin/sgdisk") (which "sgdisk"))
+                 (("/usr/sbin/ceph-disk")
+                  (string-append out "/sbin/ceph-disk")))
+               (substitute* "udev/50-rbd.rules"
+                 (("/usr/bin/ceph-rbdnamer")
+                  (string-append out "/bin/ceph-rbdnamer")))
+               (substitute* "udev/60-ceph-by-parttypeuuid.rules"
+                 (("/sbin/blkid") (which "blkid")))
+               (substitute* "udev/95-ceph-osd.rules"
+                 (("/usr/sbin/ceph-disk")
+                  (string-append out "/sbin/ceph-disk")))
+
+               (substitute* "src/test/run-cli-tests"
+                 ;; Use our python-cram instead of the (un)bundled one.
+                 (("CRAM_BIN=.*$")
+                  (string-append "CRAM_BIN=" (which "cram") "\n")))
+
+               ;; Disable tests that are known to fail.
+               ;; TODO: The majority of these fail because
+               ;; 'qa/workunits/ceph-helpers.sh' expects to find
+               ;; /tmp/ceph-disk-virtualenv/bin/ceph-disk, but somehow
+               ;; src/ceph-disk/CMakeLists.txt fails to create it.
+               (substitute* "src/test/CMakeLists.txt"
+                 ;; FIXME: "create cannot load compressor of type zlib"
+                 ;; "libceph_zlib.so: undefined symbol: isal_deflate"
+                 (("^add_subdirectory\\(compressor\\)") "")
+                 ;; FIXME: These tests fails because `ceph-disk'
+                 ;; is not available.
+                 (("^add_ceph_test\\(test-ceph-helpers\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(test_pidfile\\.sh.*$") "\n")
+                 ;; XXX Why does this fail.
+                 (("^add_ceph_test\\(cephtool-test-mon\\.sh.*$") "\n")
+                 ;; This fails due to missing '/etc/fstab'.
+                 (("^add_ceph_test\\(cephtool-test-rados\\.sh.*$") "\n")
+                 ;; `Bad messages to stderr: OSD has the store locked'
+                 (("^add_ceph_test\\(ceph_objectstore_tool\\.py.*$") "\n")
+                 ;; The bundled python-cram fork needs patching to work on
+                 ;; guix, and the system version does not support --error-dir.
+                 ;; https://bitbucket.org/brodie/cram/issues/9
+                 (("^add_ceph_test\\(run-cli-tests.*$") "\n")
+                 ;; FIXME: tox/virtualenv/pip does not discover the
+                 ;; required packages and tries to go online.
+                 (("^add_test\\(NAME run-tox-ceph-disk.*$") "\n")
+                 (("^add_test\\(NAME run-tox-ceph-detect-init.*$") "\n")
+                 ;; Also remove from the set_property block.
+                 (("run-tox-ceph-disk") "")
+                 (("run-tox-ceph-detect-init") ""))
+               ;; More 'ceph-disk' issues here.. :-(
+               (substitute* "src/test/erasure-code/CMakeLists.txt"
+                 (("^add_ceph_test\\(test-erasure-code-plugins\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(test-erasure-code\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(test-erasure-eio\\.sh.*$") "\n"))
+               (substitute* "src/test/libradosstriper/CMakeLists.txt"
+                 (("^add_ceph_test\\(rados-striper\\.sh.*$") "\n"))
+               (substitute* "src/test/mon/CMakeLists.txt"
+                 (("^add_ceph_test\\(osd-crush\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(test_pool_quota\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-pool-create\\.sh.*$") "\n"))
+               (substitute* "src/test/osd/CMakeLists.txt"
+                 (("^add_ceph_test\\(osd-bench\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-config\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-markdown\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-reactivate\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-reuse-id\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-scrub-repair\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-scrub-snaps\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-copy-from\\.sh.*$") "\n")
+                 (("^add_ceph_test\\(osd-fast-mark-down\\.sh.*$") "\n"))
+               #t)))
+         (add-before 'check 'set-check-environment
+           (lambda _
+             ;; Run tests in parallel.
+             (setenv "CTEST_PARALLEL_LEVEL"
+                     (number->string (parallel-job-count)))
+             ;; `pip' requires write access in $HOME.
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-before 'install 'set-install-environment
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (py2sitedir
+                     (string-append out "/lib/python2.7/site-packages"))
+                    (py3sitedir
+                     (string-append out "/lib/python"
+                                    ,(version-major+minor
+                                      (package-version python))
+                                    "/site-packages")))
+               ;; The Python install scripts refuses to function if
+               ;; the install directory is not on PYTHONPATH.
+               (setenv "PYTHONPATH"
+                       (string-append py2sitedir ":" py3sitedir ":"
+                                      (getenv "PYTHONPATH")))
+               #t)))
+         (add-after 'install 'wrap-python-scripts
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (ceph-disk (string-append out "/bin/ceph-disk"))
+                    (ceph-detect-init (string-append
+                                       out "/bin/ceph-detect-init"))
+                    (PYTHONPATH (string-append
+                                 out "/lib/python2.7/site-packages")))
+
+               (for-each (lambda (executable)
+                           (wrap-program executable
+                             `("PYTHONPATH" ":" prefix (,PYTHONPATH))))
+                         (list ceph-disk ceph-detect-init))
+               #t))))))
+    (outputs
+     '("out" "lib"))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python-cython" ,python-cython)
+       ("python-sphinx" ,python-sphinx)
+       ("yasm" ,yasm)
+
+       ;; For tests.
+       ("inetutils" ,inetutils)
+       ("jq" ,jq)
+       ("perl" ,perl)
+       ("xmlstarlet" ,xmlstarlet)
+       ("python2-cram" ,python2-cram)
+       ("python2-virtualenv" ,python2-virtualenv)
+
+       ;; These dependencies are taken from test-requirements.txt
+       ;; of ceph-disk and ceph-detect-init. The latter can also
+       ;; test against python3, but let's try to get python2 tests
+       ;; working first since that is the default.
+       ("python2-configobj" ,python2-configobj)
+       ("python2-coverage" ,python2-coverage)
+       ("python2-discover" ,python2-discover)
+       ("python2-fixtures" ,python2-fixtures)
+       ("python2-flake8" ,python2-flake8)
+       ("python2-mock" ,python2-mock)
+       ("python2-nose" ,python2-nose)
+       ("python2-pip" ,python2-pip)
+       ("python2-pytest" ,python2-pytest)
+       ("python2-subunit" ,python2-subunit)
+       ("python2-testrepository" ,python2-testrepository)
+       ("python2-testtools" ,python2-testtools)
+       ("python2-tox" ,python2-tox)))
+    (inputs
+     `(("boost" ,boost)
+       ("curl" ,curl)
+       ("cryptsetup" ,cryptsetup)
+       ("expat" ,expat)
+       ("fcgi" ,fcgi)
+       ("fuse" ,fuse)
+       ("gptfdisk" ,gptfdisk)
+       ("jemalloc" ,jemalloc)
+       ("keyutils" ,keyutils)
+       ("leveldb" ,leveldb)
+       ("libaio" ,libaio)
+       ("libatomic-ops" ,libatomic-ops)
+       ("lua" ,lua)
+       ("lz4" ,lz4)
+       ("openldap" ,openldap)
+       ("openssl" ,openssl)
+       ("nss" ,nss)
+       ("parted" ,parted)
+       ("python <at> 2" ,python-2)
+       ("python <at> 3" ,python-3)
+       ("rocksdb" ,rocksdb)
+       ("snappy" ,snappy)
+       ("udev" ,eudev)
+       ("util-linux" ,util-linux)
+       ("zlib" ,zlib)))
+    (home-page "https://ceph.com/")
+    (synopsis "Distributed object store and file system")
+    (description
+     "Ceph is a distributed storage system designed for reliability and
+performance.  It provides network-based block devices (RBD), a POSIX
+compliant filesystem (CephFS), and offers compatibility with various
+storage protocols (S3, NFS, and others) through the RADOS gateway.")
+    ;; Most of Ceph is licensed under LGPLv2.1 and GPLv2 only, but some
+    ;; files include the 'or later' clause. Consult COPYING for full
+    ;; information. It also includes a number of bundled components
+    ;; with other licenses that are not mentioned in COPYING.
+    (license (list license:lgpl2.1+        ;mostly 2.1 only
+                   license:gpl2+           ;mostly 2.0 only
+                   license:cc-by-sa3.0     ;documentation
+                   license:bsd-3           ;zstd,isa-l,googletest,jerasure,++
+                   license:public-domain   ;misc
+                   license:bsd-2           ;xxHash
+                   license:boost1.0        ;Beast,src/common/bloom_filter.hpp
+                   license:expat           ;civetweb,java bindings
+                   license:wtfpl2))))      ;src/test/gprof-helper.c
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:31:03 GMT) Full text and rfc822 format available.

Message #20 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Cc: Marius Bakke <mbakke <at> fastmail.com>
Subject: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Sat, 25 Mar 2017 21:30:16 +0100
* gnu/packages/linux.scm (userspace-rcu): New variable.
---
 gnu/packages/linux.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index bf16ff0eb..1e9f93e70 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -3404,6 +3404,38 @@ monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},
 @code{sadf} and @code{sa}.")
     (license license:gpl2+)))
 
+(define-public userspace-rcu
+  (package
+    (name "userspace-rcu")
+    (version "0.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.lttng.org/files/urcu/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "01j0xp3f0w147yfyzybkjvb7i67i7prsvnkssgvgwry9lvk35khv"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl-test-harness" ,perl-test-harness))) ; for the 'prove' command
+    (home-page "http://liburcu.org/")
+    (synopsis
+     "Efficient data structures based on RCU and lock-free algorithms")
+    (description
+     "@code{liburcu} is a userspace @dfn{RCU} (read-copy-update) library.
+This data synchronization library provides read-side access which scales
+linearly with the number of cores.")
+    (license
+     ;; This library is distributed under LGPL2.1+, but includes some files
+     ;; covered by other licenses. The LICENSE file has full details.
+     (list license:lgpl2.1+
+           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
+           license:bsd-2                         ; tests/utils/tap/tap.[ch]
+           license:expat                         ; urcu/uatomic/*
+           ;; A few files use different variants of the MIT/X11 license.
+           (license:x11-style "file://LICENSE"
+                              "See LICENSE in the distribution for details.")))))
+
 (define-public light
   (package
     (name "light")
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:31:04 GMT) Full text and rfc822 format available.

Message #23 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Cc: Marius Bakke <mbakke <at> fastmail.com>
Subject: [PATCH 6/6] gnu: Add multipath-tools.
Date: Sat, 25 Mar 2017 21:30:17 +0100
* gnu/packages/linux.scm (multipath-tools): New variable.
---
 gnu/packages/linux.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1e9f93e70..0a1c50040 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -78,8 +78,10 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages rrdtool)
   #:use-module (gnu packages slang)
+  #:use-module (gnu packages storage)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages valgrind)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -2582,6 +2584,67 @@ arrays when needed.")
         '("out"))))                               ;refer only self
     (synopsis "Statically-linked 'mdadm' command for use in an initrd")))
 
+(define-public multipath-tools
+  (package
+    (name "multipath-tools")
+    (version "0.6.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://git.opensvc.com/?p=multipath-tools/"
+                                  ".git;a=snapshot;h=" version ";sf=tgz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12smwmljrkl2afc06dghd2253rqnfawvzr818a2xpxr06f44f9qy"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Drop bundled valgrind headers.
+                  (delete-file-recursively "third-party")
+                  (substitute* '("multipathd/main.c"
+                                 "libmultipath/debug.c")
+                    (("#include \"../third-party/")
+                     "#include \""))
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; No tests.
+       #:make-flags (list (string-append "DESTDIR="
+                                         (assoc-ref %outputs "out"))
+                          (string-append "LDFLAGS=-Wl,-rpath="
+                                         (assoc-ref %outputs "out")
+                                         "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'set-environment
+           (lambda _
+             (setenv "CC" "gcc")
+             #t)))))
+    (native-inputs
+     `(("valgrind" ,valgrind)))
+    (inputs
+     `(("ceph:lib" ,ceph "lib")
+       ("libaio" ,libaio)
+       ("lvm2" ,lvm2)
+       ("readline" ,readline)
+       ("udev" ,eudev)
+       ("userspace-rcu" ,userspace-rcu)))
+    (home-page "http://christophe.varoqui.free.fr/")
+    (synopsis "Access block devices through multiple paths")
+    (description
+     "This package provides the following binaries to drive the
+Linux Device Mapper multipathing driver:
+@enumerate
+@item @command{multipath} - Device mapper target autoconfig.
+@item @command{multipathd} - Multipath daemon.
+@item @command{mpathpersist} - Manages SCSI persistent reservations on
+@code{dm} multipath devices.
+@item @command{kpartx} - Create device maps from partition tables.
+@end enumerate")
+    (license (list license:gpl2+             ; Main distribution.
+                   license:lgpl2.0+))))      ; libmpathcmd/mpath_cmd.h
+
 (define-public libaio
   (package
     (name "libaio")
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:42:01 GMT) Full text and rfc822 format available.

Message #26 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/6] gnu: Add ceph.
Date: Sat, 25 Mar 2017 21:41:35 +0100
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> +    (arguments
> +     `(#:modules ((srfi srfi-1)

Oops, this is a remnant of an earlier revision. Will drop #:modules.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Sat, 25 Mar 2017 20:52:02 GMT) Full text and rfc822 format available.

Message #29 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/6] gnu: Add ceph.
Date: Sat, 25 Mar 2017 21:51:33 +0100
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> * gnu/packages/storage.scm,
>   gnu/packages/patches/ceph-disable-cpu-optimizations.patch,
>   gnu/packages/patches/ceph-skip-collect-sys-info-test.patch,
>   gnu/packages/patches/ceph-skip-unittest_blockdev.patch: New files.
> * gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Register it.
> ---
>  gnu/local.mk                                       |   4 +
>  .../patches/ceph-disable-cpu-optimizations.patch   |  37 +++
>  .../patches/ceph-skip-collect-sys-info-test.patch  |  29 ++
>  .../patches/ceph-skip-unittest_blockdev.patch      |  28 ++
>  gnu/packages/storage.scm                           | 352 +++++++++++++++++++++
>  5 files changed, 450 insertions(+)
>  create mode 100644 gnu/packages/patches/ceph-disable-cpu-optimizations.patch
>  create mode 100644 gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
>  create mode 100644 gnu/packages/patches/ceph-skip-unittest_blockdev.patch
>  create mode 100644 gnu/packages/storage.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 0bb2276a2..aa262d2f3 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -353,6 +353,7 @@ GNU_SYSTEM_MODULES =				\
>    %D%/packages/ssh.scm				\
>    %D%/packages/stalonetray.scm			\
>    %D%/packages/statistics.scm			\
> +  %D%/packages/storage.scm			\
>    %D%/packages/suckless.scm			\
>    %D%/packages/swig.scm				\
>    %D%/packages/sync.scm			\
> @@ -508,6 +509,9 @@ dist_patch_DATA =						\
>    %D%/packages/patches/calibre-drop-unrar.patch			\
>    %D%/packages/patches/calibre-no-updates-dialog.patch		\
>    %D%/packages/patches/cdparanoia-fpic.patch			\
> +  %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
> +  %D%/packages/patches/ceph-skip-collect-sys-info-test.patch	\
> +  %D%/packages/patches/ceph-skip-unittest_blockdev.patch	\
>    %D%/packages/patches/chicken-CVE-2017-6949.patch		\
>    %D%/packages/patches/chmlib-inttypes.patch			\
>    %D%/packages/patches/clang-libc-search-path.patch		\
> diff --git a/gnu/packages/patches/ceph-disable-cpu-optimizations.patch b/gnu/packages/patches/ceph-disable-cpu-optimizations.patch
> new file mode 100644
> index 000000000..88a16dde0
> --- /dev/null
> +++ b/gnu/packages/patches/ceph-disable-cpu-optimizations.patch
> @@ -0,0 +1,37 @@
> +Disable CPU optimizations not supported by the vast majority of
> +x86_64 systems. Also don't add anything for i686.

Ah, this patch was incomplete. Here is an updated ceph patch with
#:modules and this patch fixed.

[0001-gnu-Add-ceph.patch (text/x-patch, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 11:39:02 GMT) Full text and rfc822 format available.

Message #32 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 1/6] Revert "gnu: snappy: Update to 1.1.4."
Date: Mon, 27 Mar 2017 13:38:27 +0200
Hi Marius!

Marius Bakke <mbakke <at> fastmail.com> skribis:

> Rocksdb fails to build with this version.
>
> This reverts commit 9baab9aeeda394408290613c597bff1d96004dfb.

Sounds good, unless this introduces serious bugs or security issues.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 11:40:01 GMT) Full text and rfc822 format available.

Message #35 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 2/6] gnu: xmlstarlet: Disable failing tests.
Date: Mon, 27 Mar 2017 13:39:31 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> * gnu/packages/xml.scm (xmlstarlet)[arguments]: Add phase to disable two tests.
> ---
>  gnu/packages/xml.scm | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
> index 66eb63ade..bd2748287 100644
> --- a/gnu/packages/xml.scm
> +++ b/gnu/packages/xml.scm
> @@ -1033,6 +1033,16 @@ C++ programming language.")
>         (base32
>          "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
>     (build-system gnu-build-system)
> +   (arguments
> +    '(#:phases
> +     (modify-phases %standard-phases
> +       (add-before 'check 'drop-failing-tests
> +         (lambda _
> +           ;; FIXME: Why are these tests failing.

If there’s a test log excerpt that would be worth adding in this
comment, that’s even better.  Otherwise go for it!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 11:49:01 GMT) Full text and rfc822 format available.

Message #38 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 3/6] gnu: Add ceph.
Date: Mon, 27 Mar 2017 13:48:32 +0200
Heya!

Marius Bakke <mbakke <at> fastmail.com> skribis:

> From be372f4c3a278568872b0175ab308c08c1b02cc5 Mon Sep 17 00:00:00 2001
> From: Marius Bakke <mbakke <at> fastmail.com>
> Date: Tue, 27 Dec 2016 21:40:41 +0100
> Subject: [PATCH] gnu: Add ceph.
>
> * gnu/packages/storage.scm,
>   gnu/packages/patches/ceph-disable-cpu-optimizations.patch,
>   gnu/packages/patches/ceph-skip-collect-sys-info-test.patch,
>   gnu/packages/patches/ceph-skip-unittest_blockdev.patch: New files.
> * gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Register it.

Great work!  Thanks for taking the time to look at all the details (SSE,
failing tests, licenses, etc.).

LGTM!

> +                  (for-each delete-file-recursively
> +                            '(;; TODO: Unbundle these:
> +                              ;"src/isa-l"
> +                              ;"src/lua"
> +                              ;"src/googletest"
> +                              ;"src/xxHash"
> +                              ;"src/zstd"
> +                              ;"src/civetweb"
> +                              ;"src/Beast"

Hopefully Lua and zstd would be easy to address, but yeah, we can leave
it for after.  :-)

Thank you,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 11:51:01 GMT) Full text and rfc822 format available.

Message #41 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 4/6] gnu: fio: Enable rbd support.
Date: Mon, 27 Mar 2017 13:50:01 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> * gnu/packages/benchmark.scm (fio)[inputs]: Add ceph:lib.

Would be worth checking how this affects the closure size.  It’s a
developer tool though, so I’d argue that it’s less of a problem if the
closure size is increased noticeably in this cases.

Otherwise LGTM, thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 11:52:01 GMT) Full text and rfc822 format available.

Message #44 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Mon, 27 Mar 2017 13:51:32 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> * gnu/packages/linux.scm (userspace-rcu): New variable.

[...]

> +    (license
> +     ;; This library is distributed under LGPL2.1+, but includes some files
> +     ;; covered by other licenses. The LICENSE file has full details.
> +     (list license:lgpl2.1+
> +           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
> +           license:bsd-2                         ; tests/utils/tap/tap.[ch]
> +           license:expat                         ; urcu/uatomic/*
> +           ;; A few files use different variants of the MIT/X11 license.
> +           (license:x11-style "file://LICENSE"
> +                              "See LICENSE in the distribution for details.")))))

It’s a case where it’d be enough to put lgpl2.1+ and gpl3+ IMO, since
that’s what effectively applies to the resulting work.

You could still mention the other licenses in the comment though.

Otherwise LGTM, thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 11:53:02 GMT) Full text and rfc822 format available.

Message #47 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 6/6] gnu: Add multipath-tools.
Date: Mon, 27 Mar 2017 13:52:11 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> * gnu/packages/linux.scm (multipath-tools): New variable.

LGTM, thank you!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 19:14:02 GMT) Full text and rfc822 format available.

Message #50 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Mon, 27 Mar 2017 21:13:40 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> * gnu/packages/linux.scm (userspace-rcu): New variable.
>
> [...]
>
>> +    (license
>> +     ;; This library is distributed under LGPL2.1+, but includes some files
>> +     ;; covered by other licenses. The LICENSE file has full details.
>> +     (list license:lgpl2.1+
>> +           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
>> +           license:bsd-2                         ; tests/utils/tap/tap.[ch]
>> +           license:expat                         ; urcu/uatomic/*
>> +           ;; A few files use different variants of the MIT/X11 license.
>> +           (license:x11-style "file://LICENSE"
>> +                              "See LICENSE in the distribution for details.")))))
>
> It’s a case where it’d be enough to put lgpl2.1+ and gpl3+ IMO, since
> that’s what effectively applies to the resulting work.

Is this also true for the source code archive itself? As an end user,
looking at the license list and deciding to `guix build -S`, I would
expect the contents to match what's in the package definition.

Is this a distinction we should make? I.e. "source" license vs "product"
license. For Ceph, this would be the current license list in the first
instance and just lgpl2.1 and gpl2 for the built product.

Tricky! Moving the other licenses to the comments for this package, but
something to think about.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 19:49:02 GMT) Full text and rfc822 format available.

Message #53 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: mbakke <at> fastmail.com, 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Mon, 27 Mar 2017 21:49:01 +0200
[Message part 1 (text/plain, inline)]
Marius,

On 25/03/17 21:30, Marius Bakke wrote:
> * gnu/packages/linux.scm (userspace-rcu): New variable.

This already exists as liburcu in datastructures.scm (I needed it for
the Knot DNS server), with two main differences:

> +    (native-inputs
> +     `(("perl-test-harness" ,perl-test-harness))) ; for the 'prove' command

Building liburcu with ‘perl’ or ‘perl-test-harness’ gives the same
result (Files=3, Tests=78). I know nothing about Perl. Is there a reason
to prefer ‘perl-test-harness’? It's about .5 MiB heavier.

> +    (license
> +     ;; This library is distributed under LGPL2.1+, but includes some files
> +     ;; covered by other licenses. The LICENSE file has full details.
> +     (list license:lgpl2.1+
> +           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
> +           license:bsd-2                         ; tests/utils/tap/tap.[ch]
> +           license:expat                         ; urcu/uatomic/*
> +           ;; A few files use different variants of the MIT/X11 license.
> +           (license:x11-style "file://LICENSE"
> +                              "See LICENSE in the distribution for details.")))))
> +

Wow. As usual you're a lot better at sniffing out licences than I am.

I also prefer your ‘synopsis’ to mine.

Thanks!

T G-R

[signature.asc (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 19:54:02 GMT) Full text and rfc822 format available.

Message #56 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: mbakke <at> fastmail.com, 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Mon, 27 Mar 2017 21:54:22 +0200
[Message part 1 (text/plain, inline)]
On 27/03/17 21:49, Tobias Geerinckx-Rice wrote:
> Wow. As usual you're a lot better at sniffing out licences than I am.

Now I see Ludo's comments. I tend to agree with them, but who really knows.

Kind regards,

T G-R

[signature.asc (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 20:09:01 GMT) Full text and rfc822 format available.

Message #59 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>, 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Mon, 27 Mar 2017 22:08:25 +0200
[Message part 1 (text/plain, inline)]
Tobias Geerinckx-Rice <me <at> tobias.gr> writes:

> Marius,
>
> On 25/03/17 21:30, Marius Bakke wrote:
>> * gnu/packages/linux.scm (userspace-rcu): New variable.
>
> This already exists as liburcu in datastructures.scm (I needed it for
> the Knot DNS server), with two main differences:

Aaaah.. how did I miss that, thanks!

>> +    (native-inputs
>> +     `(("perl-test-harness" ,perl-test-harness))) ; for the 'prove' command
>
> Building liburcu with ‘perl’ or ‘perl-test-harness’ gives the same
> result (Files=3, Tests=78). I know nothing about Perl. Is there a reason
> to prefer ‘perl-test-harness’? It's about .5 MiB heavier.

I don't know either, I just searched around for the `prove` command and
found it was in "perl-test-harness". Apparently it's in "perl" too!

>> +    (license
>> +     ;; This library is distributed under LGPL2.1+, but includes some files
>> +     ;; covered by other licenses. The LICENSE file has full details.
>> +     (list license:lgpl2.1+
>> +           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
>> +           license:bsd-2                         ; tests/utils/tap/tap.[ch]
>> +           license:expat                         ; urcu/uatomic/*
>> +           ;; A few files use different variants of the MIT/X11 license.
>> +           (license:x11-style "file://LICENSE"
>> +                              "See LICENSE in the distribution for details.")))))
>> +
>
> Wow. As usual you're a lot better at sniffing out licences than I am.

Ha, but at least you got it right (per the other discussion on this
thread) ;-)

> I also prefer your ‘synopsis’ to mine.

I can update the synopsis of the existing package, and add @code{}
wrappers to your arguably better description; as well as adding comments
about the other licenses. How does that sound? :)

PS: The PGP signature of this email is bad. If you are in fact Tobias,
please reply with a signed email stating "I will not use important
software from my host distro any longer" :-P
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 20:14:01 GMT) Full text and rfc822 format available.

Message #62 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 3/6] gnu: Add ceph.
Date: Mon, 27 Mar 2017 22:13:10 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

>> +                  (for-each delete-file-recursively
>> +                            '(;; TODO: Unbundle these:
>> +                              ;"src/isa-l"
>> +                              ;"src/lua"
>> +                              ;"src/googletest"
>> +                              ;"src/xxHash"
>> +                              ;"src/zstd"
>> +                              ;"src/civetweb"
>> +                              ;"src/Beast"
>
> Hopefully Lua and zstd would be easy to address, but yeah, we can leave
> it for after.  :-)

Yes, it's on my priority list, but figured it's better to have it
available so that others can use it and help out. I keep picking this up
every few weeks, but the build takes hours and so it's very tiring work.

(also, poor Hydra!)

The TODO list is:

* make `ceph-disk` work for the tests (it works when installed)
* make it build on ARM (apparently libaio is unsupported there)
* unbundle more things
* services! (I need more hardware first though :-))

I'm committed to supporting this package, so please ping me about any
problems (in Guix, or on your test cluster ;-))

Also, I just built this to verify that it still works, but got two
different test failures on two different machines, suggesting some tests
are flaky. Perhaps I should just disable these two off the bat?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 22:12:01 GMT) Full text and rfc822 format available.

Message #65 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 4/6] gnu: fio: Enable rbd support.
Date: Tue, 28 Mar 2017 00:10:57 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> * gnu/packages/benchmark.scm (fio)[inputs]: Add ceph:lib.
>
> Would be worth checking how this affects the closure size.  It’s a
> developer tool though, so I’d argue that it’s less of a problem if the
> closure size is increased noticeably in this cases.

ceph:lib increases fios closure size from 452.3 MiB to a good 738 MiB.

However, by moving the fio auxiliary scripts to a separate output, I
managed to get the baseline size down from 452.3 MiB to 75.3 MiB. See
attached patch. WDYT?

[0001-gnu-fio-Install-python-scripts-in-separate-output.patch (text/x-patch, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 22:21:02 GMT) Full text and rfc822 format available.

Message #68 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: mbakke <at> fastmail.com, 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 00:21:28 +0200
[Message part 1 (text/plain, inline)]
Marius,

On 27/03/17 22:08, Marius Bakke wrote:
> Tobias Geerinckx-Rice <me <at> tobias.gr> writes:
>> I also prefer your ‘synopsis’ to mine.
> 
> I can update the synopsis of the existing package, and add @code{} 
> wrappers to your arguably better description; as well as adding 
> comments about the other licenses. How does that sound? :)

That sounds about perfect.

> PS: The PGP signature of this email is bad. If you are in fact
> Tobias, please reply with a signed email stating "I will not use
> important software from my host distro any longer" :-P

  $ grep gpg .thunderbird/*/prefs.js
  user_pref("extensions.enigmail.agentPath",
            "/home/nckx/.guix-profile/bin/gpg");

Checkmate, atheists.

T G-R

[signature.asc (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 22:32:02 GMT) Full text and rfc822 format available.

Message #71 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>, 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 00:31:24 +0200
[Message part 1 (text/plain, inline)]
Tobias Geerinckx-Rice <me <at> tobias.gr> writes:

>> PS: The PGP signature of this email is bad. If you are in fact
>> Tobias, please reply with a signed email stating "I will not use
>> important software from my host distro any longer" :-P
>
>   $ grep gpg .thunderbird/*/prefs.js
>   user_pref("extensions.enigmail.agentPath",
>             "/home/nckx/.guix-profile/bin/gpg");
>
> Checkmate, atheists.

Oof. Can't blame your cat this time. Is anyone else seeing a bad
signature for id:cdd6892d-5182-ee07-7452-8df83136e3d0 <at> tobias.gr ?

Are you able to reproduce the bad git signatures with GPG from Guix?

Maybe it is the cat after all.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 22:58:01 GMT) Full text and rfc822 format available.

Message #74 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 00:57:54 +0200
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> Marius Bakke <mbakke <at> fastmail.com> skribis:
>>
>>> * gnu/packages/linux.scm (userspace-rcu): New variable.
>>
>> [...]
>>
>>> +    (license
>>> +     ;; This library is distributed under LGPL2.1+, but includes some files
>>> +     ;; covered by other licenses. The LICENSE file has full details.
>>> +     (list license:lgpl2.1+
>>> +           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
>>> +           license:bsd-2                         ; tests/utils/tap/tap.[ch]
>>> +           license:expat                         ; urcu/uatomic/*
>>> +           ;; A few files use different variants of the MIT/X11 license.
>>> +           (license:x11-style "file://LICENSE"
>>> +                              "See LICENSE in the distribution for details.")))))
>>
>> It’s a case where it’d be enough to put lgpl2.1+ and gpl3+ IMO, since
>> that’s what effectively applies to the resulting work.
>
> Is this also true for the source code archive itself? As an end user,
> looking at the license list and deciding to `guix build -S`, I would
> expect the contents to match what's in the package definition.
>
> Is this a distinction we should make? I.e. "source" license vs "product"
> license. For Ceph, this would be the current license list in the first
> instance and just lgpl2.1 and gpl2 for the built product.

Thinking more about this, the "output license" for Ceph would include
BSD-{2,3} as well (some erasure code stuff), but you catch my drift.

It makes sense to focus on the license you accept by using the package,
and mention whatever other source licenses that may be present as
source code comments instead.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 22:59:02 GMT) Full text and rfc822 format available.

Message #77 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: mbakke <at> fastmail.com, 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 00:59:22 +0200
[Message part 1 (text/plain, inline)]
Marius,

On 28/03/17 00:31, Marius Bakke wrote:
> Oof. Can't blame your cat this time. Is anyone else seeing a bad
> signature for id:cdd6892d-5182-ee07-7452-8df83136e3d0 <at> tobias.gr?
> 
> Are you able to reproduce the bad git signatures with GPG from Guix?

Oh! I didn't mean to send you on the beginnings of a bug hunt. Turn
back. Trust me.

Yes, my gnupg's definitely dodgy, and it really is from Guix . I've gone
so far as to rm -rf /usr/bin/gpg* — no dice. I'm pretty sure it's
somehow caused by the unique... let's call it ‘legacy-rich’ Ubuntu
installation on this work laptop. It doesn't happen anywhere else.

However: that laptop has less than one month left as Important Work
Machine. Guess what's happening next? GuixSD is happening next.

Until then, I'm just going to ignore its quirks and live with the shame
(and not push any commits from this box, hook or no). I'll make sure
anything important's signed.

> Maybe it is the cat after all.

My cat is pure evil. I'm pretty sure she uses Windows.

...aanyway: ceph! \o/

Kind regards,

T G-R

[signature.asc (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 23:06:02 GMT) Full text and rfc822 format available.

Message #80 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>, 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 01:05:50 +0200
[Message part 1 (text/plain, inline)]
Tobias Geerinckx-Rice <me <at> tobias.gr> writes:

> Marius,
>
> On 28/03/17 00:31, Marius Bakke wrote:
>> Oof. Can't blame your cat this time. Is anyone else seeing a bad
>> signature for id:cdd6892d-5182-ee07-7452-8df83136e3d0 <at> tobias.gr?
>> 
>> Are you able to reproduce the bad git signatures with GPG from Guix?
>
> Oh! I didn't mean to send you on the beginnings of a bug hunt. Turn
> back. Trust me.
>
> Yes, my gnupg's definitely dodgy, and it really is from Guix . I've gone
> so far as to rm -rf /usr/bin/gpg* — no dice. I'm pretty sure it's
> somehow caused by the unique... let's call it ‘legacy-rich’ Ubuntu
> installation on this work laptop. It doesn't happen anywhere else.

Ok, good to know. It could be worth testing the memory. I guess we'll
find out after you've migrated to an entropy-free system :-)

> ...aanyway: ceph! \o/

I tried finding a soon.gif featuring a cephalopod, but this will do:

https://i.imgur.com/bMznpIo.gif :-)
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Mon, 27 Mar 2017 23:42:01 GMT) Full text and rfc822 format available.

Message #83 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 01:41:09 +0200
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Marius Bakke <mbakke <at> fastmail.com> writes:
>
>> Ludovic Courtès <ludo <at> gnu.org> writes:
>>
>>> Marius Bakke <mbakke <at> fastmail.com> skribis:
>>>
>>>> * gnu/packages/linux.scm (userspace-rcu): New variable.
>>>
>>> [...]
>>>
>>>> +    (license
>>>> +     ;; This library is distributed under LGPL2.1+, but includes some files
>>>> +     ;; covered by other licenses. The LICENSE file has full details.
>>>> +     (list license:lgpl2.1+
>>>> +           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
>>>> +           license:bsd-2                         ; tests/utils/tap/tap.[ch]
>>>> +           license:expat                         ; urcu/uatomic/*
>>>> +           ;; A few files use different variants of the MIT/X11 license.
>>>> +           (license:x11-style "file://LICENSE"
>>>> +                              "See LICENSE in the distribution for details.")))))
>>>
>>> It’s a case where it’d be enough to put lgpl2.1+ and gpl3+ IMO, since
>>> that’s what effectively applies to the resulting work.
>>
>> Is this also true for the source code archive itself? As an end user,
>> looking at the license list and deciding to `guix build -S`, I would
>> expect the contents to match what's in the package definition.
>>
>> Is this a distinction we should make? I.e. "source" license vs "product"
>> license. For Ceph, this would be the current license list in the first
>> instance and just lgpl2.1 and gpl2 for the built product.
>
> Thinking more about this, the "output license" for Ceph would include
> BSD-{2,3} as well (some erasure code stuff), but you catch my drift.
>
> It makes sense to focus on the license you accept by using the package,
> and mention whatever other source licenses that may be present as
> source code comments instead.

Sorry for spamming this discussion, but it's something that I haven't
seen discussed before and it's good to clarify a few of these points.

Ceph is also a prime example of a complex package covering lots of
licenses. Some of the ".so" files installed by Ceph are produced by
BSD-style code. However, they link to the main ceph libraries, which are
LGPL2.1. IIUC, LGPL2.1 "trumps" BSD here because of the strong copyleft.

Ceph also installs some erasure code ".so" files that do *not* link
against Ceph (as verified with readelf and ldd). They are covered by a
BSD-style license. These should then be mentioned separately, methinks,
because they are installed by this package and used by some of the
(L)GPL code.

Most of the Python libraries in Ceph are actually LGPL2.1+. These use
the main Ceph libraries, which are LGPL2.1 (no plus). AFAIU, the latter
still "wins", or should LGPL2.1+ be mentioned separately?

Please correct me if I'm wrong in any of these assumptions :-)

Perhaps the manual could be improved with a few clarification points,
although it's a complex issue that will vary on a case-by-case basis.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Tue, 28 Mar 2017 08:15:01 GMT) Full text and rfc822 format available.

Message #86 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 10:14:07 +0200
Heya!

Marius Bakke <mbakke <at> fastmail.com> skribis:

> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> Marius Bakke <mbakke <at> fastmail.com> skribis:
>>
>>> * gnu/packages/linux.scm (userspace-rcu): New variable.
>>
>> [...]
>>
>>> +    (license
>>> +     ;; This library is distributed under LGPL2.1+, but includes some files
>>> +     ;; covered by other licenses. The LICENSE file has full details.
>>> +     (list license:lgpl2.1+
>>> +           license:gpl3+                         ; most tests are gpl2+; tap.sh is gpl3+
>>> +           license:bsd-2                         ; tests/utils/tap/tap.[ch]
>>> +           license:expat                         ; urcu/uatomic/*
>>> +           ;; A few files use different variants of the MIT/X11 license.
>>> +           (license:x11-style "file://LICENSE"
>>> +                              "See LICENSE in the distribution for details.")))))
>>
>> It’s a case where it’d be enough to put lgpl2.1+ and gpl3+ IMO, since
>> that’s what effectively applies to the resulting work.
>
> Is this also true for the source code archive itself? As an end user,
> looking at the license list and deciding to `guix build -S`, I would
> expect the contents to match what's in the package definition.
>
> Is this a distinction we should make? I.e. "source" license vs "product"
> license. For Ceph, this would be the current license list in the first
> instance and just lgpl2.1 and gpl2 for the built product.

The intent was that ‘license’ would be the license that applies to the
combined work (the thing that you install), IOW the license that “wins”,
omitting build-time programs like ‘install-sh’ and similar scripts.

This is similar to what the Free Software Directory does but coarser
than what Debian does, for instance.

However that has always been under-specified, and a number of packages
list all the licenses that apply to various parts of the source, as you
did above.

> Tricky! Moving the other licenses to the comments for this package, but
> something to think about.

Yeah, tricky!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Tue, 28 Mar 2017 08:18:02 GMT) Full text and rfc822 format available.

Message #89 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 10:17:37 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> Sorry for spamming this discussion, but it's something that I haven't
> seen discussed before and it's good to clarify a few of these points.
>
> Ceph is also a prime example of a complex package covering lots of
> licenses. Some of the ".so" files installed by Ceph are produced by
> BSD-style code. However, they link to the main ceph libraries, which are
> LGPL2.1. IIUC, LGPL2.1 "trumps" BSD here because of the strong copyleft.

Right, copyleft licenses “win” over the non-copyleft ones.

> Ceph also installs some erasure code ".so" files that do *not* link
> against Ceph (as verified with readelf and ldd). They are covered by a
> BSD-style license. These should then be mentioned separately, methinks,
> because they are installed by this package and used by some of the
> (L)GPL code.

Yes, that makes sense to me.

> Most of the Python libraries in Ceph are actually LGPL2.1+. These use
> the main Ceph libraries, which are LGPL2.1 (no plus). AFAIU, the latter
> still "wins", or should LGPL2.1+ be mentioned separately?

I’d mention just LGPL2.1 since it “wins” over LGPL2.1+, but with a
comment explaining the situation.

(There’ll be a lot to read in that file! :-))

> Perhaps the manual could be improved with a few clarification points,
> although it's a complex issue that will vary on a case-by-case basis.

Indeed!  We also need clarifications on when to use “+” on GNU licenses,
since it’s never obvious to newcomers.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Tue, 28 Mar 2017 08:58:01 GMT) Full text and rfc822 format available.

Message #92 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 3/6] gnu: Add ceph.
Date: Tue, 28 Mar 2017 10:57:00 +0200
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Also, I just built this to verify that it still works, but got two
> different test failures on two different machines, suggesting some tests
> are flaky. Perhaps I should just disable these two off the bat?

Nevermind, it was two very rare race conditions (one that only seems to
occur with -j16 and slow storage). Let's deal with them if it they turn
out to be not so rare.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Tue, 28 Mar 2017 09:44:02 GMT) Full text and rfc822 format available.

Message #95 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 3/6] gnu: Add ceph.
Date: Tue, 28 Mar 2017 11:43:38 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>>> +                  (for-each delete-file-recursively
>>> +                            '(;; TODO: Unbundle these:
>>> +                              ;"src/isa-l"
>>> +                              ;"src/lua"
>>> +                              ;"src/googletest"
>>> +                              ;"src/xxHash"
>>> +                              ;"src/zstd"
>>> +                              ;"src/civetweb"
>>> +                              ;"src/Beast"
>>
>> Hopefully Lua and zstd would be easy to address, but yeah, we can leave
>> it for after.  :-)
>
> Yes, it's on my priority list, but figured it's better to have it
> available so that others can use it and help out. I keep picking this up
> every few weeks, but the build takes hours and so it's very tiring work.
>
> (also, poor Hydra!)
>
> The TODO list is:
>
> * make `ceph-disk` work for the tests (it works when installed)
> * make it build on ARM (apparently libaio is unsupported there)
> * unbundle more things
> * services! (I need more hardware first though :-))
>
> I'm committed to supporting this package, so please ping me about any
> problems (in Guix, or on your test cluster ;-))

Awesome.

> Also, I just built this to verify that it still works, but got two
> different test failures on two different machines, suggesting some tests
> are flaky. Perhaps I should just disable these two off the bat?

Maybe best to disable them, yes.

Thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Tue, 28 Mar 2017 09:46:02 GMT) Full text and rfc822 format available.

Message #98 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org
Subject: Re: bug#26256: [PATCH 4/6] gnu: fio: Enable rbd support.
Date: Tue, 28 Mar 2017 11:45:19 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> Marius Bakke <mbakke <at> fastmail.com> skribis:
>>
>>> * gnu/packages/benchmark.scm (fio)[inputs]: Add ceph:lib.
>>
>> Would be worth checking how this affects the closure size.  It’s a
>> developer tool though, so I’d argue that it’s less of a problem if the
>> closure size is increased noticeably in this cases.
>
> ceph:lib increases fios closure size from 452.3 MiB to a good 738 MiB.
>
> However, by moving the fio auxiliary scripts to a separate output, I
> managed to get the baseline size down from 452.3 MiB to 75.3 MiB. See
> attached patch. WDYT?
>
> From b942036bef17a4eacfd7406a9a5130fd2255252d Mon Sep 17 00:00:00 2001
> From: Marius Bakke <mbakke <at> fastmail.com>
> Date: Tue, 28 Mar 2017 00:08:36 +0200
> Subject: [PATCH] gnu: fio: Install python scripts in separate output.
>
> * gnu/packages/benchmark.scm (fio)[outputs]: New field.
> [arguments]: Rename 'wrap-python-scripts' to 'move-outputs'. Keep wrapper.

[...]

> +         (add-after 'install 'move-outputs
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((out (assoc-ref outputs "out"))
> +                   (utils (string-append (assoc-ref outputs "utils") "/bin")))

Add a comment explaining that this saves X MiB on the closure.

> +    (outputs '("out" "utils"))

Maybe s/utils/bin/ if there aren’t any other binaries, otherwise LGTM!

Thank you!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26256; Package guix-patches. (Tue, 28 Mar 2017 11:17:02 GMT) Full text and rfc822 format available.

Message #101 received at 26256 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 26256 <at> debbugs.gnu.org, Tobias Geerinckx-Rice <me <at> tobias.gr>
Subject: Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
Date: Tue, 28 Mar 2017 13:16:25 +0200
Marius Bakke <mbakke <at> fastmail.com> skribis:

> Tobias Geerinckx-Rice <me <at> tobias.gr> writes:
>
>>> PS: The PGP signature of this email is bad. If you are in fact
>>> Tobias, please reply with a signed email stating "I will not use
>>> important software from my host distro any longer" :-P
>>
>>   $ grep gpg .thunderbird/*/prefs.js
>>   user_pref("extensions.enigmail.agentPath",
>>             "/home/nckx/.guix-profile/bin/gpg");
>>
>> Checkmate, atheists.
>
> Oof. Can't blame your cat this time. Is anyone else seeing a bad
> signature for id:cdd6892d-5182-ee07-7452-8df83136e3d0 <at> tobias.gr ?

I do.

Ludo’.




Reply sent to Marius Bakke <mbakke <at> fastmail.com>:
You have taken responsibility. (Tue, 28 Mar 2017 15:11:01 GMT) Full text and rfc822 format available.

Notification sent to Marius Bakke <mbakke <at> fastmail.com>:
bug acknowledged by developer. (Tue, 28 Mar 2017 15:11:02 GMT) Full text and rfc822 format available.

Message #106 received at 26256-done <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 26256-done <at> debbugs.gnu.org
Subject: Re: [PATCH 0/6] Add ceph + multipath-tools.
Date: Tue, 28 Mar 2017 17:10:05 +0200
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Hello! Here is a revised Ceph patch, and some collateral patches.
> I haven't yet tried running a Ceph cluster from Guix, but since
> most of the tests passes I'm not too worried.
>
> Marius Bakke (6):
>   Revert "gnu: snappy: Update to 1.1.4."
>   gnu: xmlstarlet: Disable failing tests.
>   gnu: Add ceph.
>   gnu: fio: Enable rbd support.
>   gnu: Add userspace-rcu.
>   gnu: Add multipath-tools.

I've pushed this series after taking the comments into account.

Hopefully Hydra can cope!
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 26 Apr 2017 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 114 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.