From 8153a402ae3958b4207451d709fd92191c0cab66 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 26 Sep 2021 20:39:08 -0400 Subject: [PATCH] gnu: Add patool. * gnu/packages/patool.scm: New module. * gnu/local.mk (GNU_SYSTEM_MODULES): Register it. --- gnu/local.mk | 1 + gnu/packages/patool.scm | 118 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 gnu/packages/patool.scm diff --git a/gnu/local.mk b/gnu/local.mk index 22fc393f0e..b8ae060326 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -434,6 +434,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/parallel.scm \ %D%/packages/pascal.scm \ %D%/packages/password-utils.scm \ + %D%/packages/patool.scm \ %D%/packages/patchutils.scm \ %D%/packages/pciutils.scm \ %D%/packages/pcre.scm \ diff --git a/gnu/packages/patool.scm b/gnu/packages/patool.scm new file mode 100644 index 0000000000..a808555795 --- /dev/null +++ b/gnu/packages/patool.scm @@ -0,0 +1,118 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxim Cournoyer +;;; +;;; 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 . + +(define-module (gnu packages patool) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix build-system python) + #:use-module (gnu packages) + #:use-module (gnu packages backup) + #:use-module (gnu packages cdrom) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages cpio) + #:use-module (gnu packages debian) + #:use-module (gnu packages file) + #:use-module (gnu packages package-management) + #:use-module (gnu packages xiph)) + +(define-public patool + (package + (name "patool") + (version "1.12") + (source + (origin + (method git-fetch) ;no test data in PyPI archive + (uri (git-reference + (url "https://github.com/wummel/patool") + (commit (string-append "upstream/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0zgvgx9549rvb57rgkpjalydz46k71gibfs6ab3b3sy439s0ay4h")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (native-inputs + `(("bzip2" ,bzip2) + ("cabextract" ,cabextract) + ("cdrtools" ,cdrtools) + ("clzip" ,clzip) + ("cpio" ,cpio) + ("dpkg" ,dpkg) + ("file" ,file) + ("flac" ,flac) + ("libarchive" ,libarchive) ;for bsdtar + ("lhasa" ,lhasa) + ("lrzip" ,lrzip) + ("lzip" ,lzip) + ("lzop" ,lzop) + ("python-pytest" ,python-pytest) + ("p7zip" ,p7zip) + ("pbzip2" ,pbzip2) + ("pigz" ,pigz) + ("plzip" ,plzip) + ("rpm" ,rpm))) + (home-page "https://wummel.github.io/patool/") + (synopsis "Portable archive file manager") + (description "Patool provides a unified command line interface for a +plethora of archivers. It supports the following archive formats natively: +@itemize +@item TAR (.tar, .cbt) +@item BZIP2 (.bz2) +@item GZIP (.gz) +@item ZIP (zip, .jar, .cbz). +@end itemize +The archive formats below are also supported as long as the corresponding +compressor or archiver commands are available: +@itemize +@item 7z (.7z, .cb7) +@item ACE (.ace, .cba) +@item ADF (.adf) +@item ALZIP (.alz) +@item APE (.ape) +@item AR (.a) +@item ARC (.arc) +@item ARJ (.arj) +@item CAB (.cab) +@item COMPRESS (.Z) +@item CPIO (.cpio) +@item DEB (.deb) +@item DMS (.dms) +@item FLAC (.flac) +@item GZIP (.gz) +@item ISO (.iso) +@item LRZIP (.lrz) +@item LZH (.lha, .lzh) +@item LZIP (.lz) +@item LZMA (.lzma) +@item LZOP (.lzo) +@item RPM (.rpm) +@item RAR (.rar, .cbr) +@item RZIP (.rz) +@item SHN (.shn) +@item TAR (.tar, .cbt) +@item XZ (.xz) +@item ZOO (.zoo). +@end itemize") + (license license:gpl3+)))