all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ben Woodcroft <b.woodcroft@uq.edu.au>
To: "guix-devel@gnu.org" <guix-devel@gnu.org>
Subject: [PATCH] tar bombs and muscle
Date: Sun, 17 Jan 2016 11:30:03 +1000	[thread overview]
Message-ID: <569AEE9B.6070709@uq.edu.au> (raw)

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

Hi,

There is a somewhat popular bioinformatics program muscle whose download 
tgz is a tar bomb. The bomb moniker seems especially appropriate here, 
since it made the gnu-build-system error out, and patching 
gnu-build-system requires a lot of rebuilding. In the attached patches I 
fixed gnu-build-system so that the "chdir" is omitted when there is no 
directory to chdir into, and then added muscle itself.

Is it OK in these rare instances to put the archive contents into the 
directory as-is, or is something more complex like making a directory 
and moving everything there more appropriate?

I imagine it might be best to let this slide into the next core-updates.

Thanks,
ben

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-gnu-Add-muscle.patch --]
[-- Type: text/x-patch; name="0002-gnu-Add-muscle.patch", Size: 1995 bytes --]

From 9400f88a9f70d47f1e835a98842b894e640d0e4a Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Sat, 16 Jan 2016 22:12:23 +1000
Subject: [PATCH 2/2] gnu: Add muscle.

* gnu/packages/bioinformatics.scm (muscle): New variable.
---
 gnu/packages/bioinformatics.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a905ccf..4a7a2c2 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2176,6 +2176,37 @@ the ability to go from raw sequences to the generation of visualization tools
 to describe ecological α and β diversity measurements.")
     (license license:gpl3)))
 
+(define-public muscle
+  (package
+    (name "muscle")
+    (version "3.8.1551")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://www.drive5.com/muscle/muscle_src_"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0bj8kj7sdizy3987zx6w7axihk40fk8rn76mpbqqjcnd64i5a367"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "LDLIBS = -lm")
+       #:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "muscle" bin)))))))
+    (home-page "http://www.drive5.com/muscle")
+    (synopsis "Multiple sequence alignment program")
+    (description
+     "MUSCLE aims to be a fast and accurate multiple sequence
+alignment program for nucleotide and protein sequences.")
+    (license license:public-domain)))
+
 (define-public orfm
   (package
     (name "orfm")
-- 
2.6.3


[-- Attachment #3: 0001-build-Accept-source-archives-that-do-not-contain-a-d.patch --]
[-- Type: text/x-patch, Size: 1187 bytes --]

From 9e272374a3531d1df6d36e595dad0b715731e4cd Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Sat, 16 Jan 2016 22:02:22 +1000
Subject: [PATCH 1/2] build: Accept source archives that do not contain a
 directory.

* guix/build/gnu-build-system.scm (unpack): Do not attempt to change
directory after extracting archive if the archive does not contain any
directories.
---
 guix/build/gnu-build-system.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index ff7646b..f1a84ef 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -142,7 +142,10 @@ working directory."
       (and (if (string-suffix? ".zip" source)
                (zero? (system* "unzip" source))
                (zero? (system* "tar" "xvf" source)))
-           (chdir (first-subdirectory ".")))))
+           (let ((subdirectory (first-subdirectory ".")))
+             (if subdirectory
+                 (chdir (first-subdirectory "."))
+                 #t)))))
 
 ;; See <http://bugs.gnu.org/17840>.
 (define* (patch-usr-bin-file #:key native-inputs inputs
-- 
2.6.3


             reply	other threads:[~2016-01-17  1:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-17  1:30 Ben Woodcroft [this message]
2016-01-17  1:51 ` [PATCH] tar bombs and muscle Ben Woodcroft
2016-01-17  9:30   ` Mathieu Lirzin
2016-01-17 12:45     ` Pjotr Prins
2016-01-17  4:29 ` Eric Bavier
2016-01-17  6:27   ` Ben Woodcroft
2016-04-24  0:04   ` Ben Woodcroft
2016-04-30  2:13     ` Leo Famulari
2016-04-30  5:48       ` Ben Woodcroft
2016-01-17  8:35 ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=569AEE9B.6070709@uq.edu.au \
    --to=b.woodcroft@uq.edu.au \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.