Subject: Re: [bug#30334] [PATCH] gnu: Add dtrx.

From: Marius Bakke <[email-masked]>
Date: Wed, 14 Feb 2018 00:15:32 +0100

Hartmut Goebel <[email-masked]> writes:

> * gnu/packages.compression.scm (dtrx): New variable.

[...]

> @@ -53,10 +54,12 @@
>    #:use-module (gnu packages backup)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages check)
> +  #:use-module (gnu packages cpio)
>    #:use-module (gnu packages curl)
>    #:use-module (gnu packages file)
>    #:use-module (gnu packages java)
>    #:use-module (gnu packages maths)
> +  #:use-module (gnu packages package-management)
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages perl-check)
>    #:use-module (gnu packages pkg-config)

I wonder if there are other places to put this package.  (gnu packages
compression) is starting to have a lot of top-level cross-module
references.  Though I'm not sure what consequences it has in practice.

> +(define-public dtrx
> +  (package
> +    (name "dtrx")
> +    (version "7.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://brettcsmith.org/2007/"
> +                           "dtrx/dtrx-" version ".tar.gz"))
> +       (sha256
> +        (base32 "15yf4n27zbhvv0byfv3i89wl5zn6jc2wbc69lk5a3m6rx54gx6hw"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:python ,python-2))
> +    (inputs
> +     `(("binutils" ,binutils) ; ar
> +       ("bzip2" ,bzip2) ; bzcat
> +       ("cabextract" ,cabextract)
> +       ("cpio" ,cpio) ; cpio
> +       ("gzip" ,gzip) ; zcat
> +       ;; ("lha" ,lha) missing in guix
> +       ("p7zip" ,p7zip) ; 7z
> +       ("rpm" ,rpm) ; rpm2cpio
> +       ("tar" ,tar)
> +       ;; ("unrar" ,unrar) ; abandoned upstream

The canonical unrar is also non-free, so I think we should remove this
line entirely, so that we don't direct potential contributors to it.

> +       ("unshield" ,unshield)
> +       ("unzip" ,unzip)
> +       ("xz" ,xz))) ; lzcat, xzcat

Does dtrx actually keep references to all of these (as verified with
`guix gc -R`)?

> +    (home-page "http://www.brettcsmith.org/2007/dtrx/")
> +    (synopsis "Intelligently extract multiple archive types")
> +    (description "@command{dtrx} extracts archives in a number of different
> +formats, so you don't have to remember the flags for each archive command.
> +Just use the same command for all your archive files, and they'll never
> +frustrate you again.
> +
> +In addition to providing one command to handle many different archive types,
> +@command{dtrx} also aids the user by extracting contents consistently.  By
> +default, everything will be written to a dedicated directory that’s named
> +after the archive.  dtrx will also change the permissions to ensure that the
> +owner can read and write all those files.
> +
> +It currently supports tar, zip (including self-extracting .exe files), cpio,
> +rpm, deb, gem, 7z, cab, rar, and InstallShield files.  It can also decompress
> +files compressed with gzip, bzip2, lzma, xz, or compress.")

I think we should not mention formats that are not currently supported,
so as to not confuse users who search for e.g. rar and tries installing
this.  Or maybe remove this last paragraph entirely to ease maintenance,
WDYT?  Just in case there is a new upstream release after all these
years.

LGTM otherwise (assuming it works!).