[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#37457] [PATCH] gnu: Add makeself-safeextract.
From: |
Pierre Neidhardt |
Subject: |
[bug#37457] [PATCH] gnu: Add makeself-safeextract. |
Date: |
Thu, 19 Sep 2019 12:35:52 +0200 |
* gnu/packages/compression.scm (makeself-safeextract): New variable.
---
gnu/packages/compression.scm | 49 +++++++++++++++++++++++++++++++++++-
1 file changed, 48 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index bda43bfd18..9785fa7a60 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -22,7 +22,7 @@
;;; Copyright © 2017 Julien Lepiller <address@hidden>
;;; Copyright © 2018 Rutger Helling <address@hidden>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <address@hidden>
-;;; Copyright © 2018 Pierre Neidhardt <address@hidden>
+;;; Copyright © 2018, 2019 Pierre Neidhardt <address@hidden>
;;; Copyright © 2019 Nicolas Goaziou <address@hidden>
;;;
;;; This file is part of GNU Guix.
@@ -48,6 +48,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages assembly)
#:use-module (gnu packages autotools)
@@ -2000,3 +2001,49 @@ external compressors: the compressor to be used for each
format is configurable
at run time, and must be installed separately.")
(license (list license:bsd-2 ; arg_parser.{cc,h}
license:gpl2+)))) ; the rest
+
+(define-public makeself-safeextract
+ (let ((commit "1a95e121fa8e3c02d307ae37b9b7834e616c3683"))
+ (package
+ (name "makeself-safeextract")
+ (version (git-version "0.0.0" "1" commit))
+ (home-page "https://github.com/ssokolow/makeself_safeextract")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1anlinaj9lvfi8bn00wp11vzqq0f9sig4fm9yrspisx31v0z4a2c"))))
+ (build-system trivial-build-system)
+ (inputs
+ `(("python" ,python-2)
+ ("p7zip" ,p7zip)
+ ("unzip" ,unzip)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((name "makeself_safeextract")
+ (source (string-append (assoc-ref %build-inputs "source")
+ "/" name ".py"))
+ (bin (string-append (assoc-ref %outputs "out") "/bin"))
+ (target (string-append bin "/" name))
+ (python (string-append (assoc-ref %build-inputs "python")
"/bin"))
+ (7z (string-append (assoc-ref %build-inputs "p7zip")
"/bin/7z"))
+ (unzip (string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip")))
+ (setenv "PATH" (string-append (getenv "PATH") ":" python))
+ (mkdir-p bin)
+ (copy-file source target)
+ (substitute* target
+ (("'7z'") (format #f "'~a'" 7z))
+ (("'unzip'") (format #f "'~a'" unzip)))
+ (patch-shebang target)))))
+ (synopsis "Extract makeself and mojo archives without running untrusted
code")
+ (description "A simple script to unpack makeself-generated
+self-extractors without running the possibly untrusted shell script.")
+ (license license:gpl3+))))
--
2.23.0
- [bug#37457] [PATCH] gnu: Add makeself-safeextract.,
Pierre Neidhardt <=