about summary refs log tree commit diff
diff options
context:
space:
mode:
authorpjotrp2026-03-22 12:07:54 +0100
committerpjotrp2026-03-22 12:07:54 +0100
commit21a6be8995bed3e5460665380a31c9ae2f3d2730 (patch)
treee7fc1de097e516b62d45f8c801c3c4b13a217b84
parentcc0e9d2657010350066af7a995307d3e725179e9 (diff)
downloadguix-bioinformatics-21a6be8995bed3e5460665380a31c9ae2f3d2730.tar.gz
Continue cleanup
-rw-r--r--gn/deploy/octopus.scm161
-rw-r--r--gn/packages/afnumpy.scm51
-rw-r--r--gn/packages/arrayfire.scm235
-rw-r--r--gn/packages/bioinformatics.scm206
-rw-r--r--gn/packages/edash.scm24
-rw-r--r--gn/packages/globus.scm19
-rw-r--r--gn/packages/gnulib.scm36
-rw-r--r--gn/packages/java.scm382
-rw-r--r--gn/packages/javascript.scm47
-rw-r--r--gn/packages/julia.scm74
-rw-r--r--gn/packages/jupyterhub.scm261
-rw-r--r--gn/packages/kubernetes.scm313
-rw-r--r--gn/packages/mouse-longevity.scm87
-rw-r--r--gn/packages/notebooks.scm80
-rw-r--r--gn/packages/python.scm44
-rw-r--r--gn/packages/r-shiny.scm337
-rw-r--r--gn/packages/ruby.scm5832
-rw-r--r--gn/packages/traefik.scm52
-rw-r--r--gn/packages/twint.scm150
-rw-r--r--gn/packages/yaj.scm62
-rw-r--r--gn/services/bxd-power-container.scm24
-rw-r--r--gn/services/jumpsem-container.scm27
-rw-r--r--gn/services/jumpshiny-container.scm25
-rw-r--r--gn/services/rn6-assembly-container.scm24
-rw-r--r--gn/services/rshiny.scm86
25 files changed, 450 insertions, 8189 deletions
diff --git a/gn/deploy/octopus.scm b/gn/deploy/octopus.scm
deleted file mode 100644
index fc631b8..0000000
--- a/gn/deploy/octopus.scm
+++ /dev/null
@@ -1,161 +0,0 @@
-(define-module (gn deploy octopus))
-
-(use-modules (gnu)
-             (gn services file-systems)
-             (gn services science)
-             (srfi srfi-26))
-(use-service-modules networking ssh sysctl web)
-(use-package-modules parallel shells)
-
-(define %efraimf-ssh-pubkey
-  (plain-file "efraim-id_rsa.pub"
-              "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUCDY8ZKFF/ln0yzDt3CNmKz3cT4wzNv9bzCKvOBXcL0O7JtPWwqgLlZgmMHfzhzgReAkHcrt+Gdsyduzm/s9Y8c6QpyfaH6uoDwjfoOs6GrAjZaOXmAdncf+9HZEAy/IrygQ1YFRu6BvYogsdhhtN+O6IXBuvQQDRzldHs53Y53DK06Nrs19vAPwELXcDxcx1FvO+/L9nT8RHkI1Z0ucgTS+F/BWXl8+mh89r4j+4IRpZXOuCD0DrW5rgEE1EygF2dVdWZQESi23gU5Mt6vnmysXzwixB7j6I+xTih8LH4pz7hewEx6754e/cs9Gm7ZtfXKfXUt6+GtsBSBF3ULKl efraimf@octopus01"))
-
-
-(operating-system
-  (host-name "octopus")
-  (timezone "Etc/UTC")
-  (locale "en_US.utf8")
-
-  (bootloader (bootloader-configuration
-               (bootloader grub-bootloader)
-               (targets '("/dev/sda"))
-               (terminal-outputs '(console serial))))
-  (kernel-arguments '("console=tty1" "console=ttyS0,115200n8"))
-
-  (file-systems
-    (append (list
-              (file-system
-                (device "/dev/sda3")
-                (mount-point "/")
-                (type "ext4")
-                (options "errors=remount-ro"))
-              ;(file-system
-              ;  (device "/dev/sdb1")
-              ;  (mount-point "/mnt/sdb1")
-              ;  (type "xfs")
-              ;  (flags '(no-exec no-dev no-atime))
-              ;  (options "rw,nodiratime,largeio,inode64")
-              ;  (create-mount-point? #t))
-              (file-system
-                (device "octopus01:/export")
-                (mount-point "/export")
-                (type "nfs")
-                (mount? #f)    ; VM can't find octopus01
-                (check? #f))(file-system
-                (device "octopus01:/home")
-                (mount-point "/home")
-                (type "nfs")
-                (mount? #f)    ; VM can't find octopus01
-                (check? #f)))
-              %base-file-systems))
-
-  (swap-devices '("/dev/sda2"))
-  ;; No firmware needed
-  (firmware '())
-
-  (users (cons*
-           (user-account
-             (name "wrk")
-             (comment "Pjotr Prins")
-             (uid 502)
-             (group "users")
-             (supplementary-groups '("wheel" "kvm")))
-           (user-account
-             (name "efraimf")
-             (comment "Efraim Flashner")
-             (uid 1000)
-             (group "users")
-             (supplementary-groups '("wheel" "kvm")))
-           (user-account
-             (name "erikg")
-             (comment "Erik Garrison")
-             (uid 1001)
-             (group "users")
-             (shell (file-append zsh "/bin/zsh")))
-           (user-account
-             (name "hchen")
-             (comment "Hao Chen")
-             (uid 1002)
-             (group "users"))
-           %base-user-accounts))
-
-
-  (packages (append
-              (map (cut specification->package <>)
-                     '("nss-certs"
-                       "screen" "tmux"
-                       "vim"
-                       "htop"))
-              %base-packages))
-
-  (services
-    (append (list
-              (service openssh-service-type
-                       (openssh-configuration
-                         (authorized-keys
-                           `(("efraimf" ,%efraimf-ssh-pubkey)))))
-
-              (service sysctl-service-type
-                       (sysctl-configuration
-                         (settings '(("vm.overcommit_memory" . "2")
-                                     ("vm.overcommit_ratio" . "90")))))
-
-              (service munge-service-type)
-              (service slurm-service-type
-                       (slurm-configuration
-                         (package slurm-18.08)
-                         (SlurmdLogFile "/var/log/slurmd.log")
-                         (SlurmctldLogFile "/var/log/slurmctld.log")
-                         (ClusterName "linux")
-                         (SlurmUser "slurm")
-                         (SlurmctldHost '("octopus"))
-                         (DbdHost "localhost")
-                         (StorageType "accounting_storage/none")
-                         (slurm-extra-content
-                           (string-append
-                             "StateSaveLocation=/var/spool/slurmd/ctld    # default /var/spool\n"
-                             "ReturnToService=1               # default 0\n"
-                             "DebugFlags=NO_CONF_HASH         # default empty\n"
-                             "SelectType=select/cons_res      # default select/linear\n"
-                             "SelectTypeParameters=CR_CPU     # default 0\n"
-                             "# COMPUTE NODES\n"
-                             "NodeName=octopus CPUs=1 Boards=1 SocketsPerBoard=1 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1024\n"
-                             "PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP"))
-                         (cgroup-extra-content
-                           (string-append
-                             "CgroupAutomount=yes     # default no\n"
-                             "ConstrainCores=yes      # default no\n"
-                             "MaxRAMPercent=95        # default 100"))
-                         (slurmdbd-extra-content
-                           (string-append
-                             "LogFile=/var/log/slurmdbd.log   # default none, syslog"))
-                         (run-slurmdbd? #t)
-                         (run-slurmctld? #t)))
-
-              (service lizardfs-service-type
-                       (lizardfs-configuration
-                         (mfsmetalogger-config
-                           (lizardfs-mfsmetalogger-config-file
-                             (master-host "octopus")))
-                         (mfschunkserver-config
-                           (lizardfs-mfschunkserver-config-file
-                             (master-host "octopus")))
-                         (mfshdd-config
-                           (lizardfs-mfshdd-config-file
-                             (disks-to-use (list "/mnt"))))
-                         (mfsmaster-config
-                           (lizardfs-mfsmaster-config-file
-                             (personality "master")
-                             (master-host "octopus")))
-                         (mfsexports-config
-                           (plain-file "mfsexports.cfg"
-                                       "* / rw\n"))
-                         (run-mfsmetalogger-service? #t)
-                         ))
-
-              (service dhcp-service-type)
-              (service openntpd-service-type))
-            %base-services))
-
-  (name-service-switch %mdns-host-lookup-nss))
diff --git a/gn/packages/afnumpy.scm b/gn/packages/afnumpy.scm
deleted file mode 100644
index 1322aee..0000000
--- a/gn/packages/afnumpy.scm
+++ /dev/null
@@ -1,51 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.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 (gn packages afnumpy)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix git-download)
-  #:use-module (guix utils)
-  #:use-module (guix build-system python)
-  #:use-module (gnu packages python))
-
-(define-public afnumpy
-  (let ((commit "c5594c1"))
-    (package
-      (name "afnumpy")
-      (version (string-append "rel1-" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/FilipeMaia/afnumpy.git")
-                       (commit commit)))
-                (file-name (string-append name "-" commit))
-                (sha256
-                 (base32
-                  "0n30xn8cz0ww7czb3m6dz5sh87khan7ag3vb192narmxj37l8qy7"))))
-      (build-system python-build-system)
-      ;; (native-inputs
-      ;; `(("python-setuptools" ,python-setuptools)))
-      (arguments
-       `(#:python ,python-2
-         #:tests? #f))
-      (home-page "https://github.com/FilipeMaia/afnumpy")
-      (synopsis "Numerical library array processing of numbers, strings, records and objects")
-      (description
-       "A GPGPU-accelerated drop-in of python's numpy")
-      (license license:gpl2))))
diff --git a/gn/packages/arrayfire.scm b/gn/packages/arrayfire.scm
deleted file mode 100644
index 9cb86fa..0000000
--- a/gn/packages/arrayfire.scm
+++ /dev/null
@@ -1,235 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
-;;;
-;;; 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 (gn packages arrayfire)
-  #:use-module (guix packages)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix git-download)
-  #:use-module (guix build-system cmake)
-  #:use-module (gnu packages)
-  #:use-module (guix utils)
-  #:use-module (gnu packages algebra)
-  #:use-module (gnu packages boost)
-  #:use-module (gnu packages check)
-  #:use-module (gnu packages gcc)
-  #:use-module (gnu packages maths)
-  #:use-module (gnu packages opencl)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages python))
-
-(define-public arrayfire
-(package
-    (name "arrayfire")
-    (version "3.3.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/arrayfire/arrayfire.git")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "113ldnqsil4p84sayv7jh8vnn0nalxibhdyvvwp94vqk20kqg4lw"))
-              (patches (search-patches "arrayfire-lapack-detection.patch"
-                                       "arrayfire-newer-boost-compute.patch"))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("googletest" ,googletest)
-       ("assets" ,(origin
-                    (method git-fetch)
-                     (uri (git-reference
-                            (url "https://github.com/arrayfire/assets.git")
-                            (commit "729c7b64039e6433ae5ee521658ba20147efcb02"))) ; March 4, 2019
-                     (file-name (git-file-name "arrayfire-assets" "submodule"))
-                     (sha256
-                      (base32
-                       "05zg7m6zlwi3llbv7l5wd9qi9ppb9p3ad2i5xmqwvcbgx5ry4l2s"))))
-       ("threads" ,(origin
-                     (method git-fetch)
-                     (uri (git-reference
-                            (url "https://github.com/alltheflops/threads.git")
-                            (commit "5e778ce0a7f0f80af9d32ea3569df3dbec834f59"))) ; Dec 16, 2015
-                     (file-name (git-file-name "arrayfire-threads" "submodule"))
-                     (sha256
-                      (base32
-                       "1rj2357r124b4ry0s467fz9hs4jxcyacliwprggvai85a39pqabx"))))))
-    (inputs
-     `(("boost" ,boost)
-       ("clBLAS" ,clBLAS)
-       ("clFFT" ,clFFT)
-       ("fftw-openmpi" ,fftw-openmpi)
-       ("fftwf" ,fftwf)
-       ("ocl-icd" ,ocl-icd)
-       ("openblas" ,openblas)
-       ("opencl-headers" ,opencl-headers)))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:configure-flags
-       '("-DBUILD_OPENCL=ON"
-         "-DBUILD_CUDA=OFF"
-         "-DBUILD_GRAPHICS=OFF"
-         "-DBUILD_TEST=OFF" ; building tests segfaults
-         "-DUSE_SYSTEM_CLBLAS=ON"
-         "-DUSE_SYSTEM_CLFFT=ON"
-         "-DUSE_SYSTEM_GTEST=ON")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'add-more-sources
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((assets  (assoc-ref inputs "assets"))
-                   (threads (assoc-ref inputs "threads")))
-               (copy-recursively assets "assets")
-               (copy-recursively threads "src/backend/cpu/threads"))
-             #t))
-         (add-after 'unpack 'fix-sources
-           (lambda _
-             (substitute* "src/backend/opencl/blas.cpp"
-               ;; https://github.com/arrayfire/arrayfire/commit/90a9ffbce5c38352a365e03a634ffaf0d2fb9933
-               (("#undef BLAS_FUNC_DEF")
-                "#undef BLAS_FUNC_DEF\n#undef BLAS_FUNC"))
-             (substitute* '("src/backend/cpu/blas.cpp"
-                            "src/backend/opencl/cpu/cpu_blas.cpp")
-               ;; https://github.com/arrayfire/arrayfire/pull/2538/files
-               (("&cblas_##PREFIX##FUNC;")
-                "(FUNC##_func_def<TYPE>)&cblas_##PREFIX##FUNC;"))
-             #t)))
-       #:tests? #f)) ; Building the tests fail linking, so we build the examples as a test.
-    (home-page "https://arrayfire.com/")
-    (synopsis "High performance library for parallel computing")
-    (description
-     "ArrayFire is a high performance software library for parallel computing
-with an easy-to-use API.  Its array based function set makes parallel
-programming simple.")
-    (license (list license:bsd-3 ; everything except CMakeModules folder
-                   license:cc0)))) ; assets
-
-(define-public clBLAS
-  (package
-    (name "clBLAS")
-    (version "2.12")
-    (source (origin
-             (method git-fetch)
-             (uri (git-reference
-                    (url "https://github.com/clMathLibraries/clBLAS.git")
-                    (commit (string-append "v" version))))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "154mz52r5hm0jrp5fqrirzzbki14c1jkacj75flplnykbl36ibjs"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:tests? #f
-       #:configure-flags
-       (list "../source/src"
-             "-DUSE_SYSTEM_GTEST=ON"
-             ;"-DBoost_USE_STATIC_LIBS=OFF" ; this does not seem to apply
-             "-DBUILD_TEST=OFF")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
-           (lambda _
-             (substitute* "src/CMakeLists.txt"
-               (("Boost_USE_STATIC_LIBS   ON")
-                "Boost_USE_STATIC_LIBS   OFF"))
-             #t)))))
-    (native-inputs
-     `(("gfortran" ,gfortran)
-       ("openblas" ,openblas)
-       ("opencl-headers" ,opencl-headers)
-       ("python" ,python-2)))
-    (inputs
-     `(("boost" ,boost)
-       ("ocl-icd" ,ocl-icd)))
-    (home-page "https://github.com/clMathLibraries/clBLAS")
-    (synopsis "Library containing BLAS functions written in OpenCL")
-    (description
-     "The primary goal of @code{clBLAS} is to make it easier for developers to
-utilize the inherent performance and power efficiency benefits of heterogeneous
-computing.  @code{clBLAS} interfaces do not hide nor wrap @code{OpenCL}
-interfaces, but rather leaves @code{OpenCL} state management to the control of
-the user to allow for maximum performance and flexibility.  The @code{clBLAS}
-library does generate and enqueue optimized @code{OpenCL} kernels, relieving the
-user from the task of writing, optimizing and maintaining kernel code themselves.")
-    (license license:asl2.0)))
-
-(define-public clFFT
-  (package
-    (name "clFFT")
-    (version "2.12.2")
-    (source (origin
-             (method git-fetch)
-             (uri (git-reference
-                    (url "https://github.com/clMathLibraries/clFFT.git")
-                    (commit (string-append "v" version))))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "134vb6214hn00qy84m4djg4hqs6hw19gkp8d0wlq8gb9m3mfx7na"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:configure-flags '("../source/src"
-                           "-DBUILD_TEST=ON"
-                           "-DUSE_SYSTEM_GTEST=ON"
-                           "-DBoost_USE_STATIC_LIBS=OFF")
-       #:test-target "Test"))
-    (native-inputs
-     `(("boost" ,boost)
-       ("fftw-openmpi" ,fftw-openmpi)
-       ("fftwf" ,fftwf)
-       ("googletest" ,googletest)))
-    (inputs
-     `(("ocl-icd" ,ocl-icd)
-       ("opencl-headers" ,opencl-headers)))
-    (home-page "https://github.com/clMathLibraries/clFFT/")
-    (synopsis "Library containing FFT functions written in OpenCL")
-    (description "@code{clFFT} is a software library containing FFT functions
-written in @code{OpenCL}.  In addition to GPU devices, the library also supports
-running on CPU devices to facilitate debugging and heterogeneous programming.")
-    (license license:asl2.0)))
-
-(define-public compute ; superceeded by boost-1.61+
-  (package
-    (name "compute")
-    (version "0.5")
-    (source (origin
-             (method git-fetch)
-             (uri (git-reference
-                    (url "https://github.com/boostorg/compute.git")
-                    (commit (string-append "v" version))))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "0jc04k43br49hqgzrxfn3wfz2m94q1z45zfg5nahqb7p0lbfgwyx"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"
-                           "-DCMAKE_BUILD_TYPE=Release")
-       #:tests? #f)) ; tests require OpenCL device
-    (native-inputs
-     `(("boost" ,boost-for-mysql) ; 1.59.0
-       ("opencl-headers" ,opencl-headers)
-       ("ocl-icd" ,ocl-icd)))
-    (home-page "http://boostorg.github.io/compute/")
-    (synopsis "C++ GPU Computing Library for OpenCL")
-    (description
-     "@code{Boost.Compute} is a GPU/parallel-computing library for C++ based on
-@code{OpenCL}.  The core library is a thin C++ wrapper over the @code{OpenCL
-API} and provides access to compute devices, contexts, command queues and memory
-buffers.")
-    (license license:boost1.0)))
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 8d488d6..7c88afa 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -757,3 +757,209 @@ annotated in the reference.")
     (description "A dendrogram object in R are is a list structure with attributes in its nodes and leaves.")
     (license license:gpl3)))
 
+(define-public delly
+  (package
+    (name "delly")
+    (version "0.7.2")
+    (source (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/tobiasrausch/delly/archive/v"
+            version ".tar.gz"))
+      (sha256
+       (base32 "173mmg43dbxqkyq0kiffz63xbmggr2kzd55mwxci9yfh5md1zprn"))
+      (patches (list (search-patch "delly-use-system-libraries.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("python" ,python-2)))
+    (inputs
+     `(("boost" ,boost-delly) ; Use version 1.57.0 instead.
+       ("htslib" ,htslib)
+       ("zlib" ,zlib)
+       ("bzip2" ,bzip2)))
+    (arguments
+     `(#:tests? #f ; There are no tests to run.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; There is no configure phase.
+         (replace 'install
+           (lambda _
+             (let ((bin (string-append (assoc-ref %outputs "out") "/bin")))
+               (install-file "src/cov" bin)
+               (install-file "src/delly" bin)
+               (install-file "src/extract" bin)
+               (install-file "src/iover" bin)
+               (install-file "src/stats" bin)))))))
+    (home-page "https://github.com/tobiasrausch/delly")
+    (synopsis "Integrated structural variant prediction method")
+    (description "Delly is an integrated structural variant prediction method
+that can discover and genotype deletions, tandem duplications, inversions and
+translocations at single-nucleotide resolution in short-read massively parallel
+sequencing data.  It uses paired-ends and split-reads to sensitively and
+accurately delineate genomic rearrangements throughout the genome.  Structural
+variants can be visualized using Delly-maze and Delly-suave.")
+    (license license:gpl3)))
+
+(define-public plink-ng-gn
+  (let ((commit "5d1db4313ba0cc976562da233db4aced78975d10"))
+  (package
+    (name "plink-ng-gn")
+    (version (string-append "1.90b3-" commit )) ; Aug 11, 2016
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/genenetwork/plink-ng.git")
+                   (commit commit)))
+             (file-name (string-append name "-" commit))
+             (sha256
+              (base32
+               "1366li3ks9076bblvd1rpzkjq4j8f8f08lhga4c1ckrkil3xww4m"))))
+            ;; no longer (patches (list (search-patch "plink-ng-Makefile-zlib-git.patch")))))
+    (inputs
+     `(("zlib" ,zlib)
+       ("openblas" ,openblas)
+       ;; ("atlas" ,atlas) ; openblas replaces atlas
+       ("lapack" ,lapack)  ; lapack is disabled in GUIX openblas
+       ;; ("gfortran" ,gfortran)
+       ;; ("python" ,python-2)   ;; for tests - currently disabled
+       ))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ;no "check" target. Some of the python-based tests fail
+       #:phases
+       (modify-phases %standard-phases
+        (delete 'configure)
+        (replace 'build
+                 (lambda _
+                   (zero? (system* "make" "-f" "Makefile.guix"))
+                   ))
+        (replace 'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let ((bin (string-append (assoc-ref outputs "out")
+                                              "/bin/")))
+                      (install-file "plink2" bin)
+                      #t))))))
+    (home-page "https://www.cog-genomics.org/plink2")
+    (synopsis "Whole genome association analysis toolset")
+    (description
+     "PLINK is a whole genome association analysis toolset, designed to
+perform a range of basic, large-scale analyses in a computationally efficient
+manner.  The focus of PLINK is purely on analysis of genotype/phenotype data,
+so there is no support for steps prior to this (e.g. study design and
+planning, generating genotype or CNV calls from raw data).  Through
+integration with gPLINK and Haploview, there is some support for the
+subsequent visualization, annotation and storage of results.")
+    (license license:gpl3+))))
+
+(define-public gfaffix
+  (package
+    (name "gfaffix")
+    (version "0.2.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/marschall-lab/GFAffix")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0yn8i70ww3x544qm4fwr33vklsxf3fvivpfpv46prkfz9hsmd9ps"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:install-source? #f))
+    (inputs (cargo-inputs 'gfaffix
+                          #:module '(gn packages rust-crates)))
+    (home-page "https://github.com/marschall-lab/GFAffix")
+    (synopsis "Identify walk-preserving shared affixes in variation graphs")
+    (description
+     "GFAffix identifies walk-preserving shared affixes in variation graphs and
+collapses them into a non-redundant graph structure.")
+    (license license:expat)))
+
+(define-public graphaligner
+  (package
+    (name "graphaligner")
+    (version "1.0.20")
+    (source (origin
+      (method url-fetch)
+      (uri "https://github.com/user-attachments/files/17976913/GraphAligner.tar.gz")
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "1gs6jds4lazljb1s7s8f1vp0l4j8jvqy6qhb9sck7x66z8157ndm"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+       #:tests? #f ; no tests
+       #:make-flags
+       #~(list (string-append "VERSION=" #$version))
+       #:phases
+       #~(modify-phases %standard-phases
+           (delete 'configure) ; no configure phase
+           (add-after 'unpack 'patch-source
+             (lambda* (#:key inputs #:allow-other-keys)
+               (delete-file-recursively "concurrentqueue")
+               (substitute* "makefile"
+                 (("-Iconcurrentqueue")
+                  (string-append "-I" (search-input-directory inputs "/include/concurrentqueue")))
+                 (("^JEMALLOCFLAGS.*")
+                  "JEMALLOCFLAGS= `pkg-config --libs jemalloc`\n")
+                 (("`pkg-config --cflags zlib`/bamtools")
+                  (string-append "-I " (search-input-directory inputs "include/bamtools")))
+                 ;; No need to build statically.
+                 (("-Wl,-Bstatic") "")
+                 (("-static-libstdc\\+\\+") ""))))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (for-each
+                   (lambda (program)
+                     (install-file program (string-append out "/bin")))
+                   (find-files "bin"))
+                 (for-each
+                   (lambda (header)
+                     (install-file header (string-append out "/include")))
+                   (find-files "src" "\\.h(pp)?$"))))))))
+    (native-inputs
+     (list (list jemalloc "bin")
+           pkg-config
+           sparsehash))
+    (inputs
+     (list bamtools
+           boost
+           concurrentqueue
+           jemalloc
+           libdivsufsort
+           mummer
+           protobuf
+           sdsl-lite
+           zlib))
+    (home-page "https://github.com/maickrau/GraphAligner")
+    (synopsis "Seed-and-extend program for aligning  genome graphs")
+    (description "Seed-and-extend program for aligning long error-prone reads to
+genome graphs.  For a description of the bitvector alignment extension
+algorithm, see
+@url{https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/btz162/5372677
+here}.")
+    (license license:expat)))
+
+(define-public mummer
+  (package
+    (name "mummer")
+    (version "4.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/mummer4/mummer/releases/"
+                            "download/v" version "/mummer-" version ".tar.gz"))
+        (sha256
+         (base32 "0gix9qay0bcv515q9xag9arhq3wal77vf5g5whiy7cm004ksw85w"))))
+    (build-system gnu-build-system)
+    (inputs
+     (list gnuplot
+           perl))
+    (home-page "http://mummer.sourceforge.net/")
+    (synopsis "Efficient sequence alignment of full genomes")
+    (description "MUMmer is a versatil alignment tool for DNA and protein sequences.")
+    (license license:artistic2.0)))
+
diff --git a/gn/packages/edash.scm b/gn/packages/edash.scm
index e46ebae..8781bfc 100644
--- a/gn/packages/edash.scm
+++ b/gn/packages/edash.scm
@@ -346,3 +346,27 @@ necessary.")
     (synopsis "EMTech's edash service")
     (description "EMTech's edash service package.")
     (license license:agpl3+))))
+
+(define-public python-flask-cors
+  (package
+    (name "python-flask-cors")
+    (version "3.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Flask-Cors" version))
+       (sha256
+        (base32
+         "1v6gq4vjgyxi8q8lxawpdfhq01adb4bznnabp08ks5nzbwibz43y"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-flask" ,python-flask)
+       ("python-six" ,python-six)
+       ("python-nose" ,python-nose)))
+    (home-page
+     "https://github.com/corydolphin/flask-cors")
+    (synopsis
+     "A Flask extension adding a decorator for CORS support")
+    (description
+     "A Flask extension adding a decorator for CORS support")
+    (license license:expat)))
diff --git a/gn/packages/globus.scm b/gn/packages/globus.scm
index edf25e8..a8c9212 100644
--- a/gn/packages/globus.scm
+++ b/gn/packages/globus.scm
@@ -55,3 +55,22 @@ options and arguments match your type annotations.")
     (description "@code{globus-cli} provides a command-line interface to
 Globus APIs.")
     (license license:asl2.0)))
+
+(define-public python-globus-sdk
+  (package
+    (name "python-globus-sdk")
+    (version "3.37.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "globus-sdk" version))
+              (sha256
+               (base32
+                "19w3pjzfycaqvvr11nq8c91i6pkkkic95yf170hr39dwj70lrkc7"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-cryptography python-pyjwt python-requests
+                             python-typing-extensions))
+    (home-page "https://github.com/globus/globus-sdk-python")
+    (synopsis "Globus SDK for Python")
+    (description "@code{python-globus-sdk} provides a convenient Pythonic interface to
+Globus APIs.")
+    (license license:asl2.0)))
diff --git a/gn/packages/gnulib.scm b/gn/packages/gnulib.scm
index 254b30a..12379ea 100644
--- a/gn/packages/gnulib.scm
+++ b/gn/packages/gnulib.scm
@@ -4,3 +4,39 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages texinfo))
+(define-public gnulib
+  (let ((commit "de255f87357354e0f2422d9321fe9701b776ead5")
+        (revision "2877")) ; as reported from gnulib
+    (package
+      (name "gnulib")
+      (version (git-version "0.1" revision commit)) ; Sept. 30, 2019
+      (source (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://git.savannah.gnu.org/git/gnulib.git")
+                     (commit commit)))
+               (file-name (git-file-name name version))
+               (sha256
+                (base32
+                 "00zjjldhj8ckr47fkqmb4d0lkpn6awwi8k8pngkfn2g30ccz7hji"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; the test suite doesn't help us
+         #:make-flags '("info")
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (install-file "doc/gnulib.info"
+                             (string-append (assoc-ref outputs "out")
+                                            "/share/info")))))))
+      (native-inputs
+       `(("texinfo" ,texinfo)))
+      (home-page "https://www.gnu.org/software/gnulib/")
+      (synopsis "Common GNU code")
+      (description
+       "Gnulib is a central location for common GNU code, intended to be shared
+among GNU packages.")
+      (license (list license:gpl2+
+                     license:lgpl2.0+)))))
diff --git a/gn/packages/java.scm b/gn/packages/java.scm
deleted file mode 100644
index 38e3473..0000000
--- a/gn/packages/java.scm
+++ /dev/null
@@ -1,382 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;;
-;;; 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 (gn packages java)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix gexp)
-  #:use-module (guix utils)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix svn-download)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix build-system ant)
-  #:use-module (gnu packages)
-  #:use-module (gnu packages autotools)
-  #:use-module (gnu packages bash)
-  #:use-module (gnu packages bioinformatics)
-  #:use-module ((gnu packages nss) #:select (nss-certs))
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages cups)
-  #:use-module (gnu packages gcc)
-  #:use-module (gnu packages java)
-  #:use-module (gnu packages java-compression)
-  #:use-module (gnu packages perl)
-  #:use-module (srfi srfi-1))
-
-;; This is an attempt to make a smaller version of openjdk
-(define openjdk11-minimal
-  (package/inherit openjdk11
-    (inputs
-      (modify-inputs (package-inputs openjdk11)
-                     (replace "cups" cups-minimal)))))
-
-;; ----------------------------------------------------------------------------
-;; WORKING PACKAGES
-;; ----------------------------------------------------------------------------
-
-(define-public xz-java
-  (package
-   (name "xz-java")
-   (version "1.5")
-   (source (origin
-     (method url-fetch)
-     (uri (string-append "http://tukaani.org/xz/"
-                         name "-" version ".zip"))
-     (sha256
-      (base32 "0x6vn9dp9kxk83x2fp3394n95dk8fx9yg8jns9371iqsn0vy8ih1"))))
-   (build-system ant-build-system)
-   (arguments
-    `(#:tests? #f ; There's no test target.
-      #:jdk ,icedtea-7
-      #:phases
-      (modify-phases %standard-phases
-        (replace 'unpack
-          (lambda _
-            (mkdir-p "source")
-            (chdir "source")
-            (zero? (system* "unzip" (assoc-ref %build-inputs "source")))))
-        (replace 'install
-          (lambda _
-            (let ((out (string-append (assoc-ref %outputs "out")
-                                      "/share/java/xz/")))
-              (mkdir-p out)
-              (copy-file "build/jar/xz.jar" (string-append out "/xz-1.5.jar"))))))))
-   (native-inputs
-    `(("unzip" ,unzip)))
-   (home-page "http://tukaani.org/xz/java.html")
-   (synopsis "Implementation of XZ data compression in pure Java")
-   (description "This aims to be a complete implementation of XZ data
-compression in pure Java.  Single-threaded streamed compression and
-decompression and random access decompression have been fully implemented.")
-   (license license:public-domain)))
-
-(define-public jakarta-oro
-  (package
-    (name "jakarta-oro")
-    (version "2.0.8")
-    (source (origin
-      (method url-fetch)
-      (uri (string-append "http://archive.apache.org/dist/jakarta/oro/"
-                          name "-" version ".tar.gz"))
-      (sha256
-       (base32 "0rpmnsskiwmsy8r0sckz5n5dbvh3vkxx8hpm177c754r8xy3qksc"))))
-    (build-system ant-build-system)
-    (arguments
-     `(#:tests? #f ; There is no 'check' target
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'install
-           (lambda _
-             (let ((out (string-append (assoc-ref %outputs "out")
-                                       "/share/java/oro/")))
-               (mkdir-p out)
-               (copy-file "jakarta-oro-2.0.8.jar" (string-append out "/oro-2.0.8.jar"))))))
-                ))
-    (home-page "http://jakarta.apache.org/oro/")
-    (synopsis "Set of text-processing Java classes")
-    (description "The Jakarta-ORO Java classes are a set of text-processing
-Java classes that provide Perl5 compatible regular expressions, AWK-like regular
-expressions, glob expressions, and utility classes for performing substitutions,
-splits, filtering filenames, etc.")
-    (license license:asl1.1)))
-
-;; ----------------------------------------------------------------------------
-;; IN PROGRESS
-;; ----------------------------------------------------------------------------
-
-(define-public jsch
-  (package
-    (name "jsch")
-    (version "0.1.53")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge.net/jsch/" name "/"
-                                  version "/" name "-" version ".zip"))
-              (sha256
-               (base32 "1729j7khwj6yvkr26fjaf273i3krhz2n1m3mbv5ms4x00qrhrxdn"))))
-    (build-system ant-build-system)
-    (home-page "http://www.jcraft.com/jsch/")
-    (synopsis "JSch is a pure Java implementation of SSH2")
-    (description "JSch is a pure Java implementation of SSH2.  JSch allows you
-to connect to an sshd server and use port forwarding, X11 forwarding, file
-transfer, etc., and you can integrate its functionality into your own Java
-programs.")
-    (license license:bsd-3)))
-
-(define-public commons-vfs
-  (package
-    (name "commons-vfs")
-    (version "2.0")
-    (source (origin
-      (method url-fetch)
-      (uri (string-append
-            "http://mirrors.supportex.net/apache/commons/vfs/source/"
-            name "-" version "-src.tar.gz"))
-      (sha256
-       (base32 "1gkfg9g14kjkh2kf041ssdz9xnw7hpfmdsyrs1bbhyzikwg4s3d9"))))
-    (build-system ant-build-system)
-    (home-page "https://commons.apache.org/proper/commons-vfs/")
-    (synopsis "Commons Virtual File System API for Java")
-    (description "Commons VFS provides a single API for accessing various
-different file systems.  It presents a uniform view of the files from various
-different sources, such as the files on local disk, on an HTTP server, or
-inside a Zip archive. ")
-    (license license:asl2.0)))
-
-(define-public ivy
-;; Ivy tries to download the following packages:
-;; - https://repo1.maven.org/maven2/org/apache/ant/ant/1.7.1/ant-1.7.1.jar               => We have ant-1.9.6
-;; - https://repo1.maven.org/maven2/org/apache/ant/ant-nodeps/1.7.1/ant-nodeps-1.7.1.jar => Probably not needed
-;; - https://repo1.maven.org/maven2/org/apache/ant/ant-trax/1.7.1/ant-trax-1.7.1.jar     => Classes moved to ant.jar
-;; - https://repo1.maven.org/maven2/commons-httpclient/commons-httpclient/3.0/commons-httpclient-3.0.jar
-;; - https://repo1.maven.org/maven2/oro/oro/2.0.8/oro-2.0.8.jar                          => Packaged
-;; - https://repo1.maven.org/maven2/commons-vfs/commons-vfs/1.0/commons-vfs-1.0.jar
-;; - https://repo1.maven.org/maven2/com/jcraft/jsch/0.1.50/jsch-0.1.50.jar
-;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy/0.0.6/jsch.agentproxy-0.0.6.jar
-;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy.connector-factory/0.0.6/jsch.agentproxy.connector-factory-0.0.6.jar
-;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy.jsch/0.0.6/jsch.agentproxy.jsch-0.0.6.jar
-;; - https://repo1.maven.org/maven2/org/bouncycastle/bcpg-jdk14/1.45/bcpg-jdk14-1.45.jar
-;; - https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk14/1.45/bcprov-jdk14-1.45.jar
-;; - https://repo1.maven.org/maven2/junit/junit/3.8.2/junit-3.8.2.jar
-;; - https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
-;; - https://repo1.maven.org/maven2/org/apache/ant/ant-testutil/1.7.0/ant-testutil-1.7.0.jar
-;; - https://repo1.maven.org/maven2/ant/ant-launcher/1.6.2/ant-launcher-1.6.2.jar
-;; - https://repo1.maven.org/maven2/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar
-;; - https://repo1.maven.org/maven2/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar
-;; - https://repo1.maven.org/maven2/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar
-  (package
-    (name "ivy")
-    (version "2.4.0")
-    (source (origin
-      (method url-fetch)
-      (uri (string-append "http://ftp.nluug.nl/internet/apache/ant/" name "/"
-                          version "/apache-" name "-" version "-src.tar.gz"))
-      (sha256
-       (base32 "1xkfn57g2m7l6y0xdq75x5rnrgk52m9jx2xah70g3ggl8750hbr0"))))
-    (build-system ant-build-system)
-    (inputs
-     `(("nss-certs" ,nss-certs)))
-    (home-page "http://ant.apache.org/ivy/")
-    (synopsis "Dependency manager for Ant")
-    (description "Apache Ivy is a popular dependency manager focusing on
-flexibility and simplicity.")
-    (license license:asl2.0)))
-
-
-;; ----------------------------------------------------------------------------
-;; ON HOLD: WAITING FOR MAVEN PACKAGES
-;; ----------------------------------------------------------------------------
-
-;; TODO: Needs commons-compress
-;; (define-public ant-compress
-;;   (package
-;;     (name "ant-compress")
-;;     (version "1.4")
-;;     (source (origin
-;;               (method url-fetch)
-;;               (uri "https://www.apache.org/dist/ant/antlibs/compress/source/apache-ant-compress-1.4-src.tar.gz"))
-;;             (sha256
-;;              (base32 "17v5i11srmi12ckgrvhlwn0gvapgizs5672x252h143r0ya4c04d")))
-;;       ))
-
-;; TODO: Needs Maven.
-;; (define-public commons-compress
-;;   (package
-;;     (name "apache-commons-compress")
-;;     (version "1.10")
-;;     (source (origin
-;;               (method url-fetch)
-;;               (uri ("http://ftp.tudelft.nl/apache//commons/compress/source/commons-compress-1.10-src.tar.gz")))
-;;             (sha256
-;;              (base32 "06b40k9dmgqkga3qmfpgzq87jf3fkcxnwaiyczclh58yibg19604")))
-;;     ))
-
-;; TODO: Needs Maven.
-;; (define-public jcommander
-;;   (package
-;;     (name "jcommander")
-;;     (version "1.48")
-;;     (source (origin
-;;       (method url-fetch)
-;;       (uri (string-append "https://github.com/cbeust/jcommander/archive/"
-;;                           name "-" version ".tar.gz"))
-;;       (sha256
-;;        (base32 "1qn56hd6sxkfdv9j6pwf8c7ia00n39zry236a6achc87wq2kmfnw"))))
-;;     (build-system ant-build-system)
-;;     (home-page "http://jcommander.org/")
-;;     (synopsis "Java framework for parsing command line parameters")
-;;     (description "JCommander is a very small Java framework that makes it
-;; trivial to parse command line parameters. ")
-;;     (license license:asl2.0)))
-
-;; TODO: Needs Maven.
-;; (define-public maven-remote-resources-plugin
-;;   (package
-;;     (name "maven-remote-resources-plugin")
-;;     (version "1.5")
-;;     (source (origin
-;;       (method svn-fetch)
-;;       (uri (svn-reference
-;;             (url (string-append "http://svn.apache.org/viewvc/maven/plugins/tags/"
-;;                                 name "-" version))
-;;             (revision 1513840)))
-;;       (file-name (string-append name "-" version "-checkout"))
-;;       (sha256
-;;        (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i"))))
-;;     (build-system ant-build-system)
-;;     (home-page "https://maven.apache.org/plugins/maven-remote-resources-plugin/")
-;;     (synopsis "")
-;;     (description "")
-;;     (license license:asl2.0)))
-
-;; TODO: Needs Maven.
-;; (define-public junit
-;;   (package
-;;     (name "junit")
-;;     (version "4.12")
-;;     (source (origin
-;;       (method url-fetch)
-;;       (uri (string-append "https://github.com/junit-team/"
-;;                           name "/archive/r" version ".tar.gz"))
-;;       (sha256
-;;        (base32 "1r6ww2y3jpbpqh03r0966xxiz2vs8n72g6n6l0sjs3aspy56v8b1"))))
-;;     (build-system ant-build-system)
-;;     (home-page "http://junit.org/")
-;;     (synopsis "Framework to write repeatable tests")
-;;     (description "JUnit is a simple framework to write repeatable tests.  It is
-;; an instance of the xUnit architecture for unit testing frameworks.")
-;;     (license license:asl2.0)))
-
-;; TODO: Remove bundled jars from buildLib, lib, testLib and javascript
-(define-public rtg-tools
-  (package
-    (name "rtg-tools")
-    (version "3.11")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/RealTimeGenomics/rtg-tools")
-                     (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32 "13fjhhcjgnynxscaymkn3rpdciplbg2m2qmihc7fxsylgn4m6gxk"))))
-    (build-system ant-build-system)
-    (arguments
-     `(#:jdk ,openjdk11-minimal
-       #:build-target "zip-nojre"
-       #:test-target "runalltests"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-source
-           (lambda _
-             (substitute* "build.xml"
-               (("\"git\"") "\"echo\"")
-               (("\\$\\{vcs\\.cmd\\.out\\}") "${product.version}")
-               (("\\$\\{build\\.time\\}") "1970-01-01")
-               (("-\\$\\{rtg\\.vcs\\.commit\\.revision\\}") ""))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (pkg (string-append ,name "-" ,version)))
-               (install-file (string-append "dist/" pkg "-nojre.zip")
-                             out)
-               (with-directory-excursion out
-                 (invoke "unzip" (string-append pkg "-nojre.zip"))
-                 (copy-recursively (string-append pkg "/") ".")
-                 (delete-file-recursively pkg)
-                 (delete-file (string-append pkg "-nojre.zip"))))))
-         (add-after 'install 'create-rtg.cfg
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (with-output-to-file (string-append out "/rtg.cfg")
-                 (lambda _
-                   (format #t "RTG_JAVA=\"~a\"~@
-                           RTG_TALKBACK=false~@
-                           RTG_USAGE=false~%"
-                           (search-input-file inputs "/bin/java")))))))
-         (add-after 'install 'create-wrapper-script
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (wrapper (string-append out "/bin/rtg")))
-               ;; We want an executable in the bin directory without rewriting
-               ;; the existing wrapper script.
-               (mkdir-p (dirname wrapper))
-               (with-output-to-file wrapper
-                 (lambda _
-                   (format #t "#!~a~@
-                           exec -a \"$0\" \"~a/rtg\" \"$@\"~%"
-                           (search-input-file inputs "/bin/bash")
-                           out)))
-               (chmod wrapper #o555))))
-         (add-after 'install 'install-completions
-           (lambda* (#:key outputs #:allow-other-keys)
-             (install-file "installer/resources/common/scripts/rtg-bash-completion"
-                           (string-append (assoc-ref outputs "out")
-                                          "/share/bash-completion/completions"))))
-         (delete 'generate-jar-indices))))  ; manually installed
-    (inputs
-     (list bash-minimal     ; for the wrapper script
-           java-commons-collections
-           java-commons-compress
-           java-commons-lang
-           ;java-gzipfix
-           ;java-sam-rtg
-           ;java-json-simple
-           ;java-rplot
-           java-snappy
-           ;java-velocity
-           ;java-velocity-tools-generic
-           ))
-    (native-inputs
-     (list ;java-findbugs-annotations
-           ;java-findbugs-jsr305
-           ;java-jumble-annotations
-           ;; for tests
-           java-hamcrest-core
-           java-junit
-           ;java-spelling
-           ;; For the 'install phase.
-           unzip))
-    (home-page "https://github.com/RealTimeGenomics/rtg-tools/")
-    (synopsis "Utilities for accurate VCF comparison and manipulation")
-    (description "RTG Tools is a subset of RTG Core that includes several useful
-utilities for dealing with VCF files and sequence data.  Probably the most
-interesting is the @code{vcfeval} command which performs sophisticated
-comparison of VCF files.")
-    (license license:bsd-2)))
diff --git a/gn/packages/javascript.scm b/gn/packages/javascript.scm
index d289bd2..2bb511e 100644
--- a/gn/packages/javascript.scm
+++ b/gn/packages/javascript.scm
@@ -2484,3 +2484,50 @@ for developing fast and powerful web interfaces.")
                      (copy-file source
                                 (string-append targetdir "/default.min.css"))))))
     (native-inputs `(("source" ,source)))))
+
+(define-public javascript-ckeditor	; version 4
+  (package
+    (name "javascript-ckeditor")
+    (version "4.13.0")			; Sept. 26, 2019
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://download.cksource.com/CKEditor/CKEditor/CKEditor%20" version
+			   "/ckeditor_4.13.0_standard.zip"))
+       (sha256
+	(base32
+	 "1n2xynmbr2v4wm2g2vqcqd16n93phsbq4sqrnljzb7wzjq9svl36"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+	 (use-modules (guix build utils))
+	 (let* ((out (assoc-ref %outputs "out"))
+		(name "ckeditor")
+		(unzip (string-append (assoc-ref %build-inputs "unzip")
+				      "/bin/unzip"))
+		(targetdir
+		 (string-append (string-append out "/share/genenetwork2/javascript/" name)))
+		(source (assoc-ref %build-inputs "source")))
+	   (mkdir-p targetdir)
+	   (invoke unzip source)
+	   (copy-recursively "ckeditor" targetdir)))))
+    (native-inputs
+     `(("source" ,source)
+       ("unzip" ,unzip)))
+    (home-page "https://ckeditor.com/")
+    (synopsis "Smart WYSIWYG HTML editor")
+    (description
+     "CKEditor is a proven, enterprise-grade WYSIWYG HTML editor with wide
+browser compatibility, including legacy browsers.
+@enumerate
+@item Paste from Word and Excel, spell check, accessibility checker, tables.
+@item Autocomplete, mentions, widgets, code snippets, emoji plugins.
+@item Full control over content: HTML filtering, view source mode.
+@item Great accessibility: WCAG 2.0 AA and Section 508 compliant.
+@item Long-term support (LTS) until 2023.
+@end enumerate")
+    (license (list license:gpl2+
+		   license:lgpl2.1+
+		   license:mpl1.1))))
diff --git a/gn/packages/julia.scm b/gn/packages/julia.scm
index 4fdb403..5993a8d 100644
--- a/gn/packages/julia.scm
+++ b/gn/packages/julia.scm
@@ -2529,3 +2529,77 @@ for long-running computations.")
  written in Julia for Bayesian multiple regression methods applied to
 genomic prediction and genome-wide association studies.")
     (license license:gpl2)))
+
+(define-public julia-staticarrayscore
+  (package
+    (name "julia-staticarrayscore")
+    (version "1.4.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/StaticArraysCore.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0m573mxvf0y9h7y8rxrk35haphhqisplx159r77g30qvw7zwpgar"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaArrays/StaticArraysCore.jl")
+    (synopsis "Interface package for StaticArrays.jl")
+    (description
+     "This package provides an interface package for @code{StaticArrays.jl}.")
+    (license license:expat)))
+
+(define-public julia-precompiletools
+  (package
+    (name "julia-precompiletools")
+    (version "1.1.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaLang/PrecompileTools.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "124qzflwnn34d8x8vz3cmj2m4a55mg5qf8i8jdcwyyrnag3si7zr"))))
+    (build-system julia-build-system)
+    (arguments
+     (list #:tests? #f))        ; Tries to download the Julia registry.
+    (propagated-inputs
+     (list julia-preferences))
+    (home-page "https://github.com/JuliaLang/PrecompileTools.jl")
+    (synopsis "Reduce time-to-first-execution of Julia code")
+    (description "PrecompileTools allows you to reduce the latency of the first
+execution of Julia code.  It is applicable for package developers and for
+\"ordinary users\" in their personal workflows.")
+    (license license:expat)))
+
+(define-public julia-timeroutputs
+  (package
+    (name "julia-timeroutputs")
+    (version "0.5.23")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/KristofferC/TimerOutputs.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "031m7d837cw4c7iz4arrm1a1ppqihhj5jsldvm7z1bc72jxgfrcv"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     (list julia-exprtools))
+    (home-page "https://github.com/KristofferC/TimerOutputs.jl")
+    (synopsis "Formatted output of timed sections in Julia")
+    (description "TimerOutputs is a small Julia package that is used to generate
+formatted output from timings made in different sections of a program.  It's
+main functionality is the @code{@@timeit} macro, similar to the @code{@@time}
+macro in Base except one also assigns a label to the code section being timed.
+Multiple calls to code sections with the same label (and in the same \"scope\")
+will accumulate the data for that label.  After the program has executed, it is
+possible to print a nicely formatted table presenting how much time,
+allocations and number of calls were made in each section.  The output can be
+customized as to only show the things you are interested in.")
+    (license license:expat)))
diff --git a/gn/packages/jupyterhub.scm b/gn/packages/jupyterhub.scm
deleted file mode 100644
index 5763641..0000000
--- a/gn/packages/jupyterhub.scm
+++ /dev/null
@@ -1,261 +0,0 @@
-(define-module (gn packages jupyterhub)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix build-system python)
-  #:use-module (gnu packages check)
-  #:use-module (gnu packages databases)
-  #:use-module (gnu packages docker)
-  #:use-module (gnu packages jupyter)
-  #:use-module (gnu packages libffi)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages monitoring)
-  #:use-module (gnu packages openstack)
-  #:use-module (gnu packages protobuf)
-  #:use-module (gnu packages python-build)
-  #:use-module (gnu packages python-crypto)
-  #:use-module (gnu packages python-web)
-  #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages jupyter)
-  #:use-module (gnu packages rpc)
-  #:use-module (gnu packages serialization)
-  #:use-module (gnu packages time)
-  #:use-module (gn packages node))
-
-(define-public jupyterhub
-  (package
-    (name "jupyterhub")
-    (version "1.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "jupyterhub" version))
-        (sha256
-         (base32
-          "0zx6gw9yhgki05j21p6x1x2sf5a2mg2c2mx0ii8rl6q4b98ilm1k"))
-        (patches
-          (list
-            (origin
-              (method url-fetch)
-              (uri "https://github.com/jupyterhub/jupyterhub/commit/b624116be79168f37af728195af663498f3c55c0.patch")
-              (file-name "jupyterhub-fix-first-launch-errors.patch")
-              (sha256
-               (base32
-                "00rbqz0rz2642ypfgpd49fv7wzpc9n0pdfqixqp3zxs6vqf3x372")))))))
-    (build-system python-build-system)
-    (arguments
-     '(#:tests? #f ; Tests require a webserver, postgresql database and npm.
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? inputs #:allow-other-keys)
-             (if tests?
-               ((let* ((postgres (assoc-ref inputs "postgresql"))
-                       (initdb   (string-append postgres "/bin/initdb"))
-                       (pg_ctl   (string-append postgres "/bin/pg_ctl"))
-                       (psql     (string-append postgres "/bin/psql"))
-                       )
-                  ;; From .travis.yml
-                  (invoke initdb "main")
-                  (invoke pg_ctl "-D" "main" "start")
-                  (invoke psql "--list")
-                  ;; From ci/init-db.sh
-                  (invoke psql "-d" "postgres" "-c"
-                          "CREATE DATABASE jupyterhub_upgrade_072;")
-                  (invoke psql "-d" "postgres" "-c"
-                          "CREATE DATABASE jupyterhub_upgrade_081;")
-                  (invoke psql "-d" "postgres" "-c"
-                          "CREATE DATABASE jupyterhub_upgrade_094;")
-                  (invoke "pytest" "-v" "--maxfail=2" "jupyterhub/tests"))
-                )
-               #t))))))
-    (propagated-inputs
-     `(;("node-configurable-http-proxy" ,node-configurable-http-proxy)
-       ("python-alembic" ,python-alembic)
-       ("python-async-generator" ,python-async-generator)
-       ("python-certipy" ,python-certipy)
-       ("python-dateutil" ,python-dateutil)
-       ("python-entrypoints" ,python-entrypoints)
-       ("python-jinja2" ,python-jinja2)
-       ("python-oauthlib" ,python-oauthlib)
-       ("python-pamela" ,python-pamela)
-       ("python-prometheus-client" ,python-prometheus-client)
-       ("python-requests" ,python-requests)
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-tornado" ,python-tornado)
-       ("python-traitlets" ,python-traitlets)
-       ;; Recommended but not required:
-       ("python-pycurl" ,python-pycurl)))
-    (native-inputs
-     `(
-       ("postgresql" ,postgresql)
-       ("python-psycopg2" ,python-psycopg2)
-
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-notebook" ,python-notebook)
-       ("python-pytest" ,python-pytest)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-requests-mock" ,python-requests-mock)))
-    (home-page "https://jupyter.org")
-    (synopsis "Multi-user server for Jupyter notebooks")
-    (description
-     "JupyterHub is the best way to serve Jupyter notebook for multiple users.
-It can be used in a classes of students, a corporate data science group or
-scientific research group. It is a multi-user Hub that spawns, manages, and
-proxies multiple instances of the single-user Jupyter notebook server.")
-    (license license:bsd-3)))
-
-(define-public the-littlest-jupyterhub
-  (let ((commit "29e8bcc4865d26ef67910862a567f55f46f96593") ; Dec 6, 2019
-        (revision "2"))
-    (package
-      (name "the-littlest-jupyterhub")
-      (version (git-version "0.0.0" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/jupyterhub/the-littlest-jupyterhub.git")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "10xrmia8w9vd9zmgww426kyd95jx81l5c4zpq84gqbvkibq61rsa"))))
-      (build-system python-build-system)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'loosen-input-requirements
-             (lambda _
-               (substitute* "setup.py"
-                 (("==.*'") "'"))
-               #t))
-           (add-after 'unpack 'patch-some-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((python (assoc-ref inputs "python")))
-                 ;; Delete some tests that we're not going to run.
-                 (delete-file "tests/test_conda.py")
-                 (delete-file "tests/test_user.py")
-                 (delete-file "tests/test_utils.py")
-                 ;; No need to make node available for the test suite.
-                 (substitute* "tests/test_installer.py"
-                   (("installer.ensure_node.*") "")
-                   (("/usr/bin/node") (string-append python "/bin/python")))
-                 ;; Don't download traefik.
-                 (substitute* "tests/test_traefik.py"
-                   (("traefik.ensure_traefik_binary")
-                    "#traefik.ensure_traefik_binary")
-                   (("assert traefik") "#assert traefik")
-                   (("assert \\(traefik") "#assert (traefik"))
-                 #t)))
-           (replace 'check
-             (lambda _
-               (invoke "python3" "-m" "pytest" "-v" "tests/"))))))
-      (propagated-inputs
-       `(("python-ruamel.yaml" ,python-ruamel.yaml)
-         ("python-jinja2" ,python-jinja2)
-         ("python-pluggy" ,python-pluggy)
-         ("python-passlib" ,python-passlib)
-         ("python-backoff" ,python-backoff)
-         ("python-requests" ,python-requests)
-         ("python-jupyterhub-traefik-proxy" ,python-jupyterhub-traefic-proxy)))
-      (native-inputs
-       `(("python-pytest" ,python-pytest)
-         ("python-pytoml" ,python-pytoml)))
-      (home-page "https://the-littlest-jupyterhub.readthedocs.io/en/latest/")
-      (synopsis "JupyterHub server for a single server")
-      (description
-       "The Littlest JupyterHub (TLJH) distribution helps you provide Jupyter
-Notebooks to 1-50 users on a single server.  Administrators who do not consider
-themselves 'system administrators' but would like to provide hosted Jupyter
-Notebooks for their students / users are the primary audience.  All users are
-provided with the same environment, and administrators can easily install
-libraries into this environment without any specialized knowledge.")
-      (license license:bsd-3))))
-
-(define-public python-backoff
-  (package
-    (name "python-backoff")
-    (version "1.8.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "backoff" version))
-        (sha256
-         (base32
-          "0g2s4p34ml8dnldbj5qkg7ni5bwsq492nhry2inc2pn66qyx47iz"))))
-    (build-system python-build-system)
-    (home-page "https://github.com/litl/backoff")
-    (synopsis "Function decoration for backoff and retry")
-    (description
-     "Function decoration for backoff and retry")
-    (license license:expat)))
-
-(define-public python-jupyterhub-traefic-proxy
-  (package
-    (name "python-jupyterhub-traefic-proxy")
-    (version "0.1.4")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jupyterhub/traefik-proxy.git")
-               (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "021lqll3b84qmyw417wj15wpvs8ckvabx8ygm4fjy9bdllaxmmag"))))
-    (build-system python-build-system)
-    (propagated-inputs
-     `(("jupyterhub" ,jupyterhub)
-       ("python-etcd3" ,python-etcd3)
-       ("python-aiohttp" ,python-aiohttp)
-       ("python-passlib" ,python-passlib)
-       ("python-py-consul" ,python-py-consul)
-       ("python-toml" ,python-toml)
-       ("python-escapism" ,python-escapism)))
-    (native-inputs
-     `(("python-jupyter-client" ,python-jupyter-client)
-       ("python-notebook" ,python-notebook)
-       ("python-numpy" ,python-numpy)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-websockets" ,python-websockets)))
-    (home-page "https://jupyterhub-traefik-proxy.readthedocs.io/")
-    (synopsis "JupyterHub proxy implementation with traefik")
-    (description "An implementation of the JupyterHub proxy api with traefik: an
-extremely lightweight, portable reverse proxy implementation, that supports load
-balancing and can configure itself automatically and dynamically.")
-    (license license:bsd-3)))
-
-(define-public python-jupyter-repo2docker
-  (package
-    (name "python-jupyter-repo2docker")
-    (version "0.10.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "jupyter-repo2docker" version))
-        (sha256
-         (base32
-          "0nn0vcm3pmsrb0hhjwkqy80kgyab7mgny0f8ch7fcsxy2cljcrbr"))))
-    (build-system python-build-system)
-    (propagated-inputs
-     `(("python-docker" ,python-docker)
-       ("python-escapism" ,python-escapism)
-       ("python-jinja2" ,python-jinja2)
-       ("python-json-logger" ,python-json-logger)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-semver" ,python-semver)
-       ("python-toml" ,python-toml)
-       ("python-traitlets" ,python-traitlets)))
-    (native-inputs
-     `(("python-requests" ,python-requests)
-       ("python-websocket-client" ,python-websocket-client)))
-    (home-page "https://repo2docker.readthedocs.io/en/latest/")
-    (synopsis "Turn git repositories into Jupyter enabled Docker Images")
-    (description
-     "@code{repo2docker} fetches a git repository and builds a container image
-based on the configuration files found in the repository.")
-    (license license:bsd-3)))
diff --git a/gn/packages/kubernetes.scm b/gn/packages/kubernetes.scm
deleted file mode 100644
index 4619f5e..0000000
--- a/gn/packages/kubernetes.scm
+++ /dev/null
@@ -1,313 +0,0 @@
-(define-module (gn packages kubernetes)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix git-download)
-  #:use-module (guix download)
-  #:use-module (guix utils)
-  #:use-module (guix build-system go)
-  #:use-module (guix build-system trivial)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages rsync))
-
-(define-public kubernetes
-  (package
-    (name "kubernetes")
-    (version "1.16.4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/kubernetes/kubernetes.git")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0snk4jr5is8rwx0px2kwx802dg770mrgp11irnwy2z50p327jrcs"))))
-    (build-system go-build-system)
-    (arguments
-     `(#:import-path "k8s.io/kubernetes"
-       #:install-source? #f
-       #:tests? #f ; Skip tests for now.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-files-writable
-           (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
-         (add-before 'build 'prepare-build
-           (lambda* (#:key inputs #:allow-other-keys)
-             (with-directory-excursion "src/k8s.io/kubernetes"
-               (substitute* '("build/root/Makefile"
-                              "build/root/Makefile.generated_files"
-                              "build/pause/Makefile")
-                 (("/bin/bash") (which "bash")))
-               (substitute* "pkg/util/mount/mount.go"
-                 (("defaultMountCommand.*")
-                  (string-append "defaultMountCommand = \""
-                                 (assoc-ref inputs "util-linux")
-                                 "/bin/mount\"\n"))))
-             #t))
-         (add-before 'build 'fix-version-numbers
-           (lambda _
-             (with-directory-excursion "src/k8s.io/kubernetes"
-               (substitute* '("cmd/kubeadm/app/version/base.go"
-                              "staging/src/k8s.io/client-go/pkg/version/base.go"
-                              "staging/src/k8s.io/kubectl/pkg/version/base.go"
-                              "staging/src/k8s.io/component-base/version/base.go"
-                              "staging/src/k8s.io/component-base/metrics/version_parser_test.go"
-                              "pkg/version/base.go"
-                              "vendor/k8s.io/client-go/pkg/version/base.go"
-                              "vendor/k8s.io/kubectl/pkg/version/base.go"
-                              "vendor/k8s.io/component-base/metrics/version_parser_test.go")
-                 (("v0.0.0-master\\+\\$Format:\\%h\\$") (string-append "v" ,version))
-                 (("v0.0.0-master") (string-append "v" ,version))
-                 (("gitMajor string = \"\"")
-                  (string-append "gitMajor string = \"" ,(version-major version) "\""))
-                 (("gitMinor string = \"\"")
-                  (string-append "gitMinor string = \""
-                                 ,(string-drop (version-major+minor version) 2) "\""))))
-             #t))
-         (replace 'build
-           (lambda _
-             (with-directory-excursion "src/k8s.io/kubernetes"
-               ;; Cannot find go-bindata otherwise.
-               (setenv "PATH" (string-append (getcwd) "/_output/bin:"
-                                             (getenv "PATH")))
-               (invoke "make"))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (with-directory-excursion "src/k8s.io/kubernetes"
-                 ;; This saves more than 350MiB.
-                 (delete-file "_output/local/go/bin/e2e.test")
-                 (delete-file "_output/local/go/bin/e2e_node.test")
-                 (for-each
-                   (lambda (file)
-                     (install-file file (string-append out "/bin")))
-                   (find-files "_output/local/go/bin" ".*"))
-                 ;(mkdir-p (string-append out "/share/bash-completion/completions"))
-                 ;(call-with-output-file (string-append out "/share/bash-completion/completions/kubectl")
-                 ;  (lambda (port)
-                 ;    (format port (invoke "_output/local/go/bin/kubectl" "completion" "bash"))))
-                 ;(mkdir-p (string-append out "/share/zsh/site-function"))
-                 ;(call-with-output-file (string-append out "/share/zsh/site-functions/_kubectl")
-                 ;  (lambda (port)
-                 ;    (format port (invoke "_output/local/go/bin/kubectl" "completion" "zsh"))))
-                 (install-file "LICENSE"
-                               (string-append out "/share/doc/"
-                                              ,name "-" ,version)))
-               #t)))
-         (add-after 'install 'install-man-pages
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p (string-append out "/share/man/man1"))
-               (with-directory-excursion "src/k8s.io/kubernetes"
-                 (for-each
-                   (lambda (file)
-                     (invoke "_output/local/go/bin/genman"
-                             (string-append out "/share/man/man1") file))
-                   '("kube-apiserver" "kube-controller-manager" "kube-proxy"
-                     "kube-scheduler" "kubelet" "kubectl")))
-               #t))))))
-    (native-inputs
-     `(("which" ,which)))
-    (inputs
-     `(("rsync" ,rsync)
-       ("util-linux" ,util-linux)))
-    (propagated-inputs
-     `(("crictl" ,crictl))) ; Must be the same major+minor version as kubernetes.
-    (home-page "https://kubernetes.io/")
-    (synopsis "Production-Grade Container Scheduling and Management")
-    (description "Kubernetes is an open source system for managing containerized
-applications across multiple hosts.  It provides basic mechanisms for
-deployment, maintenance, and scaling of applications.")
-    (license license:asl2.0)))
-
-(define-public kubernetes-1.15
-  (package
-    (inherit kubernetes)
-    (name "kubernetes")
-    (version "1.15.7")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/kubernetes/kubernetes.git")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0xk5cx0ihvnfb3y6s0xhkfyb7a62dy2bkxsarq4wdis5nkc2jdim"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments kubernetes)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (delete 'fix-version-numbers)))))
-    (propagated-inputs
-     `(("crictl" ,crictl-1.15)))))
-
-(define-public minikube
-  (package
-    (name "minikube")
-    (version "1.5.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/kubernetes/minikube/"
-                                  "releases/download/v"
-                                  version "/" name "-linux-amd64"))
-              (sha256
-               (base32
-                "1sgpb5k3i6g1slz9f6lvp4br5llgm2wcklpn2804hpp8dnlsjwhr"))))
-    (build-system trivial-build-system)
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let* ((out     (assoc-ref %outputs "out"))
-                (bin     (string-append out "/bin"))
-                (target  (string-append bin "/minikube"))
-                (source  (assoc-ref %build-inputs "source")))
-           (mkdir-p bin)
-           (copy-file source target)
-           (chmod target #o555))
-         #t)))
-    (home-page "https://minikube.sigs.k8s.io/")
-    (synopsis "Run Kubernetes locally")
-    (description "Minikube implements a local Kubernetes cluster.  Minikube's
-primary goals are to be the best tool for local Kubernetes application
-development and to support all Kubernetes features that fit.")
-    (supported-systems '("x86_64-linux"))
-    (license license:asl2.0)))
-
-(define-public crictl
-  (package
-    (name "crictl")
-    (version "1.16.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/kubernetes-sigs/cri-tools.git")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0qsbqml7jlhf73hlpqrh10bidz4v219bi2m5xg7914dzi0mzm733"))))
-    (build-system go-build-system)
-    (arguments
-     `(;#:import-path "github.com/kubernetes-sigs/cri-tools"
-       #:install-source? #f
-       #:tests? #f ; tests require 'framwork' from kubernetes
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "src") #t))
-         (add-before 'build 'prepare-source
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "Makefile"
-                 (("/usr/local") out)
-                 (("^VERSION .*") (string-append "VERSION := " ,version "\n")))
-               #t)))
-         (replace 'build
-           (lambda _
-             (invoke "make")))
-         ;(replace 'check
-         ;  (lambda _
-         ;    (invoke "make" "test-e2e")))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (setenv "BINDIR" (string-append out "/bin"))
-               (invoke "make" "install")))))))
-    (home-page "https://github.com/kubernetes-sigs/cri-tools")
-    (synopsis "CLI and validation tools for Kubelet Container Runtime Interface")
-    (description "Cri-tools aims to provide a series of debugging and validation
-tools for Kubelet CRI.")
-    (license license:asl2.0)))
-
-(define-public crictl-1.15
-  (package
-    (inherit crictl)
-    (name "crictl")
-    (version "1.15.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/kubernetes-sigs/cri-tools.git")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "03fhddncwqrdyxz43m3bak9dlrsqzibqqja3p94nic4ydk2hry62"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments crictl)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (replace 'build
-             (lambda _
-               (invoke "make" "windows"))) ; This is the correct invocation
-           (add-after 'prepare-source 'update-version
-             (lambda _
-               (substitute* "Makefile"
-                 (("^VERSION .*") (string-append "VERSION := " ,version "\n")))
-               #t))
-           (replace 'prepare-source
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (substitute* "Makefile"
-                   (("/usr/local") out)
-                   ;; So we can use 'make windows'.
-                   ((".exe") "")
-                   (("GOOS=windows") "CGO_ENABLED=0")
-                   (("_output") "../bin"))
-                 #t)))))))))
-
-(define-public crictl-1.14
-  (package
-    (inherit crictl-1.15)
-    (name "crictl")
-    (version "1.14.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/kubernetes-sigs/cri-tools.git")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0yzb2vpypf2psrmbaqfh1fw6nba5mzdqr99lkga1204xygs863by"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments crictl-1.15)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (replace 'update-version
-             (lambda _
-               (substitute* "Makefile"
-                 (("^VERSION .*") (string-append "VERSION := " ,version "\n")))
-               #t))))))))
-
-(define-public crictl-1.13
-  (package
-    (inherit crictl-1.15)
-    (name "crictl")
-    (version "1.13.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/kubernetes-sigs/cri-tools.git")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0xq3fvarx1x2bjyg3cj2jh3vz4lghb5mw2hhqb8ylflr8phd22cx"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments crictl-1.15)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (replace 'update-version
-             (lambda _
-               (substitute* "Makefile"
-                 (("^VERSION .*") (string-append "VERSION := " ,version "\n")))
-               #t))))))))
diff --git a/gn/packages/mouse-longevity.scm b/gn/packages/mouse-longevity.scm
deleted file mode 100644
index f11a7b9..0000000
--- a/gn/packages/mouse-longevity.scm
+++ /dev/null
@@ -1,87 +0,0 @@
-;;; guix-bioinformatics --- Bioinformatics packages for GNU Guix
-;;; Copyright © 2024 jgart <jgart@dismail.de>
-;;;
-;;; This file is part of guix-bioinformatics.
-;;;
-;;; genenetwork-machines 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.
-;;;
-;;; genenetwork-machines 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 genenetwork-machines.  If not, see
-;;; <https://www.gnu.org/licenses/>.
-
-(define-module (gn packages mouse-longevity)
-  #:use-module (guix)
-  #:use-module (gnu)
-  #:use-module (gnu services shepherd)
-  #:use-module (gn services rshiny)
-  #:use-module (guix git-download)
-  #:use-module (guix modules)
-  #:use-module (guix records)
-  #:use-module (srfi srfi-1)
-  #:use-module (ice-9 match)
-  #:use-module (gnu packages cran)
-  #:use-module (gnu packages statistics)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix build-system trivial)
-  #:use-module ((gnu packages admin) #:select (shepherd))
-  #:use-module ((gnu packages web) #:select (nginx)))
-
-(define-public mouse-longevity-app
-  (let ((commit "8a7fdd353e1babcdc3c0453bdfba2aa0dead7c3f")
-        (revision "2"))
-    (package
-      (name "mouse-longevity-app")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.genenetwork.org/mouse-longevity-app/")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32 "1bmiq9xmsq8wgxv3nqg3r2j1kwy2m6pw8agapj31agbyw81agyna"))))
-      (build-system trivial-build-system)
-      (arguments
-       (list #:modules '((guix build utils))
-             #:builder
-             #~(begin
-                 (use-modules (guix build utils))
-                 (let* ((source    (assoc-ref %build-inputs "source"))
-                        (targetdir (string-append #$output "/share/" #$name))
-                        (app       (string-append #$output "/bin/" #$name))
-                        (Rbin      (search-input-file %build-inputs "/bin/Rscript")))
-                   (copy-recursively source targetdir)
-                   (mkdir-p (string-append #$output "/bin"))
-                   (call-with-output-file app
-                     (lambda (port)
-                       (format port
-                               "#!~a
-library(shiny)
-setwd(\"~a\")
-runApp(launch.browser=0, port=3979)~%\n"
-                               Rbin targetdir)))
-                   (chmod app #o555)))))
-      (propagated-inputs
-       (list r
-             r-ggplot2
-             r-dplyr
-             r-plotly
-             r-shinydashboard
-             ;; TODO: https://ci.genenetwork.org/jobs/genenetwork3/581
-             ;; r-shinydashboardplus
-             r-shinyjs
-             r-shiny))
-      (home-page "https://github.com/Dashbrook/Mouse_Longevity_app/")
-      (synopsis "R shiny app to visualize mouse lifespan data")
-      (description
-       "This package provides an R shiny app to visualize mouse strain
-longevity data.")
-      (license license:gpl3+))))
diff --git a/gn/packages/notebooks.scm b/gn/packages/notebooks.scm
deleted file mode 100644
index b4ebde1..0000000
--- a/gn/packages/notebooks.scm
+++ /dev/null
@@ -1,80 +0,0 @@
-(define-module (gn packages notebooks)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix utils)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix build-system python)
-  #:use-module (guix build-system asdf)
-  #:use-module (gnu packages python-web)
-  #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages lisp-check)
-  #:use-module (gnu packages lisp-xyz)
-  #:use-module (gnu packages))
-
-(define-public nb-upload
-  (let ((commit "b2853028a2ef2b1670074aa08c9e25d799ba4cb4")
-        (revision "2"))
-    (package
-      (name "nb-upload")
-      (version (git-version "20220414" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-                (url "https://git.genenetwork.org/jgart/nb-upload")
-                (commit commit)))
-         (file-name (git-file-name name commit))
-         (sha256
-           (base32
-            "1wdghsq4wj1bgcvxx604q7piknbwapj7facc1xfn1fqvw0cra7wg"))))
-         (build-system python-build-system)
-         (arguments
-           (list #:tests? #f)) ; There are no tests.
-         (inputs
-           (list python-requests
-                 python-yaspin
-                 python-rich))
-         (synopsis "Upload notebooks via CLI")
-         (description
-"@code{nb-upload} allows a user to upload notebooks to a @code{nb}
-instance.")
-         (home-page "https://git.genenetwork.org/jgart/nb-upload/")
-         (license license:unlicense))))
-
-(define-public sbcl-nb
-  (let ((commit "bb9bb6cd2ac8e9aac48e97a4c68b4b9811aa817a")
-        (revision "0"))
-    (package
-      (name "sbcl-nb")
-      (version (git-version "20220414" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                (url "https://git.genenetwork.org/jgart/nb")
-                (commit commit)))
-          (sha256
-           (base32 "03wnfb2g9b9kawd9iw5hsdkzdlj0r7pkzwshhjiwn1cc04rqdi5m"))
-          (file-name (git-file-name name commit))))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-        `(#:tests? #f)) ; There are no tests.
-      (inputs
-        (list sbcl-ningle
-              sbcl-clack
-              sbcl-drakma
-              sbcl-find-port
-              sbcl-jzon
-              sbcl-legit
-              sbcl-cl-interpol))
-      (home-page "https://git.genenetwork.org/jgart/nb/")
-      (synopsis "Launching interactive notebooks in GNU Guix containers")
-      (description
-"{cl-nb} is a Common Lisp system and API for launching interactive
-notebooks in GNU Guix containers.")
-      (license license:unlicense))))
-
-(define-public cl-nb
-  (sbcl-package->cl-source-package sbcl-nb))
-
diff --git a/gn/packages/python.scm b/gn/packages/python.scm
index 6a0bc40..bc0d662 100644
--- a/gn/packages/python.scm
+++ b/gn/packages/python.scm
@@ -1724,3 +1724,47 @@ a general image processing tool.")
      library written in C.  It features a fast HTML renderer and functionality to make custom
      renderers (e.g. man pages or LaTeX).")
     (license license:expat)))
+
+(define-public python-jupyter-server
+  (package
+    (name "python-jupyter-server")
+    (version "1.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "jupyter-server" version))
+        (sha256
+         (base32
+          "0dqj51fj5ikklbl0gnb939pp80ngnzml5932mljn2lvplph7a34g"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-anyio" ,python-anyio)
+       ("python-argon2-cffi" ,python-argon2-cffi)
+       ("python-ipython-genutils" ,python-ipython-genutils)
+       ("python-jinja2" ,python-jinja2)
+       ("python-jupyter-client" ,python-jupyter-client)
+       ("python-jupyter-core" ,python-jupyter-core)
+       ("python-nbconvert" ,python-nbconvert)
+       ("python-nbformat" ,python-nbformat)
+       ("python-prometheus-client" ,python-prometheus-client)
+       ("python-pyzmq" ,python-pyzmq)
+       ("python-send2trash" ,python-send2trash)
+       ("python-terminado" ,python-terminado)
+       ("python-tornado" ,python-tornado)
+       ("python-traitlets" ,python-traitlets)
+       ("python-websocket-client" ,python-websocket-client)))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-ipykernel" ,python-ipykernel)
+       ("python-pytest" ,python-pytest)
+       ; ("python-pytest-console-scripts" ,python-pytest-console-scripts) - gone missing
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-mock" ,python-pytest-mock)
+       ; ("python-pytest-tornasync" ,python-pytest-tornasync) - gone missing
+       ("python-requests" ,python-requests)))
+    (home-page "https://jupyter.org")
+    (synopsis
+      "The backend--i.e. core services, APIs, and REST endpoints--to Jupyter web applications.")
+    (description
+      "The backend--i.e. core services, APIs, and REST endpoints--to Jupyter web applications.")
+    (license #f)))
diff --git a/gn/packages/r-shiny.scm b/gn/packages/r-shiny.scm
deleted file mode 100644
index 8660bd3..0000000
--- a/gn/packages/r-shiny.scm
+++ /dev/null
@@ -1,337 +0,0 @@
-(define-module (gn packages r-shiny)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix gexp)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix utils)
-  #:use-module (guix build-system r)
-  #:use-module (guix build-system trivial)
-  #:use-module (guix packages)
-  #:use-module (gnu packages bioconductor)
-  #:use-module (gnu packages cran)
-  #:use-module (gnu packages javascript)
-  #:use-module (gnu packages statistics))
-
-(define-public r-shiny-gn
-  (deprecated-package "r-shiny-gn" r-shiny))
-
-(define-public r-org-rn-eg-db ; used by jumpshiny service
-  (package
-    (name "r-org-rn-eg-db")
-    (version "3.20.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "org.Rn.eg.db" version 'annotation))
-              (sha256
-               (base32
-                "009c22ry5nnklzdc5dywnf8lq41cj3141yr5vw1kgifys6lanj01"))))
-    (properties
-     `((upstream-name . "org.Rn.eg.db")))
-    (build-system r-build-system)
-    (propagated-inputs
-     (list r-annotationdbi))
-    (native-inputs (list r-runit))
-    (home-page "https://www.bioconductor.org/packages/org.Rn.eg.db/")
-    (synopsis "Genome wide annotation for Rat")
-    (description
-     "This package provides mappings from Entrez gene identifiers to various
-annotations for the genome of the rat.")
-    (license license:artistic2.0)))
-
-(define-public r-shinytoastr
-  (package
-    (name "r-shinytoastr")
-    (version "2.2.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "shinytoastr" version))
-       (sha256
-        (base32 "1zcf4ya9anlq6n97iq0b86ybcqbbd2h66vrr41m80zvlkav3z46z"))))
-    (properties `((upstream-name . "shinytoastr")))
-    (build-system r-build-system)
-    (propagated-inputs (list r-shiny))
-    (home-page "https://github.com/gaborcsardi/shinytoastr")
-    (synopsis "Notifications from Shiny")
-    (description "Browser notifications in Shiny apps, using toastr.")
-    (license license:expat)))
-
-(define-public r-spscomps
-  (package
-    (name "r-spscomps")
-    (version "0.3.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "spsComps" version))
-       (sha256
-        (base32 "1l69yigdabwwsixk364jvmc1c5nc8d4djc77cf0jlzshhdsjbqx8"))))
-    (properties `((upstream-name . "spsComps")))
-    (build-system r-build-system)
-    (propagated-inputs (list r-assertthat
-                             r-crayon
-                             r-glue
-                             r-htmltools
-                             r-magrittr
-                             r-r6
-                             r-shiny
-                             r-shinyace
-                             r-shinytoastr
-                             r-stringr))
-    (home-page "https://github.com/lz100/spsComps")
-    (synopsis "systemPipeShiny UI and Server Components")
-    (description
-     "UI and server components from the systemPipeShiny framework for use
-in Shiny applications.")
-    (license license:gpl3+)))
-
-(define-public r-scatterd3
-  (package
-    (name "r-scatterd3")
-    (version "1.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "scatterD3" version))
-       (sha256
-        (base32 "187jq1y5va5npsmpkfyi6mhgynq956590q4z8v1ibadsrcldw34m"))))
-    (properties `((upstream-name . "scatterD3")))
-    (build-system r-build-system)
-    (propagated-inputs (list r-digest r-ellipse r-htmlwidgets))
-    (native-inputs (list r-knitr))
-    (home-page "https://juba.github.io/scatterD3/")
-    (synopsis "D3 JavaScript Scatterplot from R")
-    (description
-     "Creates D3 JavaScript scatterplots from R with interactive features:
-panning, zooming, tooltips, etc.")
-    (license license:gpl3+)))
-
-(define-public r-shinywidgets
-  (package
-    (name "r-shinywidgets")
-    (version "0.9.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "shinyWidgets" version))
-       (sha256
-        (base32 "118yqylidnlc1ixwang4bvhyy3hjmsimkcv1cz73s8wsj45hmyzb"))))
-    (properties `((upstream-name . "shinyWidgets")))
-    (build-system r-build-system)
-    (arguments (list #:tests? #f))
-    (propagated-inputs (list r-bslib
-                             r-htmltools
-                             r-jsonlite
-                             r-rlang
-                             r-sass
-                             r-shiny))
-    (home-page "https://github.com/dreamRs/shinyWidgets")
-    (synopsis "Custom Inputs Widgets for Shiny")
-    (description
-     "Collection of custom input controls and user interface components for
-Shiny applications.")
-    (license license:gpl3)))
-
-(define-public jumpshiny
-  (let ((commit "3489f3265a2eca45c9b6d251013b313bf55f975d")
-        (revision "1"))
-    (package
-      (name "jumpshiny")
-      (version (git-version "0.0.0" revision commit))
-      (source (local-file "/fast/pjotr/tmp/claude/factory/jumpshiny"
-                          "jumpshiny-checkout"
-                          #:recursive? #t
-                          #:select? (git-predicate
-                                     "/fast/pjotr/tmp/claude/factory/jumpshiny")))
-      (build-system trivial-build-system)
-      (arguments
-       (list #:modules '((guix build utils))
-             #:builder
-             #~(begin
-                 (use-modules (guix build utils))
-                 (let* ((source    (assoc-ref %build-inputs "source"))
-                        (targetdir (string-append #$output "/share/" #$name))
-                        (app       (string-append #$output "/bin/" #$name))
-                        (Rbin      (search-input-file %build-inputs "/bin/Rscript")))
-                   (copy-recursively source targetdir)
-                   (mkdir-p (string-append #$output "/bin"))
-                   (call-with-output-file app
-                     (lambda (port)
-                       (format port
-                               "#!~a
-library(shiny)
-setwd(\"~a\")
-options(shiny.maxRequestSize = 60*1024^2)
-runApp(launch.browser=0, port=3978)~%\n"
-                               Rbin targetdir)))
-                   (chmod app #o555)))))
-      (propagated-inputs
-       (list r
-             ;; Core shiny
-             r-shiny
-             r-shinycssloaders
-             r-shinybs
-             r-shinyjs
-             r-shinythemes
-             r-shinydashboard
-             r-shinywidgets
-             r-fresh
-             ;; Data processing
-             r-dplyr
-             r-tidyr
-             r-tidyverse
-             r-data-table
-             r-plyr
-             r-readxl
-             r-writexl
-             r-devtools
-             r-pacman
-             ;; Visualization
-             r-ggplot2
-             r-plotly
-             r-heatmaply
-             r-gplots
-             r-scatterd3
-             r-rcolorbrewer
-             r-pheatmap
-             r-complexheatmap
-             r-circlize
-             ;; Stats and bioinformatics
-             r-limma
-             r-cluster
-             r-clusterprofiler
-             r-enrichplot
-             r-wgcna
-             r-annotate
-             r-org-hs-eg-db
-             r-org-mm-eg-db
-             r-org-rn-eg-db
-             r-igraph
-             r-visnetwork
-             ;; Utilities
-             r-dt
-             r-markdown
-             r-bookdown
-             r-scales
-             r-curl
-             r-glue
-             r-spscomps
-             r-ggnewscale
-             r-stringr
-             r-zoo
-             r-officer
-             r-r-utils
-             r-mass
-             r-knitr
-             r-rmarkdown))
-      (home-page "https://git.genenetwork.org/jumpshiny/")
-      (synopsis "JUMPshiny - proteomics data analysis Shiny app")
-      (description
-       "JUMPshiny is an R Shiny application for proteomics data analysis,
-including data import, batch normalization, differential expression,
-enrichment analysis, and network analysis with WGCNA.")
-      (license license:gpl3+))))
-
-(define-public r-efatools
-  (package
-    (name "r-efatools")
-    (version "0.6.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "EFAtools" version))
-       (sha256
-        (base32 "0x2c1a1fwa79pdam2day57rpcyxf195a4kqsnwzr2xh6x1fjrnad"))))
-    (properties `((upstream-name . "EFAtools")))
-    (build-system r-build-system)
-    (arguments (list #:tests? #f))
-    (propagated-inputs (list r-checkmate
-                             r-cli
-                             r-crayon
-                             r-dplyr
-                             r-future
-                             r-future-apply
-                             r-ggplot2
-                             r-gparotation
-                             r-lavaan
-                             r-magrittr
-                             r-progress
-                             r-progressr
-                             r-psych
-                             r-rcpp
-                             r-rcpparmadillo
-                             r-rlang
-                             r-stringr
-                             r-tibble
-                             r-tidyr
-                             r-viridislite))
-    (native-inputs (list r-knitr))
-    (home-page "https://github.com/mdsteiner/EFAtools")
-    (synopsis "Fast and flexible exploratory factor analysis tools")
-    (description
-     "Functions to perform exploratory factor analysis (EFA) procedures and
-compare their solutions.")
-    (license license:gpl3)))
-
-(define-public jumpsem-web
-  (let ((commit "a134ab0b10f3d2393ca19870e154ab8bafd45757")
-        (revision "1"))
-    (package
-      (name "jumpsem-web")
-      (version (git-version "0.0.0" revision commit))
-      (source (local-file "/fast/pjotr/tmp/claude/factory/jumpsem_web"
-                          "jumpsem-web-checkout"
-                          #:recursive? #t))
-      (build-system trivial-build-system)
-      (arguments
-       (list #:modules '((guix build utils))
-             #:builder
-             #~(begin
-                 (use-modules (guix build utils))
-                 (let* ((source    (assoc-ref %build-inputs "source"))
-                        (targetdir (string-append #$output "/share/" #$name))
-                        (app       (string-append #$output "/bin/" #$name))
-                        (Rbin      (search-input-file %build-inputs "/bin/Rscript")))
-                   (copy-recursively source targetdir)
-                   (mkdir-p (string-append #$output "/bin"))
-                   (call-with-output-file app
-                     (lambda (port)
-                       (format port
-                               "#!~a
-library(shiny)
-setwd(\"~a\")
-options(shiny.maxRequestSize = 500*1024^2)
-runApp(launch.browser=0, port=3979)~%\n"
-                               Rbin targetdir)))
-                   (chmod app #o555)))))
-      (propagated-inputs
-       (list r
-             r-shiny
-             r-shinycssloaders
-             r-shinybs
-             r-shinyjs
-             r-shinywidgets
-             r-shinydashboard
-             r-dplyr
-             r-tidyr
-             r-tidyverse
-             r-data-table
-             r-devtools
-             r-pacman
-             r-ggplot2
-             r-plotly
-             r-heatmaply
-             r-gplots
-             r-rcolorbrewer
-             r-scales
-             r-markdown
-             r-dt
-             r-lavaan
-             r-efatools
-             r-rcpparmadillo))
-      (home-page "https://git.genenetwork.org/jumpsem_web/")
-      (synopsis "JUMPsem - structural equation modeling web app")
-      (description
-       "JUMPsem is an R Shiny application for kinase activity inference
-using structural equation modeling on post-translational modification data.")
-      (license license:gpl3+))))
diff --git a/gn/packages/ruby.scm b/gn/packages/ruby.scm
deleted file mode 100644
index e8f1e59..0000000
--- a/gn/packages/ruby.scm
+++ /dev/null
@@ -1,5832 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
-;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
-;;;
-;;; 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 (gn packages ruby)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (gnu packages)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages databases)
-  #:use-module (gnu packages readline)
-  #:use-module (gnu packages autotools)
-  #:use-module (gnu packages java)
-  #:use-module (gnu packages libffi)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages ragel)
-  #:use-module (gnu packages rails)
-  #:use-module (gnu packages rdf)
-  #:use-module (gnu packages ruby)
-  #:use-module (gnu packages ruby-check)
-  #:use-module (gnu packages ruby-xyz)
-  #:use-module (gnu packages ruby-check)
-  #:use-module (gnu packages tls)
-  #:use-module (gnu packages version-control)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix utils)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix build-system meson)
-  #:use-module (guix build-system python)
-  #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages xml)
-  #:use-module (gnu packages web)
-  #:use-module (guix build-system ruby))
-
-(define-public apache-maven
-  (package
-    (name "apache-maven")
-    (version "3.3.9")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://ftp.tudelft.nl/apache/maven/maven-3/3.3.9/source/apache-maven-" version "-src.tar.gz"))
-              (sha256               (base32
-                "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i"))))
-    (build-system gnu-build-system)
-    (home-page "http://ant.apache.org")
-    (synopsis "Build tool for Java")
-    (description
-     "Ant is a platform-independent build tool for Java.  It is similar to
-make but is implemented using the Java language, requires the Java platform,
-and is best suited to building Java projects.  Ant uses XML to describe the
-build process and its dependencies, whereas Make uses Makefile format.")
-    (license license:asl2.0)))
-
-(define-public jruby
-  (package
-    (name "jruby")
-    (version "9.0.5.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://s3.amazonaws.com/jruby.org/downloads/9.0.5.0/jruby-bin-"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "1wysymqzc7591743f2ycgwpm232y6i050izn72lck44nhnyr5wwy"))
-        ))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("ant" ,ant)
-       ;; ("maven" ,maven)
-       ("jdk" ,icedtea "jdk")))
-    (inputs
-     `(("readline" ,readline)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
-    (native-search-paths
-     (list (search-path-specification
-            (variable "GEM_PATH")
-            (files (list (string-append "lib/ruby/gems/"
-                                        (version-major+minor version)
-                                        ".0"))))))
-    (synopsis "Programming language interpreter")
-    (description "Ruby is a dynamic object-oriented programming language with
-a focus on simplicity and productivity.")
-    (home-page "https://ruby-lang.org")
-    (license license:ruby)))
-
-(define-public bio-table ; guix ready with tests
-  (package
-   (name "bio-table")
-   (version "1.0.0")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (rubygems-uri "bio-table" version))
-     (sha256
-      (base32
-       "1jlpls734kd41rffn2y2747nr14k5rwgaj2g3k48i9xgsfcmrn6r"))))
-   (build-system ruby-build-system)
-   (arguments
-    `(#:tests? #f ; There are no tests.
-   ))
-   (propagated-inputs
-    `(("ruby-bio-logger" ,ruby-bio-logger)))
-   (synopsis
-    "Functions and tools for tranforming and changing tab delimited
-and comma separated table files - useful for Excel sheets and SQL/RDF
-output")
-   (description
-    "Functions and tools for tranforming and changing tab delimited
-and comma separated table files - useful for Excel sheets and SQL/RDF
-output")
-   (home-page
-    "http://github.com/pjotrp/bioruby-table")
-   (license license:expat)))
-
-(define-public ruby-ntlm-http
-  (package
-    (name "ruby-ntlm-http")
-    (version "0.1.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "ntlm-http" version))
-       (sha256
-        (base32
-         "0yx01ffrw87wya1syivqzf8hz02axk7jdpw6aw221xwvib767d36"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis
-     "Ruby/NTLM HTTP provides NTLM authentication over http.")
-    (description
-     "Ruby/NTLM HTTP provides NTLM authentication over http.")
-    (home-page "http://www.mindflowsolutions.net")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-webrobots
-  (package
-    (name "ruby-webrobots")
-    (version "0.1.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "webrobots" version))
-       (sha256
-        (base32
-         "19ndcbba8s8m62hhxxfwn83nax34rg2k5x066awa23wknhnamg7b"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis
-     "This library helps write robots.txt compliant web robots in Ruby.
-")
-    (description
-     "This library helps write robots.txt compliant web robots in Ruby.
-")
-    (home-page "https://github.com/knu/webrobots")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-mechanize ; guix maybe ready
-  (package
-    (name "ruby-mechanize")
-    (version "2.7.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "mechanize" version))
-       (sha256
-        (base32
-         "1f861x62kmggy60krv229s5jl7afq9nblwcfih3kp9bm5c5jn16y"))))
-    (build-system ruby-build-system)
-    (arguments '(#:tests? #f)) ; one test fails
-    (inputs
-     `(("ruby" ,ruby)))
-    (propagated-inputs
-     `(("ruby-domain-name" ,ruby-domain-name)
-       ("ruby-http-cookie" ,ruby-http-cookie)
-       ("ruby-mime-types" ,ruby-mime-types)
-       ("ruby-net-http-digest-auth"
-        ,ruby-net-http-digest-auth)
-       ("ruby-net-http-persistent"
-        ,ruby-net-http-persistent)
-       ("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-ntlm-http" ,ruby-ntlm-http)
-       ("ruby-webrobots" ,ruby-webrobots)))
-    (synopsis
-     "The Mechanize library is used for automating interaction with websites.
-Mechanize automatically stores and sends cookies, follows redirects,
-and can follow links and submit forms.  Form fields can be populated and
-submitted.  Mechanize also keeps track of the sites that you have visited as
-a history.")
-    (description
-     "The Mechanize library is used for automating interaction with websites.
-Mechanize automatically stores and sends cookies, follows redirects,
-and can follow links and submit forms.  Form fields can be populated and
-submitted.  Mechanize also keeps track of the sites that you have visited as
-a history.")
-  (home-page
-   "http://docs.seattlerb.org/mechanize/")
-  (license license:expat)))
-
-(define-public ruby-elasticsearch-transport
-(package
-  (name "ruby-elasticsearch-transport")
-  (version "6.0.2")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "elasticsearch-transport" version))
-      (sha256
-        (base32
-          "0gpwbw70qisx681j1bw8xq6shg5kdxmcdzg6425af0b5881jg7iy"))))
-  (build-system ruby-build-system)
-  (propagated-inputs
-    `(("ruby-faraday" ,ruby-faraday)
-      ("ruby-multi-json" ,ruby-multi-json)))
-  (arguments
-   `(#:tests? #f)) ;; no bundler/cucumber
-  (synopsis
-    "Ruby client for Elasticsearch. See the `elasticsearch` gem for full integration.
-")
-  (description
-    "Ruby client for Elasticsearch.  See the `elasticsearch` gem for full integration.
-")
-  (home-page
-    "https://github.com/elasticsearch/elasticsearch-ruby/tree/master/elasticsearch-transport")
-  (license (license:non-copyleft "will fill in later"))))
-
-(define-public ruby-elasticsearch-api
-(package
-  (name "ruby-elasticsearch-api")
-  (version "6.0.2")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "elasticsearch-api" version))
-      (sha256
-        (base32
-          "1vkahknqn85vvwr1gzh8jf3pvdial0c0d524icg8x06vibqgzd5h"))))
-  (build-system ruby-build-system)
-  (propagated-inputs
-    `(("ruby-multi-json" ,ruby-multi-json)))
-  (arguments
-   `(#:tests? #f)) ;; no bundler/cucumber
-  (synopsis
-    "Ruby API for Elasticsearch. See the `elasticsearch` gem for full integration.
-")
-  (description
-    "Ruby API for Elasticsearch.  See the `elasticsearch` gem for full integration.
-")
-  (home-page
-    "https://github.com/elasticsearch/elasticsearch-ruby/tree/master/elasticsearch-api")
-  (license (license:non-copyleft "will fill in later"))))
-
-(define-public ruby-elasticsearch
-  (package
-   (name "ruby-elasticsearch")
-   (version "6.0.2")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (rubygems-uri "elasticsearch" version))
-     (sha256
-      (base32
-       "0a08ynvxz5clfm2ndqpgjrv4aiga9m2y1ab34s3qkihdfdzdzhj8"))))
-   (build-system ruby-build-system)
-   (propagated-inputs
-    `(("ruby-elasticsearch-api"
-       ,ruby-elasticsearch-api)
-      ("ruby-elasticsearch-transport"
-       ,ruby-elasticsearch-transport)))
-  (arguments
-   `(#:tests? #f)) ;; no bundler/cucumber
-   (synopsis
-    "Ruby integrations for Elasticsearch (client, API, etc.)
-")
-   (description
-    "Ruby integrations for Elasticsearch (client, API, etc.)
-")
-   (home-page
-    "http://github.com/elasticsearch/elasticsearch-ruby")
-   (license (license:non-copyleft "will fill in later"))))
-
-;;;
-
-(define-public discourse
-  (package
-    (name "discourse")
-    (version "2.6.3")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/discourse/discourse")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "06ykn53m7mmdk71szk86nlq87rspqlb3fjpdmqi133z63dbj20ll"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'replace-git-ls-files)
-         (add-before 'build 'delete-gemfile-lock
-           (lambda _
-             (delete-file "Gemfile.lock")
-             #t))
-         (add-after 'unpack 'adjust-version-dependencies
-           (lambda _
-             (substitute* "Gemfile"
-               ;; Don't require specific versions of these gems
-               (("6.0.3.3") ,(package-version ruby-rails))
-               (("2.0.1") ,(package-version ruby-sassc))
-               (("active_model_serializers.*") "active_model_serializers'\n")
-               ;; Add tzinfo-data and figure out how to use non-Ruby version later
-               (("active_model_serializers'")
-                "active_model_serializers'\ngem 'tzinfo-data'")
-               ;; ruby-cppjieba-rb never finishes the install phase with ruby-2.6
-               ((".*cppjieba_rb.*") "")
-               )
-             #t))
-         (replace 'build
-           (lambda _
-             ;; https://github.com/discourse/discourse/blob/v2.6.3/docs/DEVELOPER-ADVANCED.md
-             (setenv "HOME" (getcwd))
-             (setenv "RAILS_ENV" "test")
-
-             ;; Launch Redis and Postgresql before continuing
-
-             ;(invoke "bundle" "exec" "rake" "db:create" "db:migrate")
-             ;(invoke "bundle" "exec" "rake" "autospec")
-             ))
-         ;(replace 'check
-         ;  (lambda _
-         ;    (invoke "rubocop")
-         ;    (invoke "rubocop" "plugins")))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (vendor-dir (string-append out "/lib/ruby/vendor_ruby"))
-                    )
-               (copy-recursively (getcwd) out)
-               (for-each make-file-writable (find-files out "\\.gz$"))
-               ;(with-output-to-file (string-append out "/bundler")
-               ;  (lambda _
-
-               ;(setenv "GEM_VENDOR" vendor-dir)
-               ;(setenv "BUNDLE_PATH" (getenv "GEM_PATH"))
-               ;(invoke "bundle" "install"
-               ;        "--path" out
-               ;        "--verbose"
-               ;        "--deployment"
-               ;        "--local"
-               ;        "--standalone"
-               ;        )
-               ;(invoke "gem" "install"
-               ;        "--verbose"
-               ;        ;"--vendor"
-               ;        "--local"
-               ;        "--bindir" (string-append out "/bin")
-               )))
-         )
-       ))
-    ;;TODO: What should be moved to native-inputs?
-    (inputs
-     `(
-       ("node" ,(@ (gnu packages node) node))
-       ("ruby-actionmailer" ,ruby-actionmailer)
-       ("ruby-actionview-precompiler" ,ruby-actionview-precompiler)
-       ("ruby-active-model-serializers" ,ruby-active-model-serializers)
-       ("ruby-activemodel" ,ruby-activemodel)
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-aws-sdk-s3" ,ruby-aws-sdk-s3)
-       ("ruby-aws-sdk-sns" ,ruby-aws-sdk-sns)
-       ("ruby-bootsnap" ,ruby-bootsnap)
-       ("ruby-cbor" ,ruby-cbor)
-       ;("ruby-cppjieba-rb" ,ruby-cppjieba-rb)
-       ("ruby-colored2" ,ruby-colored2)
-       ("ruby-cose" ,ruby-cose)
-       ("ruby-css-parser" ,ruby-css-parser)
-       ("ruby-diffy" ,ruby-diffy)
-       ("ruby-discourse-ember-rails" ,ruby-discourse-ember-rails)
-       ("ruby-discourse-ember-source" ,ruby-discourse-ember-source)
-       ("ruby-discourse-fonts" ,ruby-discourse-fonts)
-       ("ruby-discourse-image-optim" ,ruby-discourse-image-optim)
-       ("ruby-email-reply-trimmer" ,ruby-email-reply-trimmer)
-       ("ruby-excon" ,ruby-excon)
-       ("ruby-fast-blank" ,ruby-fast-blank)
-       ("ruby-fast-xs" ,ruby-fast-xs)
-       ("ruby-fastimage" ,ruby-fastimage)
-       ("ruby-flamegraph" ,ruby-flamegraph)
-       ("ruby-gc-tracer" ,ruby-gc-tracer)
-       ("ruby-highline" ,ruby-highline)
-       ("ruby-http-accept-language" ,ruby-http-accept-language)
-       ("ruby-lograge" ,ruby-lograge)
-       ("ruby-logstash-event" ,ruby-logstash-event)
-       ("ruby-logstash-logger" ,ruby-logstash-logger)
-       ("ruby-logster" ,ruby-logster)
-       ("ruby-lru-redux" ,ruby-lru-redux)
-       ("ruby-lz4-ruby" ,ruby-lz4-ruby)
-       ("ruby-maxminddb" ,ruby-maxminddb)
-       ("ruby-memory-profiler" ,ruby-memory-profiler)
-       ("ruby-message-bus" ,ruby-message-bus)
-       ("ruby-mini-mime" ,ruby-mini-mime)
-       ("ruby-mini-racer" ,ruby-mini-racer-0.2.4)
-       ("ruby-mini-scheduler" ,ruby-mini-scheduler)
-       ("ruby-mini-sql" ,ruby-mini-sql)
-       ("ruby-mini-suffix" ,ruby-mini-suffix)
-       ("ruby-oj" ,ruby-oj)
-       ("ruby-omniauth" ,ruby-omniauth)
-       ("ruby-omniauth-facebook" ,ruby-omniauth-facebook)
-       ("ruby-omniauth-github" ,ruby-omniauth-github)
-       ("ruby-omniauth-google-oauth2" ,ruby-omniauth-google-oauth2)
-       ("ruby-omniauth-twitter" ,ruby-omniauth-twitter)
-       ("ruby-onebox" ,ruby-onebox)
-       ("ruby-pg" ,ruby-pg)
-       ("ruby-pry-byebug" ,ruby-pry-byebug)
-       ("ruby-pry-rails" ,ruby-pry-rails)
-       ("ruby-puma" ,ruby-puma)
-       ("ruby-r2" ,ruby-r2)
-       ("ruby-rack-mini-profiler" ,ruby-rack-mini-profiler)
-       ("ruby-rack-protection" ,ruby-rack-protection)
-       ("ruby-rails-failover" ,ruby-rails-failover)
-       ("ruby-rails-multisite" ,ruby-rails-multisite)
-       ("ruby-railties" ,ruby-railties)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rbtrace" ,ruby-rbtrace)
-       ("ruby-rchardet" ,ruby-rchardet)
-       ("ruby-redis" ,ruby-redis)
-       ("ruby-redis-namespace" ,ruby-redis-namespace)
-       ("ruby-rinku" ,ruby-rinku)
-       ("ruby-rotp" ,ruby-rotp)
-       ("ruby-rqrcode" ,ruby-rqrcode)
-       ("ruby-rtlit" ,ruby-rtlit)
-       ("ruby-ruby-readability" ,ruby-ruby-readability)
-       ("ruby-rubyzip" ,ruby-rubyzip)
-       ("ruby-sassc" ,ruby-sassc)
-       ("ruby-sassc-rails" ,ruby-sassc-rails)
-       ("ruby-seed-fu" ,ruby-seed-fu)
-       ("ruby-shoulda-matchers" ,ruby-shoulda-matchers)
-       ("ruby-sidekiq" ,ruby-sidekiq)
-       ("ruby-sprockets-rails" ,ruby-sprockets-rails)
-       ("ruby-sshkey" ,ruby-sshkey)
-       ("ruby-stackprof" ,ruby-stackprof)
-       ("ruby-uglifier" ,ruby-uglifier)
-       ("ruby-unf" ,ruby-unf)
-       ("ruby-unicorn" ,ruby-unicorn)
-       ("ruby-webpush" ,ruby-webpush)
-       ("ruby-xorcist" ,ruby-xorcist)
-       ))
-    (native-inputs
-     `(
-       ("ruby-annotate" ,ruby-annotate)
-       ("ruby-better-errors" ,ruby-better-errors)
-       ("ruby-binding-of-caller" ,ruby-binding-of-caller)
-       ("ruby-bullet" ,ruby-bullet)
-       ("ruby-certified" ,ruby-certified)
-       ("ruby-fabrication" ,ruby-fabrication)
-       ("ruby-fakeweb" ,ruby-fakeweb)
-       ("ruby-listen" ,ruby-listen)
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-mock-redis" ,ruby-mock-redis)
-       ("ruby-parallel-tests" ,ruby-parallel-tests)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-html-matchers" ,ruby-rspec-html-matchers)
-       ("ruby-rspec-rails" ,ruby-rspec-rails)
-       ("ruby-rswag-specs" ,ruby-rswag-specs)
-       ("ruby-rubocop-discourse" ,ruby-rubocop-discourse)
-       ("ruby-ruby-prof" ,ruby-ruby-prof)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-test-prof" ,ruby-test-prof)
-       ("ruby-webmock" ,ruby-webmock)
-       ("ruby-yaml-lint" ,ruby-yaml-lint)
-       ;("tzdata" ,(@ (gnu packages base) tzdata))
-       ))
-    (synopsis "Platform for community discussion")
-    (description "Discourse is the 100% open source discussion platform built
-for the next decade of the Internet.  Use it as a mailing list, discussion
-forum, long-form chat room, and more!")
-    (home-page "https://www.discourse.org/")
-    (license license:gpl2)))
-
-(define-public ruby-seed-fu
-  (package
-    (name "ruby-seed-fu")
-    (version "2.3.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "seed-fu" version))
-        (sha256
-         (base32
-          "0y7lzcshsq6i20qn1p8zczir4fivr6nbl1km91ns320vvh92v43d"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no tests
-    (propagated-inputs
-     `(("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-activesupport" ,ruby-activesupport)))
-    (synopsis "Advanced seed data handling for Rails")
-    (description
-     "Seed Fu is an attempt to once and for all solve the problem of inserting
-and maintaining seed data in a database.  It uses a variety of techniques
-gathered from various places around the web and combines them to create what is
-hopefully the most robust seed data system around.")
-    (home-page "https://github.com/mbleigh/seed-fu")
-    (license license:expat)))
-
-;; TODO: deal with bundled libraries
-(define-public ruby-mini-suffix
-  (package
-    (name "ruby-mini-suffix")
-    (version "0.3.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mini_suffix" version))
-        (sha256
-         (base32
-          "1r6pwyv1vpyza0rn1pyxls4qdw5jd3vg4k5dp1iaqa57n6fiqrvi"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         ;(add-after 'unpack 'remove-vendored-libraries
-         ;  (lambda _
-         ;   (delete-file-recursively "vendor") #t))
-         (add-after 'install 'replace-vendored-libraries
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (vendor (string-append out "/lib/ruby/vendor_ruby/gems"
-                                           "/mini_suffix-" ,version "/vendor/")))
-               (for-each delete-file (find-files vendor))
-               (symlink (string-append (assoc-ref inputs "libpsl")
-                                       "/lib/libpsl.so")
-                        (string-append vendor "libpsl.x86_64.so"))
-               #t)))
-         )
-       #:tests? #f))    ; cannot load such file -- spec_helper
-    (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)))
-    (inputs
-     `(("libpsl" ,libpsl)))
-    (native-inputs
-     `(("ruby-rake" ,ruby-rake)
-       ("ruby-rspec" ,ruby-rspec)))
-    (synopsis "FFI wrapper for libpsl")
-    (description "This package provides an FFI wrapper for libpsl in Ruby.")
-    (home-page "https://github.com/discourse/mini_suffix")
-    (license license:expat)))
-
-(define-public ruby-redis-namespace
-  (package
-    (name "ruby-redis-namespace")
-    (version "1.8.1")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/resque/redis-namespace")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0dk8kgx6ii3xfv39x7m62bmahp29gv7pz8c8105mxqyxnx9pl525"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rspec
-    (propagated-inputs
-     `(("ruby-redis" ,ruby-redis)))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-its" ,ruby-rspec-its)
-       ))
-    (synopsis "Namespace calls to Redis")
-    (description
-     "This package provides a @code{Redis::Namespace} class which can be used to
-namespace calls to Redis.  This is useful when using a single instance of Redis
-with multiple, different applications.")
-    (home-page "https://github.com/resque/redis-namespace")
-    (license license:expat)))
-
-(define-public ruby-jsonapi-renderer
-  (package
-    (name "ruby-jsonapi-renderer")
-    (version "0.2.2")
-    (source
-      (origin
-        ;; No rakefile included in gem
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jsonapi-rb/jsonapi-renderer")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "11i4jbliidi7r04fg4g33hgn1yvfi1rjbsrc7m6gjj06zhflzn5s"))))
-    (build-system ruby-build-system)
-    (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
-    (synopsis "Render JSON API documents")
-    (description
-     "This package provides a ruby gem for rendering JSON API documents.")
-    (home-page "https://github.com/jsonapi-rb/jsonapi-renderer")
-    (license license:expat)))
-
-(define-public ruby-case-transform
-  (let ((commit "b957f9c933efa3894589af0ee7313660ebb552d8")
-        (revision "1"))
-    (package
-      (name "ruby-case-transform")
-      (version (git-version "0.2" revision commit))
-      (source
-        (origin
-          ;; No rakefile included in gem
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/rails-api/case_transform")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "0z6pn2c4ksnphy3rbjy2ml40lhl7dznxi19ny4nlk9m071cb0l93"))))
-      (build-system ruby-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-source
-             (lambda _
-               (delete-file "Gemfile.lock")
-               #t)))))
-      (propagated-inputs
-       `(("ruby-activesupport" ,ruby-activesupport)))
-      (native-inputs
-       `(("ruby-awesome-print" ,ruby-awesome-print)
-         ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter)
-         ("ruby-pry-byebug" ,ruby-pry-byebug)
-         ("ruby-rubocop" ,ruby-rubocop)))
-      (synopsis "@code{key_transform} abilities of ActiveModelSerializers")
-      (description
-       "This package provides the extraction of the @code{key_transform} abilities
-of @code{ActiveModelSerializers}.")
-      (home-page "https://github.com/rails-api/case_transform")
-      (license license:expat))))
-
-(define-public ruby-active-model-serializers
-  (package
-    (name "ruby-active-model-serializers")
-    (version "0.10.12")
-    (source
-      (origin
-        ;; No rakefile included in gem
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/rails-api/active_model_serializers")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1d2lywfzj4h117b67cwl76a6zl7q1vmgajzn51w5ifvdpc5rssli"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; TODO: enable
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-dependency-version-contstriants
-           (lambda _
-             (setenv "RAILS_VERSION"
-                     ,(version-major+minor (package-version ruby-rails)))
-             (substitute* "active_model_serializers.gemspec"
-               (("grape.*") "grape'\n")
-               (("kaminari.*") "kaminari'\n")
-               (("minitest.*") "minitest'\n")
-               ((".*json_schema.*") "") ; can't seem to find it during the 'check phase
-               )
-             (substitute* "Gemfile"
-               (("rubocop.*") "rubocop'\n")
-               )
-             #t)))))
-    (propagated-inputs
-     `(("ruby-actionpack" ,ruby-actionpack)
-       ("ruby-activemodel" ,ruby-activemodel)
-       ("ruby-case-transform" ,ruby-case-transform)
-       ("ruby-jsonapi-renderer" ,ruby-jsonapi-renderer)))
-    (native-inputs
-     `(
-       ("ruby-benchmark-ips" ,ruby-benchmark-ips)
-       ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter)
-       ("ruby-grape" ,ruby-grape)
-       ("ruby-json-schema" ,ruby-json-schema)
-       ("ruby-kaminari" ,ruby-kaminari)
-       ("ruby-m" ,ruby-m)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-rails" ,ruby-rails)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-sqlite3" ,ruby-sqlite3-1.3)
-       ("ruby-timecop" ,ruby-timecop)
-       ("ruby-will-paginate" ,ruby-will-paginate)
-       ("ruby-yard" ,ruby-yard)
-       ))
-    (synopsis "Generate JSON in an object-oriented manner")
-    (description
-     "@code{ActiveModel::Serializers} allows one to generate your JSON in an
-object-oriented and convention-driven manner.")
-    (home-page "https://github.com/rails-api/active_model_serializers")
-    (license license:expat)))
-
-(define-public ruby-onebox
-  (package
-    (name "ruby-onebox")
-    (version "2.2.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "onebox" version))
-        (sha256
-         (base32
-          "1lj5x8jrs9whgynfksvlnlds4crdi6dm9bb3vh654s8vpqxbjcbn"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; Tests require ancient version of ruby-twitter.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-version-requirements
-           (lambda _
-             (substitute* "onebox.gemspec"
-               (("twitter.*") "twitter'\n"))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)
-       ("ruby-htmlentities" ,ruby-htmlentities)
-       ("ruby-multi-json" ,ruby-multi-json)
-       ("ruby-mustache" ,ruby-mustache)
-       ("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-sanitize" ,ruby-sanitize)))
-    (native-inputs
-     `(("ruby-fakeweb" ,ruby-fakeweb)
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop-discourse" ,ruby-rubocop-discourse)
-       ("ruby-twitter" ,ruby-twitter)))
-    (synopsis "Generate embeddable HTML previews from URLs")
-    (description "This package provides a gem for generating embeddable HTML
-previews from URLs.")
-    (home-page "https://github.com/discourse/onebox")
-    (license license:expat)))
-
-(define-public ruby-discourse-ember-source
-  (package
-    (name "ruby-discourse-ember-source")
-    (version "3.12.2.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "discourse-ember-source" version))
-        (sha256
-         (base32
-          "0mqkwiqb5n64lc5jdjnmpgb9apq08ywkz9yk8mj1sx2lqcsw11pc"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis "Fork of Ember source to permit latest ember versions")
-    (description "This package provides a fork of Ember source to permit the
-latest ember versions.")
-    (home-page "https://github.com/discourse/discourse-ember-source")
-    (license license:expat)))
-
-(define-public ruby-jquery-rails
-  (package
-    (name "ruby-jquery-rails")
-    (version "4.4.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "jquery-rails" version))
-        (sha256
-         (base32
-          "0dkhm8lan1vnyl3ll0ks2q06576pdils8a1dr354vfc1y5dqw15i"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-rails-dom-testing" ,ruby-rails-dom-testing)
-       ("ruby-railties" ,ruby-railties)
-       ("ruby-thor" ,ruby-thor)))
-    (synopsis
-     "This gem provides jQuery and the jQuery-ujs driver for your Rails 4+ application.")
-    (description
-     "This gem provides jQuery and the jQuery-ujs driver for your Rails 4+ application.")
-    (home-page "https://github.com/rails/jquery-rails")
-    (license license:expat)))
-
-(define-public ruby-barber
-  (package
-    (name "ruby-barber")
-    (version "0.12.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "barber" version))
-        (sha256
-         (base32
-          "07rnlbh7kgamcbnl1sqlcdrjj8src4qc687klqq4a3vqq2slnscx"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-ember-source" ,ruby-ember-source)
-       ("ruby-execjs" ,ruby-execjs)))
-    (native-inputs
-     `(
-       ("ruby-handlebars-source" ,ruby-handlebars-source-4.1)   ; < 4.2
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ))
-    (synopsis "Handlebars precompilation")
-    (description "Handlebars precompilation")
-    (home-page "https://github.com/tchak/barber")
-    (license license:expat)))
-
-(define-public ruby-ember-handlebars-template
-  (package
-    (name "ruby-ember-handlebars-template")
-    (version "0.8.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri
-               "ember-handlebars-template"
-               version))
-        (sha256
-         (base32
-          "1wxj3vi4xs3vjxrdbzi4j4w6vv45r5dkz2rg2ldid3p8dp3irlf4"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-barber" ,ruby-barber)
-       ("ruby-sprockets" ,ruby-sprockets)))
-    (synopsis
-      "The sprockets template for Ember Handlebars.")
-    (description
-      "The sprockets template for Ember Handlebars.")
-    (home-page "https://github.com/tricknotes/ember-handlebars-template")
-    (license license:expat)))
-
-(define-public ruby-babel-source
-  (package
-    (name "ruby-babel-source")
-    (version "5.8.35")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "babel-source" version))
-        (sha256
-         (base32
-          "1ncq8h82k6hypzfb5dk7z95mmcdwnhsxmc53xz17m1nbklm25vvr"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis "Babel JS source")
-    (description "Babel JS source")
-    (home-page "https://github.com/babel/ruby-babel-transpiler")
-    (license license:expat)))
-
-(define-public ruby-babel-transpiler
-  (package
-    (name "ruby-babel-transpiler")
-    (version "0.7.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "babel-transpiler" version))
-        (sha256
-         (base32
-          "0w0minwxj56w96xps1msm6n75fs0y7r1vqcr9zlsn74fksnz81jc"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-babel-source" ,ruby-babel-source)
-       ("ruby-execjs" ,ruby-execjs)))
-    (synopsis
-      "    Ruby Babel is a bridge to the JS Babel transpiler.
-")
-    (description
-      "    Ruby Babel is a bridge to the JS Babel transpiler.
-")
-    (home-page "https://github.com/babel/ruby-babel-transpiler")
-    (license license:expat)))
-
-(define-public ruby-ember-es6-template
-  (package
-    (name "ruby-ember-es6-template")
-    (version "0.7.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ember-es6_template" version))
-        (sha256
-         (base32
-          "0cb9yfwwxvi615k1vg20zkm6czkpapcncwbznbch58zkp5rdw7i9"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-babel-transpiler" ,ruby-babel-transpiler)
-       ("ruby-sprockets" ,ruby-sprockets)))
-    (synopsis
-      "The tilt template for Ember specified ES6.")
-    (description
-      "The tilt template for Ember specified ES6.")
-    (home-page "https://github.com/tricknotes/ember-es6_template")
-    (license license:expat)))
-
-(define-public ruby-ember-cli-assets
-  (package
-    (name "ruby-ember-cli-assets")
-    (version "0.0.37")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ember-cli-assets" version))
-        (sha256
-         (base32
-          "057dhafsdr4lbagx5k7sdrh2vfmy1llqpv347qy7d5jkhxdmns96"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- ember/cli/assets
-    (synopsis "The assets for Ember CLI.")
-    (description "The assets for Ember CLI.")
-    (home-page "https://github.com/tricknotes/ember-cli-assets")
-    (license license:expat)))
-
-(define-public ruby-ember-source
-  (package
-    (name "ruby-ember-source")
-    (version "2.18.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ember-source" version))
-        (sha256
-         (base32
-          "0sixy30ym9j2slhlr0lfq943g958w8arlb0lsizh59iv1w5gmxxy"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Ember.js source code wrapper for use with Ruby libs.")
-    (description
-      "Ember.js source code wrapper for use with Ruby libs.")
-    (home-page "https://github.com/emberjs/ember.js")
-    (license license:expat)))
-
-(define-public ruby-ember-data-source
-  (package
-    (name "ruby-ember-data-source")
-    (version "3.0.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ember-data-source" version))
-        (sha256
-         (base32
-          "1803nh3knvwl12h63jd48qvbbrp42yy291wcb35960daklip0fd8"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-ember-source" ,ruby-ember-source)))
-    (synopsis
-      "ember-data source code wrapper for use with Ruby libs.")
-    (description
-      "ember-data source code wrapper for use with Ruby libs.")
-    (home-page "https://github.com/emberjs/data")
-    (license license:expat)))
-
-(define-public ruby-active-model-adapter-source
-  (package
-    (name "ruby-active-model-adapter-source")
-    (version "2.1.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri
-               "active-model-adapter-source"
-               version))
-        (sha256
-         (base32
-          "0hr8a4nyppnqs053i1badjwhm095scrp0x1w7v742r9s5sxp8pyd"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-ember-data-source" ,ruby-ember-data-source)))
-    (synopsis
-      "ember-data active-model-adapter code wrapper for use with Ruby libs.")
-    (description
-      "ember-data active-model-adapter code wrapper for use with Ruby libs.")
-    (home-page "https://github.com/ember-data/active-model-adapter")
-    (license license:expat)))
-
-(define-public ruby-ember-rails
-  (package
-    (name "ruby-ember-rails")
-    (version "0.21.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ember-rails" version))
-        (sha256
-         (base32
-          "0f1vd6l35d4q589sbmyxpjfs777kf0r5x6s6aap1v2r0i1x342a3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-active-model-adapter-source" ,ruby-active-model-adapter-source)
-       ("ruby-active-model-serializers" ,ruby-active-model-serializers)
-       ("ruby-ember-cli-assets" ,ruby-ember-cli-assets)
-       ("ruby-ember-data-source" ,ruby-ember-data-source)
-       ("ruby-ember-es6-template" ,ruby-ember-es6-template)
-       ("ruby-ember-handlebars-template" ,ruby-ember-handlebars-template)
-       ("ruby-ember-source" ,ruby-ember-source)
-       ("ruby-jquery-rails" ,ruby-jquery-rails)
-       ("ruby-railties" ,ruby-railties)))
-    (synopsis "Ember for Rails 3.1+")
-    (description "Ember for Rails 3.1+")
-    (home-page "https://github.com/emberjs/ember-rails")
-    (license license:expat)))
-
-(define-public ruby-handlebars-source
-  (package
-    (name "ruby-handlebars-source")
-    (version "4.7.7")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "handlebars-source" version))
-        (sha256
-         (base32
-          "0sjir1fwrqajkcc8blr32vnkamcqma8b0na6fm562hh9rdzcxb0c"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Handlebars.js source code wrapper for (pre)compilation gems.")
-    (description
-      "Handlebars.js source code wrapper for (pre)compilation gems.")
-    (home-page "https://github.com/wycats/handlebars.js/")
-    (license license:expat)))
-
-(define-public ruby-handlebars-source-4.1
-  (package
-    (inherit ruby-handlebars-source)
-    (name "ruby-handlebars-source")
-    (version "4.1.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "handlebars-source" version))
-        (sha256
-         (base32
-          "0w8xq7nnrwhz5bfcamkvkkcb10rw7kjb809n7w949mc5h0b4l8r5"))))))
-
-(define-public ruby-discourse-ember-rails
-  (package
-    (name "ruby-discourse-ember-rails")
-    (version "0.18.6")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "discourse-ember-rails" version))
-        (sha256
-         (base32
-          "0ax5x2d6q6hkm7r58ai9p0sahlg842aqlm7dpv6svrfpnjlaz7sf"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-active-model-serializers" ,ruby-active-model-serializers)
-       ("ruby-ember-data-source" ,ruby-ember-data-source)
-       ("ruby-ember-handlebars-template" ,ruby-ember-handlebars-template)
-       ("ruby-ember-source" ,ruby-ember-source)
-       ("ruby-jquery-rails" ,ruby-jquery-rails)
-       ("ruby-railties" ,ruby-railties)))
-    (synopsis "Ember for Rails 3.1+")
-    (description "Ember for Rails 3.1+")
-    (home-page "https://github.com/emberjs/ember-rails")
-    (license license:expat)))
-
-(define-public ruby-discourse-fonts
-  (package
-    (name "ruby-discourse-fonts")
-    (version "0.0.6")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "discourse-fonts" version))
-        (sha256
-         (base32
-          "101fhmgzrkwa8rvqrac3ccqp54aizm553n167ikzg7mcgbyrxw4a"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Bundle of fonts which can be used to customize the look of Discourse")
-    (description
-      "Bundle of fonts which can be used to customize the look of Discourse")
-    (home-page "https://github.com/discourse/discourse-fonts")
-    (license license:expat)))
-
-(define-public ruby-message-bus
-  (package
-    (name "ruby-message-bus")
-    (version "3.3.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "message_bus" version))
-        (sha256
-         (base32
-          "0hckijk9aa628nx66vr7axfsk7zfdkskaxj1mdzikk019q3h54fr"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; Tests require running redis instance.
-       #:test-target "default"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-rack" ,ruby-rack)))
-    (native-inputs
-     `(
-       ("ruby-byebug" ,ruby-byebug)
-       ("ruby-concurrent" ,ruby-concurrent)
-       ("ruby-http-parser.rb" ,ruby-http-parser.rb)
-       ("ruby-jasmine" ,ruby-jasmine)
-       ("ruby-minitest-global-expectations" ,ruby-minitest-global-expectations)
-       ("ruby-minitest-hooks" ,ruby-minitest-hooks)
-       ("ruby-pg" ,ruby-pg)
-       ("ruby-puma" ,ruby-puma)
-       ("ruby-rack-test" ,ruby-rack-test)
-       ("ruby-redis" ,ruby-redis)
-       ("ruby-rubocop-discourse" ,ruby-rubocop-discourse)
-       ("ruby-thin" ,ruby-thin)
-       ("ruby-yard" ,ruby-yard)
-       ))
-    (synopsis "Message bus for rack")
-    (description "This package provides a message bus for rack.")
-    (home-page "https://github.com/SamSaffron/message_bus")
-    (license license:expat)))
-
-(define-public ruby-phantomjs
-  (package
-    (name "ruby-phantomjs")
-    (version "2.1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "phantomjs" version))
-        (sha256
-         (base32
-          "0y8pbbyq9dirxb7igkb2s5limz2895qmr41c09fjhx6k6fxcz4mk"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; don't know how to build task 'test'
-    (synopsis
-      "Auto-install phantomjs on demand for current platform. Comes with poltergeist integration.")
-    (description
-      "Auto-install phantomjs on demand for current platform.  Comes with poltergeist integration.")
-    (home-page "https://github.com/colszowka/phantomjs-gem")
-    (license license:expat)))
-
-(define-public ruby-jasmine-core
-  (package
-    (name "ruby-jasmine-core")
-    (version "3.6.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "jasmine-core" version))
-        (sha256
-         (base32
-          "0072bf0l1y6gnqw3mm4mlq7ivs19lyzr074sjibpfvryi7b449r6"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.")
-    (description
-      "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.")
-    (home-page "http://jasmine.github.io")
-    (license license:expat)))
-
-(define-public ruby-jasmine
-  (package
-    (name "ruby-jasmine")
-    (version "3.6.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "jasmine" version))
-        (sha256
-         (base32
-          "1zbsr1d6507pvcfr3ji5hv0ksaaygi8jfp4dz1y1k1jdkkapy24b"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rpsec
-    (propagated-inputs
-     `(("ruby-jasmine-core" ,ruby-jasmine-core)
-       ("ruby-phantomjs" ,ruby-phantomjs)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-rake" ,ruby-rake)))
-    (synopsis
-      "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.")
-    (description
-      "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.")
-    (home-page "http://jasmine.github.io/")
-    (license license:expat)))
-
-(define-public ruby-rubocop-discourse
-  (package
-    (name "ruby-rubocop-discourse")
-    (version "2.4.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rubocop-discourse" version))
-        (sha256
-         (base32
-          "1z1h8spsjnsqz6c25n9ib1yimkwr7a76bas8w1k9c404hcqhlahv"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; don't know how to build task 'test'
-    (propagated-inputs
-     `(("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rubocop-rspec" ,ruby-rubocop-rspec)))
-    (synopsis
-      "Custom rubocop cops used by Discourse")
-    (description
-      "Custom rubocop cops used by Discourse")
-    (home-page "https://github.com/discourse/rubocop-discourse")
-    (license license:expat)))
-
-;; 2.1.0+ have ActiveRecord::ConnectionAdapters::ConnectionSpecification which causes failures
-(define-public ruby-rails-multisite
-  (package
-    (name "ruby-rails-multisite")
-    (version "2.0.7")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               ;; No tests included in release gem.
-               (url "https://github.com/discourse/rails_multisite")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1k6bvymilcg0mvaszc5g14f87p6bvbm911dv6g4sa3asfgw62cdp"))))
-    (build-system ruby-build-system)
-    (arguments
-     '(#:tests? #f))    ; tests not working with 2.0.7.
-    (propagated-inputs
-     `(("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-railties" ,ruby-railties)))
-    (native-inputs
-     `(("ruby-byebug" ,ruby-byebug)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-sqlite3" ,ruby-sqlite3-1.3)))
-    (synopsis "Multi tenancy support for Rails")
-    (description "This gem provides multi-db support for Rails applications.
-Using its middleware you can partition your app so each hostname has its own db.
-It provides a series of helper for working with multiple database, and some
-additional rails tasks for working with them.")
-    (home-page "https://github.com/discourse/rails_multisite")
-    (license license:expat)))
-
-(define-public ruby-fast-xs
-  (package
-    (name "ruby-fast-xs")
-    (version "0.8.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "fast_xs" version))
-        (sha256
-         (base32
-          "1iydzaqmvqq7ncxkr182aybkk6xap0cb2w9amr73vbdxi2qf3wjz"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; undefined method `url='
-    (propagated-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
-    (synopsis "Ruby extensions for escaping text")
-    (description
-     "@code{fast_xs} escapes text so it can be embedded more directly into XML
-and HTML without having to deal with character set issues.")
-    (home-page "http://fast-xs.rubyforge.org/")
-    (license license:expat)))
-
-(define-public ruby-xorcist
-  (package
-    (name "ruby-xorcist")
-    (version "1.1.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "xorcist" version))
-        (sha256
-         (base32
-          "1q7hr3qyn1hczv9fglqc2cbaax0fb37gjjr0y24x19mmp817csdn"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Blazing-fast-cross-platform-monkey-patch-free string XOR. Yes, that means JRuby too.")
-    (description
-      "Blazing-fast-cross-platform-monkey-patch-free string XOR.  Yes, that means JRuby too.")
-    (home-page "https://github.com/fny/xorcist")
-    (license license:expat)))
-
-(define-public ruby-fastimage
-  (package
-    (name "ruby-fastimage")
-    (version "2.2.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "fastimage" version))
-        (sha256
-         (base32
-          "1zgv6588jiaisgng3bkcf5a3rlia82yrs39g7n27jhmpmhgk8j1w"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "FastImage finds the size or type of an image given its uri by fetching as little as needed.")
-    (description
-      "FastImage finds the size or type of an image given its uri by fetching as little as needed.")
-    (home-page "https://github.com/sdsykes/fastimage")
-    (license license:expat)))
-
-(define-public ruby-progress
-  (package
-    (name "ruby-progress")
-    (version "3.5.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "progress" version))
-        (sha256
-         (base32
-          "1pm3bv5n8c8j0vfm7wghd7xf6yq4m068cksxjldmna11qi0h0s8s"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis "Show progress of long running tasks")
-    (description
-      "Show progress of long running tasks")
-    (home-page "https://github.com/toy/progress")
-    (license license:expat)))
-
-(define-public ruby-in-threads
-  (package
-    (name "ruby-in-threads")
-    (version "1.5.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "in_threads" version))
-        (sha256
-         (base32
-          "0m71806p1gm4kxiz4gvkyr8qip16hifn2kdf926jz44jj6kc6bbs"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Run all possible enumerable methods in concurrent/parallel threads")
-    (description
-      "Run all possible enumerable methods in concurrent/parallel threads")
-    (home-page "https://github.com/toy/in_threads")
-    (license license:expat)))
-
-(define-public ruby-image-size
-  (package
-    (name "ruby-image-size")
-    (version "2.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "image_size" version))
-        (sha256
-         (base32
-          "00irlgdpg67ay3wf5ljmphpdk6wc6khs6nhc5ysl5l10mmfi62p6"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Measure following file dimensions: apng, bmp, cur, gif, ico, j2c, jp2, jpeg, jpx, mng, pam, pbm, pcx, pgm, png, ppm, psd, svg, swf, tiff, webp, xbm, xpm")
-    (description
-      "Measure following file dimensions: apng, bmp, cur, gif, ico, j2c, jp2, jpeg, jpx, mng, pam, pbm, pcx, pgm, png, ppm, psd, svg, swf, tiff, webp, xbm, xpm")
-    (home-page "https://github.com/toy/image_size")
-    (license license:ruby)))
-
-(define-public ruby-image-size-1.5
-  (package
-    (inherit ruby-image-size)
-    (name "ruby-image-size")
-    (version "1.5.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "image_size" version))
-        (sha256
-         (base32
-          "0zrn2mqaf1kk548wn1y35i1a6kwh3320q62m929kn9m8sqpy4fk7"))))))
-
-(define-public ruby-fspath
-  (package
-    (name "ruby-fspath")
-    (version "3.1.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "fspath" version))
-        (sha256
-         (base32
-          "0xcxikkrjv8ws328nn5ax5pyfjs8pn7djg1hks7qyb3yp6prpb5m"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis "Better than Pathname")
-    (description "Better than Pathname")
-    (home-page "https://github.com/toy/fspath")
-    (license license:expat)))
-
-(define-public ruby-exifr
-  (package
-    (name "ruby-exifr")
-    (version "1.3.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "exifr" version))
-        (sha256
-         (base32
-          "0mylhwmh6n4xihxr9s3zj0lc286f5maxbqd4dgk3paqnd7afz88s"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; test files missing?
-    (synopsis
-      "EXIF Reader is a module to read EXIF from JPEG and TIFF images.")
-    (description
-      "EXIF Reader is a module to read EXIF from JPEG and TIFF images.")
-    (home-page "https://remvee.github.io/exifr/")
-    (license license:expat)))
-
-(define-public ruby-image-optim
-  (package
-    (name "ruby-image-optim")
-    (version "0.28.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "image_optim" version))
-        (sha256
-         (base32
-          "04n7xia22pr4ihzyf7bprnn630284cnfy2p3pk9q4b2cxaf5gj3s"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-exifr" ,ruby-exifr)
-       ("ruby-fspath" ,ruby-fspath)
-       ("ruby-image-size" ,ruby-image-size)
-       ("ruby-in-threads" ,ruby-in-threads)
-       ("ruby-progress" ,ruby-progress)))
-    (synopsis
-      "Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)")
-    (description
-      "Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)")
-    (home-page "https://github.com/toy/image_optim")
-    (license license:expat)))
-
-(define-public ruby-discourse-image-optim
-  (package
-    (name "ruby-discourse-image-optim")
-    (version "0.26.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "discourse_image_optim" version))
-        (sha256
-         (base32
-          "11nqmga5ygxyhjmsc07gsa0fwwyhdpwi20yyr4fnh263xs1xylvv"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-exifr" ,ruby-exifr)
-       ("ruby-fspath" ,ruby-fspath)
-       ("ruby-image-size" ,ruby-image-size-1.5)
-       ("ruby-in-threads" ,ruby-in-threads)
-       ("ruby-progress" ,ruby-progress)))
-    (synopsis
-      "Optimize (lossless compress, optionally lossy) images (jpeg, png, gif, svg) using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)")
-    (description
-      "Optimize (lossless compress, optionally lossy) images (jpeg, png, gif, svg) using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)")
-    (home-page "https://github.com/toy/discourse_image_optim")
-    (license license:expat)))
-
-(define-public ruby-omniauth-facebook
-  (package
-    (name "ruby-omniauth-facebook")
-    (version "8.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "omniauth-facebook" version))
-        (sha256
-         (base32
-          "1z0f5sr2ddnvfva0jrfd4926nlv4528rfj7z595288n39304r092"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-omniauth-oauth2" ,ruby-omniauth-oauth2)))
-    (native-inputs
-     `(("ruby-mocha" ,ruby-mocha)))
-    (synopsis "Facebook OAuth2 Strategy for OmniAuth")
-    (description
-      "Facebook OAuth2 Strategy for OmniAuth")
-    (home-page "https://github.com/simi/omniauth-facebook")
-    (license license:expat)))
-
-(define-public ruby-oauth
-  (package
-    (name "ruby-oauth")
-    (version "0.5.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "oauth" version))
-        (sha256
-         (base32
-          "1m08365nyp0fgw2iyzj8q8qy8zml0c1hw2dd8cp82pp6656ahbh3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis "OAuth Core Ruby implementation")
-    (description "OAuth Core Ruby implementation")
-    (home-page #f)
-    (license license:expat)))
-
-(define-public ruby-omniauth-oauth
-  (package
-    (name "ruby-omniauth-oauth")
-    (version "1.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "omniauth-oauth" version))
-        (sha256
-         (base32
-          "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rspec/core/rake_task
-    (propagated-inputs
-     `(("ruby-oauth" ,ruby-oauth)
-       ("ruby-omniauth" ,ruby-omniauth)))
-    (synopsis
-      "A generic OAuth (1.0/1.0a) strategy for OmniAuth.")
-    (description
-      "This package provides a generic OAuth (1.0/1.0a) strategy for OmniAuth.")
-    (home-page "https://github.com/intridea/omniauth-oauth")
-    (license license:expat)))
-
-(define-public ruby-omniauth-twitter
-  (package
-    (name "ruby-omniauth-twitter")
-    (version "1.4.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "omniauth-twitter" version))
-        (sha256
-         (base32
-          "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rspec/core/rake_task
-    (propagated-inputs
-     `(("ruby-omniauth-oauth" ,ruby-omniauth-oauth)
-       ("ruby-rack" ,ruby-rack)))
-    (synopsis "OmniAuth strategy for Twitter")
-    (description "OmniAuth strategy for Twitter")
-    (home-page "https://github.com/arunagw/omniauth-twitter")
-    (license license:expat)))
-
-(define-public ruby-omniauth-github
-  (package
-    (name "ruby-omniauth-github")
-    (version "2.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "omniauth-github" version))
-        (sha256
-         (base32
-          "0jc66zp4bhwy7c6s817ws0nkimski3crrhwd7xyy55ss29v6b8hw"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rspec/core/rake_task
-    (propagated-inputs
-     `(("ruby-omniauth" ,ruby-omniauth)
-       ("ruby-omniauth-oauth2" ,ruby-omniauth-oauth2)))
-    (synopsis "Official OmniAuth strategy for GitHub")
-    (description
-      "Official OmniAuth strategy for GitHub.")
-    (home-page "https://github.com/intridea/omniauth-github")
-    (license license:expat)))
-
-(define-public ruby-omniauth-google-oauth2
-  (package
-    (name "ruby-omniauth-google-oauth2")
-    (version "0.8.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "omniauth-google-oauth2" version))
-        (sha256
-         (base32
-          "10awaj2s3c46knpv9vawhjzbbaygp685dm9n8blq2d3j4w5m3d53"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rspec/core/rake_task
-    (propagated-inputs
-     `(("ruby-jwt" ,ruby-jwt)
-       ("ruby-oauth2" ,ruby-oauth2)
-       ("ruby-omniauth" ,ruby-omniauth)
-       ("ruby-omniauth-oauth2" ,ruby-omniauth-oauth2)))
-    (synopsis
-      "A Google OAuth2 strategy for OmniAuth 1.x. This allows you to login to Google with your ruby app.")
-    (description
-      "This package provides a Google OAuth2 strategy for OmniAuth 1.x.  This allows you to login to Google with your ruby app.")
-    (home-page "https://github.com/zquestz/omniauth-google-oauth2")
-    (license license:expat)))
-
-(define-public ruby-mini-sql
-  (package
-    (name "ruby-mini-sql")
-    (version "1.0.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mini_sql" version))
-        (sha256
-         (base32
-          "1a2s8n4nq3w86hx3ya7xs2fkzz8rp0kmz0zqzhf9r5rybprr702m"))))
-    (build-system ruby-build-system)
-    (synopsis
-      "A fast, safe, simple direct SQL executor for PG")
-    (description
-      "This package provides a fast, safe, simple direct SQL executor for PG")
-    (home-page "https://github.com/discourse/mini_sql")
-    (license license:expat)))
-
-(define-public ruby-rinku
-  (package
-    (name "ruby-rinku")
-    (version "2.0.6")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rinku" version))
-        (sha256
-         (base32
-          "0zcdha17s1wzxyc5814j6319wqg33jbn58pg6wmxpws36476fq4b"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rake/extensiontask
-    (synopsis
-      "    A fast and very smart autolinking library that
-    acts as a drop-in replacement for Rails `auto_link`
-")
-    (description
-      "    A fast and very smart autolinking library that
-    acts as a drop-in replacement for Rails `auto_link`
-")
-    (home-page "https://github.com/vmg/rinku")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-sidekiq
-  (package
-    (name "ruby-sidekiq")
-    (version "6.1.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "sidekiq" version))
-        (sha256
-         (base32
-          "0ir95jdcv7ch57xiirmy6mjh8z2lm39nnwcpkwcjqx5698w0lsvs"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- standard/rake
-    (propagated-inputs
-     `(("ruby-connection-pool" ,ruby-connection-pool)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-redis" ,ruby-redis)))
-    (synopsis
-      "Simple, efficient background processing for Ruby.")
-    (description
-      "Simple, efficient background processing for Ruby.")
-    (home-page "https://sidekiq.org")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-mini-scheduler
-  (package
-    (name "ruby-mini-scheduler")
-    (version "0.13.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mini_scheduler" version))
-        (sha256
-         (base32
-          "1cy9c2wv19m4h2sv9fs66hh1an7hq3y9513678dzx43vm3kjvhz5"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- rspec/core/rake_task
-    (propagated-inputs
-     `(("ruby-sidekiq" ,ruby-sidekiq)))
-    (synopsis "Adds recurring jobs for Sidekiq")
-    (description "Adds recurring jobs for Sidekiq")
-    (home-page "https://github.com/discourse/mini_scheduler")
-    (license license:expat)))
-
-;; TODO: This package needs fixing!
-(define-public ruby-libv8
-  (package
-    (name "ruby-libv8")
-    (version "8.4.255.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "libv8" version))
-        (sha256
-         (base32
-          "0317sr3nrl51sp844bps71smkrwim3fjn47wdfpbycixnbxspivm"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(
-       ;#:test-target "spec binary"
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           (assoc-ref %standard-phases 'check))
-         (add-after 'unpack 'adjust-version-requirements
-           (lambda _
-             (substitute* "libv8.gemspec"
-               (("rake-compiler.*") "rake-compiler'\n"))
-             #t))
-         (add-before 'build 'pre-build
-           (lambda _
-             (setenv "HOME" (getcwd))
-             ;(invoke "bundle" "install")   ; no network access
-             (invoke "bundle" "exec" "rake" "compile")
-             ))
-         )
-       ))
-    (native-inputs
-     `(
-       ("glib" ,(@ (gnu packages glib) glib))
-       ("pkg-config" ,(@ (gnu packages pkg-config) pkg-config))
-       ("python" ,python-2)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "Distributes the V8 JavaScript engine in binary and source forms in order to support fast builds of The Ruby Racer")
-    (description
-      "Distributes the V8 JavaScript engine in binary and source forms in order to support fast builds of The Ruby Racer")
-    (home-page "https://github.com/rubyjs/libv8")
-    (license license:expat)))
-
-(define-public ruby-libv8-7.3
-  (package
-    (name "ruby-libv8")
-    (version "7.3.492.27.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "libv8" version))
-        (sha256
-         (base32
-          "1jivcckillfvd4n2jnsnnlf93z3gpvqbwsczs0fvv9hc90zpj7yh"))))
-        ;(method git-fetch)
-        ;(uri (git-reference
-        ;       (url "https://github.com/rubyjs/libv8")
-        ;       (commit (string-append "v" version))
-        ;       (recursive? #t)))
-        ;(file-name (git-file-name name version))
-        ;(sha256
-        ; (base32
-        ;  "0sq026lxspglvnad2w3qiplcg8dc6ffj5130zm379yz7dncwgwdf"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(
-       #:tests? #f  ; no test target
-       #:gem-flags (list "--" "--with-system-v8"
-                         (string-append "--with-v8-dir=" (assoc-ref %build-inputs "libnode")))
-       #:phases
-       (modify-phases %standard-phases
-         ;(delete 'check)
-         ;(add-after 'install 'check
-         ;  (assoc-ref %standard-phases 'check))
-         ;(add-after 'unpack 'patch-source
-         ;  (lambda* (#:key inputs #:allow-other-keys)
-         ;    (copy-file (assoc-ref inputs "cipd-client")
-         ;               "vendor/depot_tools/.cipd_client")
-         ;    (invoke "ls" "vendor/depot_tools/" "-la")
-         ;    #t))
-         (replace 'replace-git-ls-files
-           (lambda _
-             (substitute* "libv8.gemspec"
-               ;(("git submodule.*`") "ls -d vendor/*`")
-               ;(("^\\s+submodules.*") "")
-               ;(("^\\s+end.*") "")
-               ;(("^\\s+s.files \\+=.*") "")
-               ;(("^\\s+`git.*") "")
-
-               ;(("',.*") "'\n")
-
-               (("`git ls-files`")  "`find . -type f`")
-               )
-             #t))
-         ;; Unconditionally clones v8 for compilation.
-         ;(delete 'build)
-         ;(add-before 'build 'pre-build
-         ;  (lambda _
-         ;    ;(setenv "HOME" (getcwd))
-         ;    (invoke "rake" "compile")
-         ;    ))
-         )
-       ))
-    (native-inputs
-     `(
-       ("glib" ,(@ (gnu packages glib) glib))
-       ;("llvm" ,(@ (gnu packages llvm) llvm))
-       ("pkg-config" ,(@ (gnu packages pkg-config) pkg-config))
-       ("python" ,python-2)
-       ;("ruby-rake" ,ruby-rake)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("which" ,(@ (gnu packages base) which))
-       ;("cipd-client"
-       ; ,(origin
-       ;    (method url-fetch)
-       ;    (uri "https://chrome-infra-packages.appspot.com/client?platform=linux-amd64&version=git_revision:bd09df254cc0d6ca4319f23c16b9039091be5b00")
-       ;    (file-name "ruby-libv8-cipd-client")
-       ;    (sha256
-       ;     (base32 "1wznd036rj7a6wpqdbbp0imlxqcv20iic1xhwg0rz7fp9x9zciz6"))))
-       ))
-    (inputs
-     `(
-       ("libnode" ,(@ (gnu packages node) libnode))
-       ))
-    (synopsis
-      "Distributes the V8 JavaScript engine in binary and source forms in order to support fast builds of The Ruby Racer")
-    (description
-      "Distributes the V8 JavaScript engine in binary and source forms in order to support fast builds of The Ruby Racer")
-    (home-page "https://github.com/rubyjs/libv8")
-    (license license:expat)))
-
-;; The last version of libv8 that can use system v8?
-(define-public ruby-libv8-6.3
-  (package
-    (name "ruby-libv8")
-    (version "6.3.292.48.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "libv8" version))
-        (sha256
-         (base32
-          "0fispdxscqnghahxhcb360lly25r7zsg695ygb8d79g4n03wx2js"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; no test target / can't find rake-compiler
-       #:gem-flags (list "--"
-                         "--with-system-v8"
-                         (string-append "--with-v8-dir="
-                                        (assoc-ref %build-inputs "libnode"))
-                         ;(string-append "--with-v8-include="
-                         ;               (assoc-ref %build-inputs "libnode")
-                         ;               "/include/node")
-                         )
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'replace-git-ls-files
-           (lambda _
-             (substitute* "libv8.gemspec"
-               (("`git ls-files`") "`find . -type f`"))
-             #t))
-         (add-after 'unpack 'patch-source
-           ;; v8.h includes <memory>, which breaks the autotools-like detection scripts
-           (lambda _
-             (substitute* "ext/libv8/location.rb"
-               ;((".*find_header, 'v8.h.*") ""))
-               ((".*find_header.*") ""))
-             #t))
-         (add-after 'install 'remove-depot-tools
-           (lambda* (#:key outputs #:allow-other-keys)
-             (delete-file-recursively
-               (string-append (assoc-ref outputs "out")
-                              "/lib/ruby/vendor_ruby/gems/libv8-"
-                              ,version "/vendor"))
-             #t)))))
-    (native-inputs
-     `(("ruby-rake" ,ruby-rake)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)))
-    (inputs
-     `(("libnode" ,(@ (gnu packages node) libnode))))
-    (synopsis "V8 JavaScript engine for The Ruby Racer")
-    (description
-     "This package provides a Ruby wrapper around the Javascript V8 engine.")
-    (home-page "https://github.com/rubyjs/libv8")
-    (license license:expat)))
-
-(define-public libv8-7.3
-  (package
-    (name "libv8")
-    (version "7.3.492.27")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://chromium.googlesource.com/v8/v8")
-               (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0y9awgbryap4z9kb9zhih4ri3kqkw7imxnjn3fzcm9mwzbj4wn0j"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'build
-           (lambda _
-             (substitute* ".gn"
-               ;; Files refered to seems to not exist in repository.
-               ((".*dotfile_settings.*") "")
-               ;((".*BUILDCONFIG.*") "")
-               )
-             ;(invoke "tools/dev/gm.py" "x64.release")
-             (invoke "gn" "gen" "out/x64" "--args is_debug=false target_cpu=\"x64\" v8_target_cpu=\"arm64\" use_goma=false")
-             ))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "tools/dev/gm.py" "x64.release.check"))
-             #t))
-         )
-       ))
-    (native-inputs
-     `(
-       ("gn" ,generate-ninja)
-       ;("python-gyp" ,python2-gyp)
-       ))
-    (synopsis "")
-    (description "")
-    (home-page "")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public generate-ninja   ; or 'gn'
-  (let ((commit "dfcbc6fed0a8352696f92d67ccad54048ad182b3")
-        (revision "1"))
-    (package
-      (name "generate-ninja")
-      (version (git-version "0.0.0" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://gn.googlesource.com/gn")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"))))
-      (build-system meson-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (replace 'configure
-             (lambda _
-               (setenv "CC" ,(cc-for-target))
-               (setenv "CXX" ,(cxx-for-target))
-               (substitute* "build/gen.py"
-                 (("      \\['git.*\\]")
-                  (string-append "      ['" (which "echo")
-                                 "', 'initial-commit-1111-g"
-                                 ,(string-take commit 10) "']")))
-               (invoke "python" "build/gen.py")
-               ;; This is an expected part of 'configure in the meson-build-system.
-               (chdir "out")
-               #t))
-           (delete 'patch-generated-file-shebangs)
-           (replace 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               (when tests?
-                 (invoke "./gn_unittests"))
-               #t))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (install-file "gn" (string-append out "/bin"))
-                 (install-file "../LICENSE"
-                               (string-append out "/share/doc/"
-                                              ,name "-" ,version))
-                 #t))))))
-      (native-inputs
-       `(("python" ,python-wrapper)))
-      (home-page "https://gn.googlesource.com/gn")
-      (synopsis "Meta-build system for ninja")
-      (description "Generate-Ninja, or GN, is a meta-build system that generates
-Ninja build files so that you can build your project with Ninja.  GN was,
-originally, part of the Chromium source tree, and has since been extracted into
-its own standalone repo.")
-      (license license:bsd-3))))
-
-(define-public ruby-mini-racer
-  (package
-    (name "ruby-mini-racer")
-    (version "0.3.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mini_racer" version))
-        (sha256
-         (base32
-          "0r7j241mvhyyc017bqgp0pvf3jyrwbcqvz2pzm0r8zn2r85ks1jl"))))
-    (build-system ruby-build-system)
-    (propagated-inputs `(("ruby-libv8" ,ruby-libv8)))
-    (synopsis "Minimal embedded v8 engine for Ruby")
-    (description
-      "Minimal embedded v8 engine for Ruby")
-    (home-page "https://github.com/discourse/mini_racer")
-    (license license:expat)))
-
-(define-public ruby-mini-racer-0.2
-  (package
-    (inherit ruby-mini-racer)
-    (version "0.2.15")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mini_racer" version))
-        (sha256
-         (base32
-          "1gm4lin39pj0xi9ip22ynafxhq9xn79fq4fspqhph6bqv02cyv6a"))))
-    (arguments
-     `(#:gem-flags (list "--" "--with-system-v8"
-                         ;(string-append "--with-v8-dir="
-                         ;               (assoc-ref %build-inputs "libnode"))
-                         (string-append "--with-v8-include="
-                                        (assoc-ref %build-inputs "libnode")
-                                        "/include/node")
-                         )
-       ))
-    (propagated-inputs
-     `(
-       ("ruby-libv8" ,ruby-libv8-7.3)
-       ))
-    (inputs
-     `(("libnode" ,(@ (gnu packages node) libnode))))
-    (native-inputs
-     `(
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ))
-    ))
-
-;; The last version which uses ruby-libv8@6.3
-(define-public ruby-mini-racer-0.2.4
-  (package
-    (inherit ruby-mini-racer)
-    (version "0.2.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mini_racer" version))
-        (sha256
-         (base32
-          "1c3a61l805slbvqscmc2wbv6bvw37gs2dchyhbfql178mnb7vnwg"))))
-    (arguments
-     `(#:gem-flags
-       (list "--"
-             ;; Include the correct lib directory and then fake
-             ;; linking to '-llibnode' / '-lv8'.
-             (string-append "--with-v8-lib="
-                            (assoc-ref %build-inputs "libnode")
-                            "/lib")
-             "--with-v8lib=ruby"
-             (string-append "--with-v8-include="
-                            (assoc-ref %build-inputs "libnode")
-                            "/include/node"))))
-    (propagated-inputs
-     `(("ruby-libv8" ,ruby-libv8-6.3)))
-    (inputs
-     `(("libnode" ,(@ (gnu packages node) libnode))))
-    (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)))))
-
-(define-public ruby-uglifier
-  (package
-    (name "ruby-uglifier")
-    (version "4.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "uglifier" version))
-        (sha256
-         (base32
-          "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Tests not included in gem
-    (propagated-inputs
-     `(("ruby-execjs" ,ruby-execjs)))
-    (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
-    (synopsis
-      "Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby")
-    (description
-      "Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby")
-    (home-page "https://github.com/lautis/uglifier")
-    (license license:expat)))
-
-(define-public ruby-fast-blank
-  (package
-    (name "ruby-fast-blank")
-    (version "1.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "fast_blank" version))
-        (sha256
-         (base32
-          "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "Provides a C-optimized method for determining if a string is blank")
-    (description
-      "This package provides a C-optimized method for determining if a string is blank")
-    (home-page "https://github.com/SamSaffron/fast_blank")
-    (license license:expat)))
-
-(define-public ruby-lru-redux
-  (package
-    (name "ruby-lru-redux")
-    (version "1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "lru_redux" version))
-        (sha256
-         (base32
-          "1yxghzg7476sivz8yyr9nkak2dlbls0b89vc2kg52k0nmg6d0wgf"))))
-    (build-system ruby-build-system)
-    (native-inputs
-     `(("ruby-timecop" ,ruby-timecop)))
-    (synopsis
-      "An efficient implementation of an lru cache")
-    (description
-      "An efficient implementation of an lru cache")
-    (home-page "https://github.com/SamSaffron/lru_redux")
-    (license license:expat)))
-
-(define-public ruby-rack-mini-profiler
-  (package
-    (name "ruby-rack-mini-profiler")
-    (version "2.3.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rack-mini-profiler" version))
-        (sha256
-         (base32
-          "1zir2lf9vc6h98gly4qmsd2gdvly4pn8576pl9kzx7i9j4v54ysh"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-rack" ,ruby-rack)))
-    (synopsis
-      "Profiling toolkit for Rack applications with Rails integration. Client Side profiling, DB profiling and Server profiling.")
-    (description
-      "Profiling toolkit for Rack applications with Rails integration.  Client Side profiling, DB profiling and Server profiling.")
-    (home-page "https://miniprofiler.com")
-    (license license:expat)))
-
-(define-public ruby-logster
-  (package
-    (name "ruby-logster")
-    (version "2.9.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "logster" version))
-        (sha256
-         (base32
-          "1r0s6y2gh81vsajnc1ny5k9lv9zdm7667v4b3kh2w0w4v82kiiw1"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; TODO: only disable network tests
-    (native-inputs
-     `(
-       ("ruby-byebug" ,ruby-byebug)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-redis" ,ruby-redis)
-       ("ruby-timecop" ,ruby-timecop)
-       ))
-    (synopsis "UI for viewing logs in Rack")
-    (description "UI for viewing logs in Rack")
-    (home-page "https://github.com/discourse/logster")
-    (license license:expat)))
-
-(define-public ruby-rqrcode-core
-  (package
-    (name "ruby-rqrcode-core")
-    (version "0.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rqrcode_core" version))
-        (sha256
-         (base32
-          "00kqasqja8zyzqvlgiwd9r0wndqk01qk5j68a8lhlz4ayrd4qy0y"))))
-    (build-system ruby-build-system)
-    (synopsis
-      "rqrcode_core is a Ruby library for encoding QR Codes. The simple
-interface (with no runtime dependencies) allows you to create QR Code data structures.
-")
-    (description
-      "rqrcode_core is a Ruby library for encoding QR Codes.  The simple
-interface (with no runtime dependencies) allows you to create QR Code data structures.
-")
-    (home-page "https://github.com/whomwah/rqrcode_core")
-    (license license:expat)))
-
-(define-public ruby-rqrcode
-  (package
-    (name "ruby-rqrcode")
-    (version "1.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rqrcode" version))
-        (sha256
-         (base32
-          "0f1cv9a9sjqc898qm3h7zmkhwglrjw5blsskbg3gsaws01d4bc47"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-chunky-png" ,ruby-chunky-png)
-       ("ruby-rqrcode-core" ,ruby-rqrcode-core)))
-    (synopsis
-      "rqrcode is a library for encoding QR Codes. The simple
-interface allows you to create QR Code data structures
-and then render them in the way you choose.
-")
-    (description
-      "rqrcode is a library for encoding QR Codes.  The simple
-interface allows you to create QR Code data structures
-and then render them in the way you choose.
-")
-    (home-page "https://github.com/whomwah/rqrcode")
-    (license license:expat)))
-
-(define-public ruby-sqlite3-1.3
-  (package
-    (inherit ruby-sqlite3)
-    (name "ruby-sqlite3")
-    (version "1.3.13")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "sqlite3" version))
-        (sha256
-         (base32
-          "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i"))))))
-
-(define-public ruby-bbcode-to-md
-  (let ((commit "3b9aaf2b634704a415788c94f7dee93a81f616b5")
-           (revision "1"))
-    (package
-      (name "ruby-bbcode-to-md")
-      (version (git-version "0.0.15" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/nlalonde/ruby-bbcode-to-md")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "1c173jr1y4z7vxk7cshh17mjdkq8d690zzs3kc76j2wbvfbmcpcp"))))
-      (build-system ruby-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-source
-             (lambda _
-               (delete-file "Gemfile.lock")
-               #t)))))
-      (propagated-inputs
-       `(("ruby-activesupport" ,ruby-activesupport)))
-      (native-inputs
-       `(("ruby-pry" ,ruby-pry)))
-      (synopsis
-        "Convert BBCode to Markdown and check whether the BBCode is valid.")
-      (description
-        "Convert BBCode to Markdown and check whether the BBCode is valid.")
-      (home-page "https://github.com/rikkit/ruby-bbcode-to-md")
-      (license license:expat))))
-
-(define-public ruby-tiny-tds
-  (package
-    (name "ruby-tiny-tds")
-    (version "2.1.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "tiny_tds" version))
-        (sha256
-         (base32
-          "0hy3kbcb6nwydy312rhjm4b30yavmayszzzyjpfdv6p0s8d9mfvb"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; File does not exist: tiny_tds/tiny_tds
-    (inputs
-     `(("freetds" ,freetds)))
-    (native-inputs
-     `(("ruby-connection-pool" ,ruby-connection-pool)
-       ("ruby-mini-portile" ,ruby-mini-portile-2)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rake-compiler-dock" ,ruby-rake-compiler-dock)))
-    (synopsis
-      "TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library. Developed for the ActiveRecord SQL Server adapter.")
-    (description
-      "TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.  Developed for the ActiveRecord SQL Server adapter.")
-    (home-page "https://github.com/rails-sqlserver/tiny_tds")
-    (license license:expat)))
-
-(define-public ruby-csv
-  (package
-    (name "ruby-csv")
-    (version "3.1.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "csv" version))
-        (sha256
-         (base32
-          "07mgyalwdxaxnff86j5p6n5szmhqz7nrlkb40826mzggrmva8v1m"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "The CSV library provides a complete interface to CSV files and data. It offers tools to enable you to read and write to and from Strings or IO objects, as needed.")
-    (description
-      "The CSV library provides a complete interface to CSV files and data.  It offers tools to enable you to read and write to and from Strings or IO objects, as needed.")
-    (home-page "https://github.com/ruby/csv")
-    (license (list (license:non-copyleft "will fill in later")
-                   (license:non-copyleft "will fill in later")))))
-
-(define-public ruby-maxminddb
-  (package
-    (name "ruby-maxminddb")
-    (version "0.1.22")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "maxminddb" version))
-        (sha256
-         (base32
-          "0zlhqilyggiryywgswfi624bv10qnkm66hggmg79vvgv73j3p4sh"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; don't how how to build task 'test'
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-its" ,ruby-rspec-its)
-       ))
-    (synopsis
-      "Pure Ruby MaxMind DB (GeoIP2) binary file reader.")
-    (description
-      "Pure Ruby MaxMind DB (GeoIP2) binary file reader.")
-    (home-page "https://github.com/yhirose/maxminddb")
-    (license license:expat)))
-
-(define-public ruby-codeclimate-test-reporter
-  (package
-    (name "ruby-codeclimate-test-reporter")
-    (version "1.0.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri
-               "codeclimate-test-reporter"
-               version))
-        (sha256
-         (base32
-          "1hq1f9c3f9lh0wr0apccgl6w1q2w39q93raagg50kchi7zp288cm"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-simplecov" ,ruby-simplecov-0.13)))
-    (synopsis
-      "Collects test coverage data from your Ruby test suite and sends it to Code Climate's hosted, automated code review service. Based on SimpleCov.")
-    (description
-      "Collects test coverage data from your Ruby test suite and sends it to Code Climate's hosted, automated code review service.  Based on SimpleCov.")
-    (home-page "https://github.com/codeclimate/ruby-test-reporter")
-    (license license:expat)))
-
-(define-public ruby-simplecov-0.13
-  (package
-    (inherit ruby-simplecov)
-    (name "ruby-simplecov")
-    (version "0.13.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "simplecov" version))
-        (sha256
-         (base32
-          "1r46dxq6r5rc7mgfb4w68qsm27w4qrp9kwjpssch9d5ngr12g0n7"))))))
-
-(define-public ruby-kaminari-activerecord
-  (package
-    (name "ruby-kaminari-activerecord")
-    (version "1.2.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "kaminari-activerecord" version))
-        (sha256
-         (base32
-          "02n5xxv6ilh39q2m6vcz7qrdai7ghk3s178dw6f0b3lavwyq49w3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-kaminari-core" ,ruby-kaminari-core)))
-    (synopsis
-      "kaminari-activerecord lets your Active Record models be paginatable")
-    (description
-      "kaminari-activerecord lets your Active Record models be paginatable")
-    (home-page "https://github.com/kaminari/kaminari")
-    (license license:expat)))
-
-(define-public ruby-kaminari-core
-  (package
-    (name "ruby-kaminari-core")
-    (version "1.2.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "kaminari-core" version))
-        (sha256
-         (base32
-          "0h04cr4y1jfn81gxy439vmczifghc2cvsyw47aa32is5bbxg1wlz"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "kaminari-core includes pagination logic independent from ORMs and view libraries")
-    (description
-      "kaminari-core includes pagination logic independent from ORMs and view libraries")
-    (home-page "https://github.com/kaminari/kaminari")
-    (license license:expat)))
-
-(define-public ruby-kaminari-actionview
-  (package
-    (name "ruby-kaminari-actionview")
-    (version "1.2.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "kaminari-actionview" version))
-        (sha256
-         (base32
-          "0w0p1hyv6lgf6h036cmn2kbkdv4x7g0g9q9kc5gzkpz7amlxr8ri"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-actionview" ,ruby-actionview)
-       ("ruby-kaminari-core" ,ruby-kaminari-core)))
-    (synopsis
-      "kaminari-actionview provides pagination helpers for your Action View templates")
-    (description
-      "kaminari-actionview provides pagination helpers for your Action View templates")
-    (home-page "https://github.com/kaminari/kaminari")
-    (license license:expat)))
-
-(define-public ruby-kaminari
-  (package
-    (name "ruby-kaminari")
-    (version "1.2.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "kaminari" version))
-        (sha256
-         (base32
-          "1vxkqciny5v4jgmjxl8qrgbmig2cij2iskqbwh4bfcmpxf467ch3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; cannot load such file -- kaminari
-    (propagated-inputs
-      `(("ruby-activesupport" ,ruby-activesupport)
-        ("ruby-kaminari-actionview" ,ruby-kaminari-actionview)
-        ("ruby-kaminari-activerecord" ,ruby-kaminari-activerecord)
-        ("ruby-kaminari-core" ,ruby-kaminari-core)))
-    (synopsis
-      "Kaminari is a Scope & Engine based, clean, powerful, agnostic, customizable and sophisticated paginator for Rails 4+")
-    (description
-      "Kaminari is a Scope & Engine based, clean, powerful, agnostic, customizable and sophisticated paginator for Rails 4+")
-    (home-page "https://github.com/kaminari/kaminari")
-    (license license:expat)))
-
-;; TODO? Replace ruby-kaminari-* inputs with correct version?
-(define-public ruby-will-paginate
-  (package
-    (name "ruby-will-paginate")
-    (version "3.3.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "will_paginate" version))
-        (sha256
-         (base32
-          "10qk4mf3rfc0vr26j0ba6vcz7407rdjfn13ph690pkzr94rv8bay"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis
-      "will_paginate provides a simple API for performing paginated queries with Active Record, DataMapper and Sequel, and includes helpers for rendering pagination links in Rails, Sinatra, Hanami, and Merb web apps.")
-    (description
-      "will_paginate provides a simple API for performing paginated queries with Active Record, DataMapper and Sequel, and includes helpers for rendering pagination links in Rails, Sinatra, Hanami, and Merb web apps.")
-    (home-page "https://github.com/mislav/will_paginate")
-    (license license:expat)))
-
-(define-public ruby-rack-accept
-  (package
-    (name "ruby-rack-accept")
-    (version "0.4.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rack-accept" version))
-        (sha256
-         (base32
-          "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936"))))
-    (build-system ruby-build-system)
-    (propagated-inputs `(("ruby-rack" ,ruby-rack)))
-    (synopsis
-      "HTTP Accept, Accept-Charset, Accept-Encoding, and Accept-Language for Ruby/Rack")
-    (description
-      "HTTP Accept, Accept-Charset, Accept-Encoding, and Accept-Language for Ruby/Rack")
-    (home-page "http://mjijackson.github.com/rack-accept")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-mustermann-grape
-  (package
-    (name "ruby-mustermann-grape")
-    (version "1.0.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mustermann-grape" version))
-        (sha256
-         (base32
-          "0djlbi7nh161a5mwjdm1ya4hc6lyzc493ah48gn37gk6vyri5kh0"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; You must use Bundler 2 or greater with this lockfile.
-    (propagated-inputs
-     `(("ruby-mustermann" ,ruby-mustermann)))
-    (synopsis
-      "Adds Grape style patterns to Mustermman")
-    (description
-      "Adds Grape style patterns to Mustermman")
-    (home-page "https://github.com/ruby-grape/mustermann-grape")
-    (license license:expat)))
-
-(define-public ruby-dry-logic
-  (package
-    (name "ruby-dry-logic")
-    (version "1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "dry-logic" version))
-        (sha256
-         (base32
-          "17dnc3g9y2nj42rdx2bdvsvvms10vgw4qzjb2iw2gln9hj8b797c"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-concurrent-ruby" ,ruby-concurrent)
-       ("ruby-dry-core" ,ruby-dry-core)))
-    (synopsis
-      "Predicate logic with rule composition")
-    (description
-      "Predicate logic with rule composition")
-    (home-page "https://dry-rb.org/gems/dry-logic")
-    (license license:expat)))
-
-(define-public ruby-dry-inflector
-  (package
-    (name "ruby-dry-inflector")
-    (version "0.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "dry-inflector" version))
-        (sha256
-         (base32
-          "17mkdwglqsd9fg272y3zms7rixjgkb1km1xcb88ir5lxvk1jkky7"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (synopsis "String inflections for dry-rb")
-    (description "String inflections for dry-rb")
-    (home-page "https://dry-rb.org")
-    (license license:expat)))
-
-(define-public ruby-dry-core
-  (package
-    (name "ruby-dry-core")
-    (version "0.5.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "dry-core" version))
-        (sha256
-         (base32
-          "14s45hxcqpp2mbvwlwzn018i8qhcjzgkirigdrv31jd741rpgy9s"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-concurrent-ruby" ,ruby-concurrent)))
-    (synopsis
-      "A toolset of small support modules used throughout the dry-rb ecosystem")
-    (description
-      "This package provides a toolset of small support modules used throughout the dry-rb ecosystem")
-    (home-page "https://dry-rb.org/gems/dry-core")
-    (license license:expat)))
-
-(define-public ruby-dry-configurable
-  (package
-    (name "ruby-dry-configurable")
-    (version "0.12.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "dry-configurable" version))
-        (sha256
-         (base32
-          "1fxr1352sgjbyk85qh4nfj974czw5b3rqjnl71q9p8v8fxrl6ln3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-concurrent-ruby" ,ruby-concurrent)
-       ("ruby-dry-core" ,ruby-dry-core)))
-    (synopsis
-      "A mixin to add configuration functionality to your classes")
-    (description
-      "This package provides a mixin to add configuration functionality to your classes")
-    (home-page "https://dry-rb.org/gems/dry-configurable")
-    (license license:expat)))
-
-(define-public ruby-dry-container
-  (package
-    (name "ruby-dry-container")
-    (version "0.7.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "dry-container" version))
-        (sha256
-         (base32
-          "1npnhs3x2xcwwijpys5c8rpcvymrlab0y8806nr4h425ld5q4wd0"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-concurrent-ruby" ,ruby-concurrent)
-       ("ruby-dry-configurable" ,ruby-dry-configurable)))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "A simple container intended for use as an IoC container")
-    (description
-      "This package provides a simple container intended for use as an IoC container")
-    (home-page "https://github.com/dry-rb/dry-container")
-    (license license:expat)))
-
-(define-public ruby-dry-types
-  (package
-    (name "ruby-dry-types")
-    (version "1.5.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "dry-types" version))
-        (sha256
-         (base32
-          "1gv0s396lzxlr882qgwi90462wn6f99wq6g0y204r94i3yfh1lvd"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-concurrent-ruby" ,ruby-concurrent)
-       ("ruby-dry-container" ,ruby-dry-container)
-       ("ruby-dry-core" ,ruby-dry-core)
-       ("ruby-dry-inflector" ,ruby-dry-inflector)
-       ("ruby-dry-logic" ,ruby-dry-logic)))
-    (synopsis
-      "Type system for Ruby supporting coercions, constraints and complex types like structs, value objects, enums etc")
-    (description
-      "Type system for Ruby supporting coercions, constraints and complex types like structs, value objects, enums etc")
-    (home-page "https://dry-rb.org/gems/dry-types")
-    (license license:expat)))
-
-(define-public ruby-grape
-  (package
-    (name "ruby-grape")
-    (version "1.5.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "grape" version))
-        (sha256
-         (base32
-          "0adf01kihxbmh8q84r6zyfgdmpbyb0lwcar3fi8j6bl6qcsbgwqx"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile found
-    (propagated-inputs
-     `(("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-builder" ,ruby-builder)
-       ("ruby-dry-types" ,ruby-dry-types)
-       ("ruby-mustermann-grape" ,ruby-mustermann-grape)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-rack-accept" ,ruby-rack-accept)))
-    (synopsis
-      "A Ruby framework for rapid API development with great conventions.")
-    (description
-      "This package provides a Ruby framework for rapid API development with great conventions.")
-    (home-page "https://github.com/ruby-grape/grape")
-    (license license:expat)))
-
-(define-public ruby-allocation-stats
-  (package
-    (name "ruby-allocation-stats")
-    (version "0.1.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "allocation_stats" version))
-        (sha256
-         (base32
-          "00xrlbprgnval73s0na9365zd6qapr260cgqww4d7l3ir0wb56yb"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; TODO: fix tests
-       #:test-target "spec"))
-    (native-inputs
-     `(
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-yajl-ruby" ,ruby-yajl-ruby)
-       ("ruby-yard" ,ruby-yard)
-       ))
-    (synopsis
-      "Tooling for tracing object allocations in Ruby 2.1")
-    (description
-      "Tooling for tracing object allocations in Ruby 2.1")
-    (home-page "https://github.com/srawlins/allocation_stats")
-    (license license:asl2.0)))
-
-(define-public ruby-fakeweb
-  (package
-    (name "ruby-fakeweb")
-    (version "1.3.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "fakeweb" version))
-        (sha256
-         (base32
-          "1a09z9nb369bvwpghncgd5y4f95lh28w0q258srh02h22fz9dj8y"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; File does not exist: samuel/net_http
-    (native-inputs
-     `(
-       ;("ruby-jeweler" ,ruby-jeweler)
-       ("ruby-mocha" ,ruby-mocha)
-       ;("ruby-rcov" ,ruby-rcov)
-       ("ruby-sdoc" ,ruby-sdoc)
-       ))
-    (synopsis
-      "FakeWeb is a helper for faking web requests in Ruby. It works at a global level, without modifying code or writing extensive stubs.")
-    (description
-      "FakeWeb is a helper for faking web requests in Ruby.  It works at a global level, without modifying code or writing extensive stubs.")
-    (home-page "http://github.com/chrisk/fakeweb")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-simple-oauth
-  (package
-    (name "ruby-simple-oauth")
-    (version "0.3.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "simple_oauth" version))
-        (sha256
-         (base32
-          "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l"))))
-    (build-system ruby-build-system)
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-yardstick" ,ruby-yardstick)
-       ))
-    (synopsis "Build and verify OAuth headers")
-    (description
-      "Simply builds and verifies OAuth headers")
-    (home-page "https://github.com/laserlemon/simple_oauth")
-    (license license:expat)))
-
-(define-public ruby-naught
-  (package
-    (name "ruby-naught")
-    (version "1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "naught" version))
-        (sha256
-         (base32
-          "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (native-inputs
-     `(("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
-    (synopsis "Toolkit for building Null Objects")
-    (description "Naught is a toolkit for building Null Objects.")
-    (home-page "https://github.com/avdi/naught")
-    (license license:expat)))
-
-(define-public ruby-memoizable
-  (package
-    (name "ruby-memoizable")
-    (version "0.4.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "memoizable" version))
-        (sha256
-         (base32
-          "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-thread-safe" ,ruby-thread-safe)))
-    (native-inputs
-     `(("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
-    (synopsis "Memoize method return values")
-    (description "Memoize method return values")
-    (home-page "https://github.com/dkubb/memoizable")
-    (license license:expat)))
-
-(define-public ruby-ffi-compiler
-  (package
-    (name "ruby-ffi-compiler")
-    (version "1.0.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ffi-compiler" version))
-        (sha256
-         (base32
-          "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; LoadError: cannot load such file -- rubygems/tasks
-    (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)
-       ("ruby-rake" ,ruby-rake)))
-    (synopsis "Ruby FFI library")
-    (description "Ruby FFI library")
-    (home-page "http://wiki.github.com/ffi/ffi")
-    (license license:asl2.0)))
-
-(define-public ruby-http-parser
-  (package
-    (name "ruby-http-parser")
-    (version "1.2.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "http-parser" version))
-        (sha256
-         (base32
-          "18qqvckvqjffh88hfib6c8pl9qwk9gp89w89hl3f2s1x8hgyqka1"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'pre-build
-           (lambda _
-             (invoke "rake" "compile"))))))
-    (propagated-inputs
-     `(("ruby-ffi-compiler" ,ruby-ffi-compiler)))
-    (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
-    (synopsis "Http parser for Ruby")
-    (description
-      "    A super fast http parser for ruby.
-    Cross platform and multiple ruby implementation support thanks to ffi.
-")
-    (home-page "https://github.com/cotag/http-parser")
-    (license license:expat)))
-
-(define-public ruby-http-form-data
-  (package
-    (name "ruby-http-form-data")
-    (version "2.3.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "http-form_data" version))
-        (sha256
-         (base32
-          "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (native-inputs
-     `(("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-guard" ,ruby-guard)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
-    (synopsis
-      "Utility-belt to build form data request bodies. Provides support for `application/x-www-form-urlencoded` and `multipart/form-data` types.")
-    (description
-      "Utility-belt to build form data request bodies.  Provides support for `application/x-www-form-urlencoded` and `multipart/form-data` types.")
-    (home-page "https://github.com/httprb/form_data.rb")
-    (license license:expat)))
-
-(define-public ruby-http
-  (package
-    (name "ruby-http")
-    (version "4.4.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "http" version))
-        (sha256
-         (base32
-          "0z8vmvnkrllkpzsxi94284di9r63g9v561a16an35izwak8g245y"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"
-       ;; A bunch of tests require network access. Should we borrow Debain's patches?
-       #:tests? #f))
-    (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)
-       ("ruby-http-cookie" ,ruby-http-cookie)
-       ("ruby-http-form-data" ,ruby-http-form-data)
-       ("ruby-http-parser" ,ruby-http-parser)))
-    (native-inputs
-     `(("ruby-certificate-authority" ,ruby-certificate-authority)
-       ("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-its" ,ruby-rspec-its)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-yardstick" ,ruby-yardstick)))
-    (synopsis "Client library for making requests from Ruby")
-    (description "This package provides a client library for making requests
-from Ruby.  It uses a simple method chaining system for building requests,
-similar to Python's Requests.")
-    (home-page "https://github.com/httprb/http")
-    (license license:expat)))
-
-(define-public ruby-equalizer
-  (package
-    (name "ruby-equalizer")
-    (version "0.0.11")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "equalizer" version))
-        (sha256
-         (base32
-          "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Prevent cycle with ruby-devtools.
-    (synopsis
-      "Module to define equality, equivalence and inspection methods")
-    (description
-      "Module to define equality, equivalence and inspection methods")
-    (home-page "https://github.com/dkubb/equalizer")
-    (license license:expat)))
-
-(define-public ruby-buftok
-  (package
-    (name "ruby-buftok")
-    (version "0.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "buftok" version))
-        (sha256
-         (base32
-          "1rzsy1vy50v55x9z0nivf23y0r9jkmq6i130xa75pq9i8qrn1mxs"))))
-    (build-system ruby-build-system)
-    (synopsis
-      "BufferedTokenizer extracts token delimited entities from a sequence of arbitrary inputs")
-    (description
-      "BufferedTokenizer extracts token delimited entities from a sequence of arbitrary inputs")
-    (home-page "https://github.com/sferik/buftok")
-    (license license:expat)))
-
-(define-public ruby-twitter
-  (package
-    (name "ruby-twitter")
-    (version "7.0.0")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/sferik/twitter")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "057d3wg3850r7xyhb5xv8xgxv7qra31ic0m317mwi2n5w1p4n480"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)
-       ("ruby-buftok" ,ruby-buftok)
-       ("ruby-equalizer" ,ruby-equalizer)
-       ("ruby-http" ,ruby-http)
-       ("ruby-http-form-data" ,ruby-http-form-data)
-       ("ruby-http-parser.rb" ,ruby-http-parser.rb)
-       ("ruby-memoizable" ,ruby-memoizable)
-       ("ruby-multipart-post" ,ruby-multipart-post)
-       ("ruby-naught" ,ruby-naught)
-       ("ruby-simple-oauth" ,ruby-simple-oauth)))
-    (native-inputs
-     `(("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-timecop" ,ruby-timecop)
-       ("ruby-webmock" ,ruby-webmock)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-yardstick" ,ruby-yardstick)))
-    (synopsis "Ruby interface to the Twitter API")
-    (description "This package provides a Ruby interface to the Twitter API.")
-    (home-page "https://sferik.github.io/twitter/")
-    (license license:expat)))
-
-(define-public ruby-yardstick
-  (package
-    (name "ruby-yardstick")
-    (version "0.9.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "yardstick" version))
-        (sha256
-         (base32
-          "0vn0br8x0n7b9i2raz79g480cn711zichs8rvijb3h1pk9m1d6n3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Prevent cycle with ruby-devtools.
-    (propagated-inputs
-     `(("ruby-yard" ,ruby-yard)))
-    (synopsis "Measure YARD documentation coverage")
-    (description
-      "Measure YARD documentation coverage")
-    (home-page "https://github.com/dkubb/yardstick")
-    (license license:expat)))
-
-(define-public ruby-kwalify
-  (package
-    (name "ruby-kwalify")
-    (version "0.7.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "kwalify" version))
-        (sha256
-         (base32
-          "1ngxg3ysq5vip9dn3d32ajc7ly61kdin86hfycm1hkrcvkkn1vjf"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; old package is old
-    (synopsis
-      "   Kwalify is a parser, schema validator, and data binding tool for YAML and JSON.
-")
-    (description
-      "   Kwalify is a parser, schema validator, and data binding tool for YAML and JSON.
-")
-    (home-page "http://www.kuwata-lab.com/kwalify/")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-reek
-  (package
-    (name "ruby-reek")
-    (version "6.0.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "reek" version))
-        (sha256
-         (base32
-          "1zlfvj1dh064y119sfz9w3rkj3d9qkwm1k6dkcjymr6cwj6cqqp2"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; needs aruba ~> 1.0
-    (propagated-inputs
-     `(("ruby-kwalify" ,ruby-kwalify)
-       ("ruby-parser" ,ruby-parser)
-       ("ruby-psych" ,ruby-psych)
-       ("ruby-rainbow" ,ruby-rainbow)))
-    (native-inputs
-     `(
-       ("ruby-aruba" ,ruby-aruba)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "Reek is a tool that examines Ruby classes, modules and methods and reports any code smells it finds.")
-    (description
-      "Reek is a tool that examines Ruby classes, modules and methods and reports any code smells it finds.")
-    (home-page "https://github.com/troessner/reek")
-    (license license:expat)))
-
-(define-public ruby-procto
-  (package
-    (name "ruby-procto")
-    (version "0.0.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "procto" version))
-        (sha256
-         (base32
-          "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Break dependency cycle with ruby-devtools.
-    (synopsis
-      "Turns your object into a method object")
-    (description
-      "Turns your object into a method object")
-    (home-page "https://github.com/snusnu/procto")
-    (license license:expat)))
-
-(define-public ruby-flog
-  (package
-    (name "ruby-flog")
-    (version "4.6.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "flog" version))
-        (sha256
-         (base32
-          "0qy7s5q450wbc78av8h0w8inrdz46vp4rqnm5ikpsnh7dilh7amm"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-path-expander" ,ruby-path-expander)
-       ("ruby-ruby-parser" ,ruby-ruby-parser)
-       ("ruby-sexp-processor" ,ruby-sexp-processor)))
-    (native-inputs
-     `(
-       ("ruby-hoe" ,ruby-hoe)
-       ))
-    (synopsis
-      "Flog reports the most tortured code in an easy to read pain
-report. The higher the score, the more pain the code is in.")
-    (description
-      "Flog reports the most tortured code in an easy to read pain
-report.  The higher the score, the more pain the code is in.")
-    (home-page "http://ruby.sadi.st/")
-    (license license:expat)))
-
-(define-public ruby-path-expander
-  (package
-    (name "ruby-path-expander")
-    (version "1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "path_expander" version))
-        (sha256
-         (base32
-          "1l40n8i959c8bk5m9cfs4m75h2cq01wjwhahnkw7jxgicpva30gv"))))
-    (build-system ruby-build-system)
-    (native-inputs
-     `(
-       ("ruby-hoe" ,ruby-hoe)
-       ))
-    (synopsis
-      "PathExpander helps pre-process command-line arguments expanding
-directories into their constituent files. It further helps by
-providing additional mechanisms to make specifying subsets easier
-with path subtraction and allowing for command-line arguments to be
-saved in a file.
-
-NOTE: this is NOT an options processor. It is a path processor
-(basically everything else besides options). It does provide a
-mechanism for pre-filtering cmdline options, but not with the intent
-of actually processing them in PathExpander. Use OptionParser to
-deal with options either before or after passing ARGV through
-PathExpander.")
-    (description
-      "PathExpander helps pre-process command-line arguments expanding
-directories into their constituent files.  It further helps by
-providing additional mechanisms to make specifying subsets easier
-with path subtraction and allowing for command-line arguments to be
-saved in a file.
-
-NOTE: this is NOT an options processor.  It is a path processor
-(basically everything else besides options).  It does provide a
-mechanism for pre-filtering cmdline options, but not with the intent
-of actually processing them in PathExpander.  Use OptionParser to
-deal with options either before or after passing ARGV through
-PathExpander.")
-    (home-page "https://github.com/seattlerb/path_expander")
-    (license license:expat)))
-
-(define-public ruby-flay
-  (package
-    (name "ruby-flay")
-    (version "2.12.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "flay" version))
-        (sha256
-         (base32
-          "1my4ga8a8wsqb4nqbf31gvml64ngr66r0zim4mx2kvi76zygczv7"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; TODO: fix! only 1 failing test!
-    (propagated-inputs
-     `(("ruby-erubis" ,ruby-erubis)
-       ("ruby-path-expander" ,ruby-path-expander)
-       ("ruby-ruby-parser" ,ruby-ruby-parser)
-       ("ruby-sexp-processor" ,ruby-sexp-processor)))
-    (native-inputs
-     `(
-       ("ruby-hoe" ,ruby-hoe)
-       ))
-    (synopsis
-      "Flay analyzes code for structural similarities. Differences in literal
-values, variable, class, method names, whitespace, programming style,
-braces vs do/end, etc are all ignored. Making this totally rad.")
-    (description
-      "Flay analyzes code for structural similarities.  Differences in literal
-values, variable, class, method names, whitespace, programming style,
-braces vs do/end, etc are all ignored.  Making this totally rad.")
-    (home-page "http://ruby.sadi.st/")
-    (license license:expat)))
-
-(define-public ruby-concord
-  (package
-    (name "ruby-concord")
-    (version "0.1.6")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "concord" version))
-        (sha256
-         (base32
-          "1vznyzcd3z7wiwjfgr941nq405kd7zm5vjb3sv2mzbbrcla9qkhq"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Break dependency cycle with ruby-devtools.
-    (propagated-inputs
-     `(("ruby-adamantium" ,ruby-adamantium)
-       ("ruby-equalizer" ,ruby-equalizer)))
-    (synopsis "Helper for object composition")
-    (description "Helper for object composition")
-    (home-page "https://github.com/mbj/concord")
-    (license license:expat)))
-
-(define-public ruby-anima
-  (package
-    (name "ruby-anima")
-    (version "0.3.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "anima" version))
-        (sha256
-         (base32
-          "007wrc8px9ql4nqp34w0ffb9nj2nrbrcxvy036ng28bpbig7fzs6"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Break dependency cycle with ruby-devtools.
-    (propagated-inputs
-     `(("ruby-abstract-type" ,ruby-abstract-type)
-       ("ruby-adamantium" ,ruby-adamantium)
-       ("ruby-equalizer" ,ruby-equalizer)))
-    (synopsis
-      "Initialize object attributes via attributes hash")
-    (description
-      "Initialize object attributes via attributes hash")
-    (home-page "http://github.com/mbj/anima")
-    (license license:expat)))
-
-(define-public ruby-adamantium
-  (package
-    (name "ruby-adamantium")
-    (version "0.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "adamantium" version))
-        (sha256
-         (base32
-          "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Break dependency cycle with ruby-devtools.
-    (propagated-inputs
-     `(("ruby-ice-nine" ,ruby-ice-nine)
-       ("ruby-memoizable" ,ruby-memoizable)))
-    (synopsis "Immutable extensions to objects")
-    (description "Immutable extensions to objects")
-    (home-page "https://github.com/dkubb/adamantium")
-    (license license:expat)))
-
-(define-public ruby-abstract-type
-  (package
-    (name "ruby-abstract-type")
-    (version "0.0.7")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "abstract_type" version))
-        (sha256
-         (base32
-          "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Break dependency cycle with ruby-devtools.
-    (synopsis
-      "Module to declare abstract classes and methods")
-    (description
-      "Module to declare abstract classes and methods")
-    (home-page "https://github.com/dkubb/abstract_type")
-    (license license:expat)))
-
-;; TODO: This package somehow hardcodes the versions of its dependencies
-(define-public ruby-devtools
-  (package
-    (name "ruby-devtools")
-    (version "0.1.26")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "devtools" version))
-        (sha256
-         (base32
-          "08c8j2zcq9hhxpz9wsyy9v8mfs4d4smyagi0qr398w1qryb6w4m0"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; Devtools requires devtools for the tests.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
-           (lambda _
-             ;; Don't require self
-             (substitute* "Rakefile"
-               (("require 'devtools'") ""))
-             ;; Don't hardcode version dependencies
-             (substitute* "devtools.gemspec"
-               (("',\\s+'.*") "'\n"))
-             #t))
-         (add-after 'build 'unpin-versions
-           (lambda _
-             ;; Don't hardcode version dependencies
-             (substitute* "devtools.gemspec"
-               ((", \\[\\\"~>.*") ")\n"))
-             #t))
-         )
-       ))
-    (propagated-inputs
-     `(("ruby-abstract-type" ,ruby-abstract-type)
-       ("ruby-adamantium" ,ruby-adamantium)
-       ("ruby-anima" ,ruby-anima)
-       ("ruby-concord" ,ruby-concord)
-       ("ruby-flay" ,ruby-flay)
-       ("ruby-flog" ,ruby-flog)
-       ("ruby-procto" ,ruby-procto)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-reek" ,ruby-reek)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-rspec-its" ,ruby-rspec-its)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-yardstick" ,ruby-yardstick)))
-    (synopsis "A metagem wrapping development tools")
-    (description
-      "This package provides a metagem wrapping development tools")
-    (home-page "https://github.com/rom-rb/devtools")
-    (license license:expat)))
-
-(define-public ruby-certificate-authority
-  (package
-    (name "ruby-certificate-authority")
-    (version "1.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "certificate_authority" version))
-        (sha256
-         (base32
-          "1d4j37i40l76pdkxx9964f58d83fjv82x3c0sykrpiixcmjcax44"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "spec"
-       ;; An error occurred while loading spec_helper.
-       ;; Failure/Error: return gem_original_require(path)
-       #:tests? #f))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ))
-    (synopsis
-      "Ruby gem for managing the core functions outlined in RFC-3280 for PKI")
-    (description
-      "Ruby gem for managing the core functions outlined in RFC-3280 for PKI")
-    (home-page "https://github.com/cchandler/certificate_authority")
-    (license license:expat)))
-
-(define-public ruby-actionview-precompiler
-  (package
-    (name "ruby-actionview-precompiler")
-    (version "0.2.3")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jhawthorn/actionview_precompiler")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0hyvzhyx3bmvnmmj247vyfznps835d0zmi3xb6y6s4v570d8mrf0"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; tests expect ruby-actionview >=6.0.a
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
-           (lambda _
-             (substitute* "actionview_precompiler.gemspec"
-               (("actionview\\\".*") "actionview\"\n")
-               )
-             #t))
-         (add-before 'build 'delete-gemfile-lock
-           (lambda _
-             (delete-file "Gemfile.lock")
-             #t)))))
-    (propagated-inputs
-     `(("ruby-actionview" ,ruby-actionview)))
-    (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)
-       ("ruby-pry" ,ruby-pry)))
-    (synopsis
-      "Parses templates for render calls and uses them to precompile")
-    (description
-      "Parses templates for render calls and uses them to precompile")
-    (home-page "https://github.com/jhawthorn/actionview_precompiler")
-    (license license:expat)))
-
-(define-public ruby-rocco
-  (package
-    (name "ruby-rocco")
-    (version "0.8.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rocco" version))
-        (sha256
-         (base32
-          "0z3wnk8848wphrzyb61adl1jbfjlsqnzkayp2m0qmisg566352l1"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; needs pygments
-    (propagated-inputs
-     `(("ruby-mustache" ,ruby-mustache)
-       ;; pygments
-       ("ruby-redcarpet" ,ruby-redcarpet)))
-    (synopsis "Docco in Ruby")
-    (description "Docco in Ruby")
-    (home-page "https://rtomayko.github.com/rocco/")
-    (license license:expat)))
-
-(define-public ruby-bundler
-  (package
-    (name "ruby-bundler")
-    (version "2.2.11")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "bundler" version))
-        (sha256
-         (base32
-          "1izx6wsjdm6mnbxazgz1z5qbhwrrisbq0np2nmx4ij6lrqjy18jf"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile
-    (synopsis
-      "Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably")
-    (description
-      "Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably")
-    (home-page "https://bundler.io/")
-    (license license:expat)))
-
-(define-public ruby-appraisal
-  (package
-    (name "ruby-appraisal")
-    (version "2.3.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "appraisal" version))
-        (sha256
-         (base32
-          "0j092f2zfgb6afimidgspzqg4iw6n4mrs2zp8hhs2m2giav4mkrn"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Tests require activesupport, cycle with ruby-m
-    (propagated-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-thor" ,ruby-thor)))
-    (synopsis
-      "Appraisal integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called \"appraisals.\"")
-    (description
-      "Appraisal integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called \"appraisals.\"")
-    (home-page
-      "http://github.com/thoughtbot/appraisal")
-    (license license:expat)))
-
-(define-public ruby-http-accept-language
-  (package
-    (name "ruby-http-accept-language")
-    (version "2.1.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "http_accept_language" version))
-        (sha256
-         (base32
-          "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             (substitute* "cucumber.yml"
-               (("~@") "'not @'"))
-             #t)))))
-    (native-inputs
-     `(
-       ("ruby-aruba" ,ruby-aruba)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-guard-rspec" ,ruby-guard-rspec)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-rack-test" ,ruby-rack-test)
-       ("ruby-rails" ,ruby-rails)
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "Find out which locale the user preferes by reading the languages they specified in their browser")
-    (description
-      "Find out which locale the user preferes by reading the languages they specified in their browser")
-    (home-page "https://github.com/iain/http_accept_language")
-    (license license:expat)))
-
-(define-public ruby-guard-compat
-  (package
-    (name "ruby-guard-compat")
-    (version "1.2.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "guard-compat" version))
-        (sha256
-         (base32
-          "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "spec" ; not default, tests not upgraded for newer rubocop versions.
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ))
-    (synopsis
-      "Helps creating valid Guard plugins and testing them")
-    (description
-      "Helps creating valid Guard plugins and testing them")
-    (home-page "https://github.com/guard/guard-compat")
-    (license license:expat)))
-
-(define-public ruby-guard-rspec
-  (package
-    (name "ruby-guard-rspec")
-    (version "4.7.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "guard-rspec" version))
-        (sha256
-         (base32
-          "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; Tests not included in release.
-    (propagated-inputs
-     `(("ruby-guard" ,ruby-guard)
-       ("ruby-guard-compat" ,ruby-guard-compat)
-       ("ruby-rspec" ,ruby-rspec)))
-    (synopsis
-      "Guard::RSpec automatically run your specs (much like autotest).")
-    (description
-      "Guard::RSpec automatically run your specs (much like autotest).")
-    (home-page "https://github.com/guard/guard-rspec")
-    (license license:expat)))
-
-(define-public ruby-aws-sdk-kms
-  (package
-    (name "ruby-aws-sdk-kms")
-    (version "1.42.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-sdk-kms" version))
-        (sha256
-         (base32
-          "00wgf83cdy6z77b2y0ld0aqiidfyldi71hx0z8b73gxjdlbwpq1i"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (propagated-inputs
-     `(("ruby-aws-sdk-core" ,ruby-aws-sdk-core)
-       ("ruby-aws-sigv4" ,ruby-aws-sigv4)))
-    (synopsis
-      "Official AWS Ruby gem for AWS Key Management Service (KMS). This gem is part of the AWS SDK for Ruby.")
-    (description
-      "Official AWS Ruby gem for AWS Key Management Service (KMS).  This gem is part of the AWS SDK for Ruby.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-jmespath
-  (package
-    (name "ruby-jmespath")
-    (version "1.4.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "jmespath" version))
-        (sha256
-         (base32
-          "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; tests not included
-    (synopsis "Implements JMESPath for Ruby")
-    (description "Implements JMESPath for Ruby")
-    (home-page "https://github.com/trevorrowe/jmespath.rb")
-    (license license:asl2.0)))
-
-(define-public ruby-aws-sigv4
-  (package
-    (name "ruby-aws-sigv4")
-    (version "1.2.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-sigv4" version))
-        (sha256
-         (base32
-          "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (propagated-inputs
-     `(("ruby-aws-eventstream" ,ruby-aws-eventstream)))
-    (synopsis
-      "Amazon Web Services Signature Version 4 signing library. Generates sigv4 signature for HTTP requests.")
-    (description
-      "Amazon Web Services Signature Version 4 signing library.  Generates sigv4 signature for HTTP requests.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-aws-partitions
-  (package
-    (name "ruby-aws-partitions")
-    (version "1.428.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-partitions" version))
-        (sha256
-         (base32
-          "13rvpllihvpksf1jqwa2i5vbv2hhb34viaidw4rkxr3dyygkdpj8"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (synopsis
-      "Provides interfaces to enumerate AWS partitions, regions, and services.")
-    (description
-      "This package provides interfaces to enumerate AWS partitions, regions, and services.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-aws-eventstream
-  (package
-    (name "ruby-aws-eventstream")
-    (version "1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-eventstream" version))
-        (sha256
-         (base32
-          "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (synopsis
-      "Amazon Web Services event stream library. Decodes and encodes binary stream under `vnd.amazon.event-stream` content-type")
-    (description
-      "Amazon Web Services event stream library.  Decodes and encodes binary stream under `vnd.amazon.event-stream` content-type")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-aws-sdk-core
-  (package
-    (name "ruby-aws-sdk-core")
-    (version "3.112.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-sdk-core" version))
-        (sha256
-         (base32
-          "15lynby6r91p9hh5h92pg4jr8xgnjr52px5ax0p0wncdw4vz0skp"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (propagated-inputs
-     `(("ruby-aws-eventstream" ,ruby-aws-eventstream)
-       ("ruby-aws-partitions" ,ruby-aws-partitions)
-       ("ruby-aws-sigv4" ,ruby-aws-sigv4)
-       ("ruby-jmespath" ,ruby-jmespath)))
-    (synopsis
-      "Provides API clients for AWS. This gem is part of the official AWS SDK for Ruby.")
-    (description
-      "This package provides API clients for AWS.  This gem is part of the official AWS SDK for Ruby.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-aws-sdk-s3
-  (package
-    (name "ruby-aws-sdk-s3")
-    (version "1.88.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-sdk-s3" version))
-        (sha256
-         (base32
-          "01zlv2icx3m0pq94z9fcsp1r9ivdqhfpnpbrv63fpr6m7yqww24y"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (propagated-inputs
-     `(("ruby-aws-sdk-core" ,ruby-aws-sdk-core)
-       ("ruby-aws-sdk-kms" ,ruby-aws-sdk-kms)
-       ("ruby-aws-sigv4" ,ruby-aws-sigv4)))
-    (synopsis
-      "Official AWS Ruby gem for Amazon Simple Storage Service (Amazon S3). This gem is part of the AWS SDK for Ruby.")
-    (description
-      "Official AWS Ruby gem for Amazon Simple Storage Service (Amazon S3).  This gem is part of the AWS SDK for Ruby.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-aws-sdk-sns
-  (package
-    (name "ruby-aws-sdk-sns")
-    (version "1.38.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-sdk-sns" version))
-        (sha256
-         (base32
-          "0cqri14igfmcxlapbagg0nmy79zzg29awzybv51gl76m3mljbafb"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (propagated-inputs
-     `(("ruby-aws-sdk-core" ,ruby-aws-sdk-core)
-       ("ruby-aws-sigv4" ,ruby-aws-sigv4)))
-    (synopsis
-      "Official AWS Ruby gem for Amazon Simple Notification Service (Amazon SNS). This gem is part of the AWS SDK for Ruby.")
-    (description
-      "Official AWS Ruby gem for Amazon Simple Notification Service (Amazon SNS).  This gem is part of the AWS SDK for Ruby.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-chronic
-  (package
-    (name "ruby-chronic")
-    (version "0.10.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "chronic" version))
-        (sha256
-         (base32
-          "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn"))))
-    (build-system ruby-build-system)
-    (synopsis
-      "Chronic is a natural language date/time parser written in pure Ruby.")
-    (description
-      "Chronic is a natural language date/time parser written in pure Ruby.")
-    (home-page "http://github.com/mojombo/chronic")
-    (license license:expat)))
-
-(define-public ruby-delorean
-  (package
-    (name "ruby-delorean")
-    (version "2.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "delorean" version))
-        (sha256
-         (base32
-          "0k39ix0a9rf4fd05ncml4h9r29dzwgzdbhp01gp67baid6adxwf4"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; tests not included
-    (propagated-inputs
-     `(("ruby-chronic" ,ruby-chronic)))
-    (synopsis
-      "Delorean lets you travel in time with Ruby by mocking Time.now")
-    (description
-      "Delorean lets you travel in time with Ruby by mocking Time.now")
-    (home-page "http://github.com/bebanjo/delorean")
-    (license license:expat)))
-
-(define-public ruby-sinatra-contrib
-  (package
-    (name "ruby-sinatra-contrib")
-    (version "2.0.8.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "sinatra-contrib" version))
-        (sha256
-         (base32
-          "1mmrfm4pqh98f3irjpkvfpazhcx6q42bnx6bbms9dqvmck3mid28"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-backports" ,ruby-backports)
-       ("ruby-multi-json" ,ruby-multi-json)
-       ("ruby-mustermann" ,ruby-mustermann)
-       ("ruby-rack-protection" ,ruby-rack-protection)
-       ("ruby-sinatra" ,ruby-sinatra)
-       ("ruby-tilt" ,ruby-tilt)))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis "Collection of useful Sinatra extensions")
-    (description
-      "Collection of useful Sinatra extensions")
-    (home-page "http://sinatrarb.com/contrib/")
-    (license license:expat)))
-
-(define-public ruby-raindrops
-  (package
-    (name "ruby-raindrops")
-    (version "0.19.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "raindrops" version))
-        (sha256
-         (base32
-          "0zjja00mzgx2lddb7qrn14k7qrnwhf4bpmnlqj78m1pfxh7svync"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; not clear how to run tests
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "ruby" "setup.rb" "tests"))
-             #t)))))
-    (synopsis "real-time stats for preforking Rack servers")
-    (description
-      "raindrops is a real-time stats toolkit to show statistics for Rack HTTP
-servers.  It is designed for preforking servers such as unicorn, but
-should support any Rack HTTP server on platforms supporting POSIX shared
-memory.  It may also be used as a generic scoreboard for sharing atomic
-counters across multiple processes.")
-    (home-page "https://yhbt.net/raindrops/")
-    (license license:lgpl2.1+)))
-
-(define-public ruby-kgio
-  (package
-    (name "ruby-kgio")
-    (version "2.11.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "kgio" version))
-        (sha256
-         (base32
-          "0ai6bzlvxbzpdl466p1qi4dlhx8ri2wcrp6x1l19y3yfs3a29rng"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; not clear how to run tests
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "ruby" "setup.rb" "tests"))
-             #t)))))
-    (synopsis "kinder, gentler I/O for Ruby")
-    (description
-      "This is a legacy project, do not use it for new projects.  Ruby
-2.3 and later should make this obsolete.  kgio provides
-non-blocking I/O methods for Ruby without raising exceptions on
-EAGAIN and EINPROGRESS.
-")
-    (home-page "https://yhbt.net/kgio/")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-unicorn
-  (package
-    (name "ruby-unicorn")
-    (version "5.8.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "unicorn" version))
-        (sha256
-         (base32
-          "0ig48f4xhrssq5d11vkc41k7nj6pbv2jh1f8k5gfskfd469mcc2y"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-kgio" ,ruby-kgio)
-       ("ruby-raindrops" ,ruby-raindrops)))
-    (synopsis
-      "unicorn is an HTTP server for Rack applications designed to only serve
-fast clients on low-latency, high-bandwidth connections and take
-advantage of features in Unix/Unix-like kernels.  Slow clients should
-only be served by placing a reverse proxy capable of fully buffering
-both the the request and response in between unicorn and slow clients.")
-    (description
-      "unicorn is an HTTP server for Rack applications designed to only serve
-fast clients on low-latency, high-bandwidth connections and take
-advantage of features in Unix/Unix-like kernels.  Slow clients should
-only be served by placing a reverse proxy capable of fully buffering
-both the the request and response in between unicorn and slow clients.")
-    (home-page "https://yhbt.net/unicorn/")
-    (license (list (license:non-copyleft "will fill in later")
-                   (license:non-copyleft "will fill in later")))))
-
-(define-public ruby-pry-rails
-  (package
-    (name "ruby-pry-rails")
-    (version "0.3.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "pry-rails" version))
-        (sha256
-         (base32
-          "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f      ; not clear what the test suite wants
-       #:test-target "appraisal"    ; as per the Rakefile
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-pry" ,ruby-pry)))
-    (native-inputs
-     `(
-       ("ruby-appraisal" ,ruby-appraisal)
-       ("ruby-minitest" ,ruby-minitest)
-       ))
-    (synopsis "Use Pry as your rails console")
-    (description "Use Pry as your rails console")
-    (home-page "https://github.com/rweng/pry-rails")
-    (license license:expat)))
-
-(define-public ruby-r2
-  (package
-    (name "ruby-r2")
-    (version "0.2.7")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "r2" version))
-        (sha256
-         (base32
-          "0wk0p55zp3l96xy5ps28b33dn5z0jwsjl74bwfdn6z81pzjs5sfk"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "CSS flipper for right-to-left processing. A Ruby port of https://github.com/ded/r2")
-    (description
-      "CSS flipper for right-to-left processing.  A Ruby port of https://github.com/ded/r2")
-    (home-page "https://github.com/mzsanford/R2rb")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-openssl
-  (package
-    (name "ruby-openssl")
-    (version "2.2.0")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/ruby/openssl")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "01xigwxpwha9hj8r2synkl6c7xlhs02f27qv98a1b7cbhgqqs6n3"))))
-    (build-system ruby-build-system)
-    (inputs
-     `(
-       ("openssl" ,openssl)
-       ))
-    (native-inputs
-     `(
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ))
-    (synopsis "It wraps the OpenSSL library.")
-    (description "It wraps the OpenSSL library.")
-    (home-page "https://github.com/ruby/openssl")
-    (license license:ruby)))
-
-(define-public ruby-openssl-signature-algorithm
-  (package
-    (name "ruby-openssl-signature-algorithm")
-    (version "1.1.1")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/cedarcode/openssl-signature_algorithm")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0ilshdmky1z8azm7szzbg129v5g2n54izzckhyqwnn1g8c55bmn5"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; cannot load such file -- spec_helper
-       #:test-target "spec" ; not default, don't care about rubocop output
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-openssl" ,ruby-openssl)))
-    (native-inputs
-     `(("ruby-ed25519" ,ruby-ed25519)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)))
-    (synopsis
-      "ECDSA, EdDSA, RSA-PSS and RSA-PKCS#1 algorithms for ruby")
-    (description
-      "ECDSA, EdDSA, RSA-PSS and RSA-PKCS#1 algorithms for ruby")
-    (home-page "https://github.com/cedarcode/openssl-signature_algorithm")
-    (license license:asl2.0)))
-
-(define-public ruby-cose
-  (package
-    (name "ruby-cose")
-    (version "1.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "cose" version))
-        (sha256
-         (base32
-          "1gx239d2fracq9az74wfdwmp5zm7zpzkcgchwnv2ng33d8r33p3m"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; cannot load such file -- spec_helper
-       #:test-target "spec" ; not default, don't care about rubocop output
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-cbor" ,ruby-cbor)
-       ("ruby-openssl-signature-algorithm" ,ruby-openssl-signature-algorithm)))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rubocop-performance" ,ruby-rubocop-performance)
-       ))
-    (synopsis
-      "Ruby implementation of RFC 8152 CBOR Object Signing and Encryption (COSE)")
-    (description
-      "Ruby implementation of RFC 8152 CBOR Object Signing and Encryption (COSE)")
-    (home-page "https://github.com/cedarcode/cose-ruby")
-    (license license:expat)))
-
-(define-public ruby-rtlit
-  (package
-    (name "ruby-rtlit")
-    (version "0.0.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rtlit" version))
-        (sha256
-         (base32
-          "0srfh7cl95srjiwbyc9pmn3w739zlvyj89hyj0bm7g92zrsd27qm"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; tests don't want to run
-    (native-inputs
-     `(
-       ("ruby-rake", ruby-rake)
-       ))
-    (synopsis
-      "Converts CSS files from left-to-right to right-to-left")
-    (description
-      "Converts CSS files from left-to-right to right-to-left")
-    (home-page "https://github.com/zohararad/rtlit")
-    (license license:expat)))
-
-(define-public ruby-test-prof
-  (package
-    (name "ruby-test-prof")
-    (version "1.0.1")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/test-prof/test-prof")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "092q3m56843yrd94xby2a29vg8kca4lirgvqlkmdjyjckmi3qdzr"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; seems to need running database
-       #:test-target "spec" ; not default, don't care about rubocop output
-       ;; cannot load such file -- standard/cop/semantic_blocks
-       ))
-    (native-inputs
-     `(
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-fabrication" ,ruby-fabrication)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-sqlite3" ,ruby-sqlite3-1.3)
-       ))
-    (synopsis
-      "
-    Ruby applications tests profiling tools.
-
-    Contains tools to analyze factories usage, integrate with Ruby profilers,
-    profile your examples using ActiveSupport notifications (if any) and
-    statically analyze your code with custom RuboCop cops.
-  ")
-    (description
-      "
-    Ruby applications tests profiling tools.
-
-    Contains tools to analyze factories usage, integrate with Ruby profilers,
-    profile your examples using ActiveSupport notifications (if any) and
-    statically analyze your code with custom RuboCop cops.
-  ")
-    (home-page "https://test-prof.evilmartians.io/")
-    (license license:expat)))
-
-(define-public ruby-fabrication
-  (package
-    (name "ruby-fabrication")
-    (version "2.21.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "fabrication" version))
-        (sha256
-         (base32
-          "1pdrl55xf76pbc5kjzp7diawxxvgbk2cm38532in6df823431n6z"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; TODO later
-    (synopsis
-      "Fabrication is an object generation framework for ActiveRecord, Mongoid, DataMapper, Sequel, or any other Ruby object.")
-    (description
-      "Fabrication is an object generation framework for ActiveRecord, Mongoid, DataMapper, Sequel, or any other Ruby object.")
-    (home-page "http://fabricationgem.org")
-    (license license:expat)))
-
-(define-public ruby-mock-redis
-  (package
-    (name "ruby-mock-redis")
-    (version "0.27.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "mock_redis" version))
-        (sha256
-         (base32
-          "0fhwhp0w2n79k9ibmqhq09m88rp2jmr7dknx9ibn84wf7r8a3a8k"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; tests need a running redis server.
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "rspec"))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-ruby2-keywords" ,ruby-ruby2-keywords)))
-    (native-inputs
-     `(
-       ("ruby-redis" ,ruby-redis)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-its" ,ruby-rspec-its)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-timecop" ,ruby-timecop)
-       ))
-    (synopsis
-      "Instantiate one with `redis = MockRedis.new` and treat it like you would a normal Redis object. It supports all the usual Redis operations.")
-    (description
-      "Instantiate one with `redis = MockRedis.new` and treat it like you would a normal Redis object.  It supports all the usual Redis operations.")
-    (home-page "https://github.com/sds/mock_redis")
-    (license license:expat)))
-
-(define-public ruby-certified
-  (package
-    (name "ruby-certified")
-    (version "1.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "certified" version))
-        (sha256
-         (base32
-          "1706p6p0a8adyvd943af2a3093xakvislgffw3v9dvp7j07dyk5a"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile or tests
-    (synopsis
-      "Ensure net/https uses OpenSSL::SSL::VERIFY_PEER to verify SSL certificates and provides certificate bundle in case OpenSSL cannot find one")
-    (description
-      "Ensure net/https uses OpenSSL::SSL::VERIFY_PEER to verify SSL certificates and provides certificate bundle in case OpenSSL cannot find one")
-    (home-page "https://github.com/stevegraham/certified")
-    (license license:expat)))
-
-(define-public ruby-rspec-html-matchers
-  (package
-    (name "ruby-rspec-html-matchers")
-    (version "0.9.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rspec-html-matchers" version))
-        (sha256
-         (base32
-          "0883rqv77n2wawnk5lp3la48l7pckyz8l013qddngzmksi5p1v3f"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no tests in gem release
-    (propagated-inputs
-     `(("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-rspec" ,ruby-rspec)))
-    (synopsis
-      "Nokogiri based 'have_tag' and 'with_tag' matchers for rspec 3. Does not depend on assert_select matcher, provides useful error messages.
-")
-    (description
-      "Nokogiri based 'have_tag' and 'with_tag' matchers for rspec 3.  Does not depend on assert_select matcher, provides useful error messages.
-")
-    (home-page "https://github.com/kucaahbe/rspec-html-matchers")
-    (license license:expat)))
-
-(define-public ruby-rswag-specs
-  (package
-    (name "ruby-rswag-specs")
-    (version "2.4.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rswag-specs" version))
-        (sha256
-         (base32
-          "1dma3j5vfjhyclg8y0gsp44vs4wn9chf4jgfhc9r6ws018xrbxzd"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no tests in Rakefile
-    (propagated-inputs
-     `(("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-json-schema" ,ruby-json-schema)
-       ("ruby-railties" ,ruby-railties)))
-    (synopsis
-      "Simplify API integration testing with a succinct rspec DSL and generate OpenAPI specification files directly from your rspecs. More about the OpenAPI initiative here: http://spec.openapis.org/")
-    (description
-      "Simplify API integration testing with a succinct rspec DSL and generate OpenAPI specification files directly from your rspecs.  More about the OpenAPI initiative here: http://spec.openapis.org/")
-    (home-page "https://github.com/rswag/rswag")
-    (license license:expat)))
-
-(define-public ruby-uniform-notifier
-  (package
-    (name "ruby-uniform-notifier")
-    (version "1.13.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "uniform_notifier" version))
-        (sha256
-         (base32
-          "05s2y76zqg391q65mvs1zsrmyn5bjxq3x54ikkqpqm3lzjjcg1pp"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f)) ; not clear how to successfully run tests
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis "Uniform notifier for rails logger")
-    (description
-     "@code{uniform_notifier} is extracted from bullet, it gives you the ability to send notification through rails logger, customized logger, javascript alert, javascript console, growl, xmpp, airbrake and honeybadger.")
-    (home-page "https://rubygems.org/gems/uniform_notifier")
-    (license license:expat)))
-
-(define-public ruby-bullet
-  (package
-    (name "ruby-bullet")
-    (version "6.1.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "bullet" version))
-        (sha256
-         (base32
-          "04wm807czdixpgnqp446vj8vc7dj96k26p90rmwll9ahlib37mmm"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; tests want rails' source directory
-       #:test-target "default"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-uniform-notifier" ,ruby-uniform-notifier)))
-    (synopsis
-      "help to kill N+1 queries and unused eager loading.")
-    (description
-      "help to kill N+1 queries and unused eager loading.")
-    (home-page "https://github.com/flyerhzm/bullet")
-    (license license:expat)))
-
-(define-public ruby-better-errors
-  (package
-    (name "ruby-better-errors")
-    (version "2.9.1")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/BetterErrors/better_errors")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "185im2i62j9f3sa0xzq8q806xlckypjmi3lwdivrzln4gw2l4z38"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; Don't specify version numbers.
-             (substitute* "better_errors.gemspec"
-               (("rake.*") "rake\"\n"))
-             (substitute* "Gemfile"
-               ((".*gem-release.*") ""))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-coderay" ,ruby-coderay)
-       ("ruby-erubi" ,ruby-erubi)
-       ("ruby-rack" ,ruby-rack)))
-    (native-inputs
-     `(
-       ("ruby-kramdown" ,ruby-kramdown)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-html-matchers" ,ruby-rspec-html-matchers)
-       ("ruby-rspec-its" ,ruby-rspec-its)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-simplecov-lcov" ,ruby-simplecov-lcov)
-       ("ruby-yard" ,ruby-yard)
-       ))
-    (synopsis "Error page for Rails and other Rack apps")
-    (description
-      "This package provides a better error page for Rails and other Rack apps.  Includes source code inspection, a live REPL and local/instance variable inspection for all stack frames.")
-    (home-page "https://github.com/BetterErrors/better_errors")
-    (license license:expat)))
-
-;; 0.8.0 needs simplecov ~> 0.18
-
-(define-public ruby-semver2
-  (package
-    (name "ruby-semver2")
-    (version "3.4.2")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/haf/semver")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "10yj3vglkw8h1am80jpzkxq7l9ywbvd9fsdjg1mm0c33k1y2jw65"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "spec"))
-    (native-inputs
-     `(
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "maintain versions as per http://semver.org")
-    (description
-      "maintain versions as per http://semver.org")
-    (home-page "https://github.com/haf/semver")
-    (license license:expat)))
-
-(define-public ruby-descendants-tracker
-  (package
-    (name "ruby-descendants-tracker")
-    (version "0.0.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "descendants_tracker" version))
-        (sha256
-         (base32
-          "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; old package is old
-    (propagated-inputs
-     `(("ruby-thread-safe" ,ruby-thread-safe)))
-    (native-inputs
-     `(
-       ;("ruby-devtools" ,ruby-devtools)
-       ))
-    (synopsis
-      "Module that adds descendant tracking to a class")
-    (description
-      "Module that adds descendant tracking to a class")
-    (home-page "https://github.com/dkubb/descendants_tracker")
-    (license license:expat)))
-
-(define-public ruby-github-api
-  (package
-    (name "ruby-github-api")
-    (version "0.19.0")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/piotrmurach/github")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "13ysd56b473m0yvjdxmqgia2w96m3qq29xzvpdqhz50xjid2mqk2"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(;#:tests? #f  ; tests depend on ruby-vcr, which is non-free
-       #:test-target "spec" ; default fails on the ':features' portion
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             ;; Don't specify version numbers.
-             (substitute* "github_api.gemspec"
-               (("cucumber.*") "cucumber\"\n")
-               (("vcr.*") "vcr\"\n")
-               )
-             #t)))))
-    (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)
-       ("ruby-descendants-tracker" ,ruby-descendants-tracker)
-       ("ruby-faraday" ,ruby-faraday)
-       ("ruby-hashie" ,ruby-hashie)
-       ("ruby-oauth2" ,ruby-oauth2)))
-    (native-inputs
-     `(
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-its" ,ruby-rspec-its)
-       ("ruby-vcr" ,ruby-vcr)
-       ("ruby-webmock" ,ruby-webmock)
-       ))
-    (synopsis "Ruby client of GitHub API methods")
-    (description
-     "This package provides a Ruby client that supports all of the GitHub API methods.")
-    (home-page "https://piotrmurach.github.io/github/")
-    (license license:expat)))
-
-(define-public ruby-jeweler
-  (package
-    (name "ruby-jeweler")
-    (version "2.3.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "jeweler" version))
-        (sha256
-         (base32
-          "0jbivh9vf9wm91kwjnlcvswqyk2g24bnxj9gavinx9jh4bphagi5"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-builder" ,ruby-builder)
-       ("bundler" ,bundler)
-       ("ruby-git" ,ruby-git)
-       ("ruby-github-api" ,ruby-github-api)
-       ("ruby-highline" ,ruby-highline)
-       ("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-psych" ,ruby-psych)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rdoc" ,ruby-rdoc)
-       ("ruby-semver2" ,ruby-semver2)))
-    (synopsis
-      "Simple and opinionated helper for creating Rubygem projects on GitHub")
-    (description
-      "Simple and opinionated helper for creating Rubygem projects on GitHub")
-    (home-page "https://github.com/technicalpickles/jeweler")
-    (license license:expat)))
-
-;; 5.0.0 is the last version under a free license. 5.1.0+ are under the Hippocratic License
-(define-public ruby-vcr
-  (package
-    (name "ruby-vcr")
-    (version "5.0.0")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/vcr/vcr")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1anich4cgjz7adbk1sh07q494dgb757np74qdiz0nwjzl41s6iyp"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; TODO: figure out test suite
-       #:test-target "default"))
-    (native-inputs
-     `(
-       ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ))
-    (synopsis
-      "Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.")
-    (description
-      "Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.")
-    (home-page "https://relishapp.com/vcr/vcr/docs")
-    (license license:expat)))
-
-(define-public ruby-annotate
-  (package
-    (name "ruby-annotate")
-    (version "3.1.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "annotate" version))
-        (sha256
-         (base32
-          "1dxrfppwfg13vqmambbs56xjj8qsdgcy58r2yc44vvy3z1g5yflw"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no tests in gem
-    (propagated-inputs
-     `(("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-rake" ,ruby-rake)))
-    (synopsis
-      "Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.")
-    (description
-      "Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.")
-    (home-page "https://github.com/ctran/annotate_models")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-flamegraph
-  (package
-    (name "ruby-flamegraph")
-    (version "0.9.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "flamegraph" version))
-        (sha256
-         (base32
-          "1p785nmhdzbwj0qpxn5fzrmr4kgimcds83v4f95f387z6w3050x6"))))
-    (build-system ruby-build-system)
-    (synopsis
-      "Flamegraph support for arbitrary ruby apps")
-    (description
-      "Flamegraph support for arbitrary ruby apps")
-    (home-page "https://github.com/SamSaffron/flamegraph")
-    (license license:expat)))
-
-(define-public ruby-optimist
-  (package
-    (name "ruby-optimist")
-    (version "3.0.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "optimist" version))
-        (sha256
-         (base32
-          "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk"))))
-    (build-system ruby-build-system)
-    (native-inputs
-     `(
-       ;; https://github.com/ManageIQ/optimist/issues/109
-       ("ruby-chronic" ,ruby-chronic)
-       ))
-    (synopsis
-      "Optimist is a commandline option parser for Ruby that just
-gets out of your way. One line of code per option is all you need to write.
-For that, you get a nice automatically-generated help page, robust option
-parsing, command subcompletion, and sensible defaults for everything you don't
-specify.")
-    (description
-      "Optimist is a commandline option parser for Ruby that just
-gets out of your way.  One line of code per option is all you need to write.
-For that, you get a nice automatically-generated help page, robust option
-parsing, command subcompletion, and sensible defaults for everything you don't
-specify.")
-    (home-page "https://manageiq.github.io/optimist/")
-    (license license:expat)))
-
-;; TODO: Unbundle msgpack
-(define-public ruby-rbtrace
-  (package
-    (name "ruby-rbtrace")
-    (version "0.4.14")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rbtrace" version))
-        (sha256
-         (base32
-          "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; no test suite
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'build-msgpack-library
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((msgpack (assoc-ref inputs "msgpack")))
-               ;; Don't try to build msgpack during 'install
-               (substitute* "rbtrace.gemspec"
-                 ((".*s.extensions.*") ""))
-
-               ;; Use shared library, built with -fPIC
-               (substitute* "ext/extconf.rb"
-                 (("libmsgpackc.a") "libmsgpackc.so")
-                 (("libmsgpackc_ext.a") "libmsgpackc_ext.so"))
-
-               (mkdir-p "ext/dst/lib")
-               (mkdir-p "ext/dst/include")
-               (symlink (string-append msgpack "/lib/libmsgpackc.so")
-                        "ext/dst/lib/libmsgpackc.so")
-               (symlink (string-append msgpack "/include/msgpack.h")
-                        "ext/dst/include/msgpack.h")
-
-               ;; compile the rbtrace binary, linking to msgpack
-               (setenv "CC" ,(cc-for-target))
-               (with-directory-excursion "ext"
-                 (invoke "ruby" "extconf.rb")
-                 (invoke "make"))
-               #t))))))
-    (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)
-       ("ruby-msgpack" ,ruby-msgpack)
-       ("ruby-optimist" ,ruby-optimist)))
-    (inputs
-     `(("msgpack" ,(@ (gnu packages serialization) msgpack))))
-    (synopsis
-      "rbtrace shows you method calls happening inside another ruby process in real time.")
-    (description
-      "rbtrace shows you method calls happening inside another ruby process in real time.")
-    (home-page "https://github.com/tmm1/rbtrace")
-    (license license:expat)))
-
-(define-public ruby-gc-tracer
-  (package
-    (name "ruby-gc-tracer")
-    (version "1.5.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "gc_tracer" version))
-        (sha256
-         (base32
-          "1yv3mp8lx74lfzs04fd5h4g89209iwhzpc407y35p7cmzgx6a4kv"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (native-inputs
-     `(
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "gc_tracer gem adds GC::Tracer module.")
-    (description
-      "gc_tracer gem adds GC::Tracer module.")
-    (home-page "https://github.com/ko1/gc_tracer")
-    (license license:expat)))
-
-(define-public ruby-guess-html-encoding
-  (package
-    (name "ruby-guess-html-encoding")
-    (version "0.0.11")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "guess_html_encoding" version))
-        (sha256
-         (base32
-          "16700fk6kmif3q3kpc1ldhy3nsc9pkxlgl8sqhznff2zjj5lddna"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "A small gem that attempts to guess and then force encoding of HTML documents for Ruby 1.9")
-    (description
-      "This package provides a small gem that attempts to guess and then force encoding of HTML documents for Ruby 1.9")
-    (home-page "https://github.com/cantino/guess_html_encoding")
-   (license license:expat)))
-
-(define-public ruby-ruby-readability
-  (package
-    (name "ruby-ruby-readability")
-    (version "0.7.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ruby-readability" version))
-        (sha256
-         (base32
-          "15ivhbry7hf82lww1bzcrwfyjymijfb3rb0wdd32g2z0942wdspa"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; ':spec" fails with newer ruby versions
-       #:test-target "default"))
-    (propagated-inputs
-     `(("ruby-guess-html-encoding" ,ruby-guess-html-encoding)
-       ("ruby-nokogiri" ,ruby-nokogiri)))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "Port of arc90's readability project to ruby")
-    (description
-      "Port of arc90's readability project to ruby")
-    (home-page "https://github.com/cantino/ruby-readability")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-;; TODO: 0.3.3 never finishes the install phase with ruby-2.6
-;; TODO: Unbundle cppjieba
-(define-public ruby-cppjieba-rb
-  (package
-    (name "ruby-cppjieba-rb")
-    (version "0.3.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "cppjieba_rb" version))
-        (sha256
-         (base32
-          "1sslff7yy8jvp4rcn1b6jn9v0d3iibb68i79shgd94rs2yq8k117"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'pre-build
-           (lambda _
-             (invoke "rake" "compile"))))))
-    (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)))
-    (synopsis "Cppjieba binding for Ruby")
-    (description
-     "This package provides Ruby bindles for @code{cppjieba}, a library to help
-with processing Chinese text.")
-    (home-page "https://github.com/fantasticfears/cppjieba_rb")
-    (license license:expat)))
-
-(define-public ruby-request-store
-  (package
-    (name "ruby-request-store")
-    (version "1.5.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "request_store" version))
-        (sha256
-         (base32
-          "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-rack" ,ruby-rack)))
-    (synopsis
-      "RequestStore gives you per-request global storage.")
-    (description
-      "RequestStore gives you per-request global storage.")
-    (home-page "https://github.com/steveklabnik/request_store")
-    (license license:expat)))
-
-(define-public ruby-lograge
-  (package
-    (name "ruby-lograge")
-    (version "0.11.2")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/roidrage/lograge")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1dlxzv0xjnjs95l4fzr1wcf2l7klnhji0fv51gl6wvkjpjdr9zcy"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; cannot find logstash-event
-       #:test-target "spec" ; not default, rubocop compains about all the things
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'replace-git-ls-files
-           (lambda _
-             (substitute* "lograge.gemspec"
-               (("git ls-files lib LICENSE.txt")
-                "find lib LICENSE.txt -type f | sort"))
-             #t))
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-actionpack" ,ruby-actionpack)
-       ("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-railties" ,ruby-railties)
-       ("ruby-request-store" ,ruby-request-store)))
-    (native-inputs
-     `(
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-lines" ,ruby-lines)
-       ("ruby-logstash-event" ,ruby-logstash-event)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ))
-    (synopsis
-      "Tame Rails' multi-line logging into a single line per request")
-    (description
-      "Tame Rails' multi-line logging into a single line per request")
-    (home-page "https://github.com/roidrage/lograge")
-    (license license:expat)))
-
-(define-public ruby-logstash-event
-  (package
-    (name "ruby-logstash-event")
-    (version "1.2.02")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "logstash-event" version))
-        (sha256
-         (base32
-          "1bk7fhhryjxp1klr3hq6i6srrc21wl4p980bysjp0w66z9hdr9w9"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; no rakefile
-    (synopsis
-      "Library that contains the classes required to create LogStash events")
-    (description
-      "Library that contains the classes required to create LogStash events")
-    (home-page "https://github.com/logstash/logstash")
-    (license license:asl2.0)))
-
-(define-public ruby-lines
-  (package
-    (name "ruby-lines")
-    (version "0.9.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "lines" version))
-        (sha256
-         (base32
-          "17hrpvqvc2li4rjnk75xy5qvylk0vg0z8if7q1m00al79d0mpbma"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
-    (synopsis
-      "Readable log format for humans and computers")
-    (description
-     "This package provides a log format that's readable by humans and easily parseable by computers.")
-    (home-page "https://github.com/zimbatm/lines-ruby")
-    (license license:expat)))
-
-(define-public ruby-logstash-logger
-  (package
-    (name "ruby-logstash-logger")
-    (version "0.26.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "logstash-logger" version))
-        (sha256
-         (base32
-          "1nh0jgz4rl46axqb9l0fa866kh34wb7yf11qc3j30xhprdqb8yjp"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; incompatable dependencies on simplecov
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             #t)))))
-    (propagated-inputs
-     `(("ruby-logstash-event" ,ruby-logstash-event)))
-    (native-inputs
-     `(
-       ("ruby-appraisal" ,ruby-appraisal)
-       ("ruby-aws-sdk-firehose" ,ruby-aws-sdk-firehose)
-       ("ruby-aws-sdk-kinesis" ,ruby-aws-sdk-kinesis)
-       ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter)
-       ("ruby-codecov" ,ruby-codecov)
-       ("ruby-poseidon" ,ruby-poseidon)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-rails" ,ruby-rails)
-       ("ruby-redis" ,ruby-redis)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-wwtd" ,ruby-wwtd)
-       ))
-    (synopsis
-      "Ruby logger that writes directly to LogStash")
-    (description
-      "Ruby logger that writes directly to LogStash")
-    (home-page "https://github.com/dwbutler/logstash-logger")
-    (license license:expat)))
-
-(define-public ruby-poseidon
-  (package
-    (name "ruby-poseidon")
-    (version "0.0.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "poseidon" version))
-        (sha256
-         (base32
-          "0lxavrybqwa3xmsajvxp0ngqmn4jxw9q93398yxzdrx83i8a7l8p"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (native-inputs
-     `(
-       ("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-snappy" ,ruby-snappy)
-       ))
-    (synopsis
-      "A Kafka (http://kafka.apache.org/) producer and consumer")
-    (description
-      "This package provides a Kafka (http://kafka.apache.org/) producer and consumer")
-    (home-page "https://github.com/bpot/poseidon")
-    (license license:expat)))
-
-(define-public ruby-snappy
-  (package
-    (name "ruby-snappy")
-    (version "0.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "snappy" version))
-        (sha256
-         (base32
-          "0xl54r1vvrhlkxf16mxqk4kz18j0igf1f7l66kqd9dbyv6x99zfg"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
-           (lambda _
-             ;; Test "VERSION" fails for unknown reasons
-             (delete-file "test/snappy_test.rb")
-             (with-output-to-file "test/snappy_test.rb"
-               (lambda _ ""))
-             #t)))))
-    (inputs
-     `(
-       ("snappy" ,snappy)
-       ))
-    (native-inputs
-     `(
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-test-unit-rr" ,ruby-test-unit-rr)
-       ))
-    (synopsis "libsnappy binding for Ruby")
-    (description "libsnappy binding for Ruby")
-    (home-page "https://github.com/miyucy/snappy")
-    (license license:expat)))
-
-(define-public ruby-test-unit-rr
-  (package
-    (name "ruby-test-unit-rr")
-    (version "1.0.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "test-unit-rr" version))
-        (sha256
-         (base32
-          "0l42wxvqqd4g1968syy1wmr4j9z3cad8v5vv22lr7my4wjgz0sil"))))
-    (build-system ruby-build-system)
-    (propagated-inputs
-     `(("ruby-rr" ,ruby-rr)
-       ("ruby-test-unit" ,ruby-test-unit)))
-    (native-inputs
-     `(
-       ("ruby-packnga" ,ruby-packnga)
-       ))
-    (synopsis
-      "You don't need RR setup codes with test-unit-rr. You just require
-\"test/unit/rr\".
-")
-    (description
-      "You don't need RR setup codes with test-unit-rr.  You just require
-\"test/unit/rr\".
-")
-    (home-page "https://github.com/test-unit/test-unit-rr")
-    (license (license:non-copyleft
-               "will fill in later"))))
-
-(define-public ruby-aws-sdk-kinesis
-  (package
-    (name "ruby-aws-sdk-kinesis")
-    (version "1.31.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-sdk-kinesis" version))
-        (sha256
-         (base32
-          "1wsnn4303q7501xp10gfr8s15cazm4a0xy8knz5b8pmaw93x0g4b"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (propagated-inputs
-     `(("ruby-aws-sdk-core" ,ruby-aws-sdk-core)
-       ("ruby-aws-sigv4" ,ruby-aws-sigv4)))
-    (synopsis
-      "Official AWS Ruby gem for Amazon Kinesis (Kinesis). This gem is part of the AWS SDK for Ruby.")
-    (description
-      "Official AWS Ruby gem for Amazon Kinesis (Kinesis).  This gem is part of the AWS SDK for Ruby.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-aws-sdk-firehose
-  (package
-    (name "ruby-aws-sdk-firehose")
-    (version "1.36.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "aws-sdk-firehose" version))
-        (sha256
-         (base32
-          "0ji75vqfprnkjsy6gdk9qci6wd9kwm7h7lycpx7jsw0fbv6hjx0p"))))
-    (build-system ruby-build-system)
-    (arguments `(#:tests? #f))  ; no tests
-    (propagated-inputs
-     `(("ruby-aws-sdk-core" ,ruby-aws-sdk-core)
-      ("ruby-aws-sigv4" ,ruby-aws-sigv4)))
-    (synopsis
-      "Official AWS Ruby gem for Amazon Kinesis Firehose (Firehose). This gem is part of the AWS SDK for Ruby.")
-    (description
-      "Official AWS Ruby gem for Amazon Kinesis Firehose (Firehose).  This gem is part of the AWS SDK for Ruby.")
-    (home-page "https://github.com/aws/aws-sdk-ruby")
-    (license license:asl2.0)))
-
-(define-public ruby-codecov
-  (package
-    (name "ruby-codecov")
-    (version "0.4.3")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/codecov/codecov-ruby")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "01x1n0j2awnpbnhzhsc058ni8bh2zw3vasbz9gkivydgv2r8xkpd"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))    ; can't install gem
-    (propagated-inputs
-     `(("ruby-simplecov" ,ruby-simplecov)))
-    (synopsis "Hosted code coverage Ruby reporter")
-    (description
-      "Hosted code coverage Ruby reporter.")
-    (home-page "https://github.com/codecov/codecov-ruby")
-    (license license:expat)))
-
-(define-public ruby-rotp
-  (package
-    (name "ruby-rotp")
-    (version "6.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rotp" version))
-        (sha256
-         (base32
-          "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "rspec"))
-             #t)))))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-timecop" ,ruby-timecop)
-       ))
-    (synopsis
-      "Works for both HOTP and TOTP, and includes QR Code provisioning")
-    (description
-      "Works for both HOTP and TOTP, and includes QR Code provisioning")
-    (home-page "https://github.com/mdp/rotp")
-    (license license:expat)))
-
-(define-public ruby-sshkey
-  (package
-    (name "ruby-sshkey")
-    (version "2.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "sshkey" version))
-        (sha256
-         (base32
-          "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp"))))
-    (build-system ruby-build-system)
-    (synopsis
-      "Generate private/public SSH keypairs using pure Ruby")
-    (description
-      "Generate private/public SSH keypairs using pure Ruby")
-    (home-page "https://github.com/bensie/sshkey")
-    (license license:expat)))
-
-(define-public ruby-rchardet
-  (package
-    (name "ruby-rchardet")
-    (version "1.8.0")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jmhodges/rchardet")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "12xcc4dq0k5gq5r142n7rr34lirfyzlkdh5by64cwz0bg5jfn8il"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'replace-git-ls-files)
-         (add-before 'build 'delete-gemfile-lock
-           (lambda _
-             (delete-file "Gemfile.lock")
-             #t))
-         )))
-    (native-inputs
-     `(
-       ("ruby-bump" ,ruby-bump)
-       ("ruby-minitest-rg" ,ruby-minitest-rg)
-       ("ruby-wwtd" ,ruby-wwtd)
-       ))
-    (synopsis
-      "Character encoding auto-detection in Ruby. As smart as your browser. Open source.")
-    (description
-      "Character encoding auto-detection in Ruby.  As smart as your browser.  Open source.")
-    (home-page "https://github.com/jmhodges/rchardet")
-    (license license:lgpl2.1+)))
-
-(define-public ruby-lz4-ruby
-  (package
-    (name "ruby-lz4-ruby")
-    (version "0.3.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "lz4-ruby" version))
-        (sha256
-         (base32
-          "12fymsvcb9kw6ycyfzc8b9svriq0afqf1qnl121xrz8c4gpfa6q1"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f  ; tests require ruby-jeweler
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'replace-git-ls-files)
-         (add-after 'unpack 'patch-source
-           (lambda _
-             (substitute* "Gemfile"
-               (("\\\", .*") "\"\n")
-               ;; NO JEWELER!
-               ((".*jeweler.*") "")
-               )
-             #t))
-         )))
-    (native-inputs
-     `(
-       ;("ruby-rdoc" ,ruby-rdoc)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "Ruby bindings for LZ4. LZ4 is a very fast lossless compression algorithm.")
-    (description
-      "Ruby bindings for LZ4.  LZ4 is a very fast lossless compression algorithm.")
-    (home-page "https://github.com/komiya-atsushi/lz4-ruby")
-    (license license:expat)))
-
-(define-public ruby-webpush
-  (package
-    (name "ruby-webpush")
-    (version "1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "webpush" version))
-        (sha256
-         (base32
-          "1z9ma580q80czw46gi1bvsr2iwxr63aiyr7i9gilav6hbhg3sxv3"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (propagated-inputs
-     `(("ruby-hkdf" ,ruby-hkdf)
-       ("ruby-jwt" ,ruby-jwt)))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis
-      "Encryption Utilities for Web Push payload.")
-    (description
-      "Encryption Utilities for Web Push payload.")
-    (home-page "https://github.com/zaru/webpush")
-    (license license:expat)))
-
-(define-public ruby-colored2
-  (package
-    (name "ruby-colored2")
-    (version "3.1.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "colored2" version))
-        (sha256
-         (base32
-          "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"))
-    (synopsis
-      "This is a heavily modified fork of http://github.com/defunkt/colored gem, with many
-sensible pull requests combined. Since the authors of the original gem no longer support it,
-this might, perhaps, be considered a good alternative.
-
-Simple gem that adds various color methods to String class, and can be used as follows:
-
-  require 'colored2'
-
-  puts 'this is red'.red
-  puts 'this is red with a yellow background'.red.on.yellow
-  puts 'this is red with and italic'.red.italic
-  puts 'this is green bold'.green.bold &lt;&lt; ' and regular'.green
-  puts 'this is really bold blue on white but reversed'.bold.blue.on.white.reversed
-  puts 'this is regular, but '.red! &lt;&lt; 'this is red '.yellow! &lt;&lt; ' and yellow.'.no_color!
-  puts ('this is regular, but '.red! do
-    'this is red '.yellow! do
-      ' and yellow.'.no_color!
-    end
-  end)
-
-")
-    (description
-      "This is a heavily modified fork of http://github.com/defunkt/colored gem, with many
-sensible pull requests combined.  Since the authors of the original gem no longer support it,
-this might, perhaps, be considered a good alternative.
-
-Simple gem that adds various color methods to String class, and can be used as follows:
-
-  require 'colored2'
-
-  puts 'this is red'.red
-  puts 'this is red with a yellow background'.red.on.yellow
-  puts 'this is red with and italic'.red.italic
-  puts 'this is green bold'.green.bold &lt;&lt; ' and regular'.green
-  puts 'this is really bold blue on white but reversed'.bold.blue.on.white.reversed
-  puts 'this is regular, but '.red! &lt;&lt; 'this is red '.yellow! &lt;&lt; ' and yellow.'.no_color!
-  puts ('this is regular, but '.red! do
-    'this is red '.yellow! do
-      ' and yellow.'.no_color!
-    end
-  end)
-
-")
-    (home-page "https://github.com/kigster/colored2")
-    (license license:expat)))
-
-(define-public ruby-rails-failover
-  (package
-    (name "ruby-rails-failover")
-    (version "0.6.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rails_failover" version))
-        (sha256
-         (base32
-          "1s8yfpam6qfs2bj596rfwhcgb4pjamg93ijqpa8c5d207sm45a07"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:test-target "default"
-       #:tests? #f))    ; cannot load such file -- spec_helper
-    (propagated-inputs
-     `(("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-concurrent-ruby" ,ruby-concurrent)
-       ("ruby-railties" ,ruby-railties)))
-    (native-inputs
-     `(
-       ("ruby-rspec" ,ruby-rspec)
-       ))
-    (synopsis "Failover for ActiveRecord and Redis")
-    (description
-      "Failover for ActiveRecord and Redis")
-    (home-page "https://github.com/discourse/rails_failover")
-    (license license:expat)))
-
-(define-public ruby-regressiontest
- (package
-  (name "ruby-regressiontest")
-  (version "0.0.3")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "regressiontest" version))
-      (sha256
-        (base32
-          "03y5ksab6ybd2d586zmihpn2hzvqrxb9pfzh5i6a8f2ivcrfqn9k"))))
-  (build-system ruby-build-system)
-  (propagated-inputs
-    `(("ruby-shoulda" ,ruby-shoulda)))
-  (synopsis
-    "Regression testing for the command line, and library API")
-  (description
-    "Regression testing for the command line, and library API")
-  (home-page
-    "http://github.com/pjotrp/regressiontest")
-  (license license:expat)))
-
-(define-public ruby-lmdb ; note you may need to explicitly use ruby@3.3.8 to run the extension - the guix default
-  (package
-   (name "ruby-lmdb")
-   (version "0.6.5")
-   (source (origin
-            (method url-fetch)
-            (uri (rubygems-uri "lmdb" version))
-            (sha256
-             (base32
-              "094vwmp97av17k9sf8f42i308240a8aikbp3hf1f8wabcy7c7ar2"))))
-   (build-system ruby-build-system)
-   (inputs
-    (list lmdb))
-   (native-inputs
-    `(("ruby-rake" ,ruby-rake)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-ruby-memcheck" ,ruby-ruby-memcheck)
-       ))
-   (arguments
-    `(#:tests? #f))
-   (synopsis "lmdb is a Ruby binding to OpenLDAP Lightning MDB.")
-   (description "lmdb is a Ruby binding to OpenLDAP Lightning MDB.")
-   (home-page "https://github.com/doriantaylor/rb-lmdb")
-   (license license:expat))) ;; note that all these license statements need to be checked!
-
-(define-public ruby-unicode-types
-  (package
-    (name "ruby-unicode-types")
-    (version "1.10.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "unicode-types" version))
-       (sha256
-        (base32 "1mif6v3wlfpb69scikpv7i4zq9rhj19px23iym6j8m3wnnh7d2wi"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis
-     "[Unicode 16.0.0] Determines the very basic type of codepoints (one of: Graphic, Format, Control, Private-use, Surrogate, Noncharacter, Reserved)")
-    (description
-     "[Unicode 16.0.0] Determines the very basic type of codepoints (one of: Graphic,
-Format, Control, Private-use, Surrogate, Noncharacter, Reserved).")
-    (home-page "https://github.com/janlelis/unicode-types")
-    (license license:expat)))
-
-(define-public ruby-sxp
-  (package
-    (name "ruby-sxp")
-    (version "2.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "sxp" version))
-       (sha256
-        (base32 "08a7ha191gdc1n1pwaqgsx133wy1p1g4fchkhr5gx0jannx1p5vr"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (propagated-inputs (list ruby-matrix ruby-rdf))
-    (synopsis
-     "Universal S-expression parser with specific support for Common Lisp, Scheme, and RDF/SPARQL")
-    (description
-     "Universal S-expression parser with specific support for Common Lisp, Scheme, and
-RDF/SPARQL.")
-    (home-page "https://github.com/dryruby/sxp")
-    (license license:expat)))
-
-(define-public ruby-scanf
-  (package
-    (name "ruby-scanf")
-    (version "1.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "scanf" version))
-       (sha256
-        (base32 "000vxsci3zq8m1wl7mmppj7sarznrqlm6v2x2hdfmbxcwpvvfgak"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis "scanf is an implementation of the C function scanf(3).")
-    (description "scanf is an implementation of the C function scanf(3).")
-    (home-page "https://github.com/ruby/scanf")
-    (license license:expat)))
-
-(define-public ruby-ebnf
-  (package
-    (name "ruby-ebnf")
-    (version "2.6.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "ebnf" version))
-       (sha256
-        (base32 "0gpnphpp7qcdjh9vrj8bfrb3k54lq7pk7p23w92wr1d8r8ba6ip7"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (propagated-inputs (list ruby-base64
-                             ruby-htmlentities
-                             ruby-rdf
-                             ruby-scanf
-                             ruby-sxp
-                             ruby-unicode-types))
-    (synopsis
-     "EBNF is a Ruby parser for W3C EBNF and a parser generator for PEG and LL(1). Also includes parsing modes for ISO EBNF and ABNF.")
-    (description
-     "EBNF is a Ruby parser for W3C EBNF and a parser generator for PEG and LL(1).
-Also includes parsing modes for ISO EBNF and ABNF.")
-    (home-page "https://github.com/dryruby/ebnf")
-    (license license:expat)))
-
-(define-public ruby-bigdecimal
-  (package
-    (name "ruby-bigdecimal")
-    (version "3.2.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "bigdecimal" version))
-       (sha256
-        (base32 "1p2szbr4jdvmwaaj2kxlbv1rp0m6ycbgfyp0kjkkkswmniv5y21r"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis
-     "This library provides arbitrary-precision decimal floating-point number class.")
-    (description
-     "This library provides arbitrary-precision decimal floating-point number class.")
-    (home-page "https://github.com/ruby/bigdecimal")
-    (license license:expat)))
-
-(define-public ruby-rdf-turtle
-  (package
-    (name "ruby-rdf-turtle")
-    (version "3.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "rdf-turtle" version))
-       (sha256
-        (base32 "0irnlxnrkdqsk5wkjj51rwyj59lcj4j8y24s9yxplbksjy4vxwxs"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (propagated-inputs (list ruby-base64 ruby-bigdecimal ruby-ebnf ruby-rdf))
-    (synopsis
-     "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.")
-    (description
-     "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.")
-    (home-page "https://github.com/ruby-rdf/rdf-turtle")
-    (license license:unlicense)))
-
-(define-public ruby-readline
-  (package
-    (name "ruby-readline")
-    (version "0.0.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "readline" version))
-       (sha256
-        (base32 "0shxkj3kbwl43rpg490k826ibdcwpxiymhvjnsc85fg2ggqywf31"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (propagated-inputs (list ruby-reline))
-    (synopsis
-     "This is just a loader for \"readline\". If Ruby has the \"readline-ext\" gem
-that is a native extension, this gem will load it. If Ruby does not have
-the \"readline-ext\" gem this gem will load \"reline\", a library that is
-compatible with the \"readline-ext\" gem and implemented in pure Ruby.
-")
-    (description
-     "This is just a loader for \"readline\".  If Ruby has the \"readline-ext\" gem that
-is a native extension, this gem will load it.  If Ruby does not have the
-\"readline-ext\" gem this gem will load \"reline\", a library that is compatible
-with the \"readline-ext\" gem and implemented in pure Ruby.")
-    (home-page "https://github.com/ruby/readline")
-    (license license:expat)))
-
-(define-public ruby-ostruct
-  (package
-    (name "ruby-ostruct")
-    (version "0.6.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "ostruct" version))
-       (sha256
-        (base32 "04nrir9wdpc4izqwqbysxyly8y7hsfr4fsv69rw91lfi9d5fv8lm"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis "Class to build custom data structures, similar to a Hash.")
-    (description "Class to build custom data structures, similar to a Hash.")
-    (home-page "https://github.com/ruby/ostruct")
-    (license license:expat)))
-
-(define-public ruby-logger
-  (package
-    (name "ruby-logger")
-    (version "1.7.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "logger" version))
-       (sha256
-        (base32 "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis "Provides a simple logging utility for outputting messages.")
-    (description
-     "This package provides a simple logging utility for outputting messages.")
-    (home-page "https://github.com/ruby/logger")
-    (license license:expat)))
-
-(define-public ruby-bcp47-spec
-  (package
-    (name "ruby-bcp47-spec")
-    (version "0.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "bcp47_spec" version))
-       (sha256
-        (base32 "043qld01c163yc7fxlar3046dac2833rlcg44jbbs9n1jvgjxmiz"))))
-    (build-system ruby-build-system)
-    (arguments
-     `(#:tests? #f))
-    (synopsis "A subset of the BCP 47 spec.")
-    (description "This package provides a subset of the BCP 47 spec.")
-    (home-page "https://github.com/dadah89/bcp47_spec")
-    (license license:expat)))
-
-(define-public ruby-rdf
-  (package
-    (name "ruby-rdf")
-    (version "3.3.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "rdf" version))
-       (sha256
-        (base32 "1har1346p7jwrs89d5w1gv98jk2nh3cwkdyvkzm2nkjv3s1a0zx7"))))
-    (build-system ruby-build-system)
-    (propagated-inputs (list ruby-bcp47-spec
-                             ruby-bigdecimal
-                             ruby-link-header
-                             ruby-logger
-                             ruby-ostruct
-                             ruby-readline))
-    (arguments
-     `(#:tests? #f))
-    (synopsis
-     "RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data.")
-    (description
-     "RDF.rb is a pure-Ruby library for working with Resource Description Framework
-(RDF) data.")
-    (home-page "https://github.com/ruby-rdf/rdf")
-    (license license:unlicense)))
-
-(define-public ruby-rdf-raptor
-  (let ((commit "6392cea"))
-  (package
-    (name "ruby-rdf-raptor")
-    (version "3.3.0")
-    (source (origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ruby-rdf/rdf-raptor")
-                   (commit commit)))
-             (file-name (string-append name "-" version "-checkout"))
-             (sha256
-              (base32
-            "1mqdddn8s3j0j7gqw0v34jw5cxg2mkka1x9fx46vy38v15m8bbn1"))))
-    (build-system ruby-build-system)
-    (propagated-inputs (list ruby-ffi ruby-rdf raptor2))
-    (arguments
-     `(#:tests? #f))
-    (synopsis
-     "RDF.rb plugin for parsing/serializing NTriples, RDF/XML, Turtle and RDFa data using the Raptor RDF Parser library.")
-    (description
-     "RDF.rb plugin for parsing/serializing NTriples, RDF/XML, Turtle and RDFa data
-using the Raptor RDF Parser library.")
-    (home-page "https://github.com/ruby-rdf/rdf-raptor")
-    (license license:unlicense))))
diff --git a/gn/packages/traefik.scm b/gn/packages/traefik.scm
deleted file mode 100644
index d77ec93..0000000
--- a/gn/packages/traefik.scm
+++ /dev/null
@@ -1,52 +0,0 @@
-(define-module (gn packages traefik)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system trivial)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages compression))
-
-(define-public traefik
-  (package
-    (name "traefik")
-    (version "2.0.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/containous/traefik/"
-                                  "releases/download/v" version
-                                  "/traefik_v" version "_linux_amd64.tar.gz"))
-              (sha256
-               (base32
-                "0i0c2d647ks7x3p8l46rslrmnasdk88a6caq1c6diy3ngdcwik23"))))
-    (build-system trivial-build-system)
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let* ((out     (assoc-ref %outputs "out"))
-                (bin     (string-append out "/bin"))
-                (target  (string-append bin "/traefik"))
-                (gzip    (assoc-ref %build-inputs "gzip"))
-                (tar     (assoc-ref %build-inputs "tar"))
-                (source  (assoc-ref %build-inputs "source")))
-           (setenv "PATH" (string-append gzip "/bin"))
-           (invoke (string-append tar "/bin/tar") "xvf" source)
-           (install-file "traefik" bin)
-           (install-file "LICENSE.md" (string-append out "/share/doc/"
-                                                     ,name "-" ,version)))
-         #t)))
-    (native-inputs
-     `(("gzip" ,gzip)
-       ("source" ,source)
-       ("tar"  ,tar)))
-    (home-page "https://traefik.io/")
-    (synopsis "Cloud Native Edge Router")
-    (description "Traefik (pronounced traffic) is a modern HTTP reverse proxy
-and load balancer that makes deploying microservices easy.  Traefik integrates
-with your existing infrastructure components (Docker, Swarm mode, Kubernetes,
-Marathon, Consul, Etcd, Rancher, Amazon ECS, ...) and configures itself
-automatically and dynamically.  Pointing Traefik at your orchestrator should be
-the only configuration step you need.")
-    (supported-systems '("x86_64-linux"))
-    (license license:expat)))
diff --git a/gn/packages/twint.scm b/gn/packages/twint.scm
deleted file mode 100644
index a9d8476..0000000
--- a/gn/packages/twint.scm
+++ /dev/null
@@ -1,150 +0,0 @@
-(define-module (gn packages twint)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (gnu packages)
-  #:use-module (guix build-system pyproject)
-  #:use-module (guix build-system python)
-  #:use-module (guix gexp)
-  #:use-module (guix git-download)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (gnu packages check)
-  #:use-module (gnu packages geo)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages python-build)
-  #:use-module (gnu packages python-web)
-  #:use-module (gnu packages python-science)
-  #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages sphinx)
-  #:use-module (gnu packages time))
-
-(define-public python-googletransx
-  (package
-    (name "python-googletransx")
-    (version "2.4.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "googletransx" version))
-       (sha256
-        (base32
-         "1nnn08cqc57d8lq1qp82fazk1x83ccdi410hmzlbnajw6vinfrf4"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f))
-    (propagated-inputs
-     `(("python-requests" ,python-requests)))
-    (home-page
-     "https://github.com/x0rkov/py-googletrans")
-    (synopsis
-     "Free Google Translate API for Python. Translates totally free of charge.")
-    (description
-     "Free Google Translate API for Python. Translates totally free of charge.")
-    (license license:expat)))
-
-(define-public python-statistics
-  (package
-    (name "python-statistics")
-    (version "1.0.3.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "statistics" version))
-       (sha256
-        (base32
-         "0f61hrj25p60kvf09nqysd6xlccm5dmx1jl8akfjvgq71fw7khrd"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f))
-    (propagated-inputs
-     `(("python-docutils" ,python-docutils)))
-    (home-page "UNKNOWN")
-    (synopsis
-     "A Python 2.* port of 3.4 Statistics Module")
-    (description
-     "A Python 2.* port of 3.4 Statistics Module")
-    (license #f)))
-
-(define-public python-fake-useragent
-  (package
-    (name "python-fake-useragent")
-    (version "0.1.11")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "fake-useragent" version))
-       (sha256
-        (base32
-         "0dfz3bpmjmaxlhda6hfgsac7afb65pljibi8zkp9gc0ffn5rj161"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f))
-    (home-page
-     "https://github.com/hellysmile/fake-useragent")
-    (synopsis
-     "Up to date simple useragent faker with real world database")
-    (description
-     "Up to date simple useragent faker with real world database")
-    (license #f)))
-
-;; TODO: Upstream
-
-(define-public python-twint
-  (package
-    (name "python-twint")
-    (version "2.1.20")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/twintproject/twint")
-             (commit "a45a8ac719d5710e7da92f77d9801b351e505c1f")))
-       (sha256
-        (base32
-         "1bixwrwh1v7vpv0y6skgkml8zm82w00qwkvd6q79pkdj3hczha75"))
-       (patches (search-patches "python-twint-userlist.patch"
-                                "python-twint-mentions.patch"
-                                "python-twint-token.patch"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-deps
-           (lambda _
-             (substitute* "setup.py"
-               (("'dataclasses',") ""))))
-         (add-after 'unpack 'twint-hot-fixes
-           (lambda _
-             ;; TODO: Upstream this fix
-             (begin
-               (substitute* "twint/format.py"
-                 ((", t.replies_count)")
-                  ", str(t.replies_count))"))
-               (substitute* "twint/format.py"
-                 ((", t.retweets_count)")
-                  ", str(t.retweets_count))"))
-               (substitute* "twint/format.py"
-                 ((", t.quote_url)")
-                  ", str(t.quote_url))"))
-               (substitute* "twint/format.py"
-                 ((", t.likes_count)")
-                  ", str(t.likes_count))"))))))))
-    (propagated-inputs
-     `(("python-pycares" ,python-pycares)
-       ("python-aiohttp-socks" ,python-aiohttp-socks)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-cchardet" ,python-cchardet)
-       ("python-elasticsearch" ,python-elasticsearch)
-       ("python-fake-useragent" ,python-fake-useragent)
-       ("python-geopy" ,python-geopy)
-       ("python-yarl" ,python-yarl)
-       ("python-googletransx" ,python-googletransx)
-       ("python-pandas" ,python-pandas)
-       ("python-schedule" ,python-schedule)))
-    (home-page
-     "https://github.com/twintproject/twint")
-    (synopsis
-     "An advanced Twitter scraping & OSINT tool.")
-    (description
-     "An advanced Twitter scraping & OSINT tool.")
-    (license license:expat)))
diff --git a/gn/packages/yaj.scm b/gn/packages/yaj.scm
deleted file mode 100644
index 668b478..0000000
--- a/gn/packages/yaj.scm
+++ /dev/null
@@ -1,62 +0,0 @@
-(define-module (gn packages yaj)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix utils)
-  #:use-module (guix download)
-  #:use-module (guix build-system python)
-  #:use-module (guix build-system trivial)
-  #:use-module (gn packages python)
-  #:use-module (gnu packages)
-  #:use-module (gnu packages check)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages python-web)
-  #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages web)
-  #:use-module (gn packages web)
-  #:use-module (gn packages check))
-
-(define-public yaj
-  (let ((md5 "93e745e9c"))
-    (package
-    (name "yaj")
-    (version "0.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri "http://biogems.info/genenetwork2-2.0-a8fcff4.svg") ; any old file
-       (file-name (string-append name "-" md5))
-       (sha256
-        (base32 "0rir1mcn3a8i1mbw3ppgnjl7wg71mapljik7n3v5i8j5ic95mqr5"))))
-    (build-system trivial-build-system)
-    (native-inputs `(("unzip" ,unzip)
-                     ("source" ,source)))
-    (inputs `(("sassc" ,sassc)))
-    (propagated-inputs
-     `(("python" ,python)
-       ("python-elasticsearch" ,python-elasticsearch)
-       ("python-flask" ,python-flask)
-       ("python-jinja2" ,python-jinja2)
-       ("python-mako" ,python-mako)
-       ("python-markdown" ,python-markdown)
-       ("python-misaka" ,python-misaka)
-       ("python-pygit2" ,python-pygit2)
-       ("web-bootstrap" ,web-bootstrap)
-       ("sassc" ,sassc)
-       ))
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let ((target (string-append (assoc-ref %outputs "out")
-                                      "/share")))
-             (write target)
-             (mkdir-p target)
-             ; (copy-recursively (assoc-ref %build-inputs "source") target)
-             #t))))
-
-    (home-page "http://github.com/pjotrp/yaj/")
-    (synopsis "Yet another journal")
-    (description "YAJ.")
-    (license license:agpl3+))))
diff --git a/gn/services/bxd-power-container.scm b/gn/services/bxd-power-container.scm
deleted file mode 100644
index 9191302..0000000
--- a/gn/services/bxd-power-container.scm
+++ /dev/null
@@ -1,24 +0,0 @@
-(define-module (gn services bxd-power-container))
-
-(use-modules (gnu)
-             (gn packages bioinformatics)
-             (gn services rshiny))
-
-(operating-system
-  (host-name "bxd-power")
-  (timezone "Etc/UTC")
-  (locale "en_US.utf8")
-
-  (bootloader (bootloader-configuration
-               (bootloader grub-bootloader)
-               (targets '("does-not-matter"))))
-  (file-systems %base-file-systems)
-  ;; No firmware for VMs.
-  (firmware '())
-  ;; We only need a few packages inside the container.
-  (packages (list coreutils))
-
-  (services (list (service rshiny-service-type
-                           (rshiny-configuration
-                             (package bxd-power-calculator-app)
-                             (binary "bxd-power-calculator-app"))))))
diff --git a/gn/services/jumpsem-container.scm b/gn/services/jumpsem-container.scm
deleted file mode 100644
index 934507e..0000000
--- a/gn/services/jumpsem-container.scm
+++ /dev/null
@@ -1,27 +0,0 @@
-(define-module (gn services jumpsem-container))
-
-(use-modules (gnu)
-             (gn packages r-shiny)
-             (gn services rshiny))
-(use-service-modules networking)
-(use-package-modules base)
-
-(operating-system
-  (host-name "jumpsem")
-  (timezone "Etc/UTC")
-  (locale "en_US.utf8")
-
-  (bootloader (bootloader-configuration
-               (bootloader grub-bootloader)
-               (targets '("does-not-matter"))))
-  (file-systems %base-file-systems)
-  (firmware '())
-  (packages (list coreutils))
-
-  (services (list (service dhcpcd-service-type)
-                  (service rshiny-service-type
-                           (rshiny-configuration
-                             (package jumpsem-web)
-                             (binary "jumpsem-web"))))))
-
-;; guix system container -L guix-bioinformatics guix-bioinformatics/gn/services/jumpsem-container.scm --network
diff --git a/gn/services/jumpshiny-container.scm b/gn/services/jumpshiny-container.scm
deleted file mode 100644
index effcf23..0000000
--- a/gn/services/jumpshiny-container.scm
+++ /dev/null
@@ -1,25 +0,0 @@
-(define-module (gn services jumpshiny-container))
-
-(use-modules (gnu)
-             (gn packages r-shiny)
-             (gn services rshiny))
-(use-package-modules base bash)
-
-(operating-system
-  (host-name "jumpshiny")
-  (timezone "Etc/UTC")
-  (locale "en_US.utf8")
-
-  (bootloader (bootloader-configuration
-               (bootloader grub-bootloader)
-               (targets '("does-not-matter"))))
-  (file-systems %base-file-systems)
-  (firmware '())
-  (packages (list coreutils bash))
-
-  (services (list (service rshiny-service-type
-                           (rshiny-configuration
-                             (package jumpshiny)
-                             (binary "jumpshiny"))))))
-
-;; guix system container -L guix-bioinformatics guix-bioinformatics/gn/services/jumpshiny-container.scm --network
diff --git a/gn/services/rn6-assembly-container.scm b/gn/services/rn6-assembly-container.scm
deleted file mode 100644
index b0b5f1d..0000000
--- a/gn/services/rn6-assembly-container.scm
+++ /dev/null
@@ -1,24 +0,0 @@
-(define-module (gn services rn6-assembly-container))
-
-(use-modules (gnu)
-             (gn packages bioinformatics)
-             (gn services rshiny))
-
-(operating-system
-  (host-name "rn6-assembly")
-  (timezone "Etc/UTC")
-  (locale "en_US.utf8")
-
-  (bootloader (bootloader-configuration
-               (bootloader grub-bootloader)
-               (targets '("does-not-matter"))))
-  (file-systems %base-file-systems)
-  ;; No firmware for VMs.
-  (firmware '())
-  ;; We only need a few packages inside the container.
-  (packages '())
-
-  (services (list (service rshiny-service-type
-                           (rshiny-configuration
-                             (package rn6-assembly-error-app)
-                             (binary "rn6-assembly-error-app"))))))
diff --git a/gn/services/rshiny.scm b/gn/services/rshiny.scm
deleted file mode 100644
index 90e4728..0000000
--- a/gn/services/rshiny.scm
+++ /dev/null
@@ -1,86 +0,0 @@
-(define-module (gn services rshiny)
-  #:export (<rshiny-configuration>
-            rshiny-configuration
-            rshiny-configuration?
-            rshiny-configuration-package
-            rshiny-configuration-binary
-            rshiny-shepherd-service
-            rshiny-service-type))
-
-(use-modules (gnu)
-             (guix records)
-             (ice-9 match))
-(use-service-modules shepherd)
-(use-package-modules cran)
-
-(define-record-type* <rshiny-configuration>
-  rshiny-configuration
-  make-rshiny-configuration
-  rshiny-configuration?
-  (package          rshiny-configuration-package    ; package
-                    (default r-shiny))
-  (binary           rshiny-configuration-binary     ; string
-                    (default "rshiny")))
-
-(define rshiny-shepherd-service
-  (match-lambda
-    (($ <rshiny-configuration> package binary)
-     (list
-       (shepherd-service
-         (documentation (string-append "R-Shiny service for " binary))
-         (provision (list (symbol-append 'rshiny- (string->symbol
-                                                    (string-take binary 9)))))
-         (requirement '(networking))
-         (start
-           #~(exec-command
-               (list
-                 #$(string-append "/run/current-system/profile/bin/" binary))
-               ;#:log-file #$(string-append "/var/log/" binary ".log") ; kills shepherd
-               #:environment-variables
-               (list "R_LIBS_USER=/run/current-system/profile/site-library/")))
-         ;; Now lets try it with fork+exec
-         ;; Outcome: shepherd says failed, runs in the background.
-         ;(start
-         ;  #~(fork+exec-command
-         ;      (list
-         ;        #$(string-append "/run/current-system/profile/bin/" binary))
-         ;      #:environment-variables
-         ;      (list "R_LIBS_USER=/run/current-system/profile/site-library/")))
-         ;; More fork+exec trials, this time with a log file:
-         ;; Outcome: shepherd says failed, runs in the background, log populated.
-         ;(start
-         ;  #~(fork+exec-command
-         ;      (list
-         ;        "/run/current-system/profile/bin/nohup"
-         ;        #$(string-append "/run/current-system/profile/bin/" binary) "&")
-         ;      #:log-file #$(string-append "/var/log/" binary ".log")
-         ;      #:environment-variables
-         ;      (list "R_LIBS_USER=/run/current-system/profile/site-library/")))
-         ;; Now lets try it with make-forkexec:
-         ;; Outcome: Kills shepherd, does not run in the background.
-         ;(start
-         ;  #~(make-forkexec-command
-         ;      (list
-         ;        "/run/current-system/profile/bin/nohup"
-         ;        #$(string-append "/run/current-system/profile/bin/" binary) "&")
-         ;        "/run/current-system/profile/bin/bash" "-c"
-         ;        #$(string-append "/run/current-system/profile/bin/" binary))
-         ;      #:environment-variables
-         ;      (list "R_LIBS_USER=/run/current-system/profile/site-library/")))
-         (stop #~(make-kill-destructor)))))))
-
-(define rshiny-service-type
-  (service-type
-    (name 'rshiny)
-    (extensions
-      (list
-        (service-extension shepherd-root-service-type
-                           rshiny-shepherd-service)
-        (service-extension profile-service-type
-                           ;; We want the package installed so that it
-                           ;; pulls in the propagated inputs as well.
-                           (lambda (config)
-                             (list
-                               (rshiny-configuration-package config))))))
-    (description
-     "Run an R-Shiny webapp as a Guix Service.")))