unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Add "guix update" command
@ 2016-01-23 18:20 Fabian Harfert
  2016-01-23 19:27 ` Christopher Allan Webber
  0 siblings, 1 reply; 6+ messages in thread
From: Fabian Harfert @ 2016-01-23 18:20 UTC (permalink / raw)
  To: guix-devel

Hello,

on IRC I already mentioned that, but there wasn't much resonance: I
think for the purposes of non-developers the behavior of the "guix
pull" command is too complicated.

Normal users don't need a development version of the package manager,
when they just want to get the newest package definitions to update
their installed software. So it would be much easier and faster if
there was a separate repository just containing the most recent package
definitions.

I propose to add a new command line option - e.g. "guix update" -
fetching these latest package definitions and not doing anything else.
They could be contained by a package whose definition is downloaded,
for example "guix-packages".

To avoid compatibility issues when there's a new release of Guix itself
this package must be versioned equal to the Guix version numbers. I'm
thinking of the following:

  The user is running Guix 1.2.1 and has installed the package
  guix-packages-1.2.1-4 containing the package definitions. Now he runs
  "guix update" and fetches guix-packages-1.2.1-5 with the new package
  definitions including the new Guix release 1.2.2. He now updates Guix
  to this version which has the new guix-packages-1.2.2-0 as an input.
  When he runs "guix update" again, guix-packages-1.2.2-1 is installed,
  which contains package definitions that make use of some new features.

This would just be for the time between the Guix releases. I think we
don't need support for older versions of Guix except from keeping the
last guix-packages package, but we could also do some security
or minor updates to the older package definitions which would provide
users the possibility to use GuixSD as a stable distribution like
Debian.

Another advantage of the separation between Guix itself and the package
definitions is that it's easy to provide an own or foreign
guix-packages package which would promote the decentralization of Guix.

Initially I thought of doing the same for service definitions except
from the basic ones. But I think that version compatibility problems
would occur more often because service definitions are at a lower level
than the package definitions. In addition the notorious normal users
won't change so much of their service definitions.

Fabian


I don't know why this E-Mail is shown as a reply to the transmission
patch, so I send it again, sorry.

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [PATCH] Add cufflinks.
@ 2015-09-16 15:45 Ricardo Wurmus
  2015-09-16 17:10 ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Wurmus @ 2015-09-16 15:45 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 424 bytes --]

Hi Guix,

attached is a patch to add “cufflinks” to the bioinformatics module.
According to the authors, boost 1.56 broke the serialisation library in
some way, so “cufflinks” must be built against version 1.55.  They
expect this to be fixed in version 1.59 (current is 1.58).  This is why
this patch also adds a local variable “boost-1.55”, which is used by the
“cufflinks” package.

~~ Ricardo


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-cufflinks.patch --]
[-- Type: text/x-patch, Size: 5460 bytes --]

From e8186326701df11ee4bdb22d4717cf4b8c27dd50 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Date: Wed, 16 Sep 2015 17:42:41 +0200
Subject: [PATCH] gnu: Add cufflinks.

* gnu/packages/bioinformatics.scm (boost-1.55, cufflinks): New
  variables.
---
 gnu/packages/bioinformatics.scm | 99 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 1f34211..6a6b10f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -837,6 +837,105 @@ files between different genome assemblies.  It supports most commonly used
 file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
     (license license:gpl2+)))
 
+(define boost-1.55
+  (package (inherit boost)
+    (version "1.55.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/boost/boost_"
+                    (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments boost)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           ;; The only difference from the "boost" package in that the "src"
+           ;; directory is called "v2" in this version.
+           (replace 'configure
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (substitute* '("libs/config/configure"
+                               "libs/spirit/classic/phoenix/test/runtest.sh"
+                               "tools/build/v2/doc/bjam.qbk"
+                               "tools/build/v2/engine/execunix.c"
+                               "tools/build/v2/engine/Jambase"
+                               "tools/build/v2/engine/jambase.c")
+                  (("/bin/sh") (which "sh")))
+
+                (setenv "SHELL" (which "sh"))
+                (setenv "CONFIG_SHELL" (which "sh"))
+
+                (zero? (system* "./bootstrap.sh"
+                                (string-append "--prefix=" out)
+                                "--with-toolset=gcc")))))))))))
+
+(define-public cufflinks
+  (package
+    (name "cufflinks")
+    (version "2.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://cole-trapnell-lab.github.io/"
+                                  "cufflinks/assets/downloads/cufflinks-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1bnm10p8m7zq4qiipjhjqb24csiqdm1pwc8c795z253r2xk6ncg8"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-search-for-bam
+          (lambda _
+            (substitute* '("ax_bam.m4"
+                           "configure"
+                           "src/hits.h")
+              (("<bam/sam\\.h>") "<samtools/sam.h>")
+              (("<bam/bam\\.h>") "<samtools/bam.h>")
+              (("<bam/version\\.hpp>") "<samtools/version.h>"))
+            #t))
+         (add-after 'unpack 'set-CPATH-and-LDFLAGS
+          (lambda* (#:key inputs #:allow-other-keys)
+            ;; The includes for "eigen" are located in a subdirectory.
+            (setenv "CPATH" (string-append (assoc-ref inputs "eigen")
+                                           "/include/eigen3/" ":"
+                                           (or (getenv "CPATH") "")))
+            ;; Cufflinks must be linked with various boost libraries.
+            (setenv "LDFLAGS" (string-join '("-lboost_system"
+                                             "-lboost_serialization"
+                                             "-lboost_thread")
+                                           " "))
+            #t)))
+       #:configure-flags
+       (list (string-append "--with-bam="
+                            (assoc-ref %build-inputs "samtools")))))
+    (inputs
+     `(("eigen" ,eigen)
+       ("samtools" ,samtools-0.1)
+       ("htslib" ,htslib)
+       ;; Due to a serious issue with Boost Serialization library introduced
+       ;; in version 1.56, Cufflinks currently can only be built with Boost
+       ;; version 1.55 or lower. The issue is expected to be fixed in the
+       ;; upcoming Boost v1.59.
+       ("boost-1.55" ,boost-1.55)
+       ("python" ,python-2)
+       ("zlib" ,zlib)))
+    (home-page "http://cole-trapnell-lab.github.io/cufflinks/")
+    (synopsis "Transcriptome assembly and RNA-Seq expression analysis")
+    (description
+     "Cufflinks assembles transcripts, estimates their abundances, and tests
+for differential expression and regulation in RNA-Seq samples.  It accepts
+aligned RNA-Seq reads and assembles the alignments into a parsimonious set of
+transcripts.  Cufflinks then estimates the relative abundances of these
+transcripts based on how many reads support each one, taking into account
+biases in library preparation protocols.")
+    (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"
+                                "Some components have other similar licences."))))
+
 (define-public cutadapt
   (package
     (name "cutadapt")
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-01-24 17:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-23 18:20 Add "guix update" command Fabian Harfert
2016-01-23 19:27 ` Christopher Allan Webber
  -- strict thread matches above, loose matches on Subject: below --
2015-09-16 15:45 [PATCH] Add cufflinks Ricardo Wurmus
2015-09-16 17:10 ` Ludovic Courtès
2016-01-23 16:36   ` [PATCH 1/1] gnu: transmission-gtk: Add icon dependencies Ludovic Courtès
2016-01-23 18:11     ` Add "guix update" command Fabian Harfert
2016-01-23 18:28       ` Friedrich Herbst
2016-01-23 19:37       ` Thompson, David
2016-01-23 21:35         ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).