[PATCH 0/6] Add ceph + multipath-tools.

  • Done
  • quality assurance status badge
Details
3 participants
  • Ludovic Courtès
  • Marius Bakke
  • Tobias Geerinckx-Rice
Owner
unassigned
Submitted by
Marius Bakke
Severity
normal
M
M
Marius Bakke wrote on 25 Mar 2017 21:27
(address . guix-patches@gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20170325202717.14345-1-mbakke@fastmail.com
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
M
M
Marius Bakke wrote on 25 Mar 2017 21:30
[PATCH 1/6] Revert "gnu: snappy: Update to 1.1.4."
(address . 26256@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20170325203017.14931-1-mbakke@fastmail.com
Rocksdb fails to build with this version.

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

Toggle diff (24 lines)
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
M
M
Marius Bakke wrote on 25 Mar 2017 21:30
[PATCH 2/6] gnu: xmlstarlet: Disable failing tests.
(address . 26256@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20170325203017.14931-2-mbakke@fastmail.com
* gnu/packages/xml.scm (xmlstarlet)[arguments]: Add phase to disable two tests.
---
gnu/packages/xml.scm | 10 ++++++++++
1 file changed, 10 insertions(+)

Toggle diff (23 lines)
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
M
M
Marius Bakke wrote on 25 Mar 2017 21:30
[PATCH 4/6] gnu: fio: Enable rbd support.
(address . 26256@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20170325203017.14931-4-mbakke@fastmail.com
* gnu/packages/benchmark.scm (fio)[inputs]: Add ceph:lib.
---
gnu/packages/benchmark.scm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

Toggle diff (26 lines)
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
M
M
Marius Bakke wrote on 25 Mar 2017 21:30
[PATCH 3/6] gnu: Add ceph.
(address . 26256@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20170325203017.14931-3-mbakke@fastmail.com
* 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

Toggle diff (432 lines)
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@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 agains
This message was truncated. Download the full message here.
M
M
Marius Bakke wrote on 25 Mar 2017 21:30
[PATCH 5/6] gnu: Add userspace-rcu.
(address . 26256@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20170325203017.14931-5-mbakke@fastmail.com
* gnu/packages/linux.scm (userspace-rcu): New variable.
---
gnu/packages/linux.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
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
M
M
Marius Bakke wrote on 25 Mar 2017 21:30
[PATCH 6/6] gnu: Add multipath-tools.
(address . 26256@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20170325203017.14931-6-mbakke@fastmail.com
* gnu/packages/linux.scm (multipath-tools): New variable.
---
gnu/packages/linux.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)

Toggle diff (85 lines)
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
M
M
Marius Bakke wrote on 25 Mar 2017 21:41
Re: [PATCH 3/6] gnu: Add ceph.
(address . 26256@debbugs.gnu.org)
87zig9w0lc.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (3 lines)
> + (arguments
> + `(#:modules ((srfi srfi-1)

Oops, this is a remnant of an earlier revision. Will drop #:modules.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljW1f8ACgkQoqBt8qM6
VPqUYAf/Wg6iOTfILpbA0pX+gGI03y7pCbQT88YctXObSFGIEDACNpGjnLwpEN3E
PojdbINNl10kYZZ7/Yt5cVXktRSmrRHUm0vUh/43Mt4zBz70IswBxGgrmuNoA8Bj
Ycw/S5AvHXxjzkfCVolgQu9qOSx0g2qEY/vold5iNok4+JsnZ8QAARtEbCSyAwGd
yGbtYWXQT6fNGeWxqrnjbLMWDAqQBaWklUXmfa9y9K17yOqLRS6tcPQwmTpvOQHK
mbfIUJZgyRVer+sUC9TwGD3LDQFHndnCve8tv5cpprErMYOhDsTchWF6Mkx3QcfF
bfO1/NqkkoSTd7Rovgq3j7XNH/d1mw==
=b6jN
-----END PGP SIGNATURE-----

M
M
Marius Bakke wrote on 25 Mar 2017 21:51
(address . 26256@debbugs.gnu.org)
87wpbdw04q.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (48 lines)
> * 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.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljW2FYACgkQoqBt8qM6
VPozGAf/QNnajLPSfrHkiENq/AI2nf37rMinNED5iNcKCKAdL6Qi+M0PlsKh6Qsm
UNoE3Js3gpBQOt+8ykzP24LbH8uokn+Ys/sOJxYt7XHFdbzpefWtMPEWOzYHCKvM
g3TgA3+kytHEFAnvv8DrjxP7Ayai36jsFQFk6exVGGx+v554avYKsS2XM/im7HlF
3KGb+1JcSlspN85QXfCfL2Gc4+dcx45tswBlH3SCMDgIWqSv0o7V0U+Zrzdb1B0t
iR+/3QRPayVRbgM6jir04fSxIt5jOUU8WDpWulgwb0sVsj/L3cUh1Rd24JP4MIej
p0uD12J+++i7jTpALjeP2FrtyFr12g==
=DjZt
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 27 Mar 2017 13:38
Re: bug#26256: [PATCH 1/6] Revert "gnu: snappy: Update to 1.1.4."
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87bmsnkkzw.fsf@gnu.org
Hi Marius!

Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (4 lines)
> Rocksdb fails to build with this version.
>
> This reverts commit 9baab9aeeda394408290613c597bff1d96004dfb.

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

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 27 Mar 2017 13:39
Re: bug#26256: [PATCH 2/6] gnu: xmlstarlet: Disable failing tests.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
877f3bkky4.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (20 lines)
> * 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’.
L
L
Ludovic Courtès wrote on 27 Mar 2017 13:48
Re: bug#26256: [PATCH 3/6] gnu: Add ceph.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87zig7j5yn.fsf@gnu.org
Heya!

Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (11 lines)
> From be372f4c3a278568872b0175ab308c08c1b02cc5 Mon Sep 17 00:00:00 2001
> From: Marius Bakke <mbakke@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!

Toggle quote (10 lines)
> + (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’.
L
L
Ludovic Courtès wrote on 27 Mar 2017 13:50
Re: bug#26256: [PATCH 4/6] gnu: fio: Enable rbd support.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87vaqvj5w6.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (2 lines)
> * 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’.
L
L
Ludovic Courtès wrote on 27 Mar 2017 13:51
Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87r31jj5tn.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

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

[...]

Toggle quote (11 lines)
> + (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’.
L
L
Ludovic Courtès wrote on 27 Mar 2017 13:52
Re: bug#26256: [PATCH 6/6] gnu: Add multipath-tools.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87mvc7j5sk.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

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

LGTM, thank you!

Ludo’.
M
M
Marius Bakke wrote on 27 Mar 2017 21:13
Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 26256@debbugs.gnu.org)
877f3awn17.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (20 lines)
> Marius Bakke <mbakke@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.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZZGUACgkQoqBt8qM6
VPrplggAn2cEOd03OaT9fakSUSVL+nygeF6PosT1RD681URyH4LeGAuXT5uXd2Vl
ThZ0A2uiTMrlNdW7t3aK/IJleCDkk5rwHv4IYj5Z905I+VliBs615+JK8M3uFUe8
6GmM/ZIwZpjxsBqIOddqqtf3pBoe1yIfRe6Bcr3sEZ8fMGRGsczO/3kNmCHMYEzx
RbNBY8jbewoeT6HkPSM7CUMU0mHCT4PWQtX/YHWNf13AQZwvW+qSVPTWewhiA4tI
0M1XefOBAF6hA1XO4L7MvcC4Z8I41QxzjFlmUr604GHvXiR2XqbkRib7GobGJwhM
5sbmYI9UwekqzcZYeZssmnyx4EaQDg==
=BnR5
-----END PGP SIGNATURE-----

T
T
Tobias Geerinckx-Rice wrote on 27 Mar 2017 21:49
cdd6892d-5182-ee07-7452-8df83136e3d0@tobias.gr
Marius,

On 25/03/17 21:30, Marius Bakke wrote:
Toggle quote (2 lines)
> * 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:

Toggle quote (3 lines)
> + (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.

Toggle quote (12 lines)
> + (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
Attachment: signature.asc
T
T
Tobias Geerinckx-Rice wrote on 27 Mar 2017 21:54
057651c7-f4c3-6769-dc92-87bbeb7c0a9f@tobias.gr
On 27/03/17 21:49, Tobias Geerinckx-Rice wrote:
Toggle quote (2 lines)
> 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
Attachment: signature.asc
M
M
Marius Bakke wrote on 27 Mar 2017 22:08
8737dywkhy.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Tobias Geerinckx-Rice <me@tobias.gr> writes:

Toggle quote (8 lines)
> 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!

Toggle quote (7 lines)
>> + (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!

Toggle quote (14 lines)
>> + (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) ;-)

Toggle quote (2 lines)
> 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
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZcTkACgkQoqBt8qM6
VPqLRAf+NvX3zmWvxP7LYpKyt1NnHFiGp+h5nZwd2PAPSfCCyACiKQeI9SPg+Y1A
HHBFJpK90XEagBiJrMuNFnDQGVAUlNynG6kycR3XHIrTi4nezHQhTt2Hej8D/kBy
ZSxhsMciWSxKfd3Ma6wxsPWhzkHu20XY58NSjxcNIUje2PxagQTTvkbXqGz6Ru5r
evdwNZc9kPOLcL42RoYDr4hdPBNR0oOsB+HAmiHkB5ht+sTwU1qYPhuSqujiP3Su
jcjWIFXdOUS95B/MTLxvCT9opAhus4UUCVfVQZhVFBp3c45QwZgNeG8ZOoBgjJjV
VuAvK3MBCs2o/dP8dS67xVCGt+akxA==
=Pult
-----END PGP SIGNATURE-----

M
M
Marius Bakke wrote on 27 Mar 2017 22:13
Re: bug#26256: [PATCH 3/6] gnu: Add ceph.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 26256@debbugs.gnu.org)
871stiwka1.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (13 lines)
>> + (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?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZclcACgkQoqBt8qM6
VPpZ3wgAyOCJ2+v3pNrceSqWGcOED1HdxW2WpShKy1eVm+T3OtYGf0E/uEHzknNQ
5GPQFOey12LHiKomlfl3AZSNQZqDvMxNb5CtMPji7Uu2Fy0mzPGKUumxAqUX52gh
zFyW9t1vBYBtpfIuzCiLdLv5c85uTcvmcR2i430pYL11Q3QxjgamXxNKsy8XBKSt
H/UlqcfELZrWAzIuEFP5rqJSj4hE9B004jyLPST5NYQWjN2ESwjGSopHG7wQhAfQ
DCJ7TVzCw3kWez6hQpPE9pyjHXLuAq3sEiv8n8iWScYmRsh61rzG+88HjV0MFHKl
SaVydpaoj47/CEJ5JXpmMDPU3J6jzw==
=YHqg
-----END PGP SIGNATURE-----

M
M
Marius Bakke wrote on 28 Mar 2017 00:10
Re: bug#26256: [PATCH 4/6] gnu: fio: Enable rbd support.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 26256@debbugs.gnu.org)
87vaquv09a.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (8 lines)
> Marius Bakke <mbakke@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@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.
---
gnu/packages/benchmark.scm | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index ff5715d57..994bf1db2 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -64,13 +64,22 @@
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure"
(string-append "--prefix=" out))))))
- (add-after
- 'install 'wrap-python-scripts
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/fiologparser_hist.py")
- `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
- #t))))))
+ (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")))
+ (mkdir-p utils)
+ (for-each (lambda (file)
+ (let ((src (string-append out "/bin/" file))
+ (dst (string-append utils "/" file)))
+ (link src dst)
+ (delete-file src)))
+ '("fio2gnuplot" "fio_latency2csv.py"
+ "fiologparser_hist.py" "fiologparser.py"))
+ (wrap-program (string-append utils "/fiologparser_hist.py")
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+ #t))))))
+ (outputs '("out" "utils"))
(inputs
`(("libaio" ,libaio)
("gnuplot" ,gnuplot)
--
2.12.2
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZjfEACgkQoqBt8qM6
VPrrTQf+OwzYDJzweNSVwl1rFhEvXyVfvvb/oauj99VvZNu6ilDdj9+IiPpgNqh7
7uHKwk59uolSsaV9zpTJj8Tu/c9UApJkuvwzPkBeB2m0F1s5aosVMMWhAoW+iEMJ
fdJzGqPFdjYLc53tqQzTJb1OPqUmzw4pfufGYM20nPpvX2WAbzn7a8YlvUenS4oX
Bzk7JvfPk5OjYS7u+2x5o6RuziHEaO1Cyulrw1wM1DEbNs7sWHkg1Yg9SPolWWpk
LxPLiFLcQiiJPyeRAcj+5QbSyJue8GcPRGjswh3/14Bwns2V++EMS+ficgxN6A1o
ORlnDTisCPfUJFW7nFZz5TkCYdO/nA==
=j2/w
-----END PGP SIGNATURE-----

T
T
Tobias Geerinckx-Rice wrote on 28 Mar 2017 00:21
Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
9c2a4ab0-5e12-8744-3411-6c7340702243@tobias.gr
Marius,

On 27/03/17 22:08, Marius Bakke wrote:
Toggle quote (7 lines)
> Tobias Geerinckx-Rice <me@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.

Toggle quote (4 lines)
> 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
Attachment: signature.asc
M
M
Marius Bakke wrote on 28 Mar 2017 00:31
87poh2uzb7.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Tobias Geerinckx-Rice <me@tobias.gr> writes:

Toggle quote (10 lines)
>> 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@tobias.gr ?

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

Maybe it is the cat after all.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZkrwACgkQoqBt8qM6
VPqnJAf/e+xiZhguzMqkNYzrEPVeVANq1jMFOPigyUpiw+i1L6bMeib1rg2HFPmy
wCSvgDFg4gOjxzPqoNIRvP78jCXN69O6mIeRq931dpMsnJ8VRnFo+S+sMv50MXAo
QhiZul4HYHUC9uRkmFQbaxkQIqCEdtEkcfhDsOd9bmgKYwVOzLczhS/TMSm/HkeB
/g1VVthNj/hIEEDoBVqKwy6akl+k2ZDfXk6e46/0tkOGcLWWJQy1vTWU6D3CDRy7
2QFGLr8GJCpMIVQiiNiudvW34bW2E953dxoLNtasxKVOPUVto64WkmnY/lYuq5OK
Z17Ku1Z+JCaDbLQxhWxog3BVuzBfuA==
=BktP
-----END PGP SIGNATURE-----

M
M
Marius Bakke wrote on 28 Mar 2017 00:57
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 26256@debbugs.gnu.org)
87mvc6uy31.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (30 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Marius Bakke <mbakke@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.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZmPIACgkQoqBt8qM6
VPqIGggAvCyyZgkLOUF8a5RRKb657nlGAHRjFHObhRZFVhyb4GmO7dMU9zkNWvqs
jBOh+ycc4WP/HWnX5DQ+J1DDuGK1MWG+0kwQGZ09Ici8CuZMHKlqpmvtzFDxUqNX
V9Xw66qQrCPDyDlwUbBpdVt5dWt0+w1SIDIlrSjGqsa5VkfVldzEVyokolIMifVx
3BjSWQ4VRmI3fw/AMi3kF5ddhcvS6HJ5y1P9StW5nXSMlQx9qpZNWLaI8tTmVqdA
D2WezM2EutMEJJBQlMazLwDWw93W6pGnJslB1yHw96dRLHVpndlI41qaQiO+z9vg
LoLEZ2AJFjimowxxGudjoQeHzqZWQQ==
=BZnr
-----END PGP SIGNATURE-----

T
T
Tobias Geerinckx-Rice wrote on 28 Mar 2017 00:59
b78ca682-3867-5842-22da-6739f8917197@tobias.gr
Marius,

On 28/03/17 00:31, Marius Bakke wrote:
Toggle quote (5 lines)
> Oof. Can't blame your cat this time. Is anyone else seeing a bad
> signature for id:cdd6892d-5182-ee07-7452-8df83136e3d0@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.

Toggle quote (2 lines)
> 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
Attachment: signature.asc
M
M
Marius Bakke wrote on 28 Mar 2017 01:05
87k27auxpt.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Tobias Geerinckx-Rice <me@tobias.gr> writes:

Toggle quote (16 lines)
> 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@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 :-)

Toggle quote (2 lines)
> ...aanyway: ceph! \o/

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

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZms4ACgkQoqBt8qM6
VPo3Swf/c54D36IfHernYhZlrXDle+qTIiic2esAiPhIfHPZInJoBmfiVOSkEKRn
aLDlazGWB+lc4GO7OxY4qHAAXygTiQ9XD5dr6G+wuYvZ3AmgU8bGhGigXzo3/6i9
l/yX/lu0xkyW6HfWeHrzce1R6y0MqgWapxeV5ghtAkInu8ouTTHgpORLnfbdGhQA
EYU6iY7HqjvyiVCavBuD463zEwkzmslC3TtiZlk/n9pdnCTU213cGPPvKqSLF/qA
ShwhG5MRovE94vxcNxejGSKuqFVyeQqmpgbWBvngBAKsHMJv/UqV46SIKbakgleU
7ymXIda58+Ma/uV8utYAy7YDNfeNuQ==
=ZxGZ
-----END PGP SIGNATURE-----

M
M
Marius Bakke wrote on 28 Mar 2017 01:41
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 26256@debbugs.gnu.org)
87h92euw2y.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (39 lines)
> Marius Bakke <mbakke@fastmail.com> writes:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> Marius Bakke <mbakke@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.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljZoxUACgkQoqBt8qM6
VPoT3gf9FABhU08HSI9pTklz5A0y0+grwjNcWdV2X1+mstjT8LAohcK6uJ5fgWRg
w7afpntZJfKoXnC4yfLVSq2cEbOW0YTydHoHwulKuDqSTUs8czjAz+prOLmAmAZW
+SJX3ZBJIcjftf4LfwMGlLE2dMk57KifmhCELU8NgbcEFGMfHejMRVfEbN665ca8
2qJMcDxy5MU1vyDA067logRZ9T0AbDjNi4IEPONwrbO1J1F4P0CYfM2IshtWcTId
gJ00JKCEvKjtmR2NrcP90XFCaXccweYuKTtG/sTEt6K84pSg7r32/gWS8XkGPhZF
9++xbowTMGh3euvNMUqgF2hM/+Dchg==
=Vu0m
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 28 Mar 2017 10:14
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87zig57r8w.fsf@gnu.org
Heya!

Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (30 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Marius Bakke <mbakke@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.

Toggle quote (3 lines)
> Tricky! Moving the other licenses to the comments for this package, but
> something to think about.

Yeah, tricky!

Ludo’.
L
L
Ludovic Courtès wrote on 28 Mar 2017 10:17
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87tw6d7r32.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (8 lines)
> 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.

Toggle quote (6 lines)
> 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.

Toggle quote (4 lines)
> 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! :-))

Toggle quote (3 lines)
> 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’.
M
M
Marius Bakke wrote on 28 Mar 2017 10:57
Re: bug#26256: [PATCH 3/6] gnu: Add ceph.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 26256@debbugs.gnu.org)
8737dxvkwz.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (4 lines)
> 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.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljaJVwACgkQoqBt8qM6
VPrdEgf6AtS5OZS84yEwkfn1564Rs84Ylx+bPTrdY63PRHGSaVX53BjoyiRBMo8U
AFQwXh/1oSK/SOIJpxaT71jhg39SJABKSGJuBqmfhUakXESFVgScvMSXHffT68LU
JGRD6x8n/R/j1feGcCVugM8g50yhj5cl8mU3au6ucyKtSg9As0pQGIvF3W15b25x
rHpD+So+6degLJD9kdVYkhVk/DJorFl/H0FhlQvvjog4DENimsMbTo6lbRld0Tde
Cl9E37G1EOTksH6+UF5QjbV1T2ulFORb8xQ4pgPjHSnf4Yu9p5Mg7OZ5b3vDnOmH
6FEfYda0iRS9e08L3rZjWRzY7vLuLw==
=kk67
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 28 Mar 2017 11:43
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87h92d7n3p.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (31 lines)
> Ludovic Courtès <ludo@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.

Toggle quote (4 lines)
> 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’.
L
L
Ludovic Courtès wrote on 28 Mar 2017 11:45
Re: bug#26256: [PATCH 4/6] gnu: fio: Enable rbd support.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 26256@debbugs.gnu.org)
87d1d17n0w.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (24 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Marius Bakke <mbakke@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@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.

[...]

Toggle quote (5 lines)
> + (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.

Toggle quote (2 lines)
> + (outputs '("out" "utils"))

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

Thank you!

Ludo’.
L
L
Ludovic Courtès wrote on 28 Mar 2017 13:16
Re: bug#26256: [PATCH 5/6] gnu: Add userspace-rcu.
(name . Marius Bakke)(address . mbakke@fastmail.com)
87k279648m.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (15 lines)
> Tobias Geerinckx-Rice <me@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@tobias.gr ?

I do.

Ludo’.
M
M
Marius Bakke wrote on 28 Mar 2017 17:10
Re: [PATCH 0/6] Add ceph + multipath-tools.
(address . 26256-done@debbugs.gnu.org)
87poh1tp2q.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (12 lines)
> 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!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAljafM0ACgkQoqBt8qM6
VPoZDwf+PVoZcF6gOj95otP0Oyp6SXo81cNFcf9TWkJQ65qGAjYU/qJyQlBcM5QW
4Zo/AEnDJPD6l7Dm17331sqFK6EDvFEqhk7HtcrA8Ca6Uo+da+6H5zRW/PuBjTVT
k5G5lfROnnsDJiJ6KzBULW/Qv2dpbSSldneMECA+eRBcIss1jo/ZNLxiwyrUSpgg
Z17GgQ7IOrmql8BO+QDkCForyLvs07lYkBoU0LXLkZY93ED5AO1JNcSeqgC5/cgp
kICJNtv/Dt4UHUjhNAauz2Hau39GpDnlUoqDP+NYnMNzzey77S0YJtB/vc0gQnby
8VC9bCx/LrDuqQ5zTbRTv654bcJVEA==
=Ykmh
-----END PGP SIGNATURE-----

Closed
?